上期讲了模拟滤波器的设计与
Simulink
仿真实验,今天讲解下数字滤波器的设计与
Simulink
仿真实验。
今天是采用三个滤波器将包含随机噪声的信号中分离出两个有用信号,这两个有用信号分别为
Sine Wave1(0.7mHz
毫赫兹
)和Sine Wave2(5uHz
微赫兹
)
,为了避免在单位转换中的你晕头转向,这里给出进率
1Hz=1000mHz=1000000uHz
。这两个信号频率之间相差约
140倍
,相差很大,所以滤波起来还是有点难度的,下面开始我们的工作。
本实验使用了三个滤波器分别是
IIR1、IIR2和IIR3
,其中
IIR1和IIR3
都是单极点低通滤波器(通带截至频率
4.09mHz
,
这是我项目里的参数我直接拿来用了,如果读者很难理解的话直接将它视为4mHz吧,影响不大
),
IIR2
为三级点低通椭圆滤波器(通带截至频率为
0.03mHz
),这里我们放入两个有用信号分别是
Sine Wave1(0.7mHz)和Sine Wave2(5uHz)
,并且加入一个随机噪声信号,通过滤波器的设置将两个有用信号分离出来。
通过上面的叙述显而易见,
IIR1
滤波器通带带宽为
4.09mHz
(
<4.09mHz
的信号都可以通过),所以两个有用信号
Sine Wave1(0.7mHz)和Sine Wave2(5uHz)
都可以通过,但是高频随机噪声(
IIR1:>4.09mHz
的信号不能通过)就会被滤除。
这样经过第一个滤波器滤除了随机噪声,留下两个有用信号的叠加。如何分离两个有用信号?先滤除高频段信号得到低频段信号,再用原始信号减去已经滤出的低频段有用信号就得到高频段的有用信号了。
具体来说的话首先确定
IIR2
滤波器通带截止频率,它要求通过两个信号中频率较低的那一个,滤除频率较高的那一个。我们将
IIR2
滤波器的通带设为
0.03mHz
(
<0.03mHz
的信号可通过),这样频率较低的
Sine Wave2(5uHz)
信号可以通过滤波器
IIR2
,而频率较高的信号
Sine Wave1(0.7mHz)
就被滤除了。
被滤除了不就没了?先别急。在通过IIR1滤波器的时候我们滤除了随机噪声,得到了两个信号的叠加信号。在通过
IIR2
滤波器的时候我们得到了两个有用信号中频率较低的那一个
Sine Wave2(5uHz)
,那么通过一个减法器用
IIR1-IIR2
不就得到了那个高频有用信号
Sine Wave1(0.7mHz)
?为了滤除在相减过程中可能引起的干扰,将相减的信号再通过一个滤波器
IIR3,IIR3
的配置与
IIR1
完全相同,目的就是为了滤除相减过程中可能带来的干扰。
废话不多说,接下来进行具体操作。
首先点击主页界面的
Simulink
模块。
打开后器件库,这里我们需要三个数字滤波器设计模块,若干个示波器,一个加法器和一个减法器。
选择数字滤波器设计模块。
选择信号源。
选择加法器与减法器。
选择示波器,关于示波器如何从一个输入口变为两个输入口上一章已经做过解释,这里不再赘述。
将其按照下列方式相链接。注意这里的时间不能为10,由于我们波形的频率在微赫兹的数量级,所以时间设置太短看不出波形,根据时间等于频率的倒数,要把时间设置为1000000(1M)。
注意如何将两输入加法器变为三输入加法器?双击加法器,将两个加号变为三个加号即可。
接下来进行器件的配置,首先配置信号源,将信号源的频率分别设置为
Sine Wave1(0.7mHz)和Sine Wave2(5uHz)
。随机噪声源也要配置。
双击
Sine Wave1(0.7mHz)
,在弹出的设置窗口将频率设置为0.7mHz,由于我们要设计的是数字信号,所以选择离散型式,这里我们将采样时间设为1(默认为1/1000即1ms)。
第一坑
最需要注意的为第三个样本采样时间,这是由于离散数字信号发生器它是通过对连续模拟信号进行定时采样生成的,采样时间越短,采集的数据越多,对原信号的描述就越好。但是,采样数据过多会造成你的matlab卡死的现象,它算不出来就崩溃了。这算是笔者踩过的坑,报错如图。
第二坑
其次,由于你数字信号发生器从模拟信号采样频率很高,你后面滤波器的配置为了让滤波器识别出这个高采样率信号,那么由于需要捕捉到这些数据,你滤波器的采样频率Fs也需要设置很高才行(奈奎斯特定理:滤波器采样速率为所通过最高频率信号的两倍)。由于你滤波器的通带带宽很小,采样速率却很高,这会导致所设计出来的滤波器极其不稳定,如下图所示。
好了按照前面的设计,将
Sine Wave2(5uHz)
也按照刚才的配置再操作一遍。
再把随机噪声配置一下,注意随机噪声我们只需要配置采样周期将它设置为1即可。
将几个信号源配置好以后我们来配置这三个滤波器。再次明确我们的要求就很容易配置啦。
IIR1:
单极点低通滤波器,通带截至频率
4.09mHz
(
<4.09mHz
的信号可通过),为了滤除高频随机噪声。让
Sine Wave1(0.7mHz)和Sine Wave2(5uHz)
两个有用信号安全通过,这里我的采样频率设为3,这个参数需要自己不断去调找到最佳效果的,理论上它只要大于所通过最大有用信号频率的两倍即可。
IIR2:
三级点低通椭圆滤波器,通带截至频率为
0.03mHz
(
<0.03mHz
的信号可通过),滤除高频有用信号
Sine Wave1(0.7mHz)
,保留低频有用信号
Sine Wave2(5uHz)
,这里我采样频率设置的为0.15,通带波动为1dB,阻带波动为300dB。
IIR3:
和IIR1配置相同,为了滤除在原信号减去低频信号得到高频信号的过程中可能引起的干扰和噪声。
配置完成后,接下来点击运行我们来看看效果。
首先点击Scope1和ScopeS我们观察下有用信号和随机噪声的波形。
左图为两个有用信号,黄色线条为高频有用信号
Sine Wave1(0.7mHz)
,蓝色线条为低频有用信号
Sine Wave2(5uHz)
右图为随机噪声信号。
上面两个图看起来是不很不爽,因为低频信号我们可以看出来,可高频信号和高频噪声呢?
点击这个图标可以将波形进行放大,点击后滑动滚轮即可将波形从横轴放大或缩小。
我们观察放大后波形就一目了然了。
点击示波器
ScopeAdd和ScopeIIR1
观察它们的波形。
左图为两个有用信号和噪声信号的叠加。
右图为
IIR1
输出图形,他将噪声信号滤除了,只留下两个有用信号的叠加。
同样大将二者放大到等长区间观察细节。
观察波形我们可以看到左图模糊的波形经过滤波后变清晰了,但该滤波后的信号还是两个有用信号的叠加,我们还需将其分离出来。
点击示波器
ScopeIIR2和ScopeIIR3
观察它们的波形。
左图为
IIR2
滤波后的图形,它滤出的是低频有用信号
Sine Wave2(5uHz)
。
右图为
IIR3
滤波后的图形,它滤出的是高频有用信号
Sine Wave1(0.7mHz)
。
可以看出它们已经有了原来大致的轮廓了,我们接下来进行对比会更加清晰。
左图中蓝色曲线为原始低频有用信号
Sine Wave2(5uHz)
。
右图是我们通过滤波器
IIR2
得到低频有用信号
Sine Wave2(5uHz)
。
二者无论在形状还是频率上一模一样,滤波成功。
左图中黄色曲线为原始高频有用信号
Sine Wave1(0.7mHz)
。
右图是我们通过滤波器
IIR3
得到高频有用信号
Sine Wave1(0.7mHz)
。
二者在幅度区间是都是从-1到1,大致形状趋势一致。
接下来我们将二者放大到同等区间看下它们的频率是否一致。
通过观察我们发现二者的频率一致,那么基本可以认为滤波成功。
这里高频黄色信号滤波后我们看到整体波形相比原来出现了一些轻微的波动,这是由于参数的设置引起的。
整体滤波系统的效果取决于数字信号发生器采样时间、滤波器采样频率、滤波器阶数、通带波动、阻带波动等几方面的因素,由于我们这里有三个信号发生器,三个滤波器,那么所有的参数加起来可达十几个。做过PID算法的读者应该知道,该算法中仅有三个参数,调节起来的难度有多大。正所谓
建模两小时,调参两星期
。作者能力有限,在有限的时间内只能在这十几个参数的随机组合中根据经验找到了一组效果还不错的参数。如有错误,欢迎广大同行批评指正。
最后关于模拟滤波器等一些其他matlab滤波器仿真实验在上一章节中
matlab中Filter Design和Simulink仿真的实操与训练1
。
双边滤波(Bilateral
filter
)是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折
中
处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的。具有简单、非迭代、局部的特点。双边
滤波器
的好处是可以做边缘保存(edge preserving),一般过去用的维纳滤波或者高斯滤波去降噪,都会较明显地模糊边缘,对于高频细节的保护效果并不明显。
语音信号多相
滤波器
是我上学期末做的一个课设,过了许久,在此仅仅简单记录一下,以特定的D值和I值展示一下操作过程,希望对正在学习该内容的伙伴有所帮助。本文以工程实现的角度浅谈多相
滤波器
,由于数字
滤波器
是有延时效应的,所以在考虑
滤波器
的延时下,多相
滤波器
又应该如何操作。
首先搭建模型,建好model文件,打开
simulink
library选择source
中
的sinewave,
communication system toolbox-》comm source-》noise generators
中
的Gaussian Noise Generator,math operation
中
的add,sinks
中
的scope将四个模件添加入model文件并接好线。
结果如下图:...
今天分享一个
matlab
中
如何设计一个IIR三级点椭圆低通
滤波器
并实现在
simulink
上进行
仿真
实验。
首先打开APP-
Filter
Design
&Analysis如果没有的话在右侧下拉箭头处寻找
1.选择
滤波器
类型:低通、高通、带通、带阻。
2.选择是FIR
滤波器
还是IIR
滤波器
。
3.选择阶数(极点)。
4.选择采样频率(需符合奈奎斯特定律,即采样速率要大于最高频率的两倍)、通带频率、阻带频率。
5.选择通带衰减和阻带衰减。
1.选择低通
滤波器
。
2.选择IIR椭圆形
滤波器
。
3.选择极点
上一篇:基于
Matlab
-
Simulink
的 2FSK 数字调制原理与
仿真
上一篇:
Simulink
仿真
系列-- 扩频通信-跳频扩频通信系统的原理和
Simulink
仿真
上一篇:
Simulink
仿真
系列 -
Simulink
模块-数字基带调制解调模块详解 M-PAM,M-FSK,M-PSK
0.前言:
电磁波信号在传输过程
中
,会受到各种干扰,这些干扰统称为噪声。根据信...
在并网逆变器系统
中
,
滤波器
的不同也会使得电流环的动、静态响应不同,随之而带来的问题是并网系统直流电压、
输出
功率和系统功率等因素的确定受到制约,因此交流侧
滤波器
的设计这一环节举足轻重。LCL型
滤波器
和其他型的
滤波器
相比较有其突出的优越性,在要求滤波效果相同的情况下,LCL型
滤波器
比其他型所使用的电感量小,从而节省材料降低系统成本。三相逆变器通常采用三相桥式逆变电路,采用IGBT作为开关器件的电压型三相桥式逆变电路。%调节器周期,1e-4对应双更新,2e-4对应单更新。
项目需求,要使用MCU制作
滤波器
,刚开始也是很懵逼,并没有接触过
滤波器
的设计,公司也没有懂这个的,只能摸着石头过河。参考了网上的资料,最终制作成功20-200Hz的带通
滤波器
,以下做个总结。
一、
Matlab
仿真
Matlab
牛逼之处就不多说了,使用
Matlab
设计20-200hz带通
滤波器
过程如下:
1.打开
Matlab
,在命令行窗口键入"fdatool"等待软件打开
滤波器
设计工具窗口。
2.在
滤波器
设计窗口填写相关
滤波器
参数。
1.Specify order 为滤波阶数,滤波阶数越高滤波效果越好,运算
选择工作在2GHz,带宽为1.8-2.2G,FBW=20%
选择0.1dB三阶切比雪夫低通原型
滤波器
g0=1.0 g1=1.0316 g2=1.1474 g3=1.0316 g4=1.0
相应的耦合系数和外部Qe
Qe1=Qe2=5.158 M1=M2=0.184
滤波器
的板材厚度选择1.27mm,宽度为1mm,耦合器间隔为2mm,由之前EM
仿真
得到Qe和M如下选择抽头位置8mm,耦合间距0.24mm作为初始参数
初始原理图
仿真
结果和最佳的变量数值
初始版图
仿真
结果
发现版图和原理图差别很大,
随着数字信号处理技术的快速发展,尤其是以数字信号处理芯片为核心的数字系统的设计与使用,使得数字信号处理技术得到了广泛的应用。数字信号处理技术具有诸多模拟信号处理技术所不具备的优点,因此在很多领域都开始取代传统的模拟信号处理。下面以数字
滤波器
系统为例来介绍线性离散系统的
仿真
技术。