DC Program Demo
DC Program Demo
clc
clear all
close all
d=[1 0 1 1 0];
d(d==0)=-1;
l=length(d);
fs=100;
t=0:0.01:l;
for i=1:l
dw((i-1)*100+1:(i*100))=d(i);
end
plot(dw)
f=5;
fc=f/fs;
b1=fir1(30,fc);
z=filter(b1,1,dw);
hold all
plot(z,'k');
legend('original baseband signal','received signal ')
end;
figure(2)
sound(mnm,5000)
plot(f,mnm,'b-')%,'LineWidth',5);
grid;
hold
%figure(2)
plot(f1,mn,'r-')%,'LineWidth',5);f1,
%grid
axis([-10 15 -2 +2]);
legend('transmitted signal','received signal with ISI and noise');
title('Transmitted and Received Signals');
%%%%%%%%%%%%%%%%%%%%%%%%%% references
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%http://stackoverflow.com/questions/2028818/automatically-plot-different-co
%lored-lines-in-matlab
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%
mnmf=mnm(length(mnm)/2:end); %%%%%%%%% mnm is signal without corruption mn is signal corrupted with
ISI AND NOISE%%%
length(mnm)
%%%%%%%%%%%%%%%%%%%%%% matched filter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fhm=-1:0.01:1;
hm=sinc((fhm-(0.5))*(T));
hml=length(hm)
mnmfl=length(mnmf)
diff=abs(mnmfl-hml);
if hml>mnmfl
mnmf=fliplr(mnmf);
mnmf=[mnmf zeros(1,diff)];
else
hm=fliplr(hm);
hm=[hm zeros(1,diff)];
end
hmf=fft(hm);
mnmf_f=fft(mnmf);
corr_f=hmf.*mnmf_f;
cor=ifft(corr_f);
% mfo=xcorr(hm,mnmf);
figure
plot(cor);
%%%%%%%%% generating sampling wave
s=100; %%%% THIS SPECIFIES THE SAMPLE AT Which sampling is done if the signal is ISI+NOISE
s=135
for ld=1:length(b)
sam(s)=1;
s=s+100;
end;
dip=cor(1:length(sam));
demod=dip.*sam;
hold all
plot(demod)
% plot(mnmf,'k');
%%%%%%%%%%%%%%%%%%%%%%% data reconstruction %%%%%%%%%%%%%%%%%%%%%
r(i+1,j)=rem(p,2);
p=(p-r(i+1,j))/2;
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
T=1;
delta_f=1./(100*T);
f=(-(k+5)/T):delta_f:((k+5)/T);
sgma_a=1;
mn=0;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:2^k
b=r(i,:);
b(b==0)=-1;
mnm=0;
for j=1:k
sv=b(j)*sgma_a^2*sinc((f-((j)-0))*(T));
mnm=mnm+sv;
end
ln=floor(length(mnm)/2);
op(i,:)=mnm(ln+2:ln+((k+1)*100+1));
end
hold all
xa=-(k-1):0.01:(k-1);
for i=1:2^k
fop=op(i,:);
figure(1)
plot(fop)
end
grid on