基于MATLAB的DPSK通信系统仿真(4)

2019-05-24 14:28

的编程能力。回顾起此次通信原理课程实验,至今我仍感慨颇多,在整整两周的时间里,我的心情和课程设计的进展起起伏伏,一度怀疑自己的能力开始否定自己,直到最后把每处都弄通了、达到完美了,心情才真正舒畅开来。

但是,我确实学到很多很多的的东西,同时巩固了所学知识。整个设计的过程,可以说得是困难重重,这毕竟算是自己第一次独立完成,在设计的过程中发现了自己的不足之处,对软件不熟悉,动手能力比较欠缺。设计的过程很纠结,调试的过程也很痛苦,但是知识就是在这个过程中学习的,经验也是在这个过程中积累的。经历过困难才会有更多的收获。掌握正确的方法,保持认真的作风和平和的心态,这样才能真正的学到知识。

这次课程实验终于完成了,在设计中遇到了很多问题,多谢李晓峰老师的耐心讲解,从老师的身上我学到了很多实用的知识,也由衷地庆幸自己能遇到这样一位好老师,不仅专业知识扎实,而且品格高尚、谦和有礼,这就是我理想中的好老师。再次感谢李老师。同时,对给予我帮助的同学们也表示忠心的感谢。

附:完整代码

%%%%%%%%%%%% DPSK调制解调 %%%%%%%%%%%%%%%%%

%%%%%%%%%%%% 初始参量定义 %%%%%%%%%%%%% fc=1800; %载波频率

Rb=1200; %基带数据传输速率 Tb=1/Rb;

T=50; %每个Tb内进行的增样点数 M=8; %原始码字序列的长度 N=9; %差分码字序列的长度 sign=zeros(1,M);

sign=randint(1,N); %产生长度为M的随机二进制序列 SNR=1.5; %信噪比

%%%%%%%%%%%% 对sign进行T点增样后的基带数字信号 %%%%%%%%%% bn=[]; for n=1:M

if sign(n)==0; F=zeros(1,T); else

F=ones(1,T); end

16

bn=[bn,F]; end

%%%%%%%%%%%%% 差分编码得到差分码cfm %%%%%%%%%% cfm=[];

cfm(1)=1; %设cfm的初值为1 for i=1:M

cfm(i+1)=xor(sign(i),cfm(i)); end

%%%%%%%%%%%%% 对cfm进行T点增样 %%%%%%%%%%%%%% dn=[]; %差分信号 for n=1:N;

if cfm(n)==0;

A=zeros(1,T); %每个symbol进行T点增样 else

A=ones(1,T); end

dn=[dn A]; end

%%%%%%%%%%%%%%%% DPSK调制 %%%%%%%%%%%%%%%

t=Tb/T:Tb/T:Tb; %对Tb=1/Rb间隔进行T点划分 mod=cos(2*fc*pi*t); %调制后的信号 delta=0; %相位差 for n=1:M

if sign(n)==1;

delta=delta+pi; else

delta=delta; end

c2=cos(2*fc*pi*t+delta); mod=[mod c2]; end

%%%%%%%%%%% 调制信号过高斯白噪声的信道 %%%%%%% modz=awgn(mod,SNR); %过AWGN信道

%%%%%%%%%%% BPF %%%%%%%%%%%%%

modz_broad=[modz modz((N-1)*T+1:N*T)]; fs=Rb*T;

hBPF=fir1(100,2*pi*[fc-Rb fc+Rb]/fs); r0=filter(hBPF,1,modz_broad);

r=r0(T+1:(N+1)*T); %对r0进行截取

17

%%%%%%%%%%% 延时相乘 %%%%%%% r_shift=r(T+1:N*T); demod=[]; for i=1:M*T;

a=r_shift(i) .* r(i); demod=[demod a]; end

%%%%%%%%%%%%% LPF %%%%%%%%%%

demod_broad=[demod demod((M-1)*T+1:M*T)] hLPF=fir1(100,2*pi*[Rb]/fs); mt0=filter(hLPF,1,demod_broad);

