您当前的位置:五五电子网电子知识电工技术电工文摘典型滤波器的SystemView设计与仿真 正文
典型滤波器的SystemView设计与仿真

典型滤波器的SystemView设计与仿真

点击数:7879 次   录入时间:03-04 11:33:32   整理:http://www.55dianzi.com   电工文摘

(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所示的参数设置窗口。如果不需要输入参数,则没有参数输入对话框;如果只有一个参数则显示一个参数输入对话框;如果存在多个参数输入则有相应个参数输入对话框。

上一页  [1] [2] [3] [4] [5] [6]  下一页


本文关键字:滤波器  电工文摘电工技术 - 电工文摘

《典型滤波器的SystemView设计与仿真》相关文章>>>