本科毕业论文(设计) 题 目: 基于FPGA单边带调制系统的设计 学生姓名: 指导教师: 所在分院: 专 业: 班 级: 二O一三年五月
基于FPGA单边带调制系统的设计
摘要:随着无线电技术的发展和各种通信设备不断地投放市场,通信频道拥挤的问
题日渐突出,因此占用较窄频带或能在同一频段内容纳更多用户的通信技术普遍地收到人们的重视。例如,单边带通信就是一种目前应用比较广泛并具有占用较窄频带特电的通信方法。而FPGA具有体系结构和逻辑单元灵活、集成度高、适用范围宽等特点,可以实现超大规模的电路,编程也很灵活,与门阵列等其他ASIC相比,它具有开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检测等优点,故这里基于FPGA对单边带进行调制。首先,设置调制信号频率为5KHZ,振幅为5,载波频率为100KHZ,振幅为10,运用Matlab编程得到单边带信号的波形与功率谱,与调制信号进行对比,观察调制效果。然后运用Simulink分别对滤波法与相移法两种调制方法进行建模仿真,通过观察仿真波形,最终相移法的调制效果要优于滤波法。最后,对以上低层设计产生的VHDL的RTL代码和仿真文件进行综合、编译适配以及仿真。结果表明本文设计方法能够很好的进行单边带信号调制。
关键词:单边带;调制;仿真;FPGA
FPGA-based on single-sideband modulation system
Abstract:With the development of radio technology and various communications
equipment constantly put on the market, communication channel congestion problems have become increasingly prominent, so take the narrow band or communication technology can satisfy more users in the same frequency band content generally received people's attention. For example, is a kind of widely used currently and has occupied the narrow band communication method of special electrical communication with unilateral. While FPGA has the characteristics of flexible system structure and logic unit, high integration, wide application scope, can realize large scale circuits, programming is also very flexible, compared to other ASIC gate array, it has a short development cycle, low manufacturing cost, advanced development tool, standard product without testing, stable quality and real-time online detection etc., so here is based on the FPGA of SSB modulation. First of all, the use of MATLAB programming, set the frequency modulation signal, the carrier frequency, amplitude is 1, the simulation to be modulated signal waveform and power spectrum, are compared with the modulation signal, observe the modulation effect. And then Simulink is used to filter and phase shift method of two kinds of modulation methods for modeling and simulation, by observing the simulation waveform, modulation effect of final phase shift method is superior to the filtering method. Finally, the RTL code and simulation files to the low layer design of VHDL adapter and comprehensive, compiled simulation.
Keywords: single sideband; modulation; simulation; FPGA
目录
1 引言 ................................................................................................................................. 1 1.1 课题的研究意义 ....................................................................................................... 1 1.2 国内外研究现状 ....................................................................................................... 1 1.3 课题的主要内容 ....................................................................................................... 2 2 SSB的调制技术原理 ..................................................................................................... 3 2.1 概述 ........................................................................................................................... 3 2.2 SSB的调制原理 ....................................................................................................... 4 2.3 本章小结 ................................................................................................................... 4 3 MATLAB/SIMULINK的SSB系统的设计 .................................................................. 5 3.1 软件简介 ................................................................................................................... 5 3.2 滤波法产生单边带信号 ........................................................................................... 5 3.2.1 滤波法产生SSB信号进行Matlab设计仿真 ................................................. 6 3.2.2 滤波法设计Simulink建模仿真 ...................................................................... 7 3.3 相移法产生单边带信号 ......................................................................................... 11 3.3.1 相移法产生SSB信号进行Matlab设计仿真 ............................................... 12 3.3.2 相移法设计Simulink建模仿真 .................................................................... 13 3.4 本章小结 ................................................................................................................. 15 4 基于FPGA的SSB调制系统的设计 .......................................................................... 16 4.1 FPGA简介 .............................................................................................................. 16 4.1.1 使用FPGA进行开发的优点 ......................................................................... 17 4.1.2 FPGA设计的开发流程 .................................................................................. 17 4.2 使用QUARUSⅡ实现时序仿真 .............................................................................. 19 4.2.1 QuarusⅡ介绍 .................................................................................................. 19 4.2.2 转换为VHDL语言并综合 ............................................................................ 22 4.2.3 使用Modelsim实现时序仿真 ....................................................................... 24 4.2.4 使用QuartusⅡ实现时序仿真 ....................................................................... 27 4.3 本章小结 ................................................................................................................. 27 5 结论 ............................................................................................................................... 28 5.1 设计过程中遇到的问题以及解决方法 ................................................................. 28 5.2 体会 ......................................................................................................................... 28 致谢 ..................................................................................................................................... 29 参考文献 ............................................................................................................................. 30 附录A ................................................................................................................................. 31
I
1 引言
1.1 课题的研究意义
在通信技术领域,载波调制技术已广泛应用于地面广播通信、卫星通信、信号传输等通信系统中。而在载波调制技术中,单边带调制的方法有很多优点,比如:占用带宽小和功耗低等,但是在传统的通信技术中,因为滤波器设计实现起来比较困难,单边带调制技术在现在仍旧没有广泛应用于通信系统中。随着近几年数字信号处理技术的快速发展,单边带调制技术要在数字信号处理平台上的实现也成为可能。为解决单边带调制方法因在载波调制技术中难以实现而不被广泛应用的问题,对单边带调制方法进行了研究,提出了基Hilbert正交变换的单边带调制算法,以及该算法的FPGA(Field Programmable Gate Arrays)实现.建立了Matlab的系统分析模,采用DSP Builder设计了单边带调制程序,并通过Modelsim对该程序进行了仿真,得到了理想的单边带调制的波形。
目前,数字信号处理平台主要包括DSP(Digital Signal Processor)和FPGA(Field Programmable Gate Arrays)两种。数字信号处理平台的实现方案,主要是基于FPGA+DSP的结构来实现高速数字信号处理。该方案采用先进的FPGA和DSP芯片,借鉴了软件无线电的思想,通过DSP芯片对FPGA芯片的动态配置来实现具有通用性、可扩充性的硬件平台,相对于FPGA芯片,DSP芯片采用串行指令,运算速度受系统时钟频率的影响,难以实现高速实时处理。而FPGA采用并行处理技术,很大程度上提高了系统的运行速度,并且FPGA芯片的内部逻辑块和I/O可以自主配置,令设计变得非常灵活。因此,FPGA被广泛运用在高速实时通信系统中。
1.2 国内外研究现状
近年来,人们对单边带调制也进行了更广泛的研究,合肥电子工程学院在2001年发表了《基于System View的单边带调制解调系统》,但只是用了传统模拟方法实现的;西安电子科技大学在2003年提出了《一种单边带调制/解调的新方法》,采用的方式是数字信号处理,这一处理方法突破了传统的模拟调制解调方法,为以后单边带调制系统的发展奠定了基础;海洋工程大学的尹敬湘等人在2005年提出的《数字式单边带调制的关键与实现方法》提到的方法是单边带调制中的正交调制以及内插等技术;2009年,南京某部队的《基于FPGA的载波系统调制》,提到了本文要设计的课题:基于FPGA的单边带调制,发展的时间仅仅只有4年,所以在FPGA进行单边带调制方面还是有很大的发展空间的。
2002年Altera公司推出的DSP Builder很好地解决了在EDA技术完成硬件设计的过程中,因为一些特定的设计项目,典型的设计流程包括设计项目编辑、综合、仿真、适配、编程,显得很不方便的问题。
1
1.3 课题的主要内容
本文对调制系统进行了研究,并针对SSB调制系统进行了FPGA实现。本文的内容安排如下:
第一章简要地介绍了本文的研究背景和意义,以及国内外研究现状;
第二章详细地介绍了SSB调制技术的原理,熟悉和学习FPGA技术,充分理解单边带调制系统的工作原理和在通信系统中的应用;
第三章从Matlab编程仿真到Simulink建模仿真,分别采用滤波法和相移法实现SSB调制系统;
第四章设计基于FPGA 的调制系统的各系统模块。在通过前面系统仿真的基础上,提出了具体可行的FPGA实现方法。在FPGA 设计过程中,通过流水线和模块化的方法构造了正交振幅调制的调制系统,对其中的关键技术如频率合成、数字滤波、进制转换等模块进行研究并采用硬件描述语言进行了实现和综合仿真。
最后进行设计的总结与体会。
2
2 SSB的调制技术原理
2.1 概述
一般根据调制信号参数的不同,它有三种基本形式:振幅调制,频率调制和相位
调制。如果要控制的参数是高频振荡的振幅,说这种调制为幅度调制,简称调幅;如果要控制的参数是频率或高频振荡的相位,说这种调制为频率调制和相位调制,简称频率或相位调制(FM和PM并称为角度调制)。
幅度调制的特点是载波的频率始终保持不变,它的振幅却是变化的。其幅度变化曲线与要传递的低频信号是相似的。它的振幅变化曲线称之为包络线,代表了要传递的信息。幅度调制在中、短波广播和通信中使用甚多。幅度调制的不足是抗干扰能力差,因为各种工业干扰和天电干扰都会以调幅的形式叠加在载波上,成为干扰和杂波。
⑴调幅(AM):用调制信号控制载波的振幅,使载波的振幅随着调制信号变化。已调波称为调幅波。调幅波的频率仍是载波频率,调幅波包络的形状反映调制信号的波形。调幅系统实现简单,但抗干扰性差,传输时信号容易失真。
⑵调频(FM):用调制信号控制载波的振荡频率,使载波的频率随着调制信号变化。已调波称为调频波。调频波的振幅保持不变,调频波的瞬时频率偏离载波频率的量与调制信号的瞬时值成比例。调频系统实现稍复杂,占用的频带远较调幅波为宽,因此必须工作在超短波波段。抗干扰性能好,传输时信号失真小,设备利用率也较高。
⑶调相(PM):调制信号控制载波的相位,与调制信号的载波相位变化。调制波称为相位调制波。瞬时值的相位调制波的振幅成比例保持不变,从载波相位角偏差量调制的相位信号的瞬时相位调制波。在调频相位角也有相应变化,但这一相位不随调制信号成比例的变化。在相位调制频率也有相应的改变,但这个频率的变化并不与调制信号成比例。在模拟调制方法中的调制波的频谱中,除在外的载波频率两侧的载波分量外,在载波频率两旁还各有一个频带,因调制而产生的各频率分量就落在这两个频带之内。这两个频带统称为边频带或边带。位于高于侧边带的载波频率,称为上边带。位于低于侧边带的载波频率,称为下边带。单边带通信滤波器,相移法或相移滤波方法一个边带调幅波,这种调制方法称为单边带调制(SSB)。单边带调制常用于有线载波电话和短波无线电多路通信[1]。
由于AM信号的功率利用率最大也只有1 ,不携带任何信息的载波功率部分占
3用了大部分利用率,加上抗噪性能差,使用起来造成了很大浪费,限制了AM调制技术的发展,基于AM信号中大部分信号功率都消耗在了载波功率上的这个特点,可以将载波功率滤除掉,仅仅传送边带信号,提高功率利用率,这种技术就叫做抑制载波的双边带调制(DSB),时域和频域表达式为:
S DSB(t)m(t)coswc(t)SLSB(t)1[M(wwc)M(wwc)]23
(21)(22)
从中可以看出,DSB的频谱不存在载频分量,这样的话功率利用就大大提高了,理论可以达达100%,即传送的信号全是携带有用信息的信号,DSB信号虽然有效的提高了功率利用率,但是由于其带宽仍旧是调制信号带宽的2倍,在带宽有限的条件下,其发展受到限制,而SSB信号是DSB信号中一个边带,比DSB信号节省了一半的带宽,于是,单边带调制系统设计就出现了。
2.2 SSB的调制原理
单边带信号( SSB) ,是调幅信号的一种,它出自于调幅但是又区别于调幅。调制音频幅度变化了,载波幅度也会跟随着变化,这就是调幅波的调制方式。要说明调幅波的频谱特征得根据混频的原理来讲解,因为要准确的掌握SSB的产生方法,只有清楚的知道调幅波的特征才可以。由于对于非线性元件,两个不同频率的信号频率1和频率2通过会出现4个频率:两个频率的和、两个频率的差、频率1、频率2。通常我们把两个频率的和、两个频率的差称为上边带信号和下边带信号。而这两个信号所包含的信息又相同,因此只要传送一个边带信号,所要传送信号的全部信息也就传送了。
抑制载波的双边带调幅虽然节省了载波功率,但已调信号的频带宽度仍未调制信号的两倍,与常规双边带调幅时相同。而我们从它们的频谱图上可以看出,上、下两个边带是完全对称的,它们所携带的信息相同,完全可以只用一个边带来传输全部信息。这样不仅可以节省载波功率,还可节省一半的传输频带。这种方式称为单边带调制。单边带调制是幅度调制中的一种。幅度调制是由调制信号去控制高频载波的幅度,使之随调制信号作线性变化的过程。在波形上,幅度已调信号的幅度随基带信号的规律而呈正比地变化;在频谱结构上,它的频谱完全是基带信号频谱在频域内的简单搬移。常见的调幅(AM)、双边带(DSB)、残留边带(VSB)等调制就是幅度调制的几种典型的实例。单边带调制(SSB)信号是将双边带信号中的一个边带滤掉而形成的。根据滤除方法的不同,产生SSB信号的方法有:滤波法和相移法[2]。
2.3 本章小结
通过对单边带调制(SSB)信号课题的研究背景以及调制技术原理的了解与学习,熟悉信号调制方式与调制方法,对研究流程有初步的了解,同时也学习了单边带调制系统设计时所用到的仿真方法和软件,为后面的课题设计做好铺垫。
4
3 Matlab/Simulink的SSB系统的设计
3.1 软件简介
MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。Matlab译于矩阵实验室MATrix LABoratory是用来提供通往LINPACK和EISPACK矩阵软件包接口的,后来它渐渐发展成了通用科技计算图视交互系统和程序语言。Matlab发展到现在已经成为一个系列产品 Matlab主包和各种可选的toolbox工具包主包中有数百个核心内部函数迄今所有的三十几个工具包又可分为两类功能性工具包和学科性工具包功能性工具包主要用来扩充Matlab的符号计算功能图视建模仿真功能文字处理功能以及硬件实时交互功能这种功能性工具包用于多种学科而学科性工具包是专业性比较强的如控制工具包(Control Toolbox)、信号处理工具包(SignalProcessing Toolbox) 、通信工具包(Communication Toolbox)等都属此类开放性也许是Matlab最重要最受人欢迎的特点除内部函数外所有Matlab主包文件和各工具包文件都是可读可改的源文件用户可通过对源文件的修改或加入自己编写文件去构成新的专用工具包。利用M语言还开发了相应的MATLAB专业工具箱函数供用户直接使用。
Matlab是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
3.2 滤波法产生单边带信号
因为一般的m(t)具有丰富的低频成分,因而要求滤波器的截止特性要极为陡峭才行,这给实际操作带来困难,因此,在实际当中,采用多次射频及多次滤波[3]的办法来实现是很常用的方法,其结构如图3-1所示。
uc (t) coswc1t滤波器1coswc2t滤波器2Sm(t)
图 3-1 滤波法产生SSB信号的原理框图
频域表示如图3-2:
5
图 3-2 产生SSB信号的频谱特性
工作原理:当频率较低的时候,滤波器具有陡峭的频率,因此滤波器1是一个截止频率点较低的低通或者高通滤波器,滤波器2是一个带通滤波器,通常截止频率点选的较高,调制的频率需满足:w1w2wc。
基带信号与载波信号相乘得到双边带信号,双边带信号时域表达式如下:
uDSBtUcoswctUcoswct(31)
双边带信号经过一个滤波器,可以得到单边带信号。当取上边带时,单边带信号时域表达式为
uSSBtUcoswct(32)
取下边带时,时域表达式为
uSSBtUcoswct(33)
上下边带的选取决定于滤波器的选取。滤波器为低通滤波器时保留下边带,滤波器为高通滤波器时保留上边带。理想滤波特性是不可能做到的,实际滤波器从通带到阻带总有一个过渡带。实现滤波器的难易与过渡带相对于载波的归一化值有关,过渡带的归一化值愈小,分割上、下边带的滤波器就愈难于实现[4]。
随着载波频率的提高,采用一级调制直接滤波的办法已不可能实现单边带调制,这时可以采用多级调制的办法。在实际应用中,滤波器的参数设置应当符合实际需求,并根据基带传输信号和载波信号的频率进行设置,以达到最高性能。
3.2.1 滤波法产生SSB信号进行Matlab设计仿真
滤波法产生SSB信号进行Matlab编程设计仿真如图3-3,其中调制信号频率 fm=5KHZ;载波频率fc=100KHZ;调制信号幅度A1=5;载波幅度A2=10;
6
调制信号53002001000调制信号频谱0-500.005SSB信号0.01Pr(f) (w)0200040006000f (Hz)SSB信号频谱800040200-20-4000.0050.01Pr(f) (w)10005000020004000f (Hz)60008000
图 3-3 滤波法SSB调制Matlab编程设计仿真
由图3-3可以看出,已调信号的包络与调制信号不呈比例,滤波法中的滤波器特性并不十分接近理想特性,因为混频后低频分量与高频分量之间的过渡带不够窄,在
wc处未达到锐截止特性。
3.2.2 滤波法设计Simulink建模仿真
Matlab的Simulink环境具有强大的图形化仿真验证功能。可以用来对各种动态系统进行建模、分析和仿真,它的建模范围广泛,可以针对任何能够用数学来描述的系统进行建模,其中包括连续、离散,条件执行,事件驱动,单速率、多速率和混杂系统等等。Simulink可以利用鼠标拖放来建立系统框图模型的图形界面,而且Simulink还提供了丰富的功能块以及不同的专业模块集合,利用Simulink几乎可以做到不书写一行代码就能够完成整个动态系统的建模工作[5],所以显得非常的便捷,越来越受到大家的广泛使用。本文通过调用simulink中的功能模块构成数字滤波器的仿真框图,在仿真过程中,可以双击各功能模块,随时改变参数,获得不同状态下的仿真结果。
DSPbuilder是Altera推出的一个DSP开发工具,它在QuartusⅡFPGA设计环境中集成了Mathworks的Matlab和simulinkDSP开发软件[2]。在以前,Matlab工具往往作为DSP算法的建模和基于纯数学的仿真来使用,其数学模型无法为硬件DSP应用系统直接产生实用程序代码,仿真测试的结果也仅仅是基于数学算法结构。而以往
7
FPGA所需的传统的基于硬件描述语言(HDL)的设计由于要考虑FPGA的硬件的δ延时与VHDL的递归算法的衔接,以及补码运算和乘积结果截取等问题,相当繁杂。对DSP Builder而言,MatLab/Simulink整个开发流层几乎可以在同一环境中完成,顶层的开发工具真正实现了自定向下的设计流程,包括DSP系统的建模、系统级的仿真、设计模型向VHDL硬件描述语言代码的转换、RTL(逻辑综合RegisterTransferLevel)级功能仿真测试、编译适配和布局布线、时序实时仿真直至对DSP目标器件的编程配置,整个设计流程一气呵成地将系统描述和硬件实现有机地融合在一起,充分显示了现代电子设计自动化开发的特点与优势。
用DSP Builder模块设计好一个新的模型后,可以直接在Simulink中进行算法级、系统级仿真验证。对一个模型进行仿真,需要施加合适的激励、一定得仿真步进和仿真周期,添加合适的观察点和观察方式。这里需要的是Scope和Spectum Scope模块来观察波形和频谱图。连接好图形,选择Simulink→start命令,开始仿真,但仿真结束,双击scope模块,打开scope观察窗口。使用Matlab的Simulink工具对理论上的单边带调制系统进行了建模。根据单边带调制的原理框图,对输入信号进行离散化采样,然后构造解析信号,分别与正交载波相乘,经过巴特沃斯滤波器,最后将得到的单边带调制信号输出,并对其进行频谱分析。
滤波法产生单边带调制信号的Simulink建模如图3-4:
图3-4 滤波法设计Simulink建模图
其中巴特沃斯带通滤波器1与高通滤波器2设置如图3-5及图3-6:
8
图3-5 巴特沃斯滤波器1参数设置
图3-6 巴特沃斯滤波器2参数设置
9
图 3-7 SSB信号频谱
图3-8 调制波形(上)SSB信号(下)
10
由图3-4可以看出,本设计采用的两级调制滤波产生SSB信号,先在低载频上经过带通滤波器产生单边带信号,然后通过变频将频谱搬移到更高的载频,通过高通滤波器得到所需要的单边带信号。
3.3 相移法产生单边带信号
因为理想的数字滤波器占用系统资源巨大,不仅增加了系统的设计成本,且难于实现。所以本文选用占用资源较少的希尔伯特(Hilbert)正交变换[6]的方法实现SSB调制系统。
移相法实现单边带调制不需要滤波器来抑制载波和边带频率,节省频率的带宽,加强实现单边带调制的利用率,其原理框图如图3-9所示。
uc(t)2相移coswtc90x(t)sinwct相移SSSB(t)90uc(t)2sinwtccx(t)sinw(t)
图 3-9 相移法产生SSB信号的原理框图
uct经过相移网络后,将所有的频率成份移相 2 ,实际上是一个希尔伯特
(Hilbert)变换(也可以用一个宽带相移网络来代替)。希尔伯特变换[7]是信号分析与处理中的重要理论工具,在通信系统中一般用来构造解析信号。希尔伯特变换可以提供90°的相位变化而不影响频谱分量的幅度,即对信号进行希尔伯特变换就相当于对该信号进行正交移相,使它成为自身的正交对。信号经希尔伯特变换后,信号频谱不发生变化,相位连续,且相互正交。
从理论上讲,这种实现单边带调制的方法回避了制作滤波特性陡峭的边带滤波器之困难,然而,在模拟系统中要实现上述全通相移网络也十分困难。两种方法对滤对器的苛刻要求都只能在一定条件下近似满足,不可能严格实现。但是在数字信号处理技术中,要实现宽带相移的希尔伯特滤波器却是比较简单的事情。在传统的设计中, 希尔伯特变换器一般是由一个一个时延模块和FIR滤波器来实现的, 但是也可由一组滤波器对来进行实现, 而对原型低通滤波器作正弦/余弦变换是实现FIR 型希尔伯特变换器的一个简单方法。但是, 无论哪种方法都需要通过计算对低通滤波器的系数进
11
行转换, 其计算繁琐且存在一定的误差。对于Matlab来说,作为滤波器设计的基础软件, 不仅能够快速有效地进行希尔伯特变换器的设计,实现分析仿真和最优化, 并且还可以直接计算出希尔伯特变换器的系数, 加之Matlab 还具有强大的接口功能, 为后面的设计也提供了很大方便。
信号x(t)的希尔伯特变换可以看成是信号x(t)通过一个幅度为1的全通滤波器输出,信号通过希尔伯特变换器后,其负频率成分作+90的相移,而正频率成分作-90的相移。这类滤波器要求滤波器的零频响应为0, 如果滤波器的阶数为偶数, 那么增益在频率为0 Hz 和 F s 处必须降为零, 希尔伯特滤波器必须是一个带通滤波器。如
2果滤波器的阶数为奇数, 那么增益在频率为0HZ处必须降为零, 希尔伯特滤波器必须是一个高通滤波器。
两路相乘结果相减时得到上边带信号,相加时则得到下边带信号。当调制信号为确知的周期性信号时,由于它可以分解成许多频率分量之和,因而只要相移I是一个宽带的相移网络,对每个频率分量都能相移2。
3.3.1 相移法产生SSB信号进行Matlab设计仿真
Matlab信号处理工具箱里提供了firls 函数和remez函数,它们的调用格式语法规则基本一样,只是优化的算法有些许的不同,函数firls利用的是最小二乘法,令期望的频率响应和实际的频率响应间的误差变得最小;函数remez实现的是Park-McClel lan算法,这种算法利用remez 交换算法和Chebyshev近似理论来设计滤波器,使实际频率响应拟合期望频率响应并且达到最优效果[8]。
函数的调用格式为:b = remez( n, f , m,chc) 或b =firls( n, f , m,chc) ,其中, n 为滤波器的阶数; f为滤波器期望频率特性的频率向量标准化频率,取值为0 ~ 1,是递增向量,允许定义重复频点;m为滤波器期望频率特性的幅值向量,向量m和f必须同长度并且为偶数;b为函数返回的滤波器系数,长度为n + 1,本文将采用remez函数法[7]进行编程。
相移法SSB调制系统Matlab进行编程设计仿真如图3-10:
12
调制信号波形50.4Pr(f) (w)调制信号功率谱0.30.20.10-500.511.520-20SSB调制信号波形2.520Pr(f) (w)020f (KHz)SSB调制信号功率谱21.510.500.511.520-100-500f (KHz)501000-20
图3-10 相移法SSB调制Matlab编程设计仿真
由图3-10可以看出,SSB调制信号的包络与调制信号不呈比例,在频谱图中,SSB调制信号截止特性非常好,达到了锐截止特性。
3.3.2 相移法设计Simulink建模仿真
相移法产生单边带调制信号Simulink建模与仿真结果如图3-11及图3-13:
图3-11 相移法设计Simulink建模图
其中滤波器设置与滤波法的滤波器2参数设置相同。
13
图 3-12 SSB信号频谱
图 3-13 调制波形(上)SSB信号(下)
由图3-13可知,相移法产生单边带信号有两个乘法器,第一个乘法器是产生一
14
般的双边带信号,第二个乘法器的输入信号和载波都相移90,最后将上下边带合并得到单边带信号,再通过滤波器输出所需的单边带信号。
3.4 本章小结
从理论上分析得知,SSB信号的抗噪声性能比DSB信号要好,但由于SSB信号的输入功率仅为DSB信号的一半,加上系统设计时滤波器的带宽设计有待提高,因此整体的调制效果较差一些。从滤波法和相移法来看,最终相移法的调制效果要好于滤波法。
15
4 基于FPGA的SSB调制系统的设计
4.1 FPGA简介
图 4-1 FPGA结构图
FPGA(Field-Programmable Gate Array),即现场可编程门阵列[9],是在PAL、GAL、CPLD等可编程器件的基础上进一步发展出来的产物。作为专用集成电路(ASIC)领域中的一种半定制电路而出现,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点,所以现在得到越来越多工程师的亲睐。
FPGA采用了逻辑单元阵列(LOA,Logic Cell Arry)这样一个新概念,内部包括可配置逻辑模块(CLB,Configurable Logic Block)、输入输出模块(IOB,Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有:
(1)采用FPGA设计ASIC电路,用户不需要投片生产就能得到合用的芯片; (2)FPGA可做其他全定制或半定制ASIC电路的试样片: (3)FPGA内部有丰富的触发器和I/O引脚;
(4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一; (5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 目前用硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简单的综合和布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证最常用的方法。可以用这些可编辑元件来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能的解码器或数学方程式。在大部分的FPGA里,这些可编辑的元件里也包含了记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。
16
系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里了。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。
FPGA相比比ASIC(专用集成芯片)的速度,一般来说要慢,无法完成复杂的设计,而且消耗更多的电能。但是FPGA也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误以及更便宜的造价,通过成本考虑,厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。
现在FPGA有下面4种配置模式:
(1)并行主模式为一片FPGA加一片EPROM的方式; (2)主从模式可以支持一片PROM编程多片FPGA: (3)串行模式可以采用串行PROM编程FPGA;
(4)外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。 4.1.1 使用FPGA进行开发的优点
使用FPGA器件设计数字电路,不仅可以简化设计过程,而且可以降低整个系统的体积和成本,增加系统的可靠性。使用FPGA器件设计数字系统电路的主要优点如下:
(1)增大功能密集度
功能密集度是指在给定的空间能集成的逻辑功能数量。可编程逻辑芯片内的组件门数高,一片FPGA可代替几十片乃至上百片中小规模的数字集成电路芯片。用FPGA实现数字系统时用的芯片数量少,从而减少印刷板面积和数目,最终导致系统规模的减小。
(2)缩短设计周期
由于FPGA器件集成度高,使用时印刷线路板电路布局布线简单。FPGA器件的可编程性和灵活性,决定了用它设计一个系统所需时间比传统方法大为缩短。
(3)工作速度快
FPGA/CPLD器件的工作速度快,一般可以达到几百兆赫兹,远远大于DSP器件。使用FPGA器件后实现系统所需要的电路级数少,因而整个系统的工作速度会得到提高。
4.1.2 FPGA设计的开发流程
在简单的 FPGA 设计中,设计输入就是使用硬件描述语言编写 RTL 的过程,虽然还有一些基于状态图、真值表、流程图、方框图的设计输入方法,现在基本已经被淘汰。对于设计输入,核心的问题是有三个:(1)熟练使用 HDL 语言(2)准确
17
的把握要完成的设计功能及其性能指标;(3)充分理解常见的设计思想,保证设计功能和性能指标的恰当表达。设计输入的另外一个重要技能是学会使用 FPGA 厂商提供的设计库,里面有大量可根据应用定制的专门单元,如 FIFO 、SRAM 、差分IO 、 DLL 等。
仿真验证是 FPGA 开发的第二个步骤,目的是验证所编写的 HDL 或者高层次综合得到的 HDL 的功能正确性,即是否与预定的功能相符。这时需要使用 SystemVerilog 或者 SystemC 编写 Testbench,以产生 RTL 设计的激励,并对 RTL 的输出进行分析。简单的设计使用 SystemVerilog 编写 Testbench 即可,对于复杂的设计以及软硬件结合的设计,使用 SystemC 更加方便。验证的最基本方法是仿真。仿真包括功能仿真和时序仿真。其中,功能仿真在布局布线之前,检查设计输入的正确性;时序仿真在布局布线之后,主要检查时序的收敛性,综合结果与功能仿真的不一致性。常见的仿真工具有 ModelSim 、 ActiveHDL 等。对于一些小的设计,主要是肉眼观察仿真结果是否与预期相符,对于一个复杂的大设计,要首先验证每一个子模块的功能正确性,对于整个大设计,要使用工具对比参考设计比如基于C语言的参考设计在同样的激励下产生的输出与 RTL 的输出是否相同。
综合( Synthesis )及布局布线( Place & Route)和比特流生成都是设计工具自动完成的步骤。当然,也需要使用者进行一些设置,以使得工具自动完成的结果更加符合预期。综合工具实现从 HDL 语言到门级网表的生成。 FPGA 厂商的 FPGA 集成开发环境一般提供综合工具,比如 Xilinx 的 XST 和 Altera Quartus II 内置的综合工具,目前使用最广泛的第三方综合工具是 Synplicity 公司的 Synplify 。布局布线采用 FPGA 厂商提供的工具。 Xilinx 有 Foundation Series, Altera有Quartus II。布局布线更具体的包括门级网表到 FPGA 基本单元的转换( Xilinx 称作 Translate ,Altera 称作 Map )和实际的布局布线( Xilinx 称作 PAR,Altera 称作 Fit )。布局布线的结果进一步被用来可以下载到 FPGA 比特流。在进行布局布线之前,我们需要设置顶层设计的每一个输入输出与实际 FPGA 管脚的对应关系。这种对应关系是在在电路板设计的原理图设计阶段确定的。如果你的板子是买来的开发板,在开发板的资料中通常会包括原理图。在没有原理图的情况下,厂家会在其他资料中明确给出每一个 FPGA 的管脚是怎么与其他芯片连接的。
时序仿真与验证:时序仿真也称为后仿真(是不是布线后仿真?应该是,功能仿真不考虑任何延时,而综合后仿真仅考虑了门延时),是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规(即不满足时序约束条件或器件固有的时序规则,如建立时间、保持时间等)现象。时序仿真包含的延迟信息最全,也最精确,能较好地反映芯片的实际工作情况。
设计开始需利用EDA工具的文本或图形编辑器将设计者的设计意图用文本方式(如VHDL程序)或图形方式(原理图、状态图等)表达出来。完成设计描述后即可通过
18
编译器进行排错编译,变成特定的文本格式,为下一步的综合做准备。编译形成标准VHDL文件后,在综合前即可以对所描述的内容进行功能仿真,又可称为前仿真。由于此时的仿真只是根据VHDL的语义进行的,与具体电路没有关系,仿真过程不涉及具体器件的硬件特性,如延迟特性。设计的第三步是综合,将软件设计与硬件的可实现性挂钩,这是软件化为硬电路的关键步骤。综合后,可生成VHDL网表文件,利用网表文件进行综合后仿真。综合通过后利用FPGA布局/布线适配器将综合后的网表文件针对某一个具体的目标器件进行逻辑映射的操作,这个过程叫做实现过程。布局布线后还要进行时序仿真。时序仿真中应将布局布线后的时延文件反标到设计中,使仿真包含门时延以及线时延的信息。与前面各种仿真相比,这种仿真包含的时延信息最为全面、准确,能较好地反映芯片的实际工作情况[8]。
如果以上的所有过程,都没有发现问题,即满足原设计要求,就可以将适配器产生的配置/下载文件通过编程器或下载电缆载入目标芯片中。
4.2 使用QuarusⅡ实现时序仿真
4.2.1 QuarusⅡ介绍
Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VerilogHDL、VHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。
QuartusⅡ软件包的编程器是系统的核心,提供功能强大的设计处理,设计者可以添加特定的约束条件来提高芯片的利用率。在设计流程的每一步,QuartusⅡ软件能够引导设计者将注意力放在设计上,而不是软件的使用上。同时,自动的错误定位、完备的错误和警告信息,使设计修改变得简单容易。另外,QuartusⅡ可与MATLAB的Simulink和DSP Builder结合,是开发DSP硬件系统的关键EDA工具,QuartusⅡ与SOPC Builder结合,能够开发SOPC(System On a Programmable Chip)系统,是一款很有发展前途的EDA软件。
Quartus II开发流程如下:
(1)打开Quartus II软件,创建工程。点击Create a New Projiect,利用创建工程向导(New Project Wizard)创建新工程,如图4-2。
(2)新建文件。点击File-New Quartus II Project-Vhdl file,如图4-5。 (3)编写VHDL程序,进行编译。如图4-6。
19
图4-2 新建工程
图4-3 新建工程向导
20
图4-4 工程路径
图4-5 新建文件
21
图4-6 编译
4.2.2 转换为VHDL语言并综合
随着EDA技术的快速发展和在其应用领域中的扩大和深入,EDA技术在电子信息、通信、自动控制以及计算机应用等领域也得到越来越广泛的应用。这些技术的使用使得现代电子产品体积减小了、性能增强了、集成化程度也大大提高了,与此同时其可编程能力也得以提高。在使用EDA进行电子设计的时候,设计人员可以按照“自顶向下”的设计方法,对整个系统进行方案的设计和功能的划分,采用硬件描述语言(DHL)设计系统行为级,最后通过综合器和适配器就可以生成最终的目标器件了。VHDL语言[10]是EDA设计中常用的一种IEEE标准语言,其优点在于:具有覆盖面广、描述能力强、可读性好、支持大规模设计及逻辑单元利用,因此受到越来越多的电子工程师的青睐。
硬件描述语言(Very High Speed Integrated Circuit Hardware Description Language, VHDL)是一种计算机语言,是用于设计硬件电子系统的计算机语言,包括系统行为级、寄存器传输级和逻辑门级等多个设计层次,支持结构、数据流、行为三种描述形式的混合描述,因此VHDL基本上是覆盖了以往各种硬件描述语言的功能。它主要用于描述数字系统的结构、行为、功能和接口,非常适用于可编程逻辑芯片的应用设计。与其它的HDL相比,VHDL具有更强大的行为描述能力,有了这些优点,就决定了它能成为系统设计领域最佳的硬件描述语言。VHDL作为EDA的重要组成部分,
22
其硬件描述能力强,可对从门级、电路级一直到对系统级进行描述、仿真、综合和调试。修改工艺与修改电路相互之间不会产生不良影响,这使硬件实现的目标器件有很宽的选择范围。一个完整的VHDL程序通常包括实体(Entity)、结构体(Architecture)、配置(Configuration)、库(Library)和程序包(Package)五个部分。
利用VHDL语言设计数字系统硬件电路,与传统的设计方法相比,具有以下优点:
(1)采用自顶向下的设计方法。自顶向下是指从系统总体要求出发,在顶层进行功能方框图的划分以及结构的设计。设计的主要仿真和调试过程都是在高层次上完成的,这就达达提高了设计的效率。
(2)降低了硬件电路的设计难度。在使用VHDL语言设计硬件电路时,可以免除编写逻辑表达式或真值表的过程,使得设计难度大大下降,从而也缩短了设计周期。
(3)主要设计文件是用VHDL语言编写的源程序。在传统的硬件电路设计中,电路原理图是设计的主要文件,但是采用VHDL语言设计系统硬件电路时设计的主要文件则是VHDL语言编写的源程序了。
(4)方便ASIC移植[11]。VHDL语言的效率之一,就是如果你的设计是被综合到一个FPGA或CPLD的话,则可以使你设计的产品以最快的速度上市。当产品的产量达到相当的数量时,采用VHDL进行的设计很容易转换成专用集成电路来实现。
所以本次设计采用利用VHDL语言的数字系统设计方法。首先进行VHDL语言转换,设置SignalCompiler,双击SignalCompiler模块,单击Analyze按钮后,SignalCompiler就会对F1模型进行分析,检查模型有无错误,并在MATLAB主窗口中弹出对话框,并给出相关信息。SignalCompiler的设置都集中在项目设置选项部分。在Device下拉列表框中选择需要的器件系列,选择CycloneⅡ系列,在Synthesis下拉列表框中选择QuartusⅡ,Optimization下拉列表框选择Balanced[12,13]。当设置好Device和Synthesis后,右侧的硬件编译部分就会列出一个操作流程,如图4-7所示。单击Execute steps 1,2 and 3图标,完成文件(.mdl)到VHDL文件的转换、综合还有编译适配过程。
23
图 4-7 文件(.mdl)到VHDL文件的转换界面
在QuartusⅡ环境中打开DSPBuilder建立的QuartusⅡ项目文件firl.qpf。在QuartusⅡ中进行再一次仿真,由此可以看到符合要求时序波形,然后进行编译。用信号发生器产生所要求的两个不同频率的正弦信号,然后就可以在示波器上看到滤波以后的结果,当需要设计不同的滤波器电路时,到时候仅需要修改FIR滤波模型文件就可以了,这样就不用进行VHDL语言的编程,而且也便于进行调整,给设计带来很大方便。
4.2.3 使用Modelsim实现时序仿真
在Simulink中进行的仿真仅仅是系统验证性质的,对MDL文件进行了仿真,但是没有对生成的VHDL代码进行过仿真。事实上,生成VHDL描述是RTL级的,是针对了具体的硬件结构,但是在Matlab的Simulink中的模型仿真是算法级(系统级)的,是针对算法实现的,这二者之间可能存在软件理解上的差异,所以导致了转换后的VHDL代码实现可能与MDL模型描述的情况不完全相符,为了保证结果的准确性,所以这里还需要针对生成的RTL级VHDL代码进行功能仿真。
在此,本文利用Quartus II联立Modelsim对生成的VHDL代码进行功能仿真。在Quartus II项目文件编译成功后进行仿真工具设置,如图4-8:
24
图4-8 仿真工具设置
图4-9 启动仿真
25
图4-10 自启动Modelsim
设置输入输出信号均为模拟形式,自启动Modelsim后,进行编译成功后,出现如图4-11所示的仿真波形:
图 4-11 Modelsim环境下的仿真波形
进入Modelsim软件环境,设置路径,然后点击Tools→Exacute Macro,选择tb_fl.tcl
26
文件,运行成功即可以进行Stimulation。这里的仿真设置完完全全按照Simulink的仿真配置。
4.2.4 使用QuartusⅡ实现时序仿真
仿真前需要先产生一个频率为5KHz的正弦波和频率为100KHz的余弦波,而滤波器的采样频率是2M。在硬件验证的DE2开发板上只有频率为50MHz和27MHz的时钟,正弦波信号发生器采用LPM_ROM设计,输出的信号频率f与地址发生器的时钟CLK的输入频率f0的关系式:f=f0/64。所以f0的大小为1.28MHz和10.24MHz,这里选择1.333MHz和10MHz[14]。
功能仿真结果如图4-12:
图 4-12 功能仿真结果
4.3 本章小结
本文设计方法能够进行单边带信号调制,在利用FPGA进行数字滤波器的开发时,采用DSPBuilder作为设计工具能加快进度。当然,在实际应用中,受精度、速度和器件选择方面的影响,还可以对其转化的VHDL进行进一步的优化。
27
5 结论
5.1 设计过程中遇到的问题以及解决方法
本设计的主要内容是实现单边带调制。由于该设计涉及算法及模拟信号处理,所以无法单纯的利用QuartusⅡ来完成整个设计,在这里采用Matlab直接编程仿真,DSP Builder建模,仿真再将其转化为VHDL,这样就可以利用QuartusⅡ综合、仿真、适配、编程。
首先要在MATLAB/DSP Builder建立模型,模型中需要两个滤波器,一个是低通,一个是带通。刚开始考虑到实验的简便性,就直接设计FIR滤波器的,但在这过程中遇到了很多问题,里面的设计指标无法确定,最后无法设计出实验所需的标准滤波器,在这一过程中走了很多冤枉路。后来在参考了相关资料后,决定使用DSP Builder设计FIR 滤波器,其次将模型转化成VHDL语言后。
通过这次设计,不仅明白了单边带调制解调的工作原理,对于信号传递过程有了更深入的了解。而且在设计过程中对MATLAB/DSP Builder设计工具有了更深入的接触和了解,涉及算法级的设计,这过程中的每个参数设定都是很重要的。而在QuartusⅡ中的功能和时序仿真中,关于多时钟方面的设计,应尽可能的实现同步。
5.2 体会
为期五个月的毕业设计即将结束,在这期间我经历了查资料、分析课题、学习软件、设计程序、调试程序、总结经验以及书写毕业论文的过程。
本课题采用一种基于FPGA的SSB调制系统的设计方案,首先分析了SSB信号调制的原理及设计方法,然后通过Matlab/Simulink进行编程仿真,以及转换为VHDL语言,利用Quartus II的设计平台,采用模块化、层次化的设计思想,联立Modelsim分别对各模块描述的VHDL进行了仿真和综合。仿真结果表明,本课题所设计SSB系统起到了比较好的调制效果。由于毕业设计即将结束,没有时间继续完善本课题所实现调制时候的数字滤波器的性能,在这一方面,滤波器的性能有待提高。
28
致谢
本文是在导师燕老师的精心指导和严格要求下完成的。从选题到论文的完成,都凝聚着燕老师的辛劳和汗水。她在我这五个月的毕业设计期间给了我很多无微不至的关怀,正是因为她的指导,使我的思路豁然开朗,使得我少走了不少弯路,极大地提高了工作效率。我想,通过做毕业设计,我不仅完成了设计内容,更重要的是学到了很多课堂上得不到的东西。在此对燕老师表示深深的敬意和衷心的感谢!
此外,我在此亦向所有在毕业设计期间给予过我支持和鼓励的老师、同学、朋友表示我最诚挚的谢意!
29
参考文献
[1] 罗新民,张传生,薛少丽,现代通信原理[M],北京:高等教育出版社,2003 [2] 邹德东,刘立民,王国辉等,浅谈单边带调幅( SSB)的调制与解调[B],辽宁抚顺:煤炭科学研究总院抚顺分院,2007
[3] 赵静,张瑾,高新科,基于MATLAB的通信系统仿真[M].北京:北京航空航天大学出版社,2007.9
[4] 王兴亮,通信系统原理教程[M],西安:西安电子科技大学出版社,2007,62-68 [5] 张兵,汤清华,吴国安等,基于DSP 的数字正交解调器的设计与实现[J],微电子学与计算机,2009,26(7):32-35
[6] 陈啸晴,基Hilbert 数字滤波的无功功率表设计研究[D],长沙: 中南大学,2009 [7] 李鸣,颜彪,周平,基于希尔伯特变换的数字下变频器[J],淮阴师范学院学报(自然科学版),2005.5,4(2):112-115
[8] 刘波,文忠,曾涯.Matlab信号处理[M],北京:电子工业出版社,2006
[9] 刘凌,胡永生译,数字信号处理的FPGA实现[M],北京:清华大学出版社,2003 [10] 宋寅,基于FPGA的DDS波形发生器的设计与实现[J],合肥学院学报(自然科学版).2007.3,17(2) :63-65
[11] 邓延安,基于FPGA的数字化调频DDS系统设计[D],合肥:合肥工业大学硕士学位论文,2005.5
[12] 潘松,王国栋,VHDL实用教程[M],成都:电子科技大学出版社,2001 [13] 李景强,李双田,李昌立,用DSP实现单边带调制解调的几种算法及性能比较[J].电子学报,2001(6):25-36
[14] 李洪伟,基于QuartusII的FPGA/CPLD设计[M],北京:电子工业出版社,2006 [15] 刘晨,王森章,直接数字频率合成器的设计及FPGA实现[J],微电子与计算机, 2004,21(5):63-65
[16] 阎石,数字电子技术基础(第四版)[M],北京:高等教育出版社,1998
[17]Uwe M B,数字信号处理的FPGA实现[M],刘凌,胡永生译,北京:清华大学出版社,2003:66-152
[18] 朱志宇,王颖,基于FPGA的信道话数字接收机的研究与仿真[J], 科学技术与工程学报,2011,25(3),9-11
[19] Kawasaki Hiroaki,Sakurada Hiroshi,Narushima Shinichi, etal Double-faced vacuum fluorescent display [P],U S Patent:5463276,1995
30
附录A
滤波法: clear all;
Fs=1000000;%抽样频率 t=[0:1/Fs:.01]; a1=5;
y=a1*cos(5*2*pi*t);%调制信号 Y=fft(y);
%Y=abs(Y(1:length(Y)/2+1));%调制信号频率 frqY=[0:length(Y)-1]*Fs/length(Y); Fc=100;%载波频率
y1=amod(a1*y,Fc,Fs,'amssb'); Y1=fft(y1);
%Y1=abs(Y1(1:length(Y1)/2+1));
frqY1=[0:length(Y1)-1]*Fs/length(Y1); subplot(221) plot(t,y);
%axis([0 100 0 100]); title('调制信号'); subplot(222); plot(frqY,Y);
title('调制信号频谱'); subplot(223); plot(t,y1);
title('SSB信号'); subplot(224); plot(frqY1,Y1);
%axis([-5 5 0 max(Y)]); title('SSB信号频谱')
相移法: close all clc clear
%设置仿真参数 global dt t f df N N=2^10; dt=0.01; df=1/(N*dt); T=N*dt; Bs=N*df/2;
t=linspace(-T/2,T,N);
31
f=linspace(-Bs,Bs,N)+eps;
%调制信号与载波 fm=5000; fc=100000; A1=5; A2=10;
mt=A1*cos(2*pi*fm*t); ct=A2*cos(2*pi*fc*t); S1=t2f(mt);
Ps1=S1.*conj(S1)/T; %已调SSB信号 mt1=hilbert(mt);
ssb=A1*real(mt1.*exp(i*2*pi*fc*t)); S2=t2f(ssb);
Ps2=S2.*conj(S2)/T;
subplot(2,2,1); plot(t,mt);
title('调制信号波形'); axis([0 2 -5 5]);
subplot(2,2,2); plot(f,Ps1);
axis([-30 30 0 0.5]); title('调制信号功率谱'); xlabel('f (KHz)'); ylabel('Pr(f) (w)');
subplot(2,2,3); plot(t,ssb);
title('SSB调制信号波形'); axis([0 2 -30 30]);
subplot(2,2,4); plot(f,Ps2);
axis([-100 100 0 2.5]);
title('SSB调制信号功率谱'); xlabel('f (KHz)'); ylabel('Pr(f) (w)');
32
因篇幅问题不能全部显示,请点此查看更多更全内容