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);

Alumni Liaison

To all math majors: "Mathematics is a wonderfully rich subject."

Dr. Paul Garrett