MATLAB绘制给定滤波器系数的FIR幅度图

MATLAB绘制给定滤波器系数的FIR幅度图,matlab,filter,signal-processing,Matlab,Filter,Signal Processing,我有一个包含所有FIR滤波器系数a_k的数组,现在我需要绘制脉冲响应。我考虑过使用以下代码: 我有61个系数 output = zeros(1,61); for k=1:61 output = output + coeff(k) * dirac(61-k); end 但是向量输出中的值都是无限的。有什么问题吗?FIR系数是脉冲响应,对吗?所以只需使用stemcoeff,或者stemcoeffend:-1:1。无论如何,狄拉克是连续时间的狄拉克δ函数。这就是它为输入提供inf的原因0@L

我有一个包含所有FIR滤波器系数a_k的数组,现在我需要绘制脉冲响应。我考虑过使用以下代码: 我有61个系数

output = zeros(1,61); 
for k=1:61
   output = output + coeff(k) * dirac(61-k);
end

但是向量输出中的值都是无限的。有什么问题吗?

FIR系数是脉冲响应,对吗?所以只需使用stemcoeff,或者stemcoeffend:-1:1。无论如何,狄拉克是连续时间的狄拉克δ函数。这就是它为输入提供inf的原因0@LuisMendostem实际上只绘制向量中任何位置的虚部,否则绘制实部。如果你想知道脉冲的大小,我建议你使用显式和绘图的方法response@hiandbaii我不确定我是否真的明白你的意思。如何在时域中获得复数脉冲响应?如果你真的有一个复杂的输出,那么函数不是真的吗?@patrik复杂的脉冲响应是相当常见的。例如,一个瑞利信道可以被建模为一个时变FIR滤波器,它最终将具有复杂的性能coefficients@hiandbaii这当然是正确的,但我们在这里讨论的是特定于应用程序的案例。我想你说的有道理,因为现实并不总是正确的。如果预期信号是复杂的,例如瑞利衰落信道,并且需要接收信号功率的冲激响应,那么abs是一种可行的方法。然而,这实际上是特定于应用的,您不会得到信号的脉冲响应可能是负的。要实现这一点,瑞利衰落信道中的组件必须分开并单独绘制。那么abs不是正确的功能。