lologame 发表于 2013-6-29 17:38:00

FIR滤波器截止频率范围

本帖最后由 lologame 于 2013-6-29 17:39 编辑

这是来自数字滤波器相关书籍上FIR滤波器设计章节中的一句话,

对于书上的这句话,我感觉很疑惑啊!



为什么带宽 必须要小于pi呢?

这样的话,我设计一个低通滤波器,截止频率为Wc
那么Wc也必须小于pi?

我不能将截止频率设置为1KHz吗?
角频率pi,对应的频率才0.5Hz啊...

望各位大侠指点...

NJ8888 发表于 2013-6-29 17:56:58

数字滤波器都是归一化来说明

lologame 发表于 2013-6-29 18:00:06

NJ8888 发表于 2013-6-29 17:56 static/image/common/back.gif
数字滤波器都是归一化来说明

初学数字滤波器,不是很明白。
那么我如果要涉及1KHz截止频率的低通滤波器,
Wc=2*pi*1000;
这样超出了范围pi,可以的吗?

NJ8888 发表于 2013-6-29 18:04:51

本帖最后由 NJ8888 于 2013-6-29 18:06 编辑

频域中的频率要结合采样率来定位0--1之间的归一化时域频率,当你采样率没定,没法讨论数字滤波器。1000Hz信号,用5000Hz采样,与100Hz信号,500Hz采样结果是一样的

lologame 发表于 2013-6-29 18:45:33

NJ8888 发表于 2013-6-29 18:04 static/image/common/back.gif
频域中的频率要结合采样率来定位0--1之间的归一化时域频率,当你采样率没定,没法讨论数字滤波器。1000Hz信 ...

那当我以5000Hz采样频率采样的时候,对应的截止频率最大值是多少呢?
是2500Hz吗?

NJ8888 发表于 2013-6-29 20:07:58

lologame 发表于 2013-6-29 18:45 static/image/common/back.gif
那当我以5000Hz采样频率采样的时候,对应的截止频率最大值是多少呢?
是2500Hz吗? ...

我理论水平不够,我只能说我的理解:2倍采样率是指波形为正弦时,但是实际波形很复杂,好多谐波,如果你关心谐波,那你至少应当使用你所关心谐波频率的上限的2倍来采样,如果只关心基波,不关心谐波,你应当外面用模拟的滤波器来衰减基带外信号,衰减越多越好,能抗混叠,实际往往不全是想要基波,还想要谐波,那么10倍过采样,能处理10次谐波,通常10次谐波分量很小了,在加上外面至少一个一阶RC,基本不会有混叠。
5000Hz采样意味着能记录2500Hz的信号,高于2500Hz的应当用模拟滤波器过滤掉,如果混着2500以上的波形,没有抗混叠的滤波器,那么恢复的波形严重不同于原始信号,所以你用5000采样,除非你确信信号就是所有具有一定电平的谐波(根据实际确定电平)低于2500的正弦叠加,有高于2500的而没滤掉,且幅度够大,复现信号有严重走形的状况

lologame 发表于 2013-6-29 20:32:05

NJ8888 发表于 2013-6-29 20:07 static/image/common/back.gif
我理论水平不够,我只能说我的理解:2倍采样率是指波形为正弦时,但是实际波形很复杂,好多谐波,如果你 ...

嗯,我输入的波形是一正弦波(matlab模拟阶段),采样信号是5000Hz。那么截止频率应该就是2500Hz吧?

winster321 发表于 2013-6-29 21:10:14

you got it.
你可以试下用5000Hz去采样3000Hz,看看采样后所看到的波形频率是不是变成2000Hz了,这就是aliasing

lologame 发表于 2013-6-29 21:34:03

winster321 发表于 2013-6-29 21:10 static/image/common/back.gif
you got it.
你可以试下用5000Hz去采样3000Hz,看看采样后所看到的波形频率是不是变成2000Hz了,这就是alia ...

嗯,稍微有点明白了。

能否请您帮我看下这段简短的代码,是否能够实现FIR滤波器的功能
我做出来有些问题,得不到输出波形、、

function test()
clear;
Fs = 1000;                        %采样频率为1KHz

%-----------------------------------------输入信号---------------------------------------------
F = 1;                              %输入信号频率
t = 0:1/Fs:1;
Y = sin((F*2*pi)*t);
subplot(211), plot(t, Y);

%-----------------------------------------计算滤波信号---------------------------------------------
Fc = 500;                           %截止频率Fc Hz
Wc = 2*pi*Fc;                     %截止频率(弧度)
M = 10;                           %长度为10 阶数为9的FIR滤波器
hd = ideal_lp(Wc, M);               %获得理想低通滤波器的前M个脉冲响应
w_box = (boxcar(M))';               %获得矩窗口函数
h = hd .* w_box;                  %获得实际脉冲响应
Y = [, Y];       %初始时,以0补齐最前面的数据

for i = 10:(1*Fs+10)                %滤波
    OUT(i-9) = h(1)*Y(i) + h(2)*Y(i-1) + h(3)*Y(i-2) + h(4)*Y(i-3) + h(5)*Y(i-4) + h(6)*Y(i-5) + h(7)*Y(i-6) + h(8)*Y(i-7) + h(9)*Y(i-8) + h(10)*Y(i-9);
end
subplot(212), plot(t, OUT);
axis();

lologame 发表于 2013-6-29 22:17:56

好像是我的滤波器阶数设置的还太小了。

lologame 发表于 2013-6-30 12:49:54

搞懂了,结贴。

这里是对频率进行归一化处理。

归一化频率,是已知信号最大频率,并将其最大角频率化为1,其他相关频率进行百分比计算。

比如:
1000KHz采样频率,信号的最大频率就应该是500Hz, 信号最大的角频率应该是1000*pi(奈奎斯特定理)
假设截止频率为100Hz,截止角频率就为200*pi。
那么归一化后的截止角频率为多少呢?
信号最大角频率1000*pi <----------> 1
信号截止角频率 200*pi<----------> x

通常的数学公式,我们可以知道,x=0.2

在fir滤波器中,我们就取截止角频率为0.2*pi.

hunningtu 发表于 2015-1-12 15:56:52

这几天在搞fir,上面讨论有助理解。{:smile:}
页: [1]
查看完整版本: FIR滤波器截止频率范围