Matlab卷积

在做数字信号处理时经常会使用到卷积,所以这篇博文记录一下卷积的使用。

1. conv函数

conv可以做卷积和多项式的乘法。

  • 通过conv函数做多项式乘法

    1
    2
    3
    u = [1 0 1];
    v = [2 7];
    w = conv(u,v);

    在这里如果u和v时多项式的项数,可以得到两个多项式 $x^2+1$ 与 $2x+7$,两个多项式的相乘结果为: $2x^3+7x^2+2x+7$ 得到的结果w为:

    1
    2 7 2 7

    实际上的卷积也是

    1
    2
    3
    4
    5
    2 7
    0 0
    2 7
    --------
    2 7 2 7

    所以可以使用conv卷积来计算多项式的乘法

  • 向量卷积

    1
    2
    3
    u = [-1 2 3 -2 0 1 2];
    v = [2 4 -1 1];
    w = conv(u,v)

    卷积过程为:

    1
    2
    3
    4
    5
    6
    -2 4 6 -4 0  2 4
    -4 8 12 -8 0 4 8
    1 -2 -3 2 0 -1 -2
    -1 2 3 -2 0 1 2
    -------------------------
    -2 0 15 5 -9 7 6 7 -1 2

    得到的结果为

    1
    -2 0 15 5 -9 7 6 7 -1
  • 第三个参数

    • full:默认的,全卷积
    • same:取全卷积中与u大小相同的中心部分
    • valid:仅计算的没有补零边缘的卷积部分。使用此选项时,length(w)max(length(u)-length(v)+1,0),但 length(v) 为零时除外。如果 length(v) = 0,则 length(w) = length(u)
  • © 2019-2022 Wendell
  • Powered by Hexo Theme Ayer

请我喝杯咖啡吧~

支付宝
微信