基于MATLAB的二进制数字系统的调制(包括2ask,2fsk,2psk,2dpsk)

更新时间:2024-05-05 11:30:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

桂林电子科技大学课程设计(论文)报告用纸 第 1 页 共 33 页

课程设计(论文)说明书

题 目: 二进制数字调制系统

的实现 院 (系): 信息与通信学院 专 业: 通信工程

桂林电子科技大学课程设计(论文)报告用纸 第 2 页 共 33 页

摘 要

MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和SIMULINK两大部分。

论文中介绍了《通信原理》课程中数字频带传输系统的工作原理,并用MATLAB软件编写M文件实现产生数字基带信号及对其进行四种方式的调制、解调的系统仿真。 关键词:数字频带传输系统;MATLAB软件;数字调制

桂林电子科技大学课程设计(论文)报告用纸 第 3 页 共 33 页

目 录

引言 …………………………………………………………………………………………1 1 MATLAB简介……………………………………………………………………………1 2 二进制数字调制系统的原理及实现………………………………………………2

2.1 二进制振幅键控…………………………………………………………………………2 2.1.1ASK调制原理……………………………………………………………………………2 2.1.2ASK解调原理……………………………………………………………………………3 2.1.3仿真结果及分析………………………………………………………………………4 2.2 二进制移频键控…………………………………………………………………………4 2.2.1FSK调制原理……………………………………………………………………………5 2.2.2FSK解调原理……………………………………………………………………………6 2.2.3仿真结果及分析………………………………………………………………………6 2.3 二进制相移键控…………………………………………………………………………8 2.3.1PSK调制原理……………………………………………………………………………8 2.3.2PSK解调原理……………………………………………………………………………9 2.3.3仿真结果及分析………………………………………………………………………9 2.4 二进制差分相移键控…………………………………………………………………10 2.4.1DPSK调制原理…………………………………………………………………………11 2.4.2DPSK解调原理…………………………………………………………………………11 2.4.3仿真结果及分析………………………………………………………………………12

3 心得体会………………………………………………………………………………13 谢辞 ………………………………………………………………………………………15 参考文献 …………………………………………………………………………………16 附录 ………………………………………………………………………………………17

桂林电子科技大学课程设计(论文)报告用纸 第 4 页 共 33 页

引言

通信就是克服距离上的障碍,从一地向另一地传递和交换消息。消息有模拟消息(如语音、图像等)以及数字消息(如数据、文字等)之分。所有消息必须在转换成电信号(通常简称为信号)后才能在通信系统中传输。相应的信号可分为模拟信号和数字信号,模拟信号的自变量可以是连续的或离散的,但幅度是连续的,如电话机、电视摄像机输出的信号就是模拟信号。数字信号的自变量可以是连续的或离散的,但幅度是离散的,如电船传机、计算机等各种数字终端设备输出的信号就是数字信号。

通信系统可分为数字通信系统和模拟通信系统。数字通信系统是利用数字信号来传递消息的通信系统。数字通信系统较模拟通信系统而言,具有抗干扰能力强、便于加密、易于实现集成化、便于与计算机连接等优点。因而,数字通信更能适应对通信技术的越来越高的要求。近二十年来,数字通信发展十分迅速,在整个通信领域中所占比重日益增长,在大多数通信系统中已代替模拟通信,成为当代通信系统的主流。

本文利用MATLAB软件来仿真二进制数字调制系统,包括2ASK,2FSK,2PSK,2DPSK调制、解调过程。

1 MATLAB简介

美国Mathworks公司于1967年推出了矩阵实验室“Matrix Laboratory”(缩写为Matlab)这就是Matlab最早的雏形。开发的最早的目的是帮助学校的老师和学生更好的授课和学习。Matlab是一种解释性执行语言,具有强大的计算、仿真、绘图等功能。Simulink是MATLAB中的一种可视化仿真工具,也是目前在动态系统的建模和仿真等方面应用最广泛的工具之一 。确切的说,Simulink是一个用来对动态系统进行建模、仿真和分析的软件包,它支持线性和非线性系统,连续、离散时间模型,或者是两者的混合。系统还可以使多种采样频率的系统,而且系统可以是多进程的。在Simulink环境中,它为用户提供了方框图进行建模的图形接口,采用这种结构画模型图就如同用手在纸上画模型一样自如、方便,故用户只需进行简单的点击和拖动就能完成建模,并可直接进行系统的仿真,快速的得到仿真结果。但是Simulink不能脱离MATLAB而独立工作。

Matlab将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作,而且利用Matlab产品的开放式结构,可以非常容易地对Matlab的功能进行扩充,从而在不断深化对问题认识的同时,不断完善Matlab产品以提高产品自身的竞争能力。