mt=mt0(T+1:(M+1)*T); %对mt0进行截取

%%%%%%%%%%%%% 抽样判决 %%%%%%%%%% Bn=zeros(1,M*T); for i=1:M;

if sum( mt( (i-1)*T+1 :i*T ) ) > 0; Bn((i-1)*T+1:i*T)=0; else

Bn((i-1)*T+1:i*T)=1; end end

%%%%%%%%%%%% 画图 %%%%%%%%%%% %%%%%%%%%%%% figure(1) %%%%%%%%%% figure(1);

subplot(3,3,1); plot(bn);grid on;

axis([0 T*N -2 2]);title('基带数字信号bn');

figure(1);

subplot(3,3,2); plot(dn); grid on;

axis([0 T*N -2 2]);title('差分信号dn');

figure(1);

subplot(3,3,3); plot(mod); grid on;

axis([0 T*N -2 2]);title('DPSK调制信号mod');

18

figure(1);

subplot(3,3,4); plot(modz); grid on

axis([0 T*N -2 2]);

title('过AWGN信道后的modz信号');

figure(1);

subplot(3,3,5); plot(r);grid on

axis([0 T*N -2 2]); title('过BPF后的信号r')

figure(1);

subplot(3,3,6);

plot(demod);grid on axis([0 T*N -1 1]);

title('延时相乘后的信号demod')

figure(1);

subplot(3,3,7); plot(mt); grid on

axis([0 T*N -1 1]); title('过LPF后的信号mt');

figure(1);

subplot(3,3,8); plot(Bn); grid on

axis([0 T*N -2 2]);

title('经抽样判决后信号Bn')

%%%%%%%%%%%% figure(2) %%%%%%%%%% figure(2);

subplot(3,3,1);

plot(abs(fft(bn))); axis([0 T*N 0 50]); title('原始信号bn频谱');

figure(2);

subplot(3,3,2);

19

plot(abs(fft(mod))); axis([0 T*N 0 50]); title('DPSK信号mod频谱');

figure(2);

subplot(3,3,3);

plot(abs(fft(modz))); axis([0 T*N 0 50]);

title('加入白噪声的DPSK信号modz频谱');

figure(2);

subplot(3,3,4); plot(abs(fft(r))); axis([0 T*N 0 50]); title('过BPF后的信号r频谱');

figure(2);

subplot(3,3,5); plot(abs(fft(r))); axis([0 T*N 0 50]); title('信号r_shift频谱');

figure(2);

subplot(3,3,6);

plot(abs(fft(demod))); axis([0 T*N 0 50]); title('信号demod频谱');

figure(2);

subplot(3,3,7);

plot(abs(fft(mt))); axis([0 T*N 0 50]);

title('经低通滤波器后信号mt频谱');

figure(2);

subplot(3,3,8);

plot(abs(fft(Bn))); axis([0 T*N 0 50]);

title('经抽样判决后信号Bn频谱');

%%%%%%%%%%%%%%% PSD %%%%%%%%%%%%%%% window=boxcar(100); %矩形窗 window1=hamming(100); %海明窗

20

window2=blackman(100); %blackman窗 Nfft=N*T*Rb;

noverlap=0; %数据无重叠

range='onesided'; %频率间隔为[0 Fs/2],只计算一半的频率 [Pxx,f]=pwelch(mod,window,noverlap,Nfft,fs,range); [Pxx1,f]=pwelch(mod,window1,noverlap,Nfft,fs,range); [Pxx2,f]=pwelch(mod,window2,noverlap,Nfft,fs,range);

figure(3) subplot(311)

plot(f,Pxx);axis([0 5000 0 0.001]); title('rectangular window PSD');

subplot(312)

plot(f,Pxx1);axis([0 5000 0 0.0007]); title('Hamming PSD');

subplot(313)

plot(f,Pxx2);axis([0 5000 0 0.0007]); title('Blackman PSD');

21


基于MATLAB的DPSK通信系统仿真(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:“十三五”重点项目-全自动地热恒压供水系统项目可行性研究报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: