【问题标题】:Matlab - Using conv instead of filter to process a signalMatlab - 使用 conv 而不是 filter 来处理信号
【发布时间】:2016-11-18 21:28:35
【问题描述】:

我有以下代码来处理来自音频的信号

[wave,fs]=wavread('my-audio.wav');
t=0:1/fs:(length(wave)-1)/fs;
figure(1);plot(t,wave);
b = [0  1  1.1];
a = [1  0 -0.1];
FIR = filter(b,a,wave);
figure(2);plot(t,FIR);

我想知道,如果可能的话,我如何对 conv 函数做同样的事情,会有什么区别。

到目前为止,我猜我必须将音频从立体声转换为单声道。我说的对吗?

谢谢!

【问题讨论】:

    标签: matlab filtering convolution


    【解决方案1】:

    您可以使用conv 执行 FIR 过滤,但不能执行 IIR 过滤。在这种情况下,你有非平凡的分母系数,滤波器是 IIR,所以filter 是要走的路。

    【讨论】:

    • 谢谢!可以使用 filter 进行 FIR 滤波吗?
    • @LukeSpringWalker 是的,只需将filter 的输入a 设置为等于1。比较conv([3 6 4 -2 1 -8 -5], [3 -4 2])filter([3 -4 2], 1, [3 6 4 -2 1 -8 -5])。显然filter 需要额外的零来“刷新”输入:filter([3 -4 2], 1, [3 6 4 -2 1 -8 -5 0 0])
    • 谢谢@LuisMendo!还有一个问题。有人告诉我还有另一个函数可以从中获取音频的位置向量,是函数 impz 吗?
    • 对不起,音频的位置向量是多少?
    猜你喜欢
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    • 1970-01-01
    相关资源
    最近更新 更多