典型滤波器的SystemView设计与仿真
通信技术的飞速发展使得通信系统日趋复杂,通信系统设计的EDA技术在研发阶段实现软件仿真已成为时尚。文章介绍了通信仿真软件SystemView的系统组成及主要特点,结合数字滤波器仿真,介绍了该软件的使用方法。该软件系统是用于现代工程与科学系统设计、模拟的动态系统分析软件,是一个功能强大、有多种用途的工具平台,适用于教学和指导大型通信控制系统的仿真与设计。
本设计论文首先介绍了本课题的课题背景和目的意义,而后在第二章对数字滤波器进行了简要的介绍,第三章以FIR和IIR滤波器为例,详细说明了MATLAB和SystemView进行的仿真。第四章作者应用SystemView作了一个直序扩频系统的仿真。
通过本论文的介绍,可以看到SystemView是一种非常方便实用的仿真软件,在现今的教学和软件设计中起到举足轻重的作用。
关键词:SystemView,MATLAB,FIR滤波器,IIR滤波器,直序扩频系统的仿真
ABSTRACT
The rapid development of communicaTIon technology makes communicaTIon system more and more complex. Using the EDA technique in designing communicaTIon system to realize software simulaTIon in the research and exploitation period has been popular. This paper describes the composition of the software system. Combining with FIR and IIR filter simulation, it also introduces the method of how to use the software. SystemView is a tool platform with powerful functions and various uses, which can be used in modern engineering and science system design and analog, especially in the simulation and design of communication system.
In the beginning of this paper, the author first shows us the backdrop and significance of this discussion. Then, in the chapter 2,there are some brief introductions of digital filter, which is the example we have to carry out in this whole paper. Chapter 3 is the main part of this paper, in this part the author give us a really particular describe of the MATLAB/SystemView simulation process, using FIR/IIR filter as the simulation object. Last but not least, the chapter 4 is the expanding part in this paper; the author does an exactitude simulation of the process of Direct-sequence spread spectrum.
Via the introduction of this paper, the readers can get a brief opinion of SystemView, this extremely useful simulating software, it do earn our emphasis during the teaching and software designing nowadays.
KEY WORDS SystemView,MATLAB,FIR filter,IIR filter,Direct-sequence spread spectrum
目 录
第一章 绪 论 1
1.1 课题概述 1
1.1.1 课题背景 1
1.1.2 课题研究目的意义 2
1.2 论文结构 2
第二章 滤波器原理 4
2.1数字滤波器的基本概念 4
2.1.1基本概念 4
2.1.2 数字滤波器的分类 4
2.2数字滤波器设计方法概述 6
2.2.1 IIR滤波器设计 6
2.2.2 FIR滤波器设计 7
2.3 仿真软件的简介和选择 7
2.3.1 MATLAB简介 7
2.3.2 SystemView简介 8
2.3.3 其它软件介绍 9
2.3.4 仿真软件选择 9
第三章 典型滤波器的SystemView设计与仿真 10
3.1 MATLAB仿真 10
3.1.1 FIR数字滤波器的设计 10
3.1.2椭圆模拟滤波器的设计 14
3.2 SystemView仿真 15
3.2.1椭圆滤波器仿真 15
3.2.2椭圆滤波器效果验证(方波信号的合成分解) 16
1.信号分解与合成原理 16
2.仿真系统实现 17
3.2.3 FIR滤波器仿真 20
3.2.4 FIR滤波器效果验证(奈奎斯特准则仿真) 22
3.3 SystemView调用第三方M-LINK模块 24
3.3.1 M-LINK的主要功能 24
3.3.2 建立SystemView下的MATLAB函数库 25
第四章 仿真应用–直接序列扩频仿真 28
4.1 直接序列扩频原理 28
4.1.1 扩频技术的理论基础 28
4.1.2 直接序列扩频原理 29
4.2 直接序列扩频系统的仿真 30
第五章 结论 37
参考文献 38
致 谢 39
附 录 40
第一章 绪 论
在传统的系统设计方法中,一般将设计过程划归为系统设计和算法研究和硬件和软件的实现两大类。由于两类设计在设计工具、语言,甚至于设计者知识背景方面都存在着很大的差异,所以,设计链很容易被打断,系统设计仿真和工程实现之间容易被隔离。这样的设计很难保证一次性成功,往往要经过多次地修改才能完成。
实现将系统级设计工具完成的设计结果自动映射成为工程实现。一直是系统设计研究人员努力达到的目标。目前,离最终实现这一目标虽然还有一段距离,但在很多新版本的仿真工具中已经具有这样的功能。
Elanix公司发布的SystemView 软件就是一个优秀的仿真软件[1]。
1.1 课题概述
1.1.1 课题背景
销售额
时间
图1.1 产品利润与其上市时间的关系
在现今市场经济的时候,设计周期短和上市快是所有厂商坚持不懈的追求。正如上图中,即表明了产品上市时间与其利润之间的关系。这说明,一个企业如果能够比其竞争对手更快地推出新产品,更快地对市场作出反应,即可获取更大的市场份额和更大的利润。
系统设计仿真即用计算机帮助设计人员完成繁琐的设计工作,是解决以上问题的有效途径。
随着仿真技术的飞速发展,新的设计工具不断涌现。其中一个很显著的特点是新的仿真设计工具越来越具有强大而全面的功能。例如,Cadence公司的SPW以及Elanix公司的SystemView 等。这些软件工具的产生,主要是由于传统的分隔各层次的设计方法越来越不能适应目前超大规模复杂设计的需要。
1.1.2 课题研究目的意义
本课题的研究内容主要涉及数字滤波波器的MATLAB和SystemView仿真。目的是希望对MATLAB和SystemView的仿真有一个较为明确的了解,体会仿真软件强大的功能和现实的意义,以及对滤波器的设计和功能有一个全面的了解。
随着电子技术和计算机信息技术的迅速发展,信息设备更新换代速度日益加快,市场寿命周期越来越短,致使传统的电子设计和分析工具己经无法满足市场需要在此背景下,EDA即电子设计自动化技术应运而生,现已成为提高电子产品质量和技术水平的一项必不可少的技术。
EDA技术的发展改变了传统电子技术类专业教学方法、设计手段,此类技术已经应用于多种专业的教学软件中。系统仿真是根据被研究的电子系统建立仿真模型,然后在计算机上进行分析、计算和研究。由于它在计算机上直观简单,使学生对一些如《信号与系统》、《通信原理》等比较抽象难懂学科中的问题,可以利用仿真软件放到计算机界面上,并可直观清楚地观察信号的传输、信号通过系统的响应、信号的频谱及其搬移情况、可以帮助学生对课堂所学的较难理解的理论有更清楚、深刻的认识,提高学习兴趣并由此而改善此类课程的教学效果;同时,也可供工程技术人员对新技术产品研发之用[1]。
本论文研究的意义即是对典型滤波器进行仿真,可用于教学,使学生更深刻领会数学信号处理中的较难理论,亦可用于产品研发之中,作为一个零部件的设计仿真之用。在本论文的应用扩展部分,本人将以一个更加完整的实例体现仿真软件的强大功能,说明滤波器在通信系统中的作用。
1.2 论文结构
本文共分四部分:
在本文的开始,首先介绍了课题研究的背景和研究的意义。
在第二章中,为了提出仿真的具体实现方法,作者对所要实现的数字滤波器的原理作了介绍。
在第三章,首先对仿真软件做了一定的介绍,而后对本文中将使用的仿真软件作出选择。并选用SystemView和MATLAB两种仿真软件,在滤波器数学模型的基础上对典型滤波器–椭圆模拟滤波器和FIR(有限脉冲响应)数字波器的特性进行仿真。并设计了一个仿真系统(如信号的合成与分解)和一个奈奎斯特准则仿真系统来阐明其滤波作用。然后根据SystemView的强大功能,在其环境下直接调用MATLAB的函数来实现它与MATLAB第三方库模块–M-link库的可靠连接,并利用对滤波器特性的仿真效果分析这两种方法下的滤波器的滤波作用。
在第四章中,作者利用SystemView的强大功能,设计了一个更加完整的应用实例,以此来说明滤波器在通信系统中的作用。
文中最后部分对该文所做的设计工作做了总结。
第二章 滤波器原理
2.1数字滤波器的基本概念
2.1.1基本概念
所谓数字滤波器,是指输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。因此,数字滤波的概念和模拟滤波相同,只是信号的形式和实现滤波方法不同。正因为有该不同点,数字滤波器具有比模拟滤波器精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配以及实现模拟滤波器无法实现的特殊滤波功能等优点。如果要处理的是模拟信号,可通过A/DC和D/AC,在信号形式上进行匹配转换,同样可以使用数字滤波器对模拟信号进行滤波[2]。
2.1.2 数字滤波器的分类
数字滤波器按照不同的分类方法,有许多种类,但总起来可以分成两大类。一类称为经典滤波器,即一般的滤波器,特点是输入信号中有用的频率成分和希望滤除的频率成分各占有不同的频带,通过一个合适的选频滤波器达到滤波的目的。例如,输入信号中含有干扰,如果信号和干扰的频带不重叠,可滤除干扰得到纯信号。但对于一般滤波器如果信号和干扰的频带重叠,则不能完成对干扰的有效滤除,这时需要采用另一类所谓的现代滤波器,例如维纳滤波器、卡尔曼滤波器、自适应滤波器等最佳滤波器。这些滤波器可按照随机信号内部的一些统计分布规律,从干扰中最佳地提取信号[3]。
一般数字滤波器从功能上分类,和模拟滤波器一样,可以分成低通、高通、带通和带阻等滤波器。它们的理想幅度特性如图2.1所示。这种理想滤波器是不可能实现的,因为它们的单位脉冲响应均是非因果且是无限长的,我们只能按照某些准则设计滤波器,使之尽可能逼近它,这些理想滤波器可作为逼近的标准用。另外,需要注意的是数字滤波器的传输函数 都是以2π为周期的,滤波器的低通频带处于2π的整数倍处,而高频频带处于π的奇数倍附近,这一点和模拟滤波器是有区别的。
数字滤波器从实现的网络结构或者从单位脉冲响应分类,可以分为无限脉冲响应(IIR)滤波器和有限脉冲响应(FIR)滤波器。
系统函数分别为
(2.1)
和 (2.2)
ω
2π π 0 π 2π
(a)低通滤波器
ω
2π π 0 π 2π
(b) 高通滤波器
ω
2π π 0 π 2π
(c) 带通滤波器
2π π 0 π 2π
(d) 带阻滤波器
图2.1 理想低通、高通、带通、带阻滤波器幅度特性
2.2数字滤波器设计方法概述
滤波器的设计是所有通信电路、通信系统中必不可少的部分。数字滤波器设计的最终目的是得到传递函数为指定 (其中 为数字角频率)的线性系统。由于在计算机上不能获得连续变化的量,因此,在计算机上实现的系统实质上都是离散的,即数字滤波器。利用计算机辅助设计滤波器,须根据各种有关理论并利用各种工具,计算得到传递函数为H(z)的离散线性系统,使之依照 的关系可以得到对应的 [3]。
如下是关于滤波器补充的一些基本知识:
设某离散线性系统的输入序列与输出序列分别为x(n)、y(n),它们满足以下递推差分方程:
(2.3)
且x(n)、y(n)对应的Z变换结果分别是X(z)、Y(z),则该线性系统的传递函数为 ,该传递函数的反Z变换结果即为该系统在冲激信号下的响应,即冲激响应h(n)。一般来说,对应于上述递推差分方程,H(z)的基本形式为
(2.4)
设计数字滤波器,也就是要设计H(z)表达式中的各项系数 和 。
2.2.1 IIR滤波器设计
在最一般情况下, 不全为零。此类滤波器的冲激响应是时间无限的,因此称为无限冲激响应滤波器,简称为IIR滤波器。
模拟的网络综合理论已经发展的很成熟,在该领域产生了很多高效的设计方法,使模拟滤波器的设计方便、准确;因此,常常利用模拟滤波器来设计数字滤波器。通过连续系统与离散系统之间的等效性,利用离散空间到连续空间的变换,IIR滤波器可对应于连续域的模拟滤波器。常用的空间映射方法有双线性变换法和冲激不变法。
利用模拟滤波器逼近设计数字滤波器时,常用的模拟滤波器类型有巴特沃斯型、切比雪夫型、贝塞尔型、椭圆型、线性相移型等。根据滤波器幅频特性的不同,每种滤波器又有低通、高通、带通、带阻等类型。在设计过程中,首先以标准低通滤波器为基础,逼近设计的目的是寻找一个表征因果稳定系统的传递函数,使其幅频/相频特性接近于理想特性。然后再利用通带变换,把所设计的幅频/相频特性变换到所需的频带上去,就完成了该滤波器的设计。
在根据具体要求或指标设计IIR滤波器时,首先根据指定的各项性能指标,在连续域内设计模拟滤波器的传递函数H(s)(如果给定的是数字滤波器的指标,应根据数字频率与模拟频率之间的关系,将数字滤波器的指标变换为模拟滤波器的指标)。按照要求完成模拟滤波器H(s)的设计后,只需按照双线性变换的对应关系
(2.5)
将式中的s代换为z,即可完成IIR滤波器的设计。同样,也可采用冲击不变法,将连续域的模拟滤波器映射为离散域的数字滤波器[4]。
2.2.2 FIR滤波器设计
当H(z)表达式中分母上的各项系数 均小于零时,H(z)表达式简化为
(2.6)
其对应的差分方程为 (2.7)
此时,该系统的冲激响应在时间上是有限的,故此类系统称为有限冲激响应滤波器,简称为FIR滤波器。FIR滤波器与IIR滤波器相比,有如下优点:它可以保证系统的稳定性;它的具体实现对应有快速算法;它可以保证系统是线性相移的,因此,可以在通带内不产生相位失真。故在数字系统设计中较多采用FIR滤波器。
在FIR滤波器设计中,从时域出发和从频域出发分别有不同的设计方法。一种方法是窗口设计法。它是从时域的冲激响应出发的设计方法。首先对设计的目标频率响应 进行反傅里叶变换,得到的是时间无限的冲激响应 ,再用一定形状的时间窗口,对该无限的冲激响应进行时间截取以获得时间有限的冲激响应h(n),并要求所得到的冲激响应的Z变换H(z)经映射可逼近原来的 。为了使时间截取对系统频率响应造成的影响较小,常用的时间窗口有矩形窗、海明窗、汉宁窗、凯塞窗等。另一种方法是频率采样法。即直接从频域出发,对设计的目标频率响应采样,以此来确定所需的传递函数,使设计所得的传递函数逼近理想的传递函数,至少在采样点上使之具有相同的频率响应,以此完成数字滤波器的设计[4]。
2.3 仿真软件的简介和选择
2.3.1 MATLAB简介
MATLAB是美国MathWorks公司自20世纪80年代中期推出的数学软件,优秀的数值计算能力和卓越的数据可视化能力使其很快在数学软件中脱颖而出,已经发展成为多学科、多种工作平台的功能强大的大型软件。MATLAB已经成为线性代数、自动控制理论、概率论及数理统计、数字信号处理、时间序列分析、动态系统仿真开发具等高级课程的基本教学工具。
MALTLAB特点包括:
1. 运算符丰富,提供了和C语言几乎一样多的运算符;
2. 高级但简单的程序环境, MATLAB既具有结构化的控制语句,又有面向对象编程的特性;
3. 程序限制不严格,程序设计自由度大。有大量事先定义的数学函数,并且有很强的用户自定义函数的能力;
4. 程序的可移植性很好;
5. MATLAB的图形功能强大。具有教育、科学和艺术学的图解和可视化的二维、三维图;
6. 语言简洁紧凑,使用方便灵活,库函数极其丰富;
7. 功能强大的工具箱是MATLAB的另一特色。MATLAB包含两个部分:核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数。其工具箱又分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。功能性工具箱用于多种学科。而学科性工具箱是专业性比较强的,如(control、signal proceessing 、commumnication) toolbox等;
8. 源程序的开放性。用户可通过对源文件的修改以及加入自己的文件构成新的工具箱[3]。
2.3.2 SystemView简介
SystemView是一个信号级的系统仿真软件,主要用于电路与通信系统的设计、仿真,是一个强有力的动态系统分析工具,能满足从数字信号处理、滤波器设计、直到复杂的通信系统等不同层次的设计、仿真要求。SystemView以模块化和交互式的界面,在大家熟悉的Windows窗口环境下,为用户提供了一个嵌入式的分析引擎。使用SystemView只需要关心项目的设计思想和过程,而不必花费大量的时间去编程建立系统仿真模型。用户只需使用鼠标器点击图标即可完成复杂系统的建模、设计和测试,而不必学习复杂的计算机程序编制,也不必担心程序中是否存在编程错误[5]。
SystemView特点:
1. 能仿真大量的应用系统
能在DSP、通讯和控制系统应用中构造复杂的模拟、数字、混合和多速率系统。具有大量可选择的库,允许用户有选择地增加通讯、逻辑、DSP和射频/模拟功能模块。特别适合无线电话(GSM,CDMA,FDMA,TDMA,DSSS)、无绳电话、寻呼机和调制解调器以及卫星通信系统(GPS,DVBS,LEOS)等的设计;能够仿真(C3x,C4x等)DSP结构;可进行各种系统时域/频域分析和谱分析;对射频/模拟电路(混合器,放大器,RLC电路和运放电路)进行理论分析和失真分析;
2. 快速方便的动态系统设计与仿真
使用熟悉的Windows界面和功能键(单击、双击鼠标的左右键),SystemView可以快速建立和修改系统,并在对话框内快速访问和调整参数,实时修改实时显示。只需简单用鼠标点击图符即可创建连续线性系统、DSP滤波器,并输入/输出基于真实系统模型的仿真数据。不用写一行代码即可建立用户习惯的子系统库(MetaSystem)。 SystemView图标库包括几百种信号源、接收端、 *** 作符和功能块,提供从DSP、通信、信号处理、自动控制、直到构造通用数学模型等的应用。信号源和接收端图标允许在SystemView内部生成和分析信号,并提供可外部处理的各种文件格式和输入/输出数据接口;
此外,SystemView还提供基于组织结构图方式的设计;允许多速率系统和并行系统 ;提供完备的滤波器和线性系统设计以及先进的信号分析和数据块处理并具有很好的可扩展性和完善的自我诊断功能[6]。
2.3.3 其它软件介绍
PSpice:PSpice是一种强大的模拟和数字电路混合信号仿真软件,包括对中规模集成电路(MSI)和大规模集成电路(LSI)提供多种分析功能,而且仿真精度高,在国内普遍使用。
EWB(Electronic Workbench)软件:主要用于模拟和数字电路的仿真。高版本已更名为Multisim。相对于其它EDA软件,它提供了万用表、示波器、信号发生器等虚拟仪器。该软件的界面直观,易学易用。它的很多功能模仿了Spice的设计,分析功能也较强。
Protel软件:Protel是PROTEL(现更名为Altium)公司在20世纪80年代末推出的CAD工具。现在普遍使用的是Protel 99 SE。它是个完整的全方位电路设计系统,包含了电原理图绘制、模拟电路与数字电路混合信号仿真、多层印刷电路板设计,可编程逻辑器件设计等功能,并具有Client/Server体系结构,同时还兼容一些其它设计软件的文件格式。Protel软件功能强大、界面友好、使用方便。它最具代表性的是电路设计和PCB设计。
VHDL语言:超高速集成电路硬件描述语言(Vhsic Hardware Deseription Languagt,简称VHDL),是IEEE的一项标准设计语言。它源于美国国防部提出的超高速集成电路(Very High Speed Integrated Circuit,简称VHSIC)计划,是ASIC设计和PLD设计的一种主要输入工具。
Veriolg HDL:Verilog公司推出的硬件描述语言,在ASIC设计方面与VHDL语言平分秋色[7]。
2.3.4 仿真软件选择
经过选择,决定选用MATLAB和SystemView两种仿真软件。
主要原因是由于此论文课题为教师科研题,希望可以作为教学使用。另一方面而MATLAB和SystemView这两种软件在教学仿真中是当仁不让的不二选择。
另一方面,正如上述的介绍,MATLAB和SystemView这两种软件有 *** 作简单,容易上手,界面直观等特点,也是促使作者选用这二者的原因。
第三章 典型滤波器的SystemView
设计与仿真
3.1 MATLAB仿真
3.1.1 FIR数字滤波器的设计
1、FIR数字滤波器设计的窗口法
有限冲击响应(FIR)数字滤波器的转移函数为:
(3.1)
FIR滤波器的设计包括以下步骤:给出所需要的滤波器的技术指标;设计一个H(z)使其逼近所需要的技术指标;实现所设计的H(z)。
FIR滤波器的冲激响应就是系统函数各次项的系数,所以设计FIR滤波器的方法之一是:从时域出发,截取有限长的一段冲激响应作为H(z)的系数,冲激响应长度N就是系统函数H(z)的阶数。只要N足够长,截取的方法合理,总能够满足频域的要求。这就是FIR滤波器的窗口设计法。目标是设计一个线性相位的FIR数字滤波器,要求的理想频响为 ,它是 w的周期函数。
因此,可以展开成傅里叶级数: e (3.2)
式中:h (n)为傅里叶系数。但是,我们不能以作为h (n)设计FIR数字滤波器的h (n),因为h (n)一般是非因果的,且无限长,物理上是不可实现的。为了解决这个问题,可以先把无限长的h (n)的截短为有限长序列,然后把有限长序列右移使之成为因果序列入h(n)。用h(n)近似h (n)设计出来的FIR滤波器,其频响 一定也是理想频响 的近似。以上方法中的截短就是加窗,所以称窗口设计[5]。
2 FIR数字滤波器设计的频率采样法
窗口法是以h (n)为媒介的时域设计法,而滤波器指标往往是在频域给出的,为此,要由 算出h (n),加窗后又从h(n)算出h (n)来检验。当理想频响 是任意曲线,或者不存在明确的解析表达式时,求H(n)就困难一些。因此,我们不得不想:能否不要频域一时域一频域地反复,而直接从频域来设计呢?这就是采用FIR滤波器的频域设计法一频率采样法。频率采样法先对理想频响 采样,得到样值H(k),再利用插值公式直接求出系统转换函数H(z),以便实现;或者求出频响H(e ),以便与理想频响进行比较。
在[O,2π]区间上对H(z)进行N点采样,等效于时域以N为周期延π。
频率采样法的步骤可归纳为:
a)给定理想频响 。
b)确定采样点数,对理想频响采样得到H(k)。
c)代入下式,即得FIR数字滤波器的转移函数:
H(z)= (3.3)
频率采样法可以看做为插值法,这种方法的缺点是通带和阻带的边缘要精确确定[4]。
3 FIR数字滤波器设计的切比雪夫逼近法
在上面的两个部分中,我们介绍了数字滤波器的窗口设计法和频率抽样法,用这两种方法设计出的滤波器的频率特性都是在不同意义上对所给理想频率特性 的逼近。从数值逼近的理论来看,对某个函数f(x)的逼近一般有三个方法:插植法;最小平方逼近法;最佳一致逼近法。所谓插值,即寻找一n阶多项式(或三角多项式)P(x),使它在N+1个点X , X …X 处满足P(x )=f(x ),k=0,l,⋯ ,n 。而在非插值点上,P(x)是 f(x )的某种组合。当然,在非插植点上,p(x)和f(x)存在一定的误差。频率抽样法可以看作为插值法,它在抽样点w 上保证了H(e )= H (e )而在非抽样点上,H(e )是插值函数S(w,k)的线性组合,其权重是H (e )。这种设计方法的缺点是通带和阻带的边缘不容易精确的确定。
最小平方逼近是在所需要的范围内,如区间[a,b]:使积 为最小。设计方法是着眼于使整个区间[a,b]的总误差为最小,但它并不一定能保证在每个局部位置误差都最小。实际上,在某些位置上,有可能存在着较大的误差。实际上,傅立叶级数法就是一种最小平方逼近法。该方法在间断点处出现了较大的过冲(Gibbs现象)。为了减少这种过冲和欠冲,采用了加窗口的方法,当然,加窗口以后的设计方法,已不再是最小平方逼近。
最佳一致逼近法,是着眼于在所需要的区间[a,b]内,使误差函数E(x)=|p(x)-f(x)|比较均匀一致,并且通过合理地选择p(x),使E(x)的最大值E 达到最小。切比雪夫逼近理论解决了p(x)的存在性、唯一性及如何构造等一系列问题。
切比雪夫最佳一致逼近的基本是,对于给定区间[a,b]上的连续函数p(x),在所有n次多项式的集合中,寻找一多项式 ,使它在[a,b]上对f(x)的偏差和其他一切属于集合的多项式p(x)对f(x)的偏差相比是最小的,即
(3.4)
切比雪夫逼近理论指出,这样的多项式 是存在的,且是惟一的,并指出了构造这种最佳一致逼近多项式的方法,这就是有名的”交错点组定理”,该定理可描述如下:
设f(x)是定义在[a,b]上的连续函数,P(x)是集合中一个多项式,并令
E = (3.5)
以及E(x)= ,p(x)是f(x)最佳一致逼近多项式的充要条件是,E(x)在[a,b]上至少存在n+2个交错点n≤x ≤…≤x ≤b,使得
E(x )=±E .i= l,2,⋯ ,n+2 (3.6)
且 E(x ) =-E(x ),i=l,2,⋯ ,n + 2 (3.7)
这n+2个点即是”交错点组”,显然x ,x ,x 是E(z)的极值点。n阶切比雪夫多项式
(3.8)
在区间[-l,1]存在n+1个点 ,轮流似的 取得最大值+1和最小值一l, 是x的多项式,且最高项 的系数是 ,可以证明,在所有n阶多项式中,多项式 / ,和0的偏差最小。这样,如果我们在寻找P(x)时,能使误差函数为某一个 ,那么,这样的P(x)将是对f(x)的最佳一致逼近[4]。
使用MATLAB语言来设计FIR数字滤波器
除了上面几种主要的设计方法,我们设计滤波器也可以采用MATLAB本身的来实现。MATLAB语言的应用很广泛,特别是在数字信号的处理方面,因为它有着强大的仿真功能。
以上述的各种方法一一在MATLAB中实现。
1.窗函数法
以一个线性相位FIR低通滤波器为实例,其性能指标为:通带边界频率ωp=0.5π,阻带边界频率ωS=0.66π,阻带衰减不小于40dB,通带波纹不大于3dB。
在此例中,阻带衰减不小于40dB,选取汉宁窗。
用MATLAB编程程序见附录1。
程序运行后,即得所设计FIR线性相位滤波器的频率特性。如图3.1和3.2所示。
图3.1 FIR线性相位滤波器的频率特性
图3.2 FIR线性相位滤波器的相位特性
2.频率采样法
以前面的线性相位FIR低通滤波器为实例,其性能指标为:通带边界频率ωp=0.5π,阻带边界频率ωS=0.66π。在此法设计中,没有用到允许最大最小衰减等设计指标。
用MATLAB编程程序见附录2。
程序运行后,可以看到所设计FIR滤波器的幅频特性、冲激响应和衰减特性曲线等。
如下图3.3、3.4、3.5所示。
图3.3 所设计的FIR滤波器频率特性
图3.4 所设计的FIR滤波器相位特性
3.切比雪夫逼近法
继续实现之前的线性相位FIR低通滤波器。通带边界频率ωp=0.5π,阻带边界频率ωS=0.66π,阻带衰减不小于40dB,通带波纹不大于3dB。
由此可以写出MATLAB程序见附录3。
程序运行后,可以看到所设计FIR滤波器的幅频特性。
图3.5 FIR滤波器的幅频特性
3.1.2椭圆模拟滤波器的设计
MATLAB还可用于模拟滤波器的设计。
椭圆的模拟低通滤波器原型的平方幅值响应函数为
(3.9)
式中,μ为小于1的正数,表示波纹情况;ωC为截止频率; 为椭圆函数,定义为
当N为偶数(N=2m)时,
(3.10)
当N为奇数(N=2m+1)时,
(3.11)
其中,
椭圆模拟滤波器的特点是:在通带和阻带内均具有等波纹起伏特性。和其它滤波器原型相比,相同的性能指标所需的阶数最小。但相频响应具有明显的非线性。
此外,在MATLAB中,有一个专门的函数ELLIP可用于椭圆模拟滤波器设计。其调用格式为
[b,a]= ellip(n,RP,RS,ωn,’s’)
[b,a]= ellip 2(n, RP,RS,ωn,’ftype’,’s’)
[z,p,k]= ellip 2(…)
[A,B,C,D]= ellip 2(…)
其中,RP为通带波纹(dB),RS为阻带衰减(dB)[8]。
下面以一个高通椭圆模拟滤波器为例,假定此滤波器的设计性能指标为:通带边界频率ωp=1500Hz,阻带边界频率ωS=1000Hz,通带波纹RP=0.5dB,阻带衰减RS=20dB。
用MATLAB编定程序见附录4。
运行结果,滤波器为3阶。滤波器的幅频特性如图3.7所示。
图3.6 椭圆滤波器幅频特性
3.2 SystemView仿真
本文采用了SystemView和MATLAB两种仿真软件,在滤波器数学模型的基础上借助SystemView对典型滤波器–椭圆模拟滤波器和FIR(有限脉冲响应)数字滤波器的特性进行仿真分析。
3.2.1椭圆滤波器仿真
点击选择菜单条上的”Filter/Analog”或单击”Analog”按钮,可以设计五种模拟滤波器。它们是:巴特沃斯、贝赛尔、切比雪夫、椭圆、线性相位。这些滤波器可以是低通、高通或带通。所选择的滤波器的一般形状由滤波器的类型决定,需要输入的数据是滤波器的极点数、-3dB带通或截止频率、相位纹波系数、增益等参数,按”Finish”完成设计[10]。
以在MATLAB中已仿真过的高通椭圆模拟滤波器为例,假定此滤波器的设计性能指标为:通带边界频率ωp=1500Hz,阻带边界频率ωS=1000Hz,通带波纹RP=0.5dB,阻带衰减RS=20dB。
按”Gain”可看到如下图3.7所示的增益响应波形图
图3.7 椭圆滤波器增益响应波形图
按”Time”可看到如下图3.8中的特性曲线
图3.8 椭圆滤波器特性曲线
由此,我们可看出其特性仿真与MATLAB中的仿真结果是相吻合的。
3.2.2椭圆滤波器效果验证(方波信号的合成分解)
在此节中,为了更好的论证椭圆滤波器的特性,设计了一个仿真系统–方波信号的合成与分解,借此阐明其滤波作用。
1.信号分解与合成原理
为了便于研究信号传输和信号处理等问题,往往将一些信号分解为比较简单(基本)的信号分量之和。分解的方法有多种,常见的分析方法有:直流分量与交流分量,偶分量与奇分量,脉冲分量和正交函数集等。其中将信号分解为正交函数集的研究方法在信号与系统理论中占有重要地位。傅立叶分析法是常见的一种,一个偶对称的矩形信号可分解为:
(3.12)
其中:k=1,3,5,…
它只含有1,3,5等奇次谐波分量[9]。
分解方法如图所示。
图3.9 方波分解原理框图
图中将输出信号加到一个滤波器组,其中每一个单元滤波器中心频率等于信号的各次谐波频率。在滤波器输出端得到分开来的基频信号和各次谐波信号。
将图3.9所得到的基波和各次谐波分量送到一个加法器输入端(如图3.10所示)重新合成,合成后的波形从加法器输出端得到。
图3.10 方波合成方案原理框图
2.仿真系统实现
在SystemView环境上,用线性滤波器,加法器,乘法器可实现波形合成与分解。对应的仿真系统模型如图3.11和3.12所示。图3.11所示为信号分解仿真模型,被分解信号为方波,将方波信号分解为前6个不为零的谐波分量。图3.12为信号合成系统模型,将分解后的信号合成。
图3.11 信号分解仿真模型
图3.12 信号合成仿真模型
如图3.9所示,将信号进行选频滤波,滤出第1、3、5、7、9和11次谐波(偶次谐波为0),系统取样速率为1000Hz,取样点数为20480,滤波器的带宽取2Hz。多取一些点数是为了减少截断误差。使FFT更接近周期信号的离散频谱。
观察图3.13和图3.14可以看原方波以及经滤波器分解后的各谐波叠加波形,由此可以清楚地看出各次谐波与原信号的频率关系。
图3.13 原方波波形
图3.14经滤波器分解后的各谐波叠加波形
图3.15 方波信号频谱图
图3.16 6个低次谐波频谱合成图
观察图3.15:方波信号频谱图和图3.16:6个低次谐波频谱合成图可以看出原方波信号的频谱以及分解后的几个低次谐波频谱。从原理上讲,方波信号的谐波是无限的。仿真选择了最低的6次谐波,从3.16图中很清楚地看出,这6次谐波已经占去了原频谱的大部分能量。实际上这样的处理在工程上往往已经满足需要,这一点可在图3.17看出。而误差也会随着谐波次数的增加而减小。
图3.17 6个低次谐波合成后的信号波形
在实际工程中,误差是不可能消除的,这些误差是由忽略高次谐波分量造成的。因此在工程上可以根据信号分析的误差要求,确定截取的谐波次数。一般来说,选择前10项谐波合成的信号已基本满足工程要求。
我们从仿真结果中可以清楚的看到,椭圆滤波器可以将方波信号分解成多个不同幅值、不同频率的正弦波信号,满足了理论中分解情况。同时又将分解后的正弦波重新合成,得到较好的方波信号,椭圆滤波器实现了其滤波作用。
3.2.3 FIR滤波器仿真
FIR滤波器仿真过程
在SystemView中,通过选择菜单条上的”FIR”或直接按滤波器设计栏下的”FIR”按钮可以进入到FIR滤波器设计窗口。左右各有两组FIR滤波器,共14种。当选择了其中任何一个滤波器后,都会出现一个相应的设计窗口,用户可以输入滤波器的通带宽度、过渡频带以及截止频率等滤波器参数。此外,还能对相应形式的滤波器设置通带内的纹波系数[9]。
以之前在MATLAB里已实现的线性相位FIR低通滤波器为实例,其性能指标为:通带边界频率ωp=0.5π,阻带边界频率ωS=0.66π,阻带衰减不小于40dB,通带波纹不大于3dB。
主要步骤为:
第一步,先确定系统采样速率,因为低通滤波器的带宽为100Hz,选择1KHz的系统采样速率比较合适。
第二步,在设计窗口放置一个算子图符,并选择使用线性系统的FIR滤波器设计。在FIR滤波器设计窗口上选择低通滤波器”Lowpass”按钮后,再按”Design”按钮,屏幕上将出现如图3.18所示的低通滤波器设计窗口。在这个窗口的下边是一组用来确定滤波器抽头、通带内纹波以及最大迭代次数的文字框,其中的数字用于计算FIR抽头系数的算法中。
图3.18 低通滤波器设计窗口
第三步,在窗口中将滤波器通带内增益设为0dB,通带转折频率设为0.25,截止频率设为0.33,截止带内增益设为-40dB。带内纹波0.5dB,最大叠代次数默认25。采用系统自动优化抽头数,选择自动优化”Enable”按钮。经过计算,实现滤波器所需要的抽头数会出现在这个按钮左边的文字框内。这样选择的抽头数最佳。
当设计参数输入结束后,单击”Finish”按钮进行系数计算,在进行计算时,会有一个进度条出现以指示系数计算的状态。计算结束后,滤波器的时域单位响应曲线会出现在图形显示区内。如图3.19所示。
图3.19 时域单位响应曲线
单击增益”Gain”选项,可以看到如图3.20所示的增益响应波形图。
图3.20 FIR滤波器增益响应曲线
单击”phase”选项,也可看到如图3.21所示的相位响应。
图3.21 FIR滤波器相位响应曲线
可看到,SystemView的仿真结果与MATLAB几乎如出一辙。
3.2.4 FIR滤波器效果验证(奈奎斯特准则仿真)
为了更好的论证FIR数字滤波器的特性,设计奈奎斯特准则仿真系统,阐明FIR数字滤波器的滤波作用。
奈奎斯特第一准则:
信号在无噪声的信道中传输时,对于二进制信号的最大数据传输率Rmax与通信信道带宽B(B=f,单位是Hz)的关系可以写为: Rmax=2*f(bps) [4]。即规定带限信道的理想低道截止频率为fH时,最高的无码间干扰传输的极限速度为2fH。
图3.22 奈奎斯特准则仿真系统
如仿真图3.22所示,该电路中信号源(图符0)为幅度1V,码速率为100bps的伪随机信号。用一个抽头数为259的FIR低通滤波器(图符5)来近似模拟理想的传输信道,滤波器的截止频率设为50Hz,在60Hz处有-60dB的衰落。因此,信道的传输带宽可近似等价为50Hz,该频率正好是传输信号的奈奎斯特带宽。基带数据在输入信道之前,先通过一个升余弦滚降滤波器(图符1)整型,以保证信号有较高的功率而无码间干扰。滚降系数设置为0.3,信道的噪声用高斯噪声(图符13)表示。图符8、9、11完成接收端信号的抽样判决和整形输出。抽样器的抽样频率与数据信号的数据率一致,设为100Hz 。为了比较发送端和接收端的波形,在发送端接收器前(图符3)和升余弦滚降滤波器(图符1)后各加入一个延迟图符。
下图3.23所示为通过升余弦滚降滤波器后的信号与原输入信号的波形叠加。
图3.23 经过升余弦滚降滤波器整形后的信号与原信号叠加
图3.24为输入信号波器与接收信号波器的叠加,可观察到收发波形基本一致,加入一定幅度的噪声仍然能正常传输。奈奎斯特第一准则得以验证。将输入信号的波特率由100bps改为110bps,此时的条件已不满足奈奎斯特第一准则,重新运行系统,可观察到信号传输错误,如图3.25所示。改变噪声幅度,错误波形可能增多。
图3.24 输入信号与输出信号的波形叠加
图3.25 不满足奈奎斯特第一准则时输出信号中的错误脉冲
从仿真结果中,我们可以看到FIR数字滤波器将高斯噪声很好的滤除,得到与原伪随机码相一致的信号,滤波效果明显。
3.3 SystemView调用第三方M-LINK模块
3.3.1 M-LINK的主要功能
为了与MATLAB联合设计仿真系统,SystemView专门提供了一个接口–M-LINK。它的主要功能如下:
1、将已经设计好的MATLAB仿真模块(.m或MEX的.DLL文件)接入SystemView直接使用。
2、在SystemView利用MATLAB提供的第三方库文件。
3、在SystemView下用MATLAB编写用户自定义的模块。
4、在SystemView和MATLAB之间输入输出信号和数据。
5、利用SystemView和MATLAB的仿真分析工具检查仿真结果。
6、直接在SystemView中创建、编辑、调试MATLAB的程序。
将MATLAB功能函数中的参数传递给SystemView作为变量或全局常数。
在SystemView中可以包含任意多个MATLAB功能函数,而且这些功能函数可以随时添加、修改、新建和删除。
所有这些 *** 作都可以通过SystemView提供的友好的交互式界面完成,这些交互式界面与用户熟悉的其它SystemView交互式界面完全相似。用户只需要利用鼠标器简单地点击和输入参数即可完成。
SystemView的M-LINK图符不但支持标量处理,而且也支持矢量处理。软件可自动为图符分配缓冲区,当仿真执行时,输入缓冲区被填满而输出缓冲区被清空。当图符为标量处理时,缓冲区长度会自动设为1,输入数据被立即处理并输出结果。输入输出之间没有任何延时。但如果是矢量处理,则缓冲区的长度会根据输入输出之间的矢量关系自动调整缓冲区的大小,此时在输入输出之间会存在一定长度的群延时。这个群延时的大小取决于输入的速率和缓冲区的大小。
使用SystemView的M-LINK功能必须安装MATLAB并运行MATLAB引擎(engine),如果没有启动MATLAB引擎,在进行仿真时SystemView会自动装载该引擎,并调用其相应的功能[10]。
3.3.2 建立SystemView下的MATLAB函数库
MATLAB功能函数的建立过程为:
首先,在SystemView的设计窗口中放置一个M-LINK图符然后双击该图符,出现如图3.26所示的MATLAB库管理窗口界面。
图3.26
其中,”Matlab Functions”栏显示的是已经加入M-LINK库的MATLAB功能函数,”M-LINK Tokens”栏显示的是当前系统正在使用的MATLAB功能函数及对应的图符号。单击”Add Existing”按钮可以增加一个新的MATLAB功能函数,用户通过文件选择对话框将已经编辑好的.m文件添加到M-LINK库中。选择其中一个功能函数,并按”Remove”按钮可以将它从库中删除。选择其中一个功能函数,按”Define”按钮可定义该功能函数,如图3.27所示。
在该窗口中可以定义输入引脚、输出引脚以及参数的个数和名称,并通过函数语法定义栏对输入输出及参数进行有关的函数描述、定义。并通过”Function Picture”定义用户自定义的图符图标。根据不同的MATLAB函数功能可将其选择定义成信号源(Source)、功能函数(General)、输出接收计算器(Sink)三种类型。 如果需要创建一个新的MATLAB功能函数,则在窗口中单击”Create New…”按钮,出现如图3.28所示的MATLAB编辑/调试窗口。此时可以开始编辑一个新的功能函数,存盘后返回SystemView得到一个新的功能函数。原则上M-LINK库中的这些功能函数可以被反复使用并定义参数。定义参数的方法是,在图3.26所示的窗口中单击”Parameters”参数按钮,出现如图3.27所示的参数设置窗口。如果不需要输入参数,则没有参数输入对话框;如果只有一个参数则显示一个参数输入对话框;如果存在多个参数输入则有相应个参数输入对话框。
图3.27
图3.28
为正确地在MATLAB和SystemView之间交换数据、传递参数,必须对M-LINK中关于数据、参数传递的一些规定作一些了解。例如,定义一个对信号进行直流偏置的函数,要将一个输入信号x叠加一个直流成份(常数c)后输出为y[11]。
为了对利用M-Link进行仿真有一个具体的感性认识,作者以一个实例进行简要的说明。作为对比,同时使用SystemView算子库中的相应图符和一个由MATLAB定义的外部函数。
本例中的SystemView图符和M-link调用函数的方式的作用都是滤波。所用信号源为一方波。
所调用MATLAB函数即为之前在MATLAB滤波器仿真中已实现过的椭圆带通滤波器。此时直接调用之前已经编好的程序即可。
仿真界面如图3.29所示。
图3.29 仿真界面
在此例中,sink5输出的是通过M-link调用MATLAB函数得到的波形,而sink2输出的是直接使用SystemView的相应图符实现的相同的滤波器。在此例中作者使用的是方波信号。在图3.30和图3.31中我们可以看到这两种方式在分析窗口所得到的结果。
由结果我们可以看到,两种方式实现的结果是一模一样的。
图3.30 Sink5输出波形(调用MATLAB函数实现)
图3.31 Sink3输出波形(直接使用SystemView图符)
第四章 仿真应用–直接序列扩频仿真
在实际应用中,滤波器有很多不同的作用。它主要是在频域中对输入信号进行滤波,只允许一定条件的频率通过。通常用作滤波整形和预处理等作用。比如最典型的抽样定理的仿真中就会用到两个巴特沃斯低通滤波器,前一个低通滤波器是为了滤除频率过高的输入信号,防止出现频谱混迭现象,产生混迭噪声,影响恢复出的信号质量。后面一低通滤波器是为了从抽样序列中恢复出信号,滤除抽样信号中的高次谐波分量。
在本章节中,作者就将以抽样定理的仿真为实例,详细讲述SystemView的仿真应用,以及SystemView所仿真的滤波器在各系统中的广泛使用。
4.1 抽样定理
4.1.1 抽样定理的理论基础
模拟信号数字化的第一步是在时间上对信号进行离散化处理,即将时间上连续的信号处理成时间上离散的信号,这一过程称之为抽样。从信息传输的角度考虑,对抽样的要求应是用时间离散的抽样序列来代替原来的时间连续的模拟信号,并要求能完全表示原信号的全部信息,也就是离散的抽样序列能不失真地恢复出原模拟信号。在本次仿真中,作者所要表示的即是抽样过程和恢复原模拟信号过程,以阐述无失真的条件。
连续信号在时间上离散化的抽样过程如图4.1所示。具体地说,就是某一时间连续信号f(t),仅取f(t0)、 f(t1)、 f(t2)…f(tn)等各离散点数值,就变成了时间离散信号fs(t)。这个取时间连续信号离散点数值的过程就叫做抽样。
4.1.2 直接序列扩频原理
直接序列扩频通信系统是直接序列扩频方式构成的扩展频谱通信系统,又称伪噪声系统,通常简称为直扩系统,它是在发送端用比信息比特率高许多的一组伪噪声码序列直接去调制载波,进行扩展频谱,即其载波被一个数码率远离于信息带宽的数字序列调制,然后在接收端用相同的本地伪噪声码序列解调。它是目前最典型、应用最广泛的一种扩展频谱系统。其特点是:
1) 扩频和解扩调制器多采用结构简单且能抑制载波的平衡调制器。
2) 接收端多采用本地伪码序列对接收的信号相关解调,或用匹配滤波器来解扩信息信号。
3) 指定的接收机很容易区分通信信号和干扰信号,如果扩频信号带宽远大于数据信号带宽,则扩频系统传输带宽由扩频信号决定,而几乎与数据信号无关。
4) 发射信号容易被指定的接收机解调,而用其他不相关的接收机检测这种信号非常困难。
5) 解扩时,载有信息的中频信号再用窄带滤波器来滤除干扰,提取有用信息信号,以达到提高扩频系统抗干扰能力的要求[12]。
直接序列扩频通信系统由发射机和接收机两部分组成。在发射端,发射机将输入信息(基带信息)调制形成数字信号–二进制的数字序列信码,当对载波进行幅度键控时,二进制的”0″码使载波抑制,而”1″码使载波输出,经过一次调制的信号再经过由扩频码发生器产生的高速率扩频码序列相位键控调制。由于信码和扩展用的地址伪码都是二进制序列,又是对同一载波进行相位键控的,所以调制器实际上是将两路编码序列进行模2加以展宽信号的频谱,展宽后的信号再经过载波调制器调制到射频发送出去。直接序列系统常用双相平衡调制,以抑制载波,载波抑制的程度取决于调制器的平衡性。调制方式可以用模拟调幅、调频或相位调制,但最常见的是采用数字相位调BPSK。由此可见,一般的扩频通信系统都要进行三次调制和相应的解调:一次调制为信息调制,二次调制为扩频调制,三次调制为射频调制。
在接收端,对接收信号的解扩有两种方法,一种方法是中频解扩,即先对收到发射来的有相当宽频谱的射频信号进行混频,将其变为中频信号,经前置放大后由本地产生的与发射端相同的扩频码序列去相关解扩,送给扩频序列同步捕捉电路、扩频序列同步跟踪电路及截波同步跟踪及数据解调电路恢复成原始信息输出,实现信息数据的接收。另一种方法是射频解扩,即先用与发送端相位同步的、波形相同的扩频码序列去相关解扩,然后殖民地用本地信号去混频。以上两种方法都可以得到窄带的、受信码调制的中频信号,把这种信号再经过中频窄带滤波器将干扰滤掉。本次设计将实现的直序扩频系统基本原理图如图4.1所示。这种工作方式是直接用伪噪声序列对载波进行调制,要传送的数据信息需要经过信道编码后,与伪噪声序列进行模2和生成复合码去调制载波。接收机在收到发射信号后,首先通过伪码同步捕获发送来的伪码的精确相位,并由此产生跟发送端的伪码相位完全一致的伪码序列,作为本地解扩信号,以便能够及时恢复出数据信息,完成整个直扩通信系统的信号接收[12]。
图4.1直序扩频系统原理图
在发射机端,要传送的信息先转换成二进制数据或符号,与伪噪声码(PN码)进行模2和运算后形成复合码,再用该复合码去直接调制载波。通常为提高发射机的工作效率和发射功率,扩频系统中一般采用平衡调制器。抑制载波的平衡调制对提高扩频信号的搞侦破能力也十分有利。在接收机端,用与发射机端完全同步的PN码对接收信号进行解扩后经解调器还原输出原始数据信息。
4.2 直接序列扩频系统的仿真
以图4.1的扩频系统为基础,本文将对其进行SystemView仿真。下图4.2是作者的仿真原理图。本次仿真仅用来说明直序扩频在抗干扰方面的优越性,所以未按实际工程中使用的常规直序扩频原理建模,而是直接采用了比较简单而直接的方式来构造模型。数据信号源使用了一个较低频率(1kHz)的随机序列(图符0)通过一个1kHz的低通滤波器(图符3)来代替。扩频用的PN码采用了10kHz的PN码(图符2),这样理论上可以获得10倍的扩频增益。扩频调制也未使用通常的模2和加法运算,而是通过乘法器直接用PN码调制数据信号,合成后的扩频复合信号同样也是直接用更高的载波(图符12,100kHz)调制发射,省去了常规的平衡调制等步骤。为了观察扩频系统的抗干扰性能,使用了一个干扰信号源。该干扰信号可以是单频率窄带干扰,也可以是宽带的扫频信号,或者是高斯噪声,在这里我们使用90kHz-120kHz的扫频脉冲信号源。
图4.2 简化的直接序列扩频系统仿真结构图
为简单起见,在接收端,通过本地载波解调后的复合信号直接与原扩频PN码相乘后解扩,中间省略了有关本地PN发生器和相关的码同步电路。因为直接使用原PN码,所以理论上可认为收发两端是完全同步的。不过在实现的工程中,码同步是一个十分复杂的问题,其复杂程度也及在此问题上付出的代价往往比扩频本身要多得多。由于作者水平有限,因而在此只作一些简单的仿真,以体现直序扩频系统的基本特性。
而作为SystemView仿真滤波器的一个实例,此例中两次采用到滤波器。
第一次使用到滤波器是图符3,这个滤波器是一个1kHz的巴特沃斯模拟低通滤波器,此时的作用是使用了一个较低频率(1kHz)的随机序列(图符0)通过它来代替数据信号源。图4.3所示即是经过此滤波器后的输入信号波形,也是模拟的数据信号源。
图4.3 仿真的数据信号源
在图符1处,原信号源与PN码调制,扩频。而后在图符11处,与本地载波调制。
图4.4为还没有加干扰信号时的已调信号频谱图。此时模拟的数据信号源已通过乘法器直接用PN码调制数据信号,合成后的扩频复合信号用更高的载波(图符12,100kHz)调制发射。此时输出即是图4.4。
图4.4 没加干扰信号时的已调信号频谱图
此时我们可以看到,原数据信号源的频谱已经扩展。
图符8是我们所设置的干扰源,为一个扫频脉冲信号源。通过加法器相加后,已调信号的频谱会产生变化,此时的频谱如图4.5所示。由图可知,此时的频谱在100kHz附近有较强的干扰存在。我们设置这个干扰的目的即是验证此系统的抗干扰能力,验证此系统在这个信号的干扰下是否能够恢复出与原信号相似的波形。
图4.5 加干扰信号后的已调信号频谱图
此后是接收端仿真部分。在图符7处,已调信号与本地载波相乘解调,之后要解扩,由于PN码的同步较难实现,基于作者水平有限,故而使用之前扩频时的原PN码。
图符10是我们在此例中使用的第二个滤波器。此时作整形之用。同之前一样,这是一个1kHz的巴特沃斯模拟低通滤波器,由于我们所仿真的信号源实际是由一个随机序列经一个1kHz的巴特沃斯模拟低通滤波器而得,故而在输出时,也要使用一个相同滤波器整形。
图4.6即为解扩后整形的输出信号波形图。
图4.6 解扩后整形的输出信号波形图
从以上波形可以看出,在100kHz附近有较强的干扰存在,而解扩后的信号与输入的原信号波形基本一致,并没有受到干扰的影响。但如果不断加大噪声或干扰的幅度,当达到系统的干扰门限时,则不能准确地恢复原始波形。
接着我们着重验证此系统中两个滤波器的作用。
为了能更清楚的演示出滤波器存在与否的差别,我们建立如图4.7的一个系统。
图4.7 识别滤波器建立的系统
图中上下两部分拥有相同的结构、相同的信号源、相同的编解码和相同的干扰。此时我们可以看到,图符9和图符28的输出波形是一模一样的。在这种情况下,去掉滤波器的影响就会很明显地体现出来。
首先,我们在下半部分的流程中去掉第一个滤波器,此时的输入信号变为:
图4.7 使用滤波器一时的输入波形
图4.8 不使用滤波器一时输入波形
可看出,信号源经过巴特沃斯滤波器后,时域特性按照巴特沃斯滤波器的特性发生改变。
加入干扰源后,由Sink15和Sink22的输出可看到,两者现在的波形有较大区别。
图4.9 使用滤波器一时扩频后的波形
图4.10 不使用滤波器一扩频后的波形
最后我们可在Sink9和Sink28的波形看到最后的输出结果。
图4.11 使用滤波器一后的最后输出
图4.12 不使用滤波器一的最后输出
由以上可看到,不使用滤波器一后,最后还原的波形较之之前会有一点小小的偏移,但不会有大的变化。因而我们可以判断,滤波器一的功能主要是为模拟一个真正的直序扩频系统的模拟信号源,对最后的输出影响不大。这个滤波器作者加入时只是希望仿真显得更真实,现在证实也的确主要起到这个作用。
然后我们再看滤波器二的作用。为了使其体现得更加明显,作者还在图符14和图符26的乘法器处都添加了接收器,以输入波形。
由图4.13和4.14看来,上下两个流程直到滤波器前的波形还是完全相同的。
图4.13 使用滤波器二时刚解扩时的波形
图4.14不使用滤波器二刚解扩时的波形
然而到最后的缓冲器输出后,两种情形就发生了变化。正如图4.15和图4.16。
图4.15 使用滤波器二时的最后输出波形
图4.16 不使用滤波器二时最后输出波形
可以看到,此时的输出大为不同。
分析原因,我们看到,最后输出时的缓冲器它的作用为:输出延时,输出真假值,和上下阈值。它为正逻辑,单输入,缺省的上下阈值为0.8V和0.2V。现在我们就可以分析出此滤波器的重要性。本系统中缓冲器阈值缺省,故为默认的0.8V/0.2V。不使用滤波器时,缓冲器直接根据乘法器的输出进行判断,故得到4.16那样失真的波形。而使用滤波器后,此滤波器对之前的输出进行整形,再经过缓冲器,才能真正恢复信号源波形。
第五章 结论
综上所述.SystemView拥有全面而庞大的功能模块库和各种强有力的辅助工具,而且使用起来简单方便,非常适合作为系统设计和仿真的软件平台。在实际科研和生产中,限于经济条件,一个系统的开发往往需要先经过仿真验证之后才能投入生产,因此SystemView也就成为广大科研人员和生产者必不可少的系统开发工具。
本文主要以典型滤波器为例,阐述了以SystemView和MATLAB为代表的EDA仿真软件的现状和使用。文中所完成的主要工作如下:
(1)用MATLAB对典型滤波器–椭圆模拟滤波器和FIR(有限脉冲响应)数字波器的特性进行仿真。
(2)用SystemView对典型滤波器–椭圆模拟滤波器和FIR(有限脉冲响应)数字波器的特性进行仿真。设计两个仿真系统来阐明其滤波作用。
(3)根据SystemView的强大功能,在其环境下直接调用MATLAB的函数来实现它与MATLAB第三方库模块–M-link库的可靠连接。
(4)用SystemView设计一个实例仿真。即直序扩频系统的仿真。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)