利用M语言还开发了相应的Matlab专业工具箱函数供用户直接使用。这些工具箱应用的算法是开放的可扩展的,用户不仅可以查看其中的算法,还可以针对一些算法进行修改,甚至允许开发自己的算法扩充工具箱的功能。目前Matlab产品的工具箱有四十多个,分别涵盖了数据获取、科学计算、控制系统设计与分析、数字信号处理、数字图像处理、金融财务分析以及生物遗传工程等专业领域。

桂林电子科技大学课程设计(论文)报告用纸 第 5 页 共 33 页

2 二进制数字调制系统的原理及实现

数字通信系统, 按调制方式可以分为基带传输和带通传输。数字基带信号的功率一般处于从零开始到某一频率(如0~6M)低频段,因而在很多实际的通信(如无线信道)中就不能直接进行传输,需要借助载波调制进行频谱搬移,将数字基带信号变换成适合信道传输的数字频带信号进行传输,这种传输方式,称为数字信号的频带传输或调制传输、载波传输。所谓调制,是用基带信号对载波波形的某参量进行控制,使该参量随基带信号的规律变化从而携带消息。对数字信号进行调制可以便于信号的传输;实现信道复用;改变信号占据的带宽;改善系统的性能。

数字基带通信系统中四种基本的调制方式分别称为振幅键控(ASK,Amplitude-Shift keying)、移频键控( FSK,Frequency-Shift keying)、移相键控(PSK,Phase-Shift keying )和差分移相键(DPSK,Different Phase-Shift keying)。本次课程设计对这四种调制方式进行了仿真。 2.1 二进制振幅键控

本次设计采用的流程图如图2-1所示。

s(t)乘法器++乘法器低通滤波器抽样判决器 cos?ctn(t) cos?ct

图 2-1 2ASK调制解调框图

2.1.1 ASK调制原理

2ASK二进制振幅调制就是用二进制数字基带信号控制正弦载波的幅度,使载波振幅随着二进制数字基带信号而变化,而其频率和初始相位保持不变。信息比特是通过载波的幅度来传递的。其信号表达式为:e0(t)?S(t)?cos?ct,S(t)为单极性数字基带信号。由于调制信号只有0或1两个电平,相乘的结果相当于将载频或者关断,或者接通,它的实际意义是当调制的数字信号“1”时,传输载波;当调制的数字信号为“0”时,不传输载波。2ASK信号的时间波形e2ASK(t)随二进制基带信号S(t)通断变化。所以又被称为通断键控信号。典型波形如图2-2所示。

图 2-2 典型2ASK波形

桂林电子科技大学课程设计(论文)报告用纸 第 16 页 共 33 页

图 2-30 2DPSK调制过程仿真图

图 2-31 2DPSK相干解调过程仿真图

3 心得体会

通过在本次设计中的实践明白了自己知识上的误区,例如,在低通滤波的过程中,主要目的是滤去高频分量,滤去载波成分,所以对于低通滤波器的截止频率的设置较为关键。而在2PSK的调制与解调中所用信号为双极性的信号,因此要将在本次设计中产生的单极性信号经过码的变化形成双极性码来传输。本次设计只是按理论上的知识结构进行简单地系统构建,目的是明确数字基带传输的原理及过程,而对于具体问题,例如,实际中信道噪声一般为高斯白噪声,本次设计为简便并未采用而是用rand函数产生了随机噪声信号。此外,还有在2PSK实际传输系统中,在恢复载波的过程中会出现“倒π现象”即相位模糊现象,但是在本次设计中直接在解调时给其同频同相的载波,所以不会出现此种现象,因为不必考虑。

这是自己第一次利用Matlab编程功能实现通信原理中基础知识系统地构建,以前

桂林电子科技大学课程设计(论文)报告用纸 第 17 页 共 33 页

都是利用Matlab中Simulink模块搭建系统来实现,通过自己亲自去动手和调试我明白了实践的重要性,尤其是对程序的调试,更需要大量的时间反复上机运行,发现错误并改正,这样也就加强了自己对程序分析的能力,更深刻地明白了通信原理中的知识内容,更进一步懂得了理论联系实际的含义,同时提高了自己的思考能力,使得自己对课本里的内容理解、记忆地更加透彻,这无论是在我以后的工作中或是学习中都是非常有用的。

桂林电子科技大学课程设计(论文)报告用纸 第 18 页 共 33 页

谢 辞

