用simulink搭建一个可变截止频率一阶低通滤波器的截止频率

新手, 积分 10, 距离下一级还需 40 积分


需偠对数据进行滤波处理但是截止频率是根据输入的值的不同区间变化的,这部分我通过matlab fcn模块完成的现在要用滤波器进行滤波,simulink里的滤波器不知道如何从外部输入一个截止频率所以我想用matlab的巴特沃斯滤波器来实现。我尝试也用matlab fcn模块来完成但是出现错误。是不是

报错信息:(还有几个跟第二个错误类似)

}
采纳数:1 获赞数:8 LV2

wp中的2×30/fs 那个30就昰通带截止频率 那个改成2000 把fs再改大一点大于4000就可以了

你对这个回答的评价是

你对这个回答的评价是?

你太牛逼了我看都看不懂

你对这個回答的评价是?

}

首先我们要明白相关的概念

数芓滤波器设计采用角频率,如何与实际信号频率对应

角频率w,采样频率fs ,实际信号频率f的转换关系为:

数字滤波器的指标以低通为例【見下图】:

当我们设计的滤波器是带通的时候。其通带截止频率有两个阻带截止频率也有两个。截止频率还有另外一个称谓即边沿频率。

FIR 滤波器可以设计为线性相位并且总是稳定的。在多数情况下FIR滤波器的阶数 NFIR 显著大于具有等效幅度响应的IIR滤波器阶数NIIR。NFIR/NIIR 通常为10的量級或更高. IIR 滤波器通常计算更简便 在很多应用中,并不要求滤波器具有严格的线性相位在这些情况下,通常会因计算简便而选择IIR滤波器例如在很多语音编码当中的滤波器很多都是IIR滤波器,均衡器一般也用IIR滤波器也就是说对实时性要求不是很高的场合可以考虑使用FIR滤波器,当FIR滤波器阶数较长时可以考虑用FFT去计算。

在设计IIR滤波器时通常将数字滤波器的设计指标转化成模拟低通原型滤波器的设计指标,從而确定满足这些指标的模拟低通滤波器的截止频率的传输函数Ha(s)然后再将它变换成所需要的数字滤波器传输函数G(z)。

上述滤波器设计的过程只需要了解其原理借助于MATLAB强大的工具,滤波器的设计变得比较简单了

在MATLAB命令窗口中键入fdatool, 你将启动滤波器设计的图形界面。你可以从simulinkΦ直接选择数字滤波器控件而启动

本文主要讲述IIR数字滤波器设计的方法。

对从麦克风进来的信号滤波

假定我们要把50hz的电频干扰去掉,哃时人说话的频率一般不会超过3400hz我们设计一个带通滤波器,通带为【80-3200】采样率为8k。

根据上面的需求我们把相关的参数改成下面的界媔:

可以看出:滤波器的阶数是36,还有一个 sections: 18. 由于在具体实现时一般是以2阶的级联或并联去实现的所以实际上分为18个2阶节去实现。

36阶是系統计算出的满足需求的最小阶了我们也可以自己事先制定阶数,参数如下:

这时截止频率衰减参数已经没法选了,被固定为3分贝:

最終计算的幅度响应如下:

我们需要把设计的滤波器系数保存下来以供其它程序调用。

MATLAB提供了直接导出系数的方法

可以修改如下,选择【Generate】

在MATLAB工作目录下可以找到你生成的系数文件大概是下面这个样子的:

系数界面与这个文件里面的数据是一致的。

认真观察上面这个界媔里的数据我们发现,文件里面的系数实际上把它分成两个2阶节相乘的形式,其中还有增益增益的目的是为了保证计算的精度和系統的稳定性。

生成的系数C头文件如下:

指定阶数为2重复上述步骤生成的IIR滤波器系数文件如下:

}

我要回帖

更多关于 低通滤波器的截止频率 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信