倒谱解卷积Matlab代码

时间:2013-05-25 20:16:28

标签: matlab filter complex-numbers

我有一些代码,应该实现倒谱反卷积以实现最小相位FIR滤波器设计,但是作为nonmatlab的人我正在努力理解它。有人可以帮忙吗?

wn = [ones(1,m)
      2*ones((n+odd)/2-1,m)
      ones(1-rem(n,2),m) 
      zeros((n+od d)/2-1,m)];
y = real(ifft(exp(fft(wn.*real(ifft(log(abs(fft(x)))))))));

主要是我不理解第一行,“。*”符号在第二行,也可能在某些时候应该在第二行从真实域转换到复杂域,但我不知道在哪里。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

  • 在第一行中,您将逐行构建矩阵wn

  • .*运算符表示逐元素乘法。仅*就意味着矩阵乘法。 实际上你应该注意xwn的大小,它必须与元素乘法相同才有意义。

  • 实际上第二行没有从真实到复杂的转换。功能logfftifft可能会根据输入返回复杂值。

您可以通过命令helpdoc访问Matlab帮助(例如doc ones应该生成ones函数的文档 - 这会产生一个填充的矩阵由其参数指定的大小。)

要在检查某些代码时快速召唤帮助,当光标位于函数名末尾时(在括号前面),按 F1 按钮可以使用Matlab的内联帮助