(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
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
 
----
 
----
  
Line 7: 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

Correspondence Chess Grandmaster and Purdue Alumni

Prof. Dan Fleetwood