当前位置:文档之家› 直接序列扩频通信系统仿真程序

直接序列扩频通信系统仿真程序

直接序列扩频通信系统仿真程序
杨晶超 S2*******
>> code_le ngth=20;
>> N=1:code_le ngth;
>> ran d('seed',0);
>> x=sig n(ran d(1,code_le ngth)-
0.5);
>> for i=1:20
s((1+(i-1)*800):i*800)=x(i);
end %信息码元个数 %信息码 %每个信息码元内含fs/f=800个采样点
>> %产生伪随机码,调用的 mgen 函数见附录
>> length=100*20;
%伪码频率5MHz,每个信息码内含 5MHz/50kHz=100个伪码 >> x_code=sign(mgen(19,8,length)-0.5); %把 0,1 序列码变换为-1,1 调制码 >> for i=1:2000
w_code((1+(i-1)*8):i*8)=x_code(i);
%每个伪码码元内含 8个采样点
end
生成的PN 码波形如图2所示。

>> %扩频
>> k_code=s.*w_code;
扩频码如图3所示。

1.5 所示。

□= C JXJC
1EUJ J
生成的信息码的波形图如图 1 1X00 “血 图1信源信息码 %k_code 为扩频码
PH J4
图3扩频码 >> %调制
>> fs=20e6;
>> f0=30e6;
>> for i=1:2000
AI=2;
dt=fs/fO;
n=0:dt/7:dt; % 一个载波周期内采样八个点
cl=AI*cos(2*pi*fO* n/fs);
sig nal((1+(i-1)*8):i*8)=k_code((1+(i-1)*8):i*8).*cl;
end
□.6
d.2
a az
^.6
-0.0
■I
>> %解调
>> Al=1;
>> dt=fs/fO;
>> n=0:dt/7:dt; % 一个载波周期内采样八个点
>> cl=AI*cos(2*pi*fO* n/fs);
>> for i=1:2000
sig nal_h((1+(i-1)*8):i*8)=sig nal((1+(i-1)*8):i*8).*cl;
end
解调后的波形如图5所示。

解诃洁的於曲
40 SD AD IOC I2D IdD
图5解调后的波形
■J.S
PSK调制后的波形如图4所示。

馳| 10D I5D 200 25D
I
图4 PSK调制后的波形
>> %解扩
>>jk_code=sig nal_h.*w_code;
>> %低通滤波
>> wn=5/10000000; %截止频率wn=fn/(fs/2),这里的fn为信息码(扩频码)的带宽5M >> b=fir1(16,w n);
>> H=freqz(b,1,16000);
>> sig nal_d=filter(b,1, jk_code);
解扩并滤波后的波形如图6所示。

图6解扩并滤波后的波形
从图形整体看,解扩出来的信息码与信源信息码基本相同。

输入与输出对比如图7所示。

応 --------------- 1 ------------------- 1 --------------------1 -------------------- r -------------------
Q百- ■ ■ ■ ■ ■ ■- ■ —■---- ----- ----------------------------------- ---------------------------------------- --------------------------------------- -
4)6 ■ ■■■■"=■■■ ■,!!?■■■……-.“+■,■:- ......... - ……-
1
.1 s I 一I I I
□2tfiu 4<tju eojo aoo laooo 12000 I*JUL貯DOD
图7输入与输岀对比
附录:
%mgen.m function[out]=mgen(g,state,N) gen=dec2bin(g)-48; M=length(gen);
curState=dec2bin(state,M-1)-48;
for k=1:N
out(k)=curState(M-1);
a=rem(sum(gen(2:end).*curState),2);
curState=[a curState(1:M-2)];
end。

相关主题