您的当前位置:首页正文

利用MATLAB实现信号的幅度调制与解调教材

2024-07-22 来源:易榕旅网
利用MATLAB实现信号的幅度调制与解调

郑州轻工业学院 课 程 设 计 任 务 书

题目 利用MATLAB实现信号的幅度调制与解调 专业、班级 学号 姓名 主要内容、基本要求、主要参考资料等:

主要内容:

利用MATLAB对正弦信号f(t)sin(40t)进行双边带幅度调制,载波信号频率为100Hz,首先在MATLAB中显示调制信号的波形和频谱,已调信号的波形和频谱,比较信号调制前后的变化。然后对已调信号解调,并比较解调后的信号与原信号的区别。 基本要求:

1、掌握利用MATLAB实现信号幅度调制与解调的方法。 2、利用MATLAB实现对常用连续时间信号的可视化表示。

3、验证信号调制的基本概念、基本理论,掌握信号与系统的分析方法。 4、加深对信号解调的理解。 主要参考资料:

1、陈后金. 信号与系统[M].北京:高等教育出版社,2007.07.

2、张洁.双边带幅度调制及其 MATLAB 仿真[J].科技经济市场,2006.9

完 成 期 限: 2013.6.24—2013.6.28 指导教师签名: 课程负责人签名:

2013年 6月 21日

利用MATLAB实现信号的幅度调制与解调

利用MATLAB实现信号的幅度调制与解调

摘要

现代通信系统要求通信距离远、信道容量大、传输质量好。在信号处理里面经常要用到调制与解调,而信号幅度调制与解调是最基本,也是经常用到的。用AM调制与解调可以实现很多功能,制造出很多的电子产品。本设计主要研究内容是利用MATLAB实现对正弦信f(t)sin(40t)进行双边带幅度调制,载波信号频率为100Hz,在MATLAB中显示调制信号的波形和频谱,已调信号的波形和频谱,比较信号调制前后的变化。并对已调信号解调,比较了解调后的信号与原信号的区别。信号幅度调制与解调及MATLAB中信号表示的基本方法及绘图函数的调用,实现了对连续时间信号的可视化表示。本文采用MATLAB对信号的幅度进行调制和解调。

关键词 幅度、 调制、 解调、 MAT LAB

I

利用MATLAB实现信号的幅度调制与解调

目录

摘要....................................................................................................................I 1.概述.................................................................................................................1 1.1 matlab基本功能...,,...............................................................................1 1.2 matlab应用............................................................................................1 2.利用MATLAB实现信号的时域和频域.......................................................3 2.1 matlab实现调制信号的时域波形.........................................................3 2.2 matlab实现调制信号的频谱波形.........................................................4 2.3 matlab实现载波的时域波形.................................................................5 2.4 matlab实现载波的频域波形.................................................................6 3 . 利用MATLAB实现信号的调制和.................................................................8 3.1 信号的调制............................................................................................8 3.2 幅度调制原理......................................................................................8 3.2.1信号的幅度调制原理....................................................................8 3.2.2 双边带幅度调制...........................................................................9 3.3 matlab实现双边带幅度调制................................................................10 3.4 matlab实现已调信号的频谱图............................................................11 3.5 幅度调制前后的比较...........................................................................12 4. 已调信号的解调.........................................................................................13 4.1 AM信号的解调原理.............................................................................13 4.1.1 AM信号的相干解调..................................................................13 4.1.2 AM信号的非相干解调..............................................................14 4.2 matlab实现已调信号的解调................................................................14 4.3 matlab实现解调后的信号的频谱........................................................16 4.4 信号解调前后的比较...........................................................................18 5. 设计总结.......................................................................................................19 6. 参考文献.......................................................................................................20

利用MATLAB实现信号的幅度调制与解调

1.绪论

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

1.1matlab基本功能

MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。 在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。

1.2 matlab应用

MATLAB 产品族可以用来进行以下各种工作: (1)数值分析;

(2)数值和符号计算; (3)工程与科学绘图; (4)控制系统的设计与仿真;

1

利用MATLAB实现信号的幅度调制与解调

