📄 ds_communication2.asv
字号:
%第一步:生成信源信息码
%信息码的长度为20,频率为50KHz,采样率为40MHz
code_length=20; %信息码元个数
N=1:code_length;
rand('seed',0);
x=sign(rand(1,code_length)-0.5); %信息码
for i=1:20
s((1+(i-1)*800):i*800)=x(i); %每个信息码元内含fs/f=800 个采样点
end
%第二步:生成伪随机码
%伪随机码频率为5MHz,所以信息码内包含100个伪随机码,调用一个产生m序列的
%子函数generate_m, 与一个长度伪20*100的循环就得到伪随机序列PN码
length=100*20; %伪码频率5MHz,每个信息码内含5MHz/50kHz=100 个伪码
SF=2047;
mSequence=MSequence(SF+1); %长度为2047的m序列
x_code=mSequence(1:2000); %长度为2000的伪随机码
for i=1:2000
w_code((1+(i-1)*8):i*8)=x_code(i); %每个伪码码元内含8 个采样点
end
%第三步:扩频
%将信息码s的16000个采样点与PN码的w_code的16000个点对应相乘得到扩频码
k_code=s.*w_code; %k_code为扩频码
%第四步:PSK调制
%产生一个周期内含有八个采样点的载波,经过2000次循环,生成16000个对载波的采样点
%然后与扩频码k_code对应点相乘,就得到了PSK调制后的波形
for i=1:2000
AI=2;
dt=fs/f0;
n=0:dt/7:dt; %一个载波周期内采样八个点
cI=AI*cos(2*pi*f0*n/fs);
signal((1+(i-1)*8):i*8)=k_code((1+(i-1)*8):i*8).*cI;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -