FFT后如何识别Low/High/Band通滤波器?
How to recognize Low/High/Band pass filters after FFT?
我在 Matlab 中有两个零填充信号
h_1[n] = {...,0,0,1,2,1,0,0,...}
h_2[n] = {...,0,1,0,2,0,1,0,...}
在下面你可以看到他们的 FFT 图:
% N1 and N2 are just the lengths of h1 and h2.
H1 = fft(h1, N1);
H2 = fft(h2, N2);
% ...
figure;
from = -floor(length(H1)/2);
to = floor(length(H1)/2);
stem(from:to, abs(H1));
我的问题是如何确定这些滤波器是低通、高通还是带通滤波器。
我知道 FFT 分解我的时间函数,这里是 h_1[n]
和 h_2[n]
,分解成它们组成的频率:H_1[k]
和 H_2[k]
如果我做对了,但到目前为止,这些图几乎什么都没告诉我。
那么如何解读这些情节呢?我不知道为什么我们要在h_2[n]
中添加更多的零,这是为了更高的采样率吗?
感谢您的解释!
我不是 100% 确定你用什么来生成这些图。
通常 - 如果将 FFT 转换为极坐标格式,则更容易解释。您最终会得到一张相位响应图和一张频率响应图。
我推荐读一读:http://www.dspguide.com/ch8/8.htm
不过我认为第一个是高通滤波器(低频值低,高频值高)。
如果我没看错你的图表,那么第二个看起来像带拒绝?
(1) 两个信号中的补0相当于频域的插值,可以看到图中的频谱更密
(2)关于h_1[n]和h_2[n],h_2[n]可以看作是h_1[n的升采样版本] 系数为 2,那么您可以在频域中看到原始光谱的两个副本。
请参考数字信号处理教材"multi-rate signal processing"
我在 Matlab 中有两个零填充信号
h_1[n] = {...,0,0,1,2,1,0,0,...}
h_2[n] = {...,0,1,0,2,0,1,0,...}
在下面你可以看到他们的 FFT 图:
% N1 and N2 are just the lengths of h1 and h2.
H1 = fft(h1, N1);
H2 = fft(h2, N2);
% ...
figure;
from = -floor(length(H1)/2);
to = floor(length(H1)/2);
stem(from:to, abs(H1));
我的问题是如何确定这些滤波器是低通、高通还是带通滤波器。
我知道 FFT 分解我的时间函数,这里是 h_1[n]
和 h_2[n]
,分解成它们组成的频率:H_1[k]
和 H_2[k]
如果我做对了,但到目前为止,这些图几乎什么都没告诉我。
那么如何解读这些情节呢?我不知道为什么我们要在h_2[n]
中添加更多的零,这是为了更高的采样率吗?
感谢您的解释!
我不是 100% 确定你用什么来生成这些图。
通常 - 如果将 FFT 转换为极坐标格式,则更容易解释。您最终会得到一张相位响应图和一张频率响应图。
我推荐读一读:http://www.dspguide.com/ch8/8.htm
不过我认为第一个是高通滤波器(低频值低,高频值高)。
如果我没看错你的图表,那么第二个看起来像带拒绝?
(1) 两个信号中的补0相当于频域的插值,可以看到图中的频谱更密
(2)关于h_1[n]和h_2[n],h_2[n]可以看作是h_1[n的升采样版本] 系数为 2,那么您可以在频域中看到原始光谱的两个副本。
请参考数字信号处理教材"multi-rate signal processing"