(5)数字图像处理技术; (6)数字信号处理技术; (7)通讯系统设计与仿真; (8)财务与金融工程。

MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。

2

利用MATLAB实现信号的幅度调制与解调

2 利用matlab实现信号的时域和频域

调制信号是原始信息变换而来的低频信号。调制本身是一个电信号变换的过程。调制信号去改变载波信号的某些特征值(如振幅、频率、相位等),导致载波信号的这个特征值发生有规律的变化,这个规律是调制信号本身的规律所决定的。

2.1 matlab实现调制信号的时域波形

本设计的调制信号为正弦波信号f(t)sin(40t),通过matlab仿真显示出其波形图

如图2-1所示

调制信号10.80.60.40.20-0.2-0.4-0.6-0.8-100.020.040.060.080.1时间/s0.120.140.160.180.2 程序设计: Fm=20; Fs=1000; N=1000; k=0:N-1; t=k/Fs; y1=sin(40*pi*t); axis([0,0.2,-1,1]);

图2-1调制信号时域波形

plot(t(1:200),y1(1:200))

3

利用MATLAB实现信号的幅度调制与解调

title('调制信号') xlabel('时间/s') grid on

2.2 matlab实现调制信号的频谱波形

连续傅里叶变换是一个特殊的把一组函数映射为另一组函数的线性算子。傅里叶变换就是把一个函数分解为组成该函数的连续频率谱。在数学分析中,信号f(t)的傅里叶变换被认为是处在频域中的信号。

离散傅里叶变换的一种快速算法,简称FFT。为了节省电脑的计算时间,实现数字信号的实时处理,减少离散傅里叶变换(DFT)的计算量。

快速傅里叶变换(FFT),并不是一种新的傅立叶分析理论,而是减少DFT计算量的算法设计思想和DFT各种快速算,为计算机处理数据节省了时间。对已知信号进行快速傅里叶变换其抽样频率为100hz,matlab仿真频谱如图2-2

调制信号的频谱600500400F(w)3002001000-50-40-30-20-100频率/hz1020304050

图2-2 调制信号的频谱图

程序设计: Fm=20; fs=100; N=1000; k=0:N-1;

4

利用MATLAB实现信号的幅度调制与解调

t=k/fs;

y1=sin(40*pi*t); yk=fft(y1,N); yw=abs(fftshift(yk)); fw=[-499:500]/N*fs plot(fw,yw)

title('调制信号的频谱') xlabel('频率/hz') ylabel('F(w)') grid on

2.3 matlab实现载波的时域波形

载波是被调制以传输信号的波形,一般为正弦波。一般要求正弦载波的频率远高于调制信号的带宽,否则会发生混叠,使传输信号失真。

我们一般需要发送的数据的频率是低频的,如果按照本身的数据的频率来传输,不利于接收和同步。使用载波传输,我们可以将数据的信号加载到载波的信号上,接收方按照载波的频率来接收数据信号,有意义的信号波的波幅与无意义的信号的波幅是不同的,将这些信号提取出来就是我们需要的数据信号。

本实验的载波频率为100hz,起波形图如图1-3所示

图2-3 载波时域波形图

5

利用MATLAB实现信号的幅度调制与解调

设计程序:

Fm=100;

N=1000; k=0:N-1; t=k/fs;

y2=cos(200*pi*t); axis([0,0.2,-1,1]); plot(t(1:200),y2(1:200)) title('载波信号') xlabel('时间/s') grid on

2.4 matlab实现载波的频域波形

载波信号的频谱500450400350300F(w)250200150100500-500-400-300-200-1000100频率/hz200300400500

设计程序:

fs=1000; N=1000;

6

利用MATLAB实现信号的幅度调制与解调

k=0:N-1; t=k/fs;

y2=cos(200*pi*t); yk=fft(y2,N); yw=abs(fftshift(yk)); fw=[-499:500]/N*fs plot(fw,yw)

title('载波信号的频谱') xlabel('频率/hz') ylabel('F(w)') grid on

7

利用MATLAB实现信号的幅度调制与解调

3 利用MATLAB对信号调制和仿真

本章对信号的幅度调制原理作详细的解释,并通过matlab对已调信号进行仿真,并显示出已调信号的时域与频域的波形。

