1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > matlab卷积和互相关 互相关与卷积

matlab卷积和互相关 互相关与卷积

时间:2022-11-16 00:02:42

相关推荐

matlab卷积和互相关 互相关与卷积

互相关

设两个函数分别是f(t)和g(t),则互相关函数定义为:

它反映的是两个函数在不同的相对位置上互相匹配的程度。

线性卷积

在泛函分析中,是通过两个函数f和g生成第三个函数的一种数学算子,表征函数f与经过翻转和平移的g的重叠部分的累积。如果将参加卷积的一个函数看作区间的指示函数,卷积还可以被看作是"移动平均"的推广。

理解卷积的物理含义也许有点难,但是理解其计算却是相对容易,东南大学的数字信号课程里做了一个线性卷积的动画演示:http://zlgc./jpkc2/ipkc/signal/new/course/one/flash/juanji_swf.htm

因此,我们很容易理解,卷积和相关是相似的,两者就是多了一个旋转过程而已,卷积要先对Y轴旋转!

用卷积来表示相关就是:

通常来说,计算卷积都是在频域进行的,这主要是利用了FFT变换的卷积定理

快速傅里叶转换(FFT)计算卷积,在时域(time

domain)做卷积相当于这两个信号的离散傅里叶转换在频域(frequency domain)做相乘。

因此,matlabz中计算相关和卷积都是在频域计算的,再转回时域,这可以简单用代码来验证一下:

Matlab计算互相关函数xcorr,计算卷积函数conv;

C =

xcorr(x,y,'option'),如果x,y长度不同,matlab会自动给短向量后面补零,最终长度length=2*max(n,m)-1;

"biased"为有偏的互相关函数估计;

"unbiased"为无偏的互相关函数估计;

"coeff"为0延时的正规化序列的自相关计算;

"none"为原始的互相关计算,也是默认模式;

Z=

conv(x,y,'shape'),两向量长度不需要一致,最后卷积长度length=n+m-1;

"full"为默认模式,返回全部卷积(n+m-1);

"same",返回中间部分卷积,长度与x相同(n);

"valid",返回中间没有用零填充部分的卷积值,用滑动窗的方法解释的话,就是第2个窗口能够完全被第一个窗口重合、包含的部分(max(n-max(0,m-1),0),因此如果n

% 卷积法计算互相关的验证程序

dt=0.1;

t=[0:dt:100];

x=5*sin(4*t);

y=3*cos(3*t);

[a,b]=xcorr(x,y);

plot(b*dt,a);

yy=3*cos(3*fliplr(t)); % 以Y为轴对称翻转 yy=fliplr(y);

c=conv(x,yy);

err = a-c;

subplot(3,1,1);

plot(b*dt,a,'k');

title('Corr','fontsize',16);xlabel('Logs','fontsize',12);

subplot(3,1,2);

plot(b*dt,c,'r');

title('Conv','fontsize',16);xlabel('Logs','fontsize',12);

subplot(3,1,3);

plot(b*dt,err,'g');

title('Error','fontsize',16);xlabel('Logs','fontsize',12);

% 这里误差小于1e-13,本人认为是由matlab的数值误差所引起,可以忽略。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。