数字通信系统课程设计.docx
《数字通信系统课程设计.docx》由会员分享,可在线阅读,更多相关《数字通信系统课程设计.docx(23页珍藏版)》请在冰点文库上搜索。
![数字通信系统课程设计.docx](https://file1.bingdoc.com/fileroot1/2023-6/22/91bb7b05-5373-4392-b3f4-5f1a2eb814d0/91bb7b05-5373-4392-b3f4-5f1a2eb814d01.gif)
数字通信系统课程设计
三峡大学数字通信系统课程设计
基于MATLAB的2PSK调制与解调系统
学院:
计算机与信息学院
学号:
班级序号:
72
姓名:
蔡红亮
指导老师:
夏平
日期:
2013年1月2日
《数字通信系统课程设计》任务书
题目
基于MATLAB的2PSK调制与解调系统
设计
目的
1、综合应用《信号与系统》、《随机信号分析》、《通信原理》等课程知识,使学生建立通信系统的整体概念;
2、培养学生系统设计与系统开发的思想;
3、培养学生利用Matlab软件平台进行通信系统仿真的能力。
设计
要求
1、每人一组,完成指定设计问题的系统详细功能;
2、对通信系统有整体的较深入的理解,深入理解设计系统的基本原理,画出组成的每个通信子系统的原理框图;
3、提出设计方案;
4、完成仿真软件的编制;
5、在Matlab仿真平台上,实现仿真系统正常运行;
6、提交详细的设计报告。
主要
设备
计算机1台,Matlab仿真软件一套。
主要
参考
文献
[1]张辉,曹丽娜等.现代通信原理与技术(第三版).西安电子科技大学出版社,2009.
[2]周炯槃等.通信原理(第三版).北京邮电大学出版社,2005.
[3]樊昌信.通信原理(第五版).国防工业出版社,2006.
[4]曹志刚等.现代通信原理.清华大学出版社,1992.
[5]LeonW.Couch.DigitalandAnalogCommunicationSystems(影印第5版).清华大学出版社,1999.
[6]StephenG.Wilson.DigitalModulationandCoding(影印版).电子工业出版社,1998.
课程设计进度安排(起止时间、工作内容)
一、课程设计主要内容┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
二、系统设计的原理┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
三、课程设计思路及过程┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
四、课程设计实验结果┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
五、课程设计结果分析┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
六、参考文献┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
七、附录┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
1、课程设计的主要内容
了解并掌握数字频带传输系统—2PSK的调制与解调系统,通过MATLAB来实现整个通信系统的设计,进一步加深对2PSK系统的理解,并熟练掌握MATLAB语言。
2、课程设计原理
数字信号的传输方式分为基带传输和带通传输,在实际应用中,大多数信道具有带通特性而不能直接传输基带信号。
为了使数字信号在带通信道中传输,必须使用数字基带信号对载波进行调制,以使信号与信道的特性相匹配。
这种用数字基带信号控制载波,把数字基带信号变换为数字带通信号的过程称为数字调制。
数字调制技术的两种方法:
①利用模拟调制的方法去实现数字式调制,即把数字调制看成是模拟调制的一个特例,把数字基带信号当作模拟信号的特殊情况处理;②利用数字信号的离散取值特点通过开关键控载波,从而实现数字调制。
这种方法通常称为键控法,比如对载波的相位进行键控,便可获得相移键控(PSK)基本的调制方式。
图-1模拟调制的方法
图-2相移键控方法
调制过程:
数字调相:
如果两个频率相同的载波同时开始振荡,这两个频率同时达到正最大值,同时达到零值,同时达到负最大值,它们应处于"同相"状态;如果其中一个开始得迟了一点,就可能不相同了。
如果一个达到正最大值时,另一个达到负最大值,则称为"反相"。
一般把信号振荡一次(一周)作为360度。
如果一个波比另一个波相差半个周期,我们说两个波的相位差180度,也就是反相。
当传输数字信号时,"1"码控制发0度相位,"0"码控制发180度相位。
载波的初始相位就有了移动,也就带上了信息。
相移键控:
利用载波的相位变化来传递数字信息,而振幅和频率保持不变。
在2PSK中,通常用初始相位0和π分别表示二进制“1”和“0”。
因此,2PSK信号的时域表达式为
(t)=Acos
其中,
表示第n个符号的绝对相位:
=
因此,上式可以改写为
当码元宽度和载波周期相等时,2PSK调制波形如下:
图-32PSK调制波形
解调过程
2PSK信号的解调方法是相干解调法。
由于PSK信号本身就是利用相位传递信息的,所以在接收端必须利用信号的相位信息来解调信号。
下图2-3中给出了一种2PSK信号相干接收设备的原理框图。
图中经过带通滤波的信号在相乘器中与本地载波相乘,然后用低通滤波器滤除高频分量,在进行抽样判决。
判决器是按极性来判决的。
即正抽样值判为1,负抽样值判为0.
图-42PSK相干解调系统框图
图-52PSK信号相干解调各点时间波形
可见,2PSK信号相干解调的过程实际上是输入已调信号与本地载波信号进行极性比较的过程,故常称为极性比较法解调。
由于2PSK信号实际上是以一个固定初相的末调载波为参考的,因此,解调时必须有与此同频同相的同步载波。
如果同步载波的相位发生变化,如0相位变为π相位或π相位变为0相位,则恢复的数字信息就会发生“0”变“1”或“1”变“0”,从而造成错误的恢复。
这种因为本地参考载波倒相,而在接收端发生错误恢复的现象称为“倒π”现象或“反向工作”现象。
绝对移相的主要缺点是容易产生相位模糊,造成反向工作。
这也是它实际应用较少的主要原因。
三、课程设计思路及过程
本课题主要是通过MATLAB来实现整个2PSK系统,在用MATLAB语言编程的时候主要分为以下几个模块。
模块一、通过码型变换产生双极性数字基带信号,首先调用MATLAB函数产生一组随机序列,然后将离散的随机序列变换成单极性的二进制数字基带信号,将单极性信号取反并与上面信号相减即可得到我们所需要的二进制双极性数字基带信号,生成的二进制信号带宽为1。
模块二、载波信号的产生,采用的载频为10hz,所以基带信号周期是载波周期的10倍,载波振幅为1。
模块三、通过模拟调制的方法得到2PSK信号:
(注:
在这设置载波信号的初相为0)
模块四、已调信号通过信道传输,通过MATLAB函数产生一个随机信号来模拟高斯白噪声,并与已调信号相加,在这里我们只考虑加性噪声,不考虑乘型噪声。
模块五、相干解调过程
(注:
这里没有载波提取过程,而是直接用本地载波去与已调信号相乘)
模块六、用matlab来设计理想的巴特沃斯低通滤波器
模块七、根据位同步信号进行抽样判决
模块八、2PSK信号的频谱分析
模块九、采用窗函数方法对信号进行功率谱密度分析
4、课程设计的试验结果
1、2PSK调制、解调系统信号波形图
图-6二进制数字基带信号与载波信号
图-72PSK信号与接收机接收到的信号波形
图-8通过解调、低通输出波形
图-9判决输出波形
将抽样输出的基带信号波形与原信号相比较可以发现两个信号波形完全相同,说明整个2PSK的调制、解调系统是正确的。
五、课程设计结果分析
1、2PSK调制解调系统频谱分析
数字基带信号为二进制非归零码,所以它的傅里叶变换应该是门函数,信号带宽为1/TS,其频谱图-9。
载波信号为正弦信号,载频为10hz,其频谱如下。
图-9数字基带信号与载波信号频谱
2PSK信号的实质为基带信号与载波相乘的结果,所以2PSK的信号频谱是基带信号频谱的线性搬移,中心频率为fc.,带宽为基带信号带宽的两倍,如图-10,2PSK信号通过信道后,加上了高斯白噪声,其频谱如下。
图-102PSK信号与接收机接收的信号频谱
相干解调实质是将已调信号与提取的载波信号相乘,所以解调输出的信号的频率成分包括基带信号频率和2倍的载频信号和噪声如图-11,通过低通滤波器后,高频成分被虑掉,剩下基带信号和部分噪声。
图-11解调输出与低通输出的信号频谱
图-12判决输出信号频谱与基带信号频谱
通过比较判决输出信号的频谱和基带信号频谱,得出结论,2PSK的调制解调系统设计是正确的。
2、各阶段信号功率谱密度分析
图-122PSK功率谱密度
3、“倒π”现象分析
在相干解调之前,需要根据已调信号来提取载波信号,如果同步载波的相位发生变化,则恢复的数字信息就会发生“0”变“1”或“1”变“0”,从而造成错误的恢复。
这种因为本地参考载波倒相。
所以在实际应用中多采用2DPSK调制解调系统,可以防止“倒π”现象的发生。
在MATLAB程序中,只用将提取的载波加上90度的相位偏移即可看到“倒π”现象。
六、参考文献
[1]张辉,曹丽娜等.现代通信原理与技术(第三版).西安电子科技大学出版社,2009.
[2]周炯槃等.通信原理(第三版).北京邮电大学出版社,2005.
[3]樊昌信.通信原理(第五版).国防工业出版社,2006.
[4]曹志刚等.现代通信原理.清华大学出版社,1992.
[5]LeonW.Couch.DigitalandAnalogCommunicationSystems(影印第5版).清华大学出版社,1999.
[6]StephenG.Wilson.DigitalModulationandCoding(影印版).电子工业出版社,1998.
七、附录
程序代码实现:
clearall
closeall
i=20;
j=5000;
t=linspace(0,20,5000);%在0到20之间等分成5000个点
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%功能实现模块一:
产生随机二进制数字基带信号%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
rem=round(rand(1,i));%调用函数产生随机序列
signal1=t;
%将离散的的随机序列转变成连续的单极性二进制码元
forn=1:
20
ifrem(n)<1;
form=j/i*(n-1)+1:
j/i*n
signal1(m)=0;
end
else
form=j/i*(n-1)+1:
j/i*n
signal1(m)=1;
end
end
end
figure
(1);
subplot(311);
plot(250*t,signal1);
title('单极性二进制数字信号');
axis([0,5000,-1,2]);
gridon;
%%%%%将上面产生的二进制数字信号进行取反,因为2psk的数字基带信号应该是双极性码
signal2=t;
fork=1:
j;
ifsignal1(k)>=1;
signal2(k)=0;
else
signal2(k)=1;
end
end;
signal3=signal1-signal2;%将两个单极性数字基带信号相减即可获得双极性二进制数字基带信号
subplot(312);
plot(250*t,signal3);
title('双极性二进制数字基带信号');
axis([0,5000,-2,2]);
gridon;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%功能实现模块二:
产生载波信号%%%%%%%%%
%%%%载波周期与码元宽度相同且均为1%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fc=10;%载波频率为10hz
s=sin(2*pi*fc*t);
subplot(313);
plot(s);
title('载波信号波形');
axis([05000-11]);
gridon;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%功能实现模块三:
2psk调制部分:
基带信号与载波相乘%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
psk=signal3.*s;
figure
(2);
subplot(211);
plot(t*250,psk);
title('已调信号波形');
axis([0,5000,-2,2]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%功能实现模块四:
调制信号通过信道传输产生加性噪声%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
noise=rand(1,j);
y1=psk+noise;%模拟加性噪声
subplot(212);
plot(y1);
axis([0,5000,-1,2]);
title('加噪后的波形');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%功能实现模块五:
相干解调实现过程%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
y2=y1.*s;%接收机收到信号输入乘法器与载波信号相乘
figure(3)
subplot(211);
plot(y2);
title('解调输出波形');grid;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%功能实现模块六:
通过巴特沃斯低通滤波器%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fp=100;fs=200;rp=3;rs=20;fn=10000;%%%%%%设计巴特沃斯低通滤波器的参数
ws=fs/(fn/2);wp=fp/(fn/2);%计算归一化角频率
[n,wn]=buttord(wp,ws,rp,rs);%计算阶数和截止频率
[b,a]=butter(n,wn);
y3=2*filter(b,a,y2);
subplot(212);plot(y3);title('经低通滤波器后的输出信号波形');gridon;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%功能实现模块七:
根据位同步信号进行抽样判决%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
y4=linspace(0,19);
y4=0;
forn=1:
20;
ify3(n*250)>0;
y4(n)=1;
else
y4(n)=-1;
end
end
figure(4)
subplot(211);stem(y4);axis([020-22]);title('抽样后得到的离散采样值');gridon;xlabel('时间/s');
y5=t;
forn=1:
20
ify4(n)<1;
form=j/i*(n-1)+1:
j/i*n
y5(m)=-1;
end
else
form=j/i*(n-1)+1:
j/i*n
y5(m)=1;
end
end
end
subplot(212);
plot(y5);
axis([05000-22]);
gridon;
title('抽样判决输出基带信号');xlabel('采样点数');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%功能实现模块八:
各阶段信号频谱分析%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fs=250;N=1024;%采样频率和数据点数
n=0:
N-1;t=n/fs;%时间序列
y=fft(signal3,N);%对信号进行快速Fourier变换
mag=abs(y);%求取Fourier变换的振幅
f=n*fs/N;
figure(5);
subplot(211)
plot(f(1:
N/2),mag(1:
N/2));
axis([0500500]);
xlabel('频率/Hz');ylabel('振幅');title('基带信号频谱(N=1024)');gridon;
fs=250;N=1024;n=0:
N-1;t=n/fs;
y=fft(s,N);%对信号进行快速Fourier变换
mag=abs(y);%求取Fourier变换的振幅
f=n*fs/N;
subplot(212)
plot(f(1:
N/2),mag(1:
N/2));
axis([0500500]);
xlabel('频率/Hz');ylabel('振幅');title('载波信号频谱(N=1024)');gridon;
fs=250;N=1024;n=0:
N-1;t=n/fs;
y=fft(psk,N);%对信号进行快速Fourier变换
mag=abs(y);%求取Fourier变换的振幅
f=n*fs/N;
figure(6)
subplot(211)
plot(f(1:
N/2),mag(1:
N/2));
axis([0500500]);
xlabel('频率/Hz');ylabel('振幅');title('2PSK信号频谱(N=1024)');gridon;
fs=250;N=1024;n=0:
N-1;t=n/fs;
y=fft(y1,N);%对信号进行快速Fourier变换
mag=abs(y);%求取Fourier变换的振幅
f=n*fs/N;
subplot(212)
plot(f(1:
N/2),mag(1:
N/2));
axis([0500500]);
xlabel('频率/Hz');ylabel('振幅');title('接收机接收到的信号频谱(N=1024)');gridon;
fs=250;N=1024;n=0:
N-1;t=n/fs;
y=fft(y2,N);%对信号进行快速Fourier变换
mag=abs(y);%求取Fourier变换的振幅
f=n*fs/N;
figure(7)
subplot(211)
plot(f(1:
N/2),mag(1:
N/2));
axis([0500500]);
xlabel('频率/Hz');ylabel('振幅');title('解调输出信号频谱(N=1024)');gridon;
fs=250;N=1024;n=0:
N-1;t=n/fs;
y=fft(y3,N);%对信号进行快速Fourier变换
mag=abs(y);%求取Fourier变换的振幅
f=n*fs/N;
subplot(212)
plot(f(1:
N/2),mag(1:
N/2));
axis([0500500]);
xlabel('频率/Hz');ylabel('振幅');title('低通输出信号频谱(N=1024)');gridon;
fs=250;N=1024;n=0:
N-1;t=n/fs;
y=fft(y5,N);%对信号进行快速Fourier变换
mag=abs(y);%求取Fourier变换的振幅
f=n*fs/N;
figure(8)
subplot(211)
plot(f(1:
N/2),mag(1:
N/2));
axis([0500500]);
xlabel('频率/Hz');ylabel('振幅');title('抽样判决输出信号频谱(N=1024)');gridon;
fs=250;N=1024;%采样频率和数据点数
n=0:
N-1;t=n/fs;%时间序列
y=fft(signal3,N);%对信号进行快速Fourier变换
mag=abs(y);%求取Fourier变换的振幅
f=n*fs/N;
subplot(212)
plot(f(1:
N/2),mag(1:
N/2));
axis([0500500]);
xlabel('频率/Hz');ylabel('振幅');title('基带信号频谱(N=1024)');gridon;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%功能实现模块九:
各阶段信号功率谱密度分析%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Fs=1000;
n=0:
1/Fs:
1;
nfft=1024;
window=hamming(100);%海明窗
noverlap=20;%数据无重叠
range='half';%频率间隔为[0Fs/2],只计算一半的频率
[Pxx1,f]=pwelch(s,window,noverlap,nfft,Fs,range);plot_Pxx1=10*log10(Pxx1);
[Pxx2,f]=pwelch(psk,window,noverlap,nfft,Fs,range);plot_Pxx2=10*log10(Pxx2);
[Pxx3,f]=pwelch(y1,window,noverlap,nfft,Fs,range);plot_Pxx3=10*log10(Pxx3);
[Pxx4,f]=pwelch(y2,window,noverlap,nfft,Fs,range);plot_Pxx4=10*log10(Pxx4);
[Pxx5,f]=pwelch(y3,window,noverlap,nfft,Fs,range);plot_Pxx5=10*log10(Pxx5);
[Pxx6,f]=pwelch(y5,window,noverlap,nfft,Fs,range);plot_Pxx6=10*log10(Pxx6);
figure(9);
subplot(321);
plot(f,plot_Pxx1);
title('载波信号功率谱密度');
subplot(322);
plot(f,plot_Pxx2);
title('2PSK信号功率谱密度');
subplot(323);
plot(f,plot_Pxx3);
title('接收机接收信号功率谱密度');
subplot(324);
plot(f,plot_Pxx4);
title('解调输出信号功率谱密度');
subplot(325);
plot(f,plot_Pxx5);
title('