预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

编号: 时间:2021年x月x日 书山有路勤为径,学海无涯苦作舟页码:第页共NUMPAGES5页 第PAGE\*MERGEFORMAT5页共NUMPAGES\*MERGEFORMAT5页 直接序列扩频通信系统仿真程序 杨晶超s20070416 >>code_length=20;%信息码元个数 >>N=1:code_length; >>rand('seed',0); >>x=sign(rand(1,code_length)-0.5);%信息码 >>fori=1:20 s((1+(i-1)*800):i*800)=x(i);%每个信息码元内含fs/f=800个采样点 end 生成的信息码的波形图如图1所示。 图1信源信息码 >>%产生伪随机码,调用的mgen函数见附录 >>length=100*20;%伪码频率5MHz,每个信息码内含5MHz/50kHz=100个伪码 >>x_code=sign(mgen(19,8,length)-0.5);%把0,1序列码变换为-1,1调制码 >>fori=1:2000 w_code((1+(i-1)*8):i*8)=x_code(i);%每个伪码码元内含8个采样点 end 生成的PN码波形如图2所示。 >>%扩频 >>k_code=s.*w_code;%k_code为扩频码 扩频码如图3所示。 图2PN码 图3扩频码 >>%调制 >>fs=20e6; >>f0=30e6; >>fori=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 PSK调制后的波形如图4所示。 图4PSK调制后的波形 >>%解调 >>AI=1; >>dt=fs/f0; >>n=0:dt/7:dt;%一个载波周期内采样八个点 >>cI=AI*cos(2*pi*f0*n/fs); >>fori=1:2000 signal_h((1+(i-1)*8):i*8)=signal((1+(i-1)*8):i*8).*cI; end 解调后的波形如图5所示。 图5解调后的波形 >>%解扩 >>jk_code=signal_h.*w_code; >>%低通滤波 >>wn=5/10000000;%截止频率wn=fn/(fs/2),这里的fn为信息码(扩频码)的带宽5M >>b=fir1(16,wn); >>H=freqz(b,1,16000); >>signal_d=filter(b,1,jk_code); 解扩并滤波后的波形如图6所示。 图6解扩并滤波后的波形 从图形整体看,解扩出来的信息码与信源信息码基本相同。输入与输出对比如图7所示。 图7输入与输出对比 附录: %mgen.m function[out]=mgen(g,state,N) gen=dec2bin(g)-48; M=length(gen); curState=dec2bin(state,M-1)-48; fork=1:N out(k)=curState(M-1); a=rem(sum(gen(2:end).*curState),2); curState=[acurState(1:M-2)]; end