3.1 信号的调制

调制,就是把信号转化成适合在信道中传输的形式的一种。广义的调制分为基带调制和带通调制(也称载波调制)。载波调制,就是用调制信号区控制载波参数的过程,即使载波的某一个或几个参数按照调制信号的亏率而变化。调制信号时指来自信源的消息信号。未受调制的周期性振荡信号称为载波,载波调制后称为已调信号,它含有调制信号的全部特征。

3.2 幅度调制原理

3.2.1信号的幅度调制原理

幅度调制是用调制信号去控制高频载波的幅度,使其按调制信号的规律变化的过程。幅度调制器的一般模型如图3-1所示,载波信号c(t)Acos(wct0),其中A0为外加信号。

图3-1

Sm(t)[A0m(t)]coswct (3.1)

SAM()A0[(C)(C)](1/2)[M(C)M(C)] (3.2)

由频谱可以看出,AM信号的频谱由载波分量,上边带,下边带三部分组成。上边带的频谱结构与原调制信号的频谱结构相同,下边带是上边带的镜像。因此AM信号时带有载波分量的双边带调制信号,它的带宽是基带信号带宽fH的2倍。

8

利用MATLAB实现信号的幅度调制与解调

3.2.2 双边带幅度调制

在AM调制模型中将直流A0去掉,即可得到一种高调制效率的调制方式----抑制载波双边带信号(DSB—SC),简称双边带信号DSB(如图3-2)。其时域表达式为:

图3-2 DSB信号的调制

其时域表达式为:

SDSB(t)m(t)coswct (3.3)

1SAM(w)[M(wwc)M(wwc)]2其频域相应为: (3.4)

与先前幅度调节相比,只是少了直流分量,相应的少了A0[(wwc)(wwc)],也就是在M(w)的wc处少了冲击响应,与AM信号比较,因为不存在载波分量,DSB信号的调制效率为100%。DSB信号解调时需要采用相干解调,也称同步检波。

9

利用MATLAB实现信号的幅度调制与解调

3.3 matlab实现双边带幅度调制

本节主要通过matlab软件把调制信号f(t)sin(40t)调制到载波信号

fs(t)cos(200t)上,使载波的幅度按照调制信号的规律进行变化。其波形如图3-3所

已调信号10.80.60.40.2幅度0-0.2-0.4-0.6-0.8-100.020.040.060.080.1时间/s0.120.140.160.180.2

程序设计:

图3-3 已调信号时域波形

Fm=20; fc=100; fs=1000; N=1000; k=0:N-1; t=k/fs;

y1=sin(40*pi*t); y=modulate(y1,fc,fs,'am'); axis([0,0.2,-1,1]); plot(t(1:200),y(1:200)) title('已调信号')

10

利用MATLAB实现信号的幅度调制与解调

xlabel('时间/s') ylabel('幅度') grid on

3.4 matlab实现已调信号的频谱图

与调制信号实现频谱图的原理一样,用matlab对已调信号进行快速傅里叶变换抽样

频率为200hz,可以得到已调信号的频谱图,如图3-4所示

已调信号的频谱300250200F(w)150100500-500-400-300-200-1000100频率/hz200300400500

图3-4 已调信号频谱图

程序设计: Fm=20; fc=100; fs=1000; N=1000; k=0:N-1; t=k/fs;

y1=sin(40*pi*t);

11

利用MATLAB实现信号的幅度调制与解调

y=modulate(y1,fc,fs,'am'); yk=fft(y,N); yw=abs(fftshift(yk)); fw=[-499:500]/N*fs plot(fw,yw)

title('已调信号的频谱') xlabel('频率/hz') ylabel('F(w)') grid on

3.5 双边带幅度调制前后的比较

双边带幅度调制是用调制信号去控制高频载波的幅度,使其按调制信号的规律变化的过程。调制后的信号是把调制信号加载到载波上,使载波上呈现调制信号的包络线。对于已调信号的频谱,实质就是把调制信号由低频段搬迁到高频段进行通信。其波形比较如图3-5所示

