在离散时间采样的IIR滤波器系统中从采样/截止频率转换为Pi-Radians/样品
-
11-10-2019 - |
题
我正在使用Python和Numpy/Scipy进行一些数字过滤器工作。
我正在使用scipy.signal.iirdesign来生成我的过滤系数,但是它需要以我不熟悉的格式的过滤器通带系数
wp, ws : float
Passband and stopband edge frequencies, normalized from 0 to 1 (1 corresponds
to pi radians / sample).
For example:
Lowpass: wp = 0.2, ws = 0.3
Highpass: wp = 0.3, ws = 0.2
(从这里)
我不熟悉数字过滤器(我来自硬件设计背景)。在模拟环境中,我将确定所需的斜率和3DB下点,并从中计算组件值。
在这种情况下,我如何采用已知的样本率,所需的角频和所需的滚动,并计算 wp, ws
从中值?
(这可能更适合Math.stackexchange。我不确定)
解决方案
如果您的采样率为FS,则NYQUIST率为FS/2。这代表您可以拥有的最高代表性频率而无需别名。它也等同于文档所指的1的归一化值。因此,如果您正在设计具有FC角频率的低通滤波器,则将其输入为FC /(FS / 2)。
例如,您有FS = 8000,因此FS/2 = 4000。您需要一个低通滤波器,其角频率为3100,停止频段频率为3300。结果值将为WP = FC/(FS/2)= 3100/4000。停止频率为3300/4000。
说得通?
其他提示
采用功能 x(t) = cos(2*pi*fa*t)
. 。如果我们在频率fs中进行采样,则采样函数为 x(n*ts) = x(n/fs) = cos(2*pi*n*fa/fs)
. 。混叠之前的最大频率(折叠)是Nyquist频率FA = FS/2,它归一化为 (fs/2)/fs = 1/2
. 。归一化的角频率为 2*pi*1/2 rad/sample = pi rad/sample
. 。因此信号 x[n] = cos[pi*n] = [1,-1,1,-1,...]
.
给定频率的采样版本,例如角频率 2*pi*fc rad/s
将会 2*pi*fc/fs rad/sample
. 。作为Nyquist频率PI的一部分,就是 2*fc/fs = fc/(fs/2)
.
一些公式可以通过:
exp[j*w*n] = cos[w*n] + j*sin[w*n]
x_even[n] = 0.5*x[n] + 0.5*x[-n]
cos[w*n] = 0.5*exp[j*w*n] + 0.5*exp[-j*w*n] # cos is even
x_odd[n] = 0.5*x[n] - 0.5*x[-n]
j*sin[w*n] = 0.5*exp[j*w*n] - 0.5*exp[-j*w*n] # sin is odd
实价信号的偶数分量(余弦之和)的dft将是真实的和对称的,而奇数成分(罪恶之和)的dft将是虚构的和反对称的。因此,对于实现的信号,例如典型滤波器的脉冲响应,当相光谱是反对称的时,幅度光谱是对称的。因此,您只需要为范围0到PI指定过滤器,该过滤器归一化为[0,1]。