有谁知道在 Matlab 中设计具有任意幅度和相位响应的滤波器的方法?
在 Matlab 中设计具有任意幅度和相位响应的滤波器
信息处理
matlab
过滤器
过滤器设计
有限脉冲响应
无限脉冲响应
2022-02-12 09:50:37
2个回答
对于 FIR,最简单的方法是对两侧复频响应进行 FFT 反演:
(使用Kaiser 窗口将 FIR 窗口化到可以实现的长度。)
所以首先将您的复杂频率响应分为实部和虚部:
发送两个和Parks-McClellan 或最小二乘法最优 FIR 设计器,但设置ftype
为'hilbert'
.
将两个得到的实值 FIR 相加得到你的结果。
最后,如果您想将 IIR 设计为任意幅度和相位规格,那么这是一个更大的问题和考虑因素。也许使用 Prony 来设计你的脉冲响应或者使用我现在第一次了解到的 Matt 的论文,或者使用Greg Berchin 的 FDLS。我不知道。那里没有快速的解决方案。
有一篇博士论文的标题中正好有这个短语(包括 Matlab 程序):