matlab中conv( )就是做卷积,简单理解其实就是多项式乘法。
例如:A=[1 2 3],B=[1 1]是两个向量,A和B的卷积计算方法如下:
把A的元素作为一个多项式的系数,按升幂排列,则对应的多项式为:1+2x+3x^2
把B的元素也作为多项式的系数,按升幂排列,对应的多项式:1+x。
卷积就是“两个多项式相乘取系数”即为:
(1+2x+3x^2)×(1+x)=1+3x+5x^2+3x^3
所以A和B卷积的结果就是[1 3 5 3]
扩展资料
conv函数扩展写法(适用于当两个序列不是从0开始的情况)
function [ y,ny ] = convu( h,nh,x,nx )
%CONVU 通用卷积函数
% function [ y,ny ] = convu( h,nh,x,nx )
% y为卷积结果向量,ny是y的位置向量,h和x是有限长序列
nys = nh(1)+nx(1);
nyf = nh(end)+nx(end);
y = conv(h,x);
ny = nys:nyf;
end
参考资料:百度百科-卷积