调制信号10.50-0.5-100.050.10.15时间/s已调信号0.2600400调制信号的频谱F(w)2000-5000频率/hz已调信号的频谱50010.5300200幅度0-0.5-100.050.1时间/s0.150.2F(w)1000-5000频率/hz500

图3-5 调制前后时域与频域波形

12

利用MATLAB实现信号的幅度调制与解调

4. 已调信号的解调

4.1 AM信号的解调原理及方式

解调是调制的逆过程,解调是将位于载波的信号频谱再搬回来,并且不失真的恢复

出原始基带信号。对于幅度调制来说,解调是从它的幅度变化提取调制信号的过程。解调的方式有两种:相干解调与非相干解调。相干解调适用于各种线性调制系统,非相干解调一般适用幅度调制(AM)信号。

4.1.1 AM信号的相干解调

所谓相干解调是为了从接受的已调信号中,不失真地恢复原调制信号,要求本地载波和接收信号的载波保证同频同相。相干载波的一般模型如下图4-1所示:

图 4-1 相干解调模型

SAM(t)coswct[A0m(t)]cos2wct (4.1) 11[A0m(t)][A0m(t)]cos2wct22 由上式可知,只要用一个低通滤波器,就可以将第1项与第2项分离,无失真的恢复

出原始的调制信号

1M0(T)[A0M(T)] (4.2)

2 相干解调的关键是必须产生一个与调制器同频同相位的载波。如果同频同相位的条

件得不到满足,则会破坏原始信号的恢复。

13

利用MATLAB实现信号的幅度调制与解调

4.1.2 AM信号的非相干解调

所谓非相干解调是在接收端解调信号时不需要本地载波,而是利用已调信号中的包络信号来恢复原基带信号[7]。因此,非相干解调一般只适用幅度调制(AM)系统。忧郁包络解调器电路简单,效率高,所以几乎所有的幅度调制(AM)接收机都采用这种电路。如下为串联型包络检波器的具体电路。其利用二极管的单向导电特性,将调幅高频信号去掉一半,再利用电容器的充放电特性和低通滤波器滤去高频分量,就可以得到与包络线形状相同的音频信号。

图4-2

当RC满足条件1wcRC1wh时,包络检波器的输出基本与输入信号的包络变化呈线性关系,即

(4.3) m(A0m(t)ot)其中,A0m(t)。隔去直流后就得到原信号m(t) max4.2 matlab实现已调信号的解调

解调过程是运用相干解调,对已调信号乘上载波,再通过低通滤波器滤波就可以无失真的恢复出原始的调制信号。此滤波器的设置参数为:通带损耗Rp为0.5,阻带衰减不小于60分贝,通带截止频率为Wp为0.03,阻带起始频率为0.1。其解调后的仿真波形如图4-3所示。

14

利用MATLAB实现信号的幅度调制与解调

解调后的调制信号0.30.20.10幅度-0.1-0.2-0.3-0.4-2-1.9-1.8-1.7-1.6

图4-3 解调后的调制信号时域图

程序设计: t =-2:0.001:2 y1=sin(t*40*pi)

xlim([-0.1,0.1]) fm=20 fs=1000 N=1000 xlim([-8,8])

y3=cos(pi*200*t) xlim([-0.1,0.1])

y4=sin(t*40*pi).*cos(pi*200*t) xlim([-0.1,0.1]) ylim([-2,2]) xlim([-150,150]) y6=y4.*y3

15

-1.5-1.4时间/s-1.3-1.2-1.1-1

利用MATLAB实现信号的幅度调制与解调

grid on

Rp=0.5 Rs=60 Wp=0.03 Ws=0.1

[n,Wn]=buttord(Wp,Ws,Rp,Rs,'s') [b,a]=butter(n,Wn,'low') X1=filter(b,a,y6) plot(t,X1)

title('解调后的调制信号') xlabel('时间/s') ylabel('幅度') grid on xlim([-2,-1])

4.3 MATLAB实现解调后的调制信号的频谱

解调后的调制信号的频谱14012010080F(w)6040200-500-400-300-200-1000100频率/hz200300400500

图4-4 解调后的信号频谱 程序设计: t =-2:0.001:2