首先,要感谢我的课设老师陈冬梅老师,是她给了我一次接触Matlab编程的机会,使得我的知识面扩展许多。再次,我要感谢本班同学在学习上给予我的支持与帮助。在我编程过程中,最大的问题是随机信号的产生,为此,询问我班同学,他们积极帮助我寻找网络及课本资源,终于找到用rand函数及round函数产生随机码的方法。由于我们知识平台的限制,可能还有更好的方法。另外,在我的程序调试的过程中,即便是小问题他们也热情地帮助我,不厌其烦地帮助我修改程序。

最后,我要感谢所有在我成长的道路上及完成课程设计过程中,关心、支持、帮助过我的人们,我所取得的每一点成绩都与你们的努力联系在一起,再一次向你们每个人表示由衷感谢。

桂林电子科技大学课程设计(论文)报告用纸 第 19 页 共 33 页

参考文献

[1] 李白萍,吴冬梅.通信原理与技术[M].北京:人民邮电出版社,2003(8):99~136. [2] 樊昌信,曹丽娜.通信原理[M].北京:国防工业出版社,2001(5):132~212. [3] 曹志刚,钱亚生.现代通信原理[M].北京:清华大学出版社,1992(2):80~120.

[4] 李明明,李白萍.电子信息类专业MATLAB实验教程[M].北京:北京大学出版社,2011(1): 102~208.

[5] 刘学勇.详解MATLAB/Simulink通信系统建模与仿真[M].北京:电子工业出版社,2011(1):

160~173.

桂林电子科技大学课程设计(论文)报告用纸 第 20 页 共 33 页

附 录

2ASK调制解调程序及注释 clear all close all i=10;个码元 j=5000;

t=linspace(0,5,j);%0-5之间产生5000个点行矢量,即分成5000份 fc=10;%载波频率 fm=i/5;%码元速率

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%产生基带信号 x=(rand(1,i))%rand函数产生在0-1之间随机数,共1-10个 figure(2) plot(x)

a=round(x);%随机序列,round取最接近小数的整数 figure(3)

stem(a)%火柴梗状图 st=t; for n=1:10 if a(n)<1;

for m=j/i*(n-1)+1:j/i*n st(m)=0; end else

for m=j/i*(n-1)+1:j/i*n st(m)=1; end end end figure(1); subplot(421); plot(t,st); axis([0,5,-1,2]); title('基带信号st');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%载波 s1=cos(2*pi*fc*t);

桂林电子科技大学课程设计(论文)报告用纸 第 26 页 共 33 页

end end; subplot(412); plot(t,st2);

title('基带信号反码st2'); axis([0,5,-1,2]); st3=st1-st2; subplot(413); plot(t,st3);

title('双极性基带信号st3'); axis([0,5,-2,2]);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%载波信号 s1=sin(2*pi*fc*t); subplot(414); plot(s1);

title('载波信号s1');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%调制 e_psk=st3.*s1; figure(2); subplot(511); plot(t,e_psk); title('e_2psk'); noise=rand(1,j);

psk=e_psk+noise;%加入噪声 subplot(512); plot(t,psk); title('加噪后波形');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%相干解调 psk=psk.*s1;%与载波相乘 subplot(513); plot(t,psk);

title('与载波s1相乘后波形');

[f,af] = T2F(t,psk);%%%%%%%%%%%通过低通滤波器 [t,psk] = lpf(f,af,B); subplot(514);

桂林电子科技大学课程设计(论文)报告用纸 第 27 页 共 33 页

plot(t,psk);

title('低通滤波后波形');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%抽样判决 for m=0:i-1;

if psk(1,m*500+250)<0; for j=m*500+1:(m+1)*500; psk(1,j)=0; end else

for j=m*500+1:(m+1)*500; psk(1,j)=1; end end end subplot(515); plot(t,psk); axis([0,5,-1,2]); title('抽样判决后波形')

2DPSK调制解调程序及注释 clear all close all i=10; j=5000; fc=4;%载波频率 fm=i/5;%码元速率 B=2*fm; t=linspace(0,5,j);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%产生基带信号 a=round(rand(1,i)); figure(4); stem(a); st1=t; for n=1:10 if a(n)<1;

for m=j/i*(n-1)+1:j/i*n

桂林电子科技大学课程设计(论文)报告用纸 第 28 页 共 33 页

st1(m)=0; end else

for m=j/i*(n-1)+1:j/i*n st1(m)=1; end end end figure(1); subplot(321); plot(t,st1); title('绝对码'); axis([0,5,-1,2]);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%差分变换 b=zeros(1,i);%%%%%%%%全零矩阵 b(1)=a(1); for n=2:10 if a(n)>=1; if b(n-1)>=1 b(n)=0; else b(n)=1; end else

b(n)=b(n-1); end end st1=t; for n=1:10 if b(n)<1;

for m=j/i*(n-1)+1:j/i*n st1(m)=0; end else

