基于MATLAB的PSK调制实现.docx
《基于MATLAB的PSK调制实现.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的PSK调制实现.docx(20页珍藏版)》请在冰豆网上搜索。
基于MATLAB的PSK调制实现
基于MATLAB的PSK调制实现
学生姓名:
何毅指导老师:
吴志敏
摘要本课程设计主要论述PSK调制的基本原理以及如何在MATALB环境中使用M文件来实现PSK的调制。
首先产生一个数字基带信号,再对这个基带信号进行调制,然后分析调制后的波形并改变采样频率观察波形的变化。
对信号加入噪声后观察其时频图,分析噪声对调制的影响。
在课程设计中,系统开发平台为WindowsXP,程序运行平台使用WindowsXP,程序设计语言采用MATLAB,通过调试运行,初步实现了设计目标。
关键词PSK调制;MATLAB;基带信号;噪声
1引言
从原理上来说,受调载波的波形可以是任意的,只要已调信号适合于信道传输就可以了,但实际上,在大多数数字通信系统中,都选择正弦信号作为载波。
这是因为正弦信号形式简单,便于产生及接收。
数字调制和模拟调制相比,其原理并没有什么区别。
不过模拟调制是对载波信号的参量进行连续调制,在接收端则对载波信号的调制参量连续地进行估值;而数字调制都是用载波信号的某些离散状态来表征所传送的信息,在接收端也只要对载波信号的离散调制参量进行检测。
数字调制信号,在二进制时有2ASK、2FSK和2PSK三种基本信号形式,本课程设计主要是实现对PSK调制的仿真。
1.1课程设计目的
(1)让我们熟悉使用MATLAB语言来解决一些简单的课程设计问题。
(2)了解基带信号PSK的调制原理。
(3)了解基带信号通过PSK调制后在信道上传输的原理。
(4)通过比较调制前和调制后的二进制信号的频谱图,掌握PSK调制的原理和特性。
(5)锻炼自己独立思考问题的能力,提高自己动手的能力,增强社会适应度。
1.2课程设计要求
熟悉MATLAB文件中M文件的使用方法,并在掌握PSK信号生成原理的基础上,编出PSK信号的调制程序。
绘制出PSK信号调制前后在时域和频域中的波形,并观察调制前后频谱有何变化以加深对PSK信号调制原理的理解。
改变采样频率绘制已调信号时频波形,进行相应分析。
对信号叠加噪声,绘制出叠加噪声后PSK信号的时频波形,分析噪声对信号的影响。
1.3课程设计步骤
(1)产生数字基带信号;
(2)对信号进行PSK调制;
(3)绘制调制前后的频谱图;
(4)改变抽样频率,观察调制的时频图的变化
(5)调制后加上高斯噪声,并改变噪声大小,观察噪声对PSK调制方法的影响。
2PSK调制原理
PSK(相位调制)的一种将距离为180度的两个相位(如0度和180度)对应0和1,是相位调制中最简单的一种。
绝对相移是利用载波的相位(指初相)直接表示数字信号的相移方式。
二进制相移键控通常用相位0和π来分别表示“0”或“1”。
2PSK已调信号的时域表达
式为
(2-1)
这里,s(t)与2ASK及2FSK时不同,为双极性数字基带信号,即
(2-2)
(2-3)
式中,g(t)是高度为1,宽度为
的门函数:
因此,在某一个码元持续时间
内观察时,有
(2-4)
当码元宽度
为载波周期
的整数倍时,2PSK信号的典型波形如图2-1所示。
图2-12PSK信号的典型波形
当码元宽度
为载波周期
的整数倍时,2PSK信号的典型波形如图2-2所示,2PS信号的模拟调制法框图(a);图(b)是产生2PSK信号的键控法框图,就模拟调制法而言,与产生2ASK信号的方法比较,只是对s(t)要求不同,因此2PSK信号可以看作是双极性基带信号作用下的DSB调幅信号。
而就键控法来说,用数字基带信号s(t)控制开关电路,选择不同相位的载波输出,这时s(t)为单极性NRZ或双极性NRZ脉冲序列信号均可
。
图2-22PSK调制框图
3PSK调制的实现
3.1PSK调制的参数设置
通信工具箱中,PSK调制可用dmod这个函数来实现
。
其表达式可表示为:
y=dmod(x,fc,fd,fs,‘method’,M,tone,)
其中x表示为数字基带信号,fc为载波频率,fd为基带采样频率,即x的采样频率,fs为y的采样频率,所有频率的单位都为Hz。
载波频率fs应该为基带频率fd的整数倍,fs应该远大于fc,最好fs、fc和fd的取值满足fs>fc>fd。
method为调制方式,有ask,fsk,psk等等,当然本设计为psk调制。
M代表进制,在设计中x的每个值必须们于区间[0,M-1]。
在本设计中,取M=2,即2PSK。
在本设计中,我们取
fc=20;
fd=10;
fs=500;
x=[11010010];
用stem函数绘制出基带信号的波形图
stem(x)
其数字基带信号波形如图3-1所示:
图3-1数字基带信号波形图
通过图形,我们可以观察到,基带信号为一些离散的数字信号。
3.2PSK调制实现
绘制出基带信号,我们对基带信号进行调制。
程序如下
x=[11010010]
tone=8;
fc=20;
fd=10;
fs=500;
y=dmod(x,fc,fd,fs,‘psk’,2,tone);%PSK调制
ploy(y)%绘制调制后的波形图
数字基带信号经PSK调制后,其波形图形3-2所示.
图3-2调制信号的时域波形图
通过图形,我们可以发现在图中150s、300s和350s的地方出现了反相现象。
为什么会出现这种情况类?
因为二进制相移键控通常用相位0和π来分别表示“0”或“1”,我们知道,2PSK信号是用载波的不同相位直接去表示相应的数字信号而得出的,在这种绝对移相的方式中,由于发送端是以某一个相位作为基准的,因而在接收系统也必须有这样一个固定基准相位作参考。
如果这个参考相位发生变化,则恢复的数字信息就会与发送的数字信息完全相反,从而造成错误的恢复。
这种现象常称为2PSK的“倒π”现象或“反向工作”现象。
在实际中,为了克服这种倒π现像,常常会采用一种所谓的相对(差分)移相(2DPSK)方式。
3.3PSK调制频谱分析
将数字基带信号调制完后,现在在数字信号无干扰的情况下,我们对调制后进行频谱分析
。
程序为:
a=fft(x,1024);%对x进行傅利叶变换
f=(0:
length(a)-1)*fs/length(a)-fs/2;
figure
plot(f,abs(a));%绘制PSK调制前的频谱图
b=fft(y,1024);
f=(0:
length(b)-1)*fs/length(b)-fs/2;
figure
plot(f,abs(b));%绘制PSK调制后的频谱图
其数字基带信号调制前和调制后的频谱图如图3-3和3-4所示:
图3-3数字基带信号的频谱图
图3-4 已调信号的频谱图
2PSK信号是一种双边带信号,我们设g(t)的频谱为
则2PSK信号的双边功率谱表达式为:
(3-2)
若双性极基带波形信号的1与0出现的概率相等(即P=1/2),则式3-2变为
(3-3)
由上分析可知,2PSK信号的功率谱密度由离散谱与连续谱两部分组成,但是当双极性基带信号以相等的的概率(P=1/2)出现是,将不存在离散谱部分。
在这里指出一点,对于2PSK调制,式(2-1)并不表示原数字序列的已调制信号波形,而是表示绝对码变换成相对码后的数字序列的已调信号波形。
因此,二相相对移相信号的频谱与二相绝对移相信号的频谱与二相绝对移相信号的频谱是完全相同的。
3.4改变采样频率
现在我们改变采样频率,观察调制波时域和频域的波形图,将采样频率改为100Hz,
即fs=100Hz。
现对数字基带信号进行调制。
改变采样频率为100Hz的时域和频域波形图如图3-5和3-6所示。
图3-5fs=100Hz时已调信号的时域波形图
图3-6fs=100Hz时已调信号的频谱图
我们通过观察改变前与改变后的时域和频域的波形图,可以发现当我们将采样频率减小以后,调制出来的波形发生了失真,得到的图形不是原来完整的正弦波形了,因为在调制过程中,如果采样频率过小,将不能采样到正确的信号。
这样使得调制出来的波形失真,得不到我们所需要的结果。
现在我们将采样频率改大,再来观察调制后的时频图。
将采样频率改为1000Hz,即fs=1000Hz,其时频图如图3-7和3-8所示。
图3-7fs=1000Hz时已调信号时域波形图
图3-8fs=1000Hz时已调信号的频谱图
可以发现,当fs=1000Hz时,波形与最初调制出来的波形是差不多的,但是fs=1000Hz比fs=500Hz时的波形更加接近完整的正弦波。
所以采样频率越大,调制出来的波形就越接近初始信号的波形。
3.5加入高斯噪声
现在我们在数字信号中加入噪声,再对其进行调制,观察其波形在时域和频域的变化。
噪声有很多种,为了设计的方便以及图形的处理,在本设计中我们加入的噪声为高斯白噪声。
因为白噪声是理想的宽带过程,其功率谱密度在整个频域内都是均匀分布的。
在加入高斯噪声情况下,进行PSK调制:
y=dmod(x,fc,fd,fs,‘psk’,2,tone);
ynoisy=y+awgn(y,20,0);%加入高斯噪声
figure
plot(ynoisy);%数字基带信号PSK加入噪声的波形图
f=(0:
length(ynoisy)-1)*fs/length(ynoisy)-fs/2;
plot(f,abs(fft(ynoisy)));
加入噪声后PSK调制的时域波形图和频谱图如3-9和3-10所示
图3-9加入噪声后已调信号时域波形图
图3-10加入噪声后已调信号的频谱图
通过加入高斯白噪声,我们发现调制信号的波形发生了变化。
加入噪声后,调制的波形发生了失真,但是我们可以发现,PSK调制在加入噪声以后,其波形失真的并不是非常的严重,我们还是可以看得出来,它仍然与正弦信号信号非常接近,其频谱图也与初始信号的频谱图非常相近。
我们还可以改变噪声的大小来观察噪声对PSK调制方式的影响。
我们把信噪比改小,改为1db,观察调制后的图形,如图3-11和3-12所示:
图3-11信噪比为1db时已调信号时域波形图
图3-12信噪比为1db时已调信号频谱图
通过观察,我们可以明显的看到,当信噪比减小,即加大噪声时,调制的出来的波形发生了很大的失真,基本上已经不在是正弦信号了。
所以加入的噪声越大时,会使得波形失真越严重。
现在我们把信噪比改成20db时,我们观察其图形,如图3-13和3-14所示
图3-13信噪比为20db时已调信号时域图
图3-14信噪比为20db时已调信号频谱图
可以发现,当我们把信噪比增大的时候,调制的图形与原始信号的图形更接近,也就是说,信噪比越大,PSK调制方式的抗噪声性能就越好。
而我们通过PSK,FSK,ASK等方式的调制,可以发现PSK系统的抗噪声性能是最好的。
所以我们可得知,PSK系统的抗噪声性能比较强,正因为如此,PSK系统在得以在很多领域中得以应用。
4出现的问题及解决方法
此次课程设计,在其中遇到了很多困难。
这是第一次做课程设计,一开始是一头雾水,不知道从何入手。
但是经过指导老师的的精心指导、同学的帮助以及自己的努力,把一个个问题慢慢的解决了。
主要问题如下:
1、开始没完全搞懂自己所设计课题的原理,以及对自己所需要的软件不了解,很多在设计中所需要的函数都不太清楚,使得设计难度加大了。
2、在输入基带信号后,要绘制基带信号的波形图,因为PSK的基带信号为数字信号,所以要绘制出其图形要用的函数是stem,而不是plot。
3、对基带信号的采样频率不能过低,过低的采样频率将导致波形失真。
4、在绘制调制信号的频谱图时因为不会进行傅立叶变换,所以迟迟都不能绘制出频谱图。
5、要在PSK调制信号加入噪声是一件比较麻烦的事情。
因为开始不知道如何在在调制信号上加入噪声,不会使用函数awgn,后来在MATLAB中使用了HELP命令,看了它的解释才懂了如何去添加噪声。
其次要绘制出加入噪声后的时域和频域波形图也弄了好久。
6、最后,在设计过程中,使用M文件编程是一件很烦琐的事情,一不小心哪个符号弄错了,就会使得整个程序都会出现错误。
而且使用的MATLAB是全英文版的,如果对于专业英语不太熟悉,在出现错误以后,不能看懂所出现的错误是什么意思,这也使得在设计过程中难度加大。
5结束语
在数字通信的频率调制的、振幅调制、相信调制三种调制方式中,PSK在中,高速率数据传输中得到了广泛的应用。
数字信号一般通过对载波进行移相的方法转换为模拟信号。
所以说PSK是一种比较优越的调制方式,在现代互联网中二进制数字信号的使用非常广泛。
在这次课程设计中,我们付出了很大努力,终于在指导老师的帮助下基本完成,通过这次课程设计,使我对通信原理和数字信号处理的知识在原有的的基础上得到了很大的巩固和提高,同时开阔了我的知识范围,增强了自己动手的能力以及独立思考问题的本能,为以后适应社会发展做了充分的铺垫。
在设计的过程中,在使用MATLAB对PSK调制的时候,真正的认识到了MTALAB这个软件的强大性,它竟然包含着如此多的功能与函数。
在MATLAB里,HELP命令是一个起着非常重要的命令,它可以帮你查找里面包含的任何函数的功能以及其使用方法,并都举例了,给我们在设计中带来了很大的帮助。
在此次课程设计中,虽然遇到了很多的困难,但是在老师的细心指导和自己不断的努力下调试下,基本上完成了设计要求,达到了预期的效果,在这里感谢各位老师的不断帮助,使我在规定的期限内完成了此次的设计任务,让我们懂得了什么是课程设计,提高了我们的设计水平。
参考文献
[1]樊昌信,张甫翊,徐炳祥,吴成柯.通信原理.第5版.国防工业出版社,2007
[2]郭仕剑,王宝顺,贺志国,杨可心.MATLAB7.X数字信号处理.人民邮电出版,2006
[3]孙祥,徐流美,吴清.MATLAB7.0基础教程.清华大学出版社,2006
[4]黄文梅,熊桂林,杨勇.信号分析与处理-MATLAB语言及应用.国防科技大学出版社,2000
[5]韩利竹,王华.MATLAB电子仿真与应用.第2版.国防工业出版社,2003
附录1:
PSK调制源程序清单
%程序名称:
psk.m
%程序功能:
调用函数dmod实现PSK的调制
%程序作者:
何毅
%最后修改时间:
2008-01-18
%程序代码
x=[11100010];
stem(x);%绘制基带信号的波形图
tone=8; %PSK相邻符号的频率间隔
fc=20;fd=10;fs=500;
y=dmod(x,fc,fd,fs,'psk',2,tone);%PSK调制
figure
plot(y) %绘制已调信号的波形图
a=fft(x,1024); %对基带信号进行傅立叶变换
f=(0:
length(a)-1)*fs/length(a)-fs/2; %将横坐标转化为时间轴
figure
plot(f,abs(a)); %基带信号的频谱图
b=fft(y,1024); %对已调信号进行傅立叶变换
f=(0:
length(b)-1)*fs/length(b)-fs/2;
figure
plot(f,abs(b));%已调信号的频谱图
y=dmod(x,fc,fd,fs,'psk',2,tone);
ynoisy=y+awgn(y,10,0);%加入高斯白噪声
figure
plot(ynoisy); %绘制加入噪声后的波形图
f=(0:
length(ynoisy)-1)*fs/length(ynoisy)-fs/2;
figure
plot(f,abs(fft(ynoisy))); %l加入噪声后的频谱图
附录2:
改变采频率为fs=100时的调制源程序清单
%程序名称:
psk.m
%程序功能:
调用函数dmod实现PSK的调制
%程序作者:
何毅
%最后修改时间:
2008-01-18
%程序代码
x=[11100010];
stem(x);%绘制基带信号的波形图
tone=8; %PSK相邻符号的频率间隔
fc=20;fd=10;fs=100;
y=dmod(x,fc,fd,fs,'psk',2,tone);%PSK调制
figure
plot(y) %绘制已调信号的波形图
a=fft(x,1024); %对基带信号进行傅立叶变换
f=(0:
length(a)-1)*fs/length(a)-fs/2; %将横坐标转化为时间轴
figure
plot(f,abs(a)); %基带信号的频谱图
b=fft(y,1024); %对已调信号进行傅立叶变换
f=(0:
length(b)-1)*fs/length(b)-fs/2;
figure
plot(f,abs(b));%已调信号的频谱图
附录3:
改变采频率为fs=1000时源程序清单
%程序名称:
psk.m
%程序功能:
调用函数dmod实现PSK的调制
%程序作者:
何毅
%最后修改时间:
2008-01-18
%程序代码
x=[11100010];
stem(x);%绘制基带信号的波形图
tone=8; %PSK相邻符号的频率间隔
fc=20;fd=10;fs=1000;
y=dmod(x,fc,fd,fs,'psk',2,tone);%PSK调制
figure
plot(y) %绘制已调信号的波形图
a=fft(x,1024); %对基带信号进行傅立叶变换
f=(0:
length(a)-1)*fs/length(a)-fs/2; %将横坐标转化为时间轴
figure
plot(f,abs(a)); %基带信号的频谱图
b=fft(y,1024); %对已调信号进行傅立叶变换
f=(0:
length(b)-1)*fs/length(b)-fs/2;
figure
plot(f,abs(b));%已调信号的频谱图
附录4:
改变信噪比为1db时源程序清单
%程序名称:
psk.m
%程序功能:
调用函数dmod实现PSK的调制
%程序作者:
何毅
%最后修改时间:
2008-01-18
%程序代码
x=[11100010];
stem(x);%绘制基带信号的波形图
tone=8; %PSK相邻符号的频率间隔
fc=20;fd=10;fs=500;
y=dmod(x,fc,fd,fs,'psk',2,tone);%PSK调制
figure
plot(y) %绘制调制后的波形图
a=fft(x,1024); %对基带信号进行傅立叶变换
f=(0:
length(a)-1)*fs/length(a)-fs/2; %将横坐标转化为时间轴
figure
plot(f,abs(a)); %基带信号的频谱图
b=fft(y,1024); %对已调信号进行傅立叶变换
f=(0:
length(b)-1)*fs/length(b)-fs/2;
figure
plot(f,abs(b));%已调信号的频谱图
y=dmod(x,fc,fd,fs,'psk',2,tone);
ynoisy=y+awgn(y,1,0);%加入高斯白噪声
figure
plot(ynoisy); %绘制加入噪声后的波形图
f=(0:
length(ynoisy)-1)*fs/length(ynoisy)-fs/2;
figure
plot(f,abs(fft(ynoisy))); %加入噪声后的频谱图
附录5:
改变信噪比为20db时源程序清单
%程序名称:
psk.m
%程序功能:
调用函数dmod实现PSK的调制
%程序作者:
何毅
%最后修改时间:
2008-01-18
%程序代码
x=[11100010];
stem(x);%绘制基带信号的波形图
tone=8; %PSK相邻符号的频率间隔
fc=20;fd=10;fs=500;
y=dmod(x,fc,fd,fs,'psk',2,tone);%PSK调制
figure
plot(y) %绘制已调信号的波形图
a=fft(x,1024); %对基带信号进行傅立叶变换
f=(0:
length(a)-1)*fs/length(a)-fs/2; %将横坐标转化为时间轴
figure
plot(f,abs(a)); %基带信号的频谱图
b=fft(y,1024); %对已调信号进行傅立叶变换
f=(0:
length(b)-1)*fs/length(b)-fs/2;
figure
plot(f,abs(b));%已调信号的频谱图
y=dmod(x,fc,fd,fs,'psk',2,tone);
ynoisy=y+awgn(y,20,0);%加入高斯白噪声
figure
plot(ynoisy); %绘制加入噪声后的波形图
f=(0:
length(ynoisy)-1)*fs/length(ynoisy)-fs/2;
figure
plot(f,abs(fft(ynoisy))); %加入噪声后的频谱图