Matlab FFT后如何识别低/高/带通滤波器?

Matlab FFT后如何识别低/高/带通滤波器?,matlab,fft,Matlab,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

我在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]

那么人们如何解释这些情节呢?我不知道为什么我们必须在
h2[n]
中添加更多的零,这可能是为了有更高的采样率吗


谢谢你的解释

我不能100%确定您使用什么来生成这些绘图

通常-如果将FFT转换为极坐标格式,则更容易解释。最终得到一个相位响应图和一个频率响应图

我建议大家读一读:

然而,我认为第一个是高通滤波器(低频低值,高频高值)

如果我读对了你的图表,那么第二个看起来像带阻效应

(1)两个信号中的填充0相当于频域中的插值,因此您可以在图中看到更密集的频谱

(2) 关于h_1[n]和h_2[n],可以将h_2[n]视为具有因子2的h_1[n]的上采样版本,然后可以在频域中看到原始光谱的两个副本


请参阅数字信号处理教科书中的“多速率信号处理”。

Hi!我正在使用Matlab来完成这个(在我的问题中编辑了这个)。我不知道如何将它们转换成极坐标。你知道我怎么做吗?因此,第一个图是高通滤波器,因为它在低频时的值较低,在高频时的值较高。?我想我必须从“镜像点”开始“测量”,对吗?抱歉问了这么多问题。这是从一个讲座中得来的,我没有带上所有之前需要的知识:OP问题中的abs函数进行“极坐标”转换。stem图已经是震级图了。Stefan-我认为从镜像点测量看起来是正确的。带通应该有点像这样: