⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ds.asv

📁 直序扩频系统的matlab仿真
💻 ASV
字号:
%====Spread Spectrum system====
clear;
pic=1;
%===定义参数=======
len=128;         %二进制信号长度
ds=63;           %直序扩频倍数
len_ss=len*ds;   %扩频信号长度
wv=64;           %交织深度
bpsk_r=8;        %BSPK上采样率
sigma=0.3;       %AWGN信道噪声标准差
%====生成四一零码======
bit_sig=ones(1,len);
i=5:5:len;
bit_sig(i)=0;
%========扰码===========
inter_sig=inter_bit(bit_sig);
%========交织(深度64)===========
weave_sig=zeros(1,len);
for i=0:len/wv-1        % 将原始信号分成64个一组进行交织
    for j=1:sqrt(wv)
        weave_sig(i*wv+(j-1)*sqrt(wv)+1:i*wv+j*sqrt(wv))=inter_sig(i*wv+j:sqrt(wv):i*wv+wv);
    end;
end;
%======GOLD序列生成=========
con1=[1 1 0 0 0 0 1]; % x2(1)=c(1)*x1(1)+c(2)*x1(2)+...+c(n)*x1(n)
con2=[1 1 1 0 0 1 1];
reg_m=length(con1)-1;
seq_l=2^reg_m-1;
seq_m1=ss_m(con1);
seq_m2=ss_m(con2);
seq_gold=mod(seq_m1+seq_m2,2);
%========直序扩频=============
widen_sig=zeros(1,len_ss);
for i=0:len-1
    widen_sig((i*ds+1):(i+1)*ds)=weave_sig(i+1);
end;
seq_ss=zeros(1,len_ss);
for i=1:seq_l:len_ss
    seq_ss(i:i+seq_l-1)=seq_gold;
end;
ss_sig=~seq_ss.*widen_sig+seq_ss.*~widen_sig;
%=======BPSK调制===========
bpsk_sig=zeros(1,length(ss_sig)*bpsk_r);
for i=1:length(ss_sig)
    if ss_sig(i)==1
        bpsk_sig((i-1)*bpsk_r+1:i*bpsk_r) =[1 0 0 0 0 0 0 0];
    else bpsk_sig((i-1)*bpsk_r+1:i*bpsk_r)=[0 1 1 1 1 1 1 1];
    end;
end;
%======AWGN信道==============
 rec_sig=bpsk_sig+sigma.*randn(1,length(bpsk_sig));
% rec_sig=bpsk_sig;
%=======BPSK解调=============
rebpsk_sig=rec_sig(1:bpsk_r:length(rec_sig));
    
%=======相关解扩=============
ress_sig=~seq_ss.*rebpsk_sig+seq_ss.*~rebpsk_sig;
narr_sig=ress_sig(1:ds:length(ress_sig));
%========解交织===============
reweave_sig=zeros(1,len);
for i=0:len/wv-1        % 将原始信号分成64个一组进行交织
    for j=1:sqrt(wv)
        reweave_sig(i*wv+(j-1)*sqrt(wv)+1:i*wv+j*sqrt(wv))=narr_sig(i*wv+j:sqrt(wv):i*wv+wv);
    end;
end;
%========解扰===============
reinter_sig=inter_bit(reweave_sig);
%=====显示数据========
%   %----四一零码、扰码、交织信号-----
%     figure(pic);
%     pic=pic+1;
%     subplot(3,1,1);
%     stem(bit_sig,'.');
%     axis([0 length(bit_sig) -0.2 2]);
%     title('四零一信号');
%     subplot(3,1,2);
%     stem(inter_sig,'.');
%     axis([0 length(inter_sig) -0.2 2]);
%     title('扰码后信号');
%     subplot(3,1,3);
%     stem(weave_sig,'.');
%     axis([0 length(weave_sig) -0.2 2]);
%     title('交织后信号');
%   %-----m序列和GOLD序列------
%     figure(pic);
%     pic=pic+1;
%     subplot(3,1,1);
%     stem(seq_m1,'.');
%     axis([0 length(seq_m1) -0.2 2]);
%     title('m序列1');
%     subplot(3,1,2);
%     stem(seq_m2,'.');
%     axis([0 length(seq_m2) -0.2 2]);
%     title('m序列2');
%     subplot(3,1,3);
%     stem(seq_gold,'.');
%     axis([0 length(seq_gold) -0.2 2]);
%     title('GOLD序列');
%   %------扩频信号--------
%     figure(pic);
%     pic=pic+1;
%     subplot(3,1,1);
%     stem(widen_sig,'.');
%     axis([0 length(widen_sig) -0.2 2]);
%     title('交织后信号展宽');
%     subplot(3,1,2);
%     stem(seq_ss,'.');
%     axis([0 length(seq_ss) -0.2 2]);
%     title('GOLD序列重复');
%     subplot(3,1,3);
%     stem(ss_sig,'.');
%     axis([0 length(ss_sig) -0.2 2]);
%     title('扩频后信号');
%   %-----相关解扩--------
%     figure(pic);
%     pic=pic+1;
%     subplot(2,1,1);
%     stem(weave_sig,'.');
%     axis([0 length(weave_sig) -0.2 2]);
%     title('发端交织信号');
%     subplot(2,1,2);
%     stem(narr_sig,'.');
%     axis([0 length(narr_sig) -0.2 2]);
%     title('收端相关解扩信号');
%   %----解交织--------
%     figure(pic);
%     pic=pic+1;
%     subplot(2,1,1);
%     stem(inter_sig,'.');
%     axis([0 length(inter_sig) -0.2 2]);
%     title('发端扰码信号');
%     subplot(2,1,2);
%     stem(reweave_sig,'.');
%     axis([0 length(reweave_sig) -0.2 2]);
%     title('收端解交织信号');
%   %----解扰--------
%     figure(pic);
%     pic=pic+1;
%     subplot(2,1,1);
%     stem(bit_sig,'.');
%     axis([0 length(bit_sig) -0.2 2]);
%     title('发端四一零信号');
%     subplot(2,1,2);
%     stem(reinter_sig,'.');
%     axis([0 length(reinter_sig) -0.2 2]);
%     title('收端解扰信号');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -