频域逆脉冲响应的计算

信息处理 过滤器 傅里叶变换 频率响应 冲动反应
2022-02-25 17:46:42

我想计算频域中 LTI 系统的逆脉冲响应。我生成一个简单的脉冲响应g. 为此,我生成了一个包含 100 个零的向量。我将第 20 个样本的值设置为 0.5。

  1. 我通过计算傅里叶变换来计算频率响应函数h=F(g).
  2. 我反转每个频率区间h在哪里hinv[k]=h[k]|h[k]|2(这是复数倒数的公式)
  3. 我做一个逆傅里叶变换ginv=F1(hinv)
  4. 我策划g(蓝色)和计算的逆ginv(红色的)

g 和 g_inv

问:为什么会有冲动ginv82 个样本?ginv我的逆脉冲响应?

Matlab代码:

g=[zeros(1,19) 0.5 zeros(1,80)];
h=fft(g);

h_inv=conj(h)./(abs(h).^2);
g_inv=ifft(h_inv);

figure
plot(g)
hold on
plot(g_inv)
1个回答

你的结果是正确的,即使它看起来有点违反直觉。请注意,您不计算傅里叶变换,而是计算离散傅里叶变换 (DFT)。您要反转的系统具有脉冲响应

(1)g[n]=12δ[n19]

显然,逆系统必须提前输入信号19样品:

(2)ginv[n]=2δ[n+19]

显然,该系统是非因果的。考虑到 DFT(和 IDFT)的隐含周期性与长度N=100, 信号ginv[n]无法与信号区分开来gk,inv[n]=ginv[n+kN],kZ. 你的结果只是g1,inv[n]

(3)g1,inv=2δ[n+19N]=2δ[n81]