附录A调幅和调频信号的MATLAB仿真MATLAB是由美国MathWorks公司推出的软件产品。它是一种功能强大的科学计算和工程仿真软件,它的交互式集成界面能够帮助用户快速完成数值分析、数字信号处理、仿真建摸、系统控制等功能。MATLAB语言采用与数学表达相同的形式,不需要传统的程序设计语言,易于掌握,而且使用MATLAB语言要比使用BASIC、FORTRAN和C等语言提高效率许多倍。许多人赞誉它为万能的数学“演算纸”。早在十几年前,在欧美的大学和研究机构中,MATLAB就是一种非常流行的计算机语言,许多重要的学术刊物上发表的论文均是用MATLAB来分析计算和绘制各种图形。它还是一种有力的教学工具,它在大学的线性代数、自动控制理论、数理统计、数字信号处理、动态系统仿真、通信原理等课程的教学中,已成为标准的教学工具。Simulink是MATLAB软件中对动态系统进行建模、仿真和分析的一个软件包,是MATLAB中的一种可视化仿真工具,广泛应用于通信仿真、数字信号处理、模糊逻辑、神经网络等领域。“振幅调制与解调”与“角度调制与解调”是《通信电子电路》中的重要内容,其中的概念在实际的通信系统中占有非常重要的地位。本书利用MATLAB语言和MATLAB/Simulink仿真工具对书中的调幅和调频的概念和基本方法进行了仿真,供读者参考。一方面是为了增加读者对内容的理解,另一方面可以使读者从中体会到MATLAB工具的优越性和实用性。1.振幅调制与解调的MATLAB仿真由第5章可知,根据调幅信号所含频谱及其相对大小不同,可以分为普通调幅(AM)、抑制载波双边带调幅(DSB/SC-AM)和抑制载波单边带调幅(SSB/SC-AM)三种方式。其中,普通调幅信号是基本的,其它调幅信号都是由它演变而来的。在以下的MATLAB仿真中,为方便起见,均采用单音调制。(1)普通调幅波AM设调制信号通信电子电路314FtUtUtummπ2coscos)(ΩΩΩ=Ω=载波信号tfUtUtuccmccmcπω2coscos)(==则普通调幅波信号ttmUtucacmAMωcos)cos1()(Ω+=根据调幅波的数学表达形式,利用Matlab/Simulink进行建模仿真。仿真框图如附图A1所示,图中u(t)为调制信号,频率为30Hz,c(t)为载波信号频率为200Hz,解调部分采用的是同步检波。仿真波形如附图A2所示。图A1普通调幅波系统的Simulink仿真模块图图A2调幅与解调波形附录A调幅和调频信号的MARLAB仿真315(2)抑制载波双边带调幅波(DSB/SC-AM)])cos()[cos(21coscosttUAUttUAUuAuucccmmccmmcDSBΩ−+Ω+=Ω==ΩΩΩωωω根据上述DSB信号的产生数学表达式,采用MATLAB编程来观察DSB波形,如图A3所示。特别值得注意的是,当载波频率分别为调制信号频率的偶数倍和奇数倍时,相位突变点处的波形是不同的,请读者思考一下,为什么?图A3抑制载波双边带调幅波波形MATLAB程序:fs=80000;t=0:1/fs:0.01;x=cos(2*pi*200*t);%设调制信号频率为200Hzyc1=cos(2*pi*200*16*t);%设载波频率为调制信号频率的16倍(偶数倍)yc2=cos(2*pi*200*15*t);%设载波频率为调制信号频率的15倍(奇数倍)y1=x.*yc1;%调制信号与载波相乘y2=x.*yc2;%调制信号与载波相乘subplot(3,1,1);plot(t,x);title('调制信号波形');subplot(3,1,2);plot(t,y1);title('DSB信号波形(载频是调制频率的偶数倍)');subplot(3,1,2);plot(t,y2);title('DSB信号波形(载频是调制频率的奇数倍)');(3)抑制载波单边带调幅波(SSB/SC-AM)实现SSB信号的方法很多,其中最简单的方法是在产生DSB信号后,通过一个边带滤波器,取出一个边带,抑制掉另一边带。实现框图见第5章图5-6,实现过程如图A4所示。通信电子电路316图A4实现单边带调幅信号的过程附录A调幅和调频信号的MARLAB仿真317MATLAB程序:%首先产生双边带信号fs=80000;t=0:1/fs:0.01;x=cos(2*pi*500*t);%设调制信号频率为500Hzyc=cos(2*pi*2500*t);%设载波频率2500Hzy=x.*yc;%设计边带滤波器figure;[b,a]=ellip(4,0.1,40,[28003200]*2/fs);%上边带滤波器%[b,a]=ellip(4,0.1,40,[18002200]*2/fs);%下边带滤波器[H,w]=freqz(b,a,512);plot(w*fs/(2*pi),abs(H));axis([20004000-0.51.5]);grid;%滤除下边带或上边带,产生单边带信号figure;yf=filter(b,a,y);subplot(3,1,1);plot(t,x);title('调制信号波形');axis([0.0030.01-11]);grid;subplot(3,1,2);plot(t,yc);title('载频信号波形');axis([0.0030.01-11]);grid;subplot(3,1,3);plot(t,yf);title('SSB信号波形');axis([0.0030.01-11]);grid;%滤除前后,即双边带信号和单边带信号的频谱figure;YS=fft(y,1024);SF=fft(yf,1024);w=(0:511)/512*(fs/2);subplot(2,1,1);plot(w,abs([YS(1:512)']));grid;axis([06000-0.5200]);title('滤除前,双边带信号频谱')subplot(2,1,2);plot(w,abs([SF(1:512)']));title('滤除后,单边带信号频谱')grid;axis([06000-0.5200]);或直接用MATLAB软件的通信工具箱中的函数amod来实现yssb=amod(x,2500,fs,'amssb');plot(yssb)2.调频与解调的MATLAB仿真(1)调制对于单音调制,调频波的数学表达式为)sincos()(tmtUtufcmΩ+=ω进一步展开得到:)]sinsin(sin)sincos([cos)(tmttmtUtufcfcmΩ−Ω=ωω根据该数学表达式建立的频率调制Simulink仿真模型如附图5所示(左半部分),调制波形如图A6、图A7所示。(2)解调对于窄带调频,由于1fm,因此1)sincos(≈Ωtmf,tmtmffΩ≈Ωsin)sinsin(,将上面调频波的表达式乘以tcωsin,得通信电子电路318图A5频率调制与解调Simulink仿真模块图图A6调制信号波形图A7调频信号波形)2cossin2(sin2sin2sin)]sinsin(sin)sincos([cos)('ttmtUtmUttmttmtUtucfcmfmcfcfcmωωωωωΩ++Ω−≈⋅Ω−Ω=可见将上式第二项表示的高频分量通过低通滤波器滤除,即可得到解调信号。根据该原理建立的频率解调Simulink仿真模型如图A5所示(右半部分),解调波形如图A8所示。对于宽带调频的解调,因涉及内容较多,在此就不介绍了。图A8解调信号波形值得说明的是,在目前MATLAB软件中,都有现成的调幅和调频语句或在Simulink中有简单直接的调幅和调频模块,而我们在以上的仿真中却采用的是分步进行的分解方法,主要是为了加强调幅和调频基本概念和基本原理的理解。