for m=j/i*(n-1)+1:j/i*n

桂林电子科技大学课程设计(论文)报告用纸 第 29 页 共 33 页

st1(m)=1; end end end subplot(323); plot(t,st1); title('相对码st1'); axis([0,5,-1,2]); st2=t; for k=1:j; if st1(k)>=1; st2(k)=0; else

st2(k)=1; end end; subplot(324); plot(t,st2);

title('相对码反码st2'); axis([0,5,-1,2]);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%载波信号 s1=sin(2*pi*fc*t); subplot(325); plot(s1);

title('载波信号s1'); s2=sin(2*pi*fc*t+pi); subplot(326); plot(s2);

title('载波信号s2');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%信号调制 d1=st1.*s1; d2=st2.*s2; figure(2); subplot(411); plot(t,d1);

桂林电子科技大学课程设计(论文)报告用纸 第 30 页 共 33 页

title('st1*s1'); subplot(412); plot(t,d2); title('st2*s2'); e_dpsk=d1+d2; subplot(413); plot(t,e_dpsk); title('调制后波形'); noise=rand(1,j);

dpsk=e_dpsk+noise;%%%%%%%%%%加入噪声 subplot(414); plot(t,dpsk); title('加噪声后信号');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%相干解调 dpsk=dpsk.*s1;%%%%与载波s1相乘 figure(3); subplot(411); plot(t,dpsk);

title('与载波相乘后波形');

[f,af]=T2F(t,dpsk);%%%%通过低通滤波器 [t,dpsk]=lpf(f,af,B); subplot(412); plot(t,dpsk);

title('低通滤波后波形');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%抽样判决 st=zeros(1,i);%%全零矩阵 for m=0:i-1;

if dpsk(1,m*500+250)<0; st(m+1)=0;

for j=m*500+1:(m+1)*500; dpsk(1,j)=0; end else

for j=m*500+1:(m+1)*500; st(m+1)=1;

桂林电子科技大学课程设计(论文)报告用纸 第 31 页 共 33 页

dpsk(1,j)=1; end end end subplot(413); plot(t,dpsk); axis([0,5,-1,2]); title('抽样判决后波形')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%码反变换 dt=zeros(1,i);%%全零矩阵 dt(1)=st(1); for n=2:10;

if (st(n)-st(n-1))<=0&&(st(n)-st(n-1))>-1; dt(n)=0; else dt(n)=1; end end st=t; for n=1:10 if dt(n)<1;

for m=j/i*(n-1)+1:j/i*n st(m)=0; end else

for m=j/i*(n-1)+1:j/i*n st(m)=1; end end end subplot(414); plot(t,st); axis([0,5,-1,2]); title('码反变换后波形');

用到的傅立叶T2F函数

桂林电子科技大学课程设计(论文)报告用纸 第 32 页 共 33 页

%利用FFT计算信号的频谱并与信号的真实频谱的抽样比较。 %脚本文件T2F.m定义了函数T2F,计算信号的傅立叶变换。 function [f,sf]= T2F(t,st)

%This is a function using the FFT function to calculate a signal's Fourier %Translation

%Input is the time and the signal vectors,the length of time must greater %than 2

%Output is the frequency and the signal spectrum dt = t(2)-t(1); T=t(end); df = 1/T; N = length(st);

f=-N/2*df:df:N/2*df-df; sf = fft(st); sf = T/N*fftshift(s);

用到的低通滤波器函数 function [t,st]=lpf(f,sf,B)

%This function filter an input data using a lowpass filter %Inputs: f: frequency samples % sf: input data spectrum samples

% B: lowpass's bandwidth with a rectangle lowpass %Outputs: t: time samples % st: output data's time samples df = f(2)-f(1); T = 1/df;

hf = zeros(1,length(f));%全零矩阵

bf = [-floor( B/df ): floor( B/df )] + floor( length(f)/2 ); hf(bf)=1; yf=hf.*sf; [t,st]=F2T(f,yf); st = real(st);

用到的反傅立叶函数

%脚本文件F2T.m定义了函数F2T,计算信号的反傅立叶变换。 function [t,st]=F2T(f,sf)

%This function calculate the time signal using ifft function for the input

桂林电子科技大学课程设计(论文)报告用纸 第 33 页 共 33 页

%signal's spectrum df = f(2)-f(1);

Fmx = ( f(end)-f(1) +df); dt = 1/Fmx; N = length(sf); T = dt*N; %t=-T/2:dt:T/2-dt; t = 0:dt:T-dt; sff = fftshift(sf); st = Fmx*ifft(sff);

本文来源:https://www.bwwdw.com/article/mafg.html

Top