参考文献
[1] 曹志刚等编,现代通信原理[M],清华大学出版社,2008 [2] 程佩青. 数字信号处理教程[M].清华大学出版社 [3] 刘卫国. MATLAB程序设计教程[M].中国水利水电出版社
[4] 桑林,郝建军,刘丹,数字通信[M].北京邮电大学出版社,2002 [5] 苗云长等主编,现代通信原理及应用[M]。电子工业出版社,2005 [6] 吴伟铃,庞沁华,通信原理[M],北京邮电大学出版社,2005 [7] 张圣勤,MATLAB7.0实用教程[M],机器工业出版社,2006
[8] 邵玉斌,Matlab/Simulink通信原理建模与仿真实例分析[M],清华大学出版社,2008
[9]樊昌信,通信原理(第6版) [M].北京:国防工业出版社.2001.
15
致谢
通过本次计算机通信课程设计,让我在除了课本的知识之外的知识有了更好的理解,对8PSK调制解调的工作原理有了更好的理解,在设计之前,收集了很多的材料,但当真正深入设计时,却也遇到了诸多的问题,让我体会到了设计的要求在于系统性,可行性,准确性,诸多问题的出现给我们的设计带来了难度,也同时是更大的一次挑战,最终,在老师以及同学的帮助下,克服了种种困难,顺利的完成了本次通信仿真训练的课程设计,在此,首先要感谢学校安排此次课程设计,让我有机会对本次课程设计能够深入理解和设计,再次感谢老师的细心指导和改正,还有同组同学的相互团结和帮助,使我完成了本次计算机通信课程设计,使我在求学的道路上有了更多方面知识的获得。设计过程中查阅了大量的有关PSK调制解调设计的书籍,巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合的必要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。再次感谢学校,感谢老师,感谢同学。
16
附录
clear all close all clc
num=10; %码元个数 tnum=200;%码元长度
N=num*tnum;个码元整体长度
a=randint(1,num,2); %产生1行num列的矩阵,矩阵内0和1随机出现 fc=0.25; %载波频率为0.5
t=0:0.05:9.99;%t从0到9.99,间隔为0.05 s=[];c=[];
for i=1:num %i从1到10循环 if(a(i)==0)
A=zeros(1,tnum); %i=0时,产生一个码元长度为tnum(200)的0码元 else
A=ones(1,tnum); %i=1时,产生一个码元长度为tnum(200)的1码元 end
s=[s A]; %s为随机基带信号 cs=sin(2*pi*fc*t);
c=[c cs]; %c为载波信号 end
%采用模拟调制方法得到调制信号 s_NRZ=[];
for i=1:num %i从1到num(10)循环 if(a(i)==0)
A=ones(1,tnum); %i=0时,产生一个码元长度为tnum(200)的1码元 else
A=-1*ones(1,tnum); %i非0时,产生一个码元长度为tnum(200)的-1码元 end
17
s_NRZ=[s_NRZ,A]; %s_NRZ为双极性非归零码 end
e=s_NRZ.*c; %e为BPSK调制信号 figure(1); %图1
subplot(3,2,1); %图1分为3×2部分的第一部分 plot(s); %作s(基带信号)的波形图 grid on;
axis([0 N -2 2]); %横轴长度为0到N,纵轴范围为-2到+2 xlabel('基带信号s(t)'); %x轴的注释 ylabel('基带信号幅值'); %y轴的注释 subplot(323);plot(c);grid on; axis([0 N -2 2]);
xlabel('BPSK载波信号');
ylabel('BPSK载波信号幅值'); %作c(BPSK载波信号)的波形图 subplot(325);plot(e);grid on; axis([0 N -2 2]);
xlabel('BPSK调制信号');
ylabel('BPSK调制信号幅值'); %作e(BPSK调制信号)的波形图 %信号的频谱 Fs=200; %采样频率 n=length(s); %基带信号长度
f=[0:Fs/n:Fs-Fs/n]-Fs/2; %修正频率f的范围 S=fft(s); %基带信号s的快速傅里叶变换 E=fft(e); %基带信号e的快速傅里叶变换 C=fft(c); %基带信号c的快速傅里叶变换 subplot(322);
plot(f,abs(fftshift(S))); %基带信号的频谱 title('基带信号频谱');
xlabel('f/hz');ylabel('S(w)'); grid on; subplot(324);
18
plot(f,abs(fftshift(C))); %载波信号的频谱 title('载波信号频谱');
xlabel('f/hz');ylabel('C(w)'); grid on; subplot(326);
plot(f,abs(fftshift(E))); %调制信号的频谱 title('调制信号频谱');
xlabel('f/hz');ylabel('E(w)'); grid on; %加高斯噪声
am=0.7; %输入信号经信道后振幅由1衰减为0.7 SNR=5; %输入信噪比 snr=10^(SNR/10);
N0=(am*am)/2/snr; %计算噪声功率
N0_db=10*log10(N0); %将噪声功率转换为dBW ni=wgn(1,N,N0_db); % 产生1行N列的高斯噪声
yi=e+ni; %BSK已调信号中加入白噪声,输入信噪比为SNR figure(2);subplot(2,1,1);plot(yi);grid on; xlabel('加入高斯白噪声的已调信号yi(t)'); %带通滤波器
[b1,a1] = BUTTER(3,[2*pi*0.0001,2*pi*0.01]); %计算带通滤波器的H(z)系数 y=filter(b1,a1,yi); %对信号yi进行滤波,得到信号y figure(2);subplot(2,1,2);plot(y);grid on; xlabel('经带通滤波器后信号'); %与恢复载波相乘 x1=2*c.*y;
figure(3);subplot(2,1,1);plot(x1);grid on xlabel('与恢复载波相乘后的信号x1(t)'); %低通滤波器
[b2,a2]=butter(2,0.005); %计算H(z)系数 ,频率为(1/200) x=filter(b2,a2,x1); %对信号x1滤波,得到信号x figure(3);subplot(2,1,2);plot(x);grid on
19