16

利用MATLAB实现信号的幅度调制与解调

y1=sin(t*40*pi)

xlim([-0.1,0.1]) fm=20 fs=1000 N=1000 xlim([-8,8])

y3=cos(pi*200*t) xlim([-0.1,0.1])

y4=sin(t*40*pi).*cos(pi*200*t) xlim([-0.1,0.1]) ylim([-2,2]) xlim([-150,150]) y6=y4.*y3 grid on

Rp=0.5 ´ Rs=60 Wp=0.03 Ws=0.1

[n,Wn]=buttord(Wp,Ws,Rp,Rs,'s') [b,a]=butter(n,Wn,'low') X1=filter(b,a,y6) yk=fft(X1,N); yw=abs(fftshift(yk)); fw=[-499:500]/N*fs plot(fw,yw)

title('解调后的调制信号频谱') xlabel('频率/hz') ylabel('F(w)') grid on

7 1

利用MATLAB实现信号的幅度调制与解调

4.4 信号解调前后的比较

本设计是采用双边带调幅来实现的信号调制,用相干波解调后,没有直流分量,

幅度减为原来的一半,频率不变化。由频谱图可知解调是把已调信号的频谱搬回到原来的位置,从而恢复出原始信号。恢复信号不失真的关键是低通滤波器的设置,尽可能的减小失真度。

调制信号10.80.60.40.20-0.2-0.4-0.6-0.8-100.020.040.060.080.1时间/s0.120.140.160.180.2

0.3

解调后的调制信号0.20.10幅度-0.1-0.2-0.3-0.4-2-1.9-1.8-1.7-1.6-1.5-1.4时间/s-1.3-1.2-1.1-1图4-5 调制信号与解调后信号的对比

18

利用MATLAB实现信号的幅度调制与解调

5、设计总结

通过本次Matlab的课程设计,我对Matlab软件有了更深入的了解。在设计过程中,理解信号的调制与解调过程的理解还是很有难度的,看似只有几个原理图,理解起来却不是那么的容易,就说信号的调制这一块吧,涉及到傅里叶变换,即信号与系统的相关知识 。为了做好这次的课程设计,查阅了大量资料,并在各个网站上搜索与此有关的知识,这个过程使我受益匪浅,了解到了自主探究学习的很多方法。我觉得这个是最重要的,对于今后任何一个领域或者某一方面的学习研究中都是大有益处的。

对于这次课程设计,其中难度最大的莫过于对调制与解调这部分原理的理解,在MATLAB软件的使用上面,自己的确存在很大的缺陷,对于一些语言还只是停留在理解上面,要自己熟练运用的确还有一段距离,在编程过程中,也努力过,努力想去继承前人的智慧,但无奈自己理解参透能力有限。所以最后在程序这方面还是有待加强。 Matlab软件是一个非常实用的软件,它不但可以进行复杂的数值运算,还能够对图像进行各种分析处理,因此,在今后的学习工作中,我还会继续对Matlab进行更加深入的学习和应用,用它来解决今后将要面临的各种繁琐的问题。

19

利用MATLAB实现信号的幅度调制与解调

6、参考文献

[1]、陈后金. 信号与系统[M].北京:高等教育出版社,2007.07.

[2]、张洁.双边带幅度调制及其 MATLAB 仿真[J].科技经济市场,2006.9

[3]、陈洁,焦振宇. 基于MATLAB7.0 的信号调制与解调分析[J]. 山西电子技术. 2006(5): [4]、傅祖芸. 信息论基础理论与应用[M]. 北京:电子工业出版社,2001. [5] 樊昌信.《通信原理》 北京:国防工业出版社,2001.5

[6] 刘泉,阙大顺 《数字信号处理原理与实现》北京:电子工业出版社,2009.6 [7]郑阿奇、曹戈、赵阳 《MATLAB实用教程》 北京:电子工业出版社 2008.5 [8]周开利、邓春晖《MATLAB基础及应用教程》北京: 北京大学出版社 2007.4 [9]张智星 《MATLAB程序设计与应用》北京:清华大学出版社,2002

20

因篇幅问题不能全部显示,请点此查看更多更全内容