5 views (last 30 days)
I have a plot of residuals vs Distance and I want to run moving average window over it to capture the trend. My window should have a cos fun on both side and then reach the value of 1 between these two. I don't know how should I code it up?Thankss
Image Analyst on 28 Mar 2012
Perhaps this demo will be instructive for you:
clc; % Clear the command window.
workspace; % Make sure the workspace panel is showing.
fontSize = 20;
% Make sample data
y = rand(1,100)
subplot(2, 2, 1);
windowWidth = 15;
t = 1:windowWidth;
title('Y (the data)', 'FontSize', fontSize);
% Enlarge figure to full screen.
set(gcf, 'units','normalized','outerposition',[0 0 1 1]);
% Give a name to the title bar.
set(gcf,'name','Demo by ImageAnalyst','numbertitle','off')
% Construct cosine kernel
kernel = cos(2*pi*(t - ceil(windowWidth/2))/ (2*windowWidth));
subplot(2, 2, 2);
title('The cosine kernel', 'FontSize', fontSize);
% Normalize kernel so that mean of filtered data
% will be the same as the mean of the original data.
kernel = kernel / sum(kernel);
% Now filter the data with the normalized cosine kernel.
filtered_y = conv(y, kernel);
subplot(2, 2, 3);
title('filtered y (the filtered data)', 'FontSize', fontSize);