ALL FUNCTIONS
clc
clear
x=[1 2 3 4];
h=[3 4 5];
function y=linear(a,b)
La=length(a);
Lb=length(b);
y=zeros(1,(La+Lb-1));
for n=1:(La+Lb-1)
for k=1:La
m=n-k+1;
if m>=1 && m<=Lb
y(n) = y(n) + a(k)*b(m);
end
end
end
end
function y = circular(a, b, N)
a=[a zeros(1,N-length(a))];
b=[b zeros(1,N-length(b))];
y = zeros(1, N);
for n = 1:N
for k = 1:N
m = mod(n - k, N);
m=m+1;
y(n) = y(n) + a(k) * b(m);
end
end
end
%circular conv doubt
disp(linear(x,x))
disp(conv(x,x))
disp(circular(x,h,2))
disp(cconv(x,h,2))
function y=dft(x,N)
x(end+1:N)=0;
l=length(x);
y=zeros(1,l);
for k=0:N-1
for n=0:N-1
y(k+1)=y(k+1)+x(n+1)*(exp(((-1i)*2*pi*k*n)/l));
end
end
end
function X = myDFT(x)
N = length(x);
% Length of input signal
X = zeros(1, N);
% Initialize output
for k = 0:N-1
% Output index
for n = 0:N-1
% Input index
X(k+1) = X(k+1) + x(n+1) * exp(-1j * 2 * pi * k * n / N);
end
end
end
disp(myDFT(x));
disp(((dft(x,4))));
disp((fft(x,4)));
CROSS CORR
clc;
clear;
function y = cross(x,h)
Lx = length(x);
Lh = length(h);
y = zeros(1, Lx+Lh-1);
for n = 1:(Lx+Lh-1)
for k = 1:Lx
m = k-n+Lx;
if m>=1 && m<=Lh
y(n) = y(n) + x(k)*h(m);
end
end
end
end
x=[2 -1 2 4];
y=[1 0 -1 ];
z=cross(x,y);
c=-(length(y)-1):(length(x)-1);
disp("z[n]=");
disp(z);
disp("Time indices:");
disp(c);