0

我需要您的帮助来回答有关 iradon 过滤器设计的问题。实际上,在视线投影(光束偏转)中,与吸收等其他技术相反,ram lak 滤波器被另一种离散响应为:

离散响应

在频域中它表示为:

频域

受到iradon的启发,我实现了我的过滤器,如下所示:

n = 0:(order/2);

filtImpResp = zeros(1,(order/2)+1); 

filtImpResp(1) = 0; % Set the DC term 

filtImpResp(2:2:end) = 1./(pi^2.*n(2:2:end));

filtImpResp = [filtImpResp -filtImpResp(end-1:-1:2)]; 

filt =imag(fft(filtImpResp))

% but it doesn't give a good results.

你能看一下吗?我的实现准确吗?特别是我对原始 iradon 函数中的这一行有疑问:

filt = 2*real(fft(filtImpResp)); 

为什么要乘以2?在我的情况下我应该怎么做?

提前谢谢了

此致

4

1 回答 1

1

首先,我设置order = 100;.

你提到的频域,我猜是滤波器的相位角响应。您可以通过以下方式在 MATLAB 上检索它:

plot(angle(fftshift(fft(filtImpResp))));

以同样的方式,幅度响应:

plot(abs(fftshift(fft(filtImpResp))));

标量 2 可能是为了规范化滤波器的幅度,例如从 0 到 1,即使它在代码上是真实写的。

于 2019-08-02T20:48:10.507 回答