Line 2: | Line 2: | ||
m = length(x); | m = length(x); | ||
+ | |||
n = length(h); | n = length(h); | ||
+ | |||
X = [x,zeros(1, m-1)]; | X = [x,zeros(1, m-1)]; | ||
+ | |||
H = [h,zeros(1,n-1)]; | H = [h,zeros(1,n-1)]; | ||
+ | |||
for r1 = 1:1:(m+n-1) | for r1 = 1:1:(m+n-1) | ||
y(r1) = 0; %creating initial y value | y(r1) = 0; %creating initial y value | ||
Line 20: | Line 24: | ||
X = fft([x zeros(1,length(h)-1)]); | X = fft([x zeros(1,length(h)-1)]); | ||
+ | |||
H = fft([h zeros(1,length(x)-1)]); | H = fft([h zeros(1,length(x)-1)]); | ||
+ | |||
y = ifft(X.*H); | y = ifft(X.*H); |
Latest revision as of 16:53, 1 July 2009
function y = convo(x,h)
m = length(x);
n = length(h);
X = [x,zeros(1, m-1)];
H = [h,zeros(1,n-1)];
for r1 = 1:1:(m+n-1)
y(r1) = 0; %creating initial y value for r2 = 1:1:r1 y(r1) = y(r1) + X(r2)*H(r1-r2+1); % summing up x[1]*h[n] + x[2]*h[n-1] ... end
end
OR
function y = convo(x,h) % creating a MATLAB function convo that calls upon two vectors x and h to be convoluted.
X = fft([x zeros(1,length(h)-1)]);
H = fft([h zeros(1,length(x)-1)]);
y = ifft(X.*H);