您的位置:首页 > 其它

卷积和相关

2016-01-03 14:57 363 查看

1、卷积和相关的定义

给定函数f(x)和g(x),二者的卷积定义为:



相关定义为:



2、Matlab示例

%高斯函数
function f = gaussFun(x, u, sigma)
f = exp(-(x - u).* (x - u)/(2*sigma*sigma));
end

%分段线性函数
function g = trigFun(x)
g = 0.*(x<-1/6 | x>=25) + (6*x+1).*(x >=-1/6 & x < 0)...
+ (-x/25+1).*(x >=0 & x < 25);

%计算卷积和相关示例
clear all
x = -50:0.2:50;
u = 12;
sigma = 5.0;
f = gaussFun(x, u, sigma);
g = trigFun(x);
figure
subplot(2, 2, 1), plot(x, f)
title('高斯函数')
subplot(2, 2, 2), plot(x, g)
title('分段线性函数')

% %卷积
% convResult = conv(f, g, 'same');
% subplot(2, 2, 3), plot(x, convResult)

%计算卷积和相关
convResult = zeros(1, size(x,2));
corrResult = zeros(1, size(x,2));
count = 0;
for k = -50:0.2:50
count = count + 1;
sumConv = 0;
sumCorr = 0;
for t = -50:0.2:50
sumConv = sumConv + gaussFun(t, u, sigma) .* trigFun(-t+k); %卷积
sumCorr = sumCorr + gaussFun(t, u, sigma) .* trigFun(t+k); %相关
end
convResult(count) = sumConv;
corrResult(count) = sumCorr;
end
subplot(2, 2, 3), plot(x, convResult)
title('卷积')
subplot(2, 2, 4), plot(x, corrResult)
title('相关')
print(gcf, '-dpng', 'conv_corr.png')

运行结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息