Python数字信号处理之最佳等波纹滤波器阶数估计原理

Matlab中的阶数估计函数

在MATLAB中,使用firpmord函数可以估算等波纹FIR滤波器的最小阶数。该方法基于Parks-McClellan算法,通过通带和阻带的频率边界、幅度响应及允许的最大误差来自动计算参数。

rp = 3;           % Passband ripple in dB 
rs = 40;          % Stopband ripple in dB
fs = 2000;        % Sampling frequency
f = [500 600];    % Cutoff frequencies
a = [1 0];        % Desired amplitudes
dev = [(10^(rp/20)-1)/(10^(rp/20)+1) 10^(-rs/20)]; 
[n,fo,ao,w] = firpmord(f,a,dev,fs);
b = firpm(n,fo,ao,w);
freqz(b,1,1024,fs)
title('Lowpass Filter Designed to Specifications')

  • 输入参数f(频率边界),a(幅度),dev(误差),fs(采样频率,可选)
  • 输出参数n(估算的阶数),fo(归一化频率边界),ao(幅度响应),w(加权系数)

阶数估计公式

对于给定的通带波纹大小xdB,阻带衰减
在这里插入图片描述

注意,上述几个值不是独立得,任意4个值就能确定5个。用于预测所需滤波器长度的公式清楚地表明了这一点。Kaiser开发了以下近似关系来估计满足规范的滤波器长度:

N ≈ − 20 log ⁡ 10 ( δ p δ s ) − 13 14.6 Δ F + 1 N \approx \frac{-20\log_{10}(\sqrt{\delta_p\delta_s})-13}{14.6\Delta F}+1 N14.6ΔF20log10(δpδs )13+1

其中 Δ F = ( ω s − ω p ) / ( 2 π ) \begin{aligned}\Delta F = (\omega_s - \omega_p) / (2\pi)\end{aligned} ΔF=(ωsωp)/(2π),即过渡带带宽。Herrmann等人[3]给出了一个更准确的公式

N ≈ D ∞ ( δ p , δ s ) − f ( δ p , δ s ) ( Δ F ) 2 Δ F + 1 N \approx \frac{D_{\infty}(\delta_p, \delta_s) - f(\delta_p, \delta_s)(\Delta F)^2}{\Delta F} + 1 NΔFD(δp,δs)f(δp,δs)(ΔF)2+1

其中:

D ∞ ( δ p , δ s ) = ( 0.005309 ( log ⁡ 10 δ p ) 2 + 0.07114 log ⁡ 10 δ p − 0.4761 ) log ⁡ 10 δ s − ( 0.00266 ( log ⁡ 10 δ p ) 2 + 0.5941 log ⁡ 10 δ p + 0.4278 ) , \begin{aligned}\\D_{\infty}(\delta_p, \delta_s) &= (0.005309 (\log_{10} \delta_p)^2 + 0.07114 \log_{10} \delta_p - 0.4761) \log_{10} \delta_s \\\\&- (0.00266 (\log_{10} \delta_p)^2 + 0.5941 \log_{10} \delta_p + 0.4278),\\\end{aligned} D(δp,δs)=(0.005309(log10δp)2+0.07114log10δp0.4761)log10δs(0.00266(log10δp)2+0.5941log10δp+0.4278),

f ( δ p , δ s ) = 11.01217 + 0.51244 ( log ⁡ 10 δ p − log ⁡ 10 δ s ) f(\delta_{p},\delta_{s})=11.01217+0.51244(\log_{10}\delta_{p}-\log_{10}\delta_{s}) f(δp,δs)=11.01217+0.51244(log10δplog10δs)

这些公式假设δs<δp。否则,必须交换δp和δs。该公式在信号处理工具箱中的Matlab函数中实现。

请注意,上述估计公式都表明滤波器长度N和过渡宽度∆F成反比(对于(16),当 Δ F \Delta F ΔF变为0时)。这与最大平坦对称滤波器(maximally flat symmetric filters)的对应关系形成鲜明对比。对于具有固定δp和δs的等波纹滤波器,∆F减小为1/N;而对于最大平坦滤波器,∆F减小为 1 / N 1/\sqrt{N} 1/N

参考文献

  1. remez讲座:https://eeweb.engineering.nyu.edu/iselesni/EL713/remez/remez.pdf
  2. matlab函数(firpmord)说明:https://ww2.mathworks.cn/help/signal/ref/firpmord.html
  3. Python scipy库文档:https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.remez.html
  4. O. Herrmann, L. R. Rabiner, and D. S. K. Chan. Practical design rules for optimum finite impulse response lowpass digital filters. The Bell System Technical Journal, 52:769–799, 1973.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值