如何使用matlab获得有意义的群延迟图

信息处理 matlab 有限脉冲响应 群延迟
2022-02-22 15:52:15

问题: 我正在尝试使用以下脉冲响应/内核分析 FIR 滤波器的行为: 脉冲响应

使用Matlab的函数grpdelay(myKernel,length(myKernel)),得到下图:

群延迟

根据我有限的知识,该图不正确,因为它包含负值。我的理解正确吗?如果是,我怎样才能获得更准确的群延迟图?

代码:

    onePulseRun20 = dlmread("C:\Users\agusfrpa\Pictures\singlePulseRun20.txt");
twoPulseRun21 = dlmread("C:\Users\agusfrpa\Pictures\twoPulseRun21.txt");
%twoPulseRun22 = dlmread("C:\Users\agusfrpa\Pictures\twoPulseRun22.txt");

%y is averaged one pulse data
y = mean(onePulseRun20,1);
pulse = twoPulseRun21(1,:);

myFilter = conj(fft(y))./(abs(fft(y)).^2+.3);
myKernel = real(ifft(myFilter));
myKernel = myKernel(4700:5250);

grpdelay(myKernel, length(myKernel));

我将在评论中发布数据链接。

1个回答

您展示的 FIR 滤波器的脉冲响应是否需要沿样本轴(即水平轴)反转?