您的位置:首页 > 编程语言 > MATLAB

卷积(convolution)与相关(correlation)(matlab 实现)

2016-11-11 20:36 1151 查看

1. 卷积(convolution)

输出 y(n) 是作为在 x(k) 和 h(n−k)(反转和移位)重叠之下的样本和求出的。

考虑下面两个序列:

x(n)=[3,11,7,0,−1,4,2],−3≤n≤3

h(n)=[2,3,0,−5,2,1],−1≤n≤4

求卷积 y(n)=x(n)⋆h(n)

matlab 实现:

如果是任意无限长序列,不可以直接用 matlab 来计算卷积,matlab 内部实现了一个函数 conv 来计算两个有限长序列之间的卷积。conv 函数规定这两个序列都在 n=0 开始并利用:

>> y = conv(x, h);
y =
6    31    47     6   -51    -5    41    18   -22    -3     8     2


然而,conv 函数不提供也不接受任何定时信息,必须要求 y(n) 的一个起始点和一个结束点。已知有限长序列 x(n) 和 h(n),很容易做如下定义:

{x(n);nxb≤n≤nxe};{h(n);nhb≤n≤nhe}

function [y, ny] = conv_t(x, nx, y, ny)
ny = xb(1)+hb(1):xe(1)+he(1);
y = conv(x, h);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: