Match Filter and Sampling problem

9 views (last 30 days)
Durgaprasad Srinivasa
Durgaprasad Srinivasa on 30 Oct 2019
Commented: Subhadeep Koley on 5 Nov 2019
clc;
clear all;
close all;
tp=2.2676*10^-3;
Ts=22.6757*10^-6;
fc=4000;
Tc=(1/fc);
fs=44100;
n=0:Ts:1000;
fp=(1/tp);
w=2*pi*fp;
p=sin(w*n*Ts);
p(find(p<0))=0;
figure(1)
subplot(3,1,1);
plot(n,p);
data = randi([0,1],1,1000);
a=[];
for k=1:2:1000
if data(k)==0 && data(k+1)==0
a=[a 1];
elseif data(k)==0 && data(k+1)==1
a=[a i];
elseif data(k)==1 && data(k+1)==0
a=[a -1];
elseif data(k)==1 && data(k+1)==1
a=[a -i];
end
end
figure(2)
subplot(3,1,2);
y_s=conv(a,p);
Trm=min(numel(n),numel(y_s))
n=n(1:Trm);
y_s=y_s(1:Trm);
plot (n,real(y_s), '-',n,imag(y_s), '--');
%% modulation of 2 signals
figure(3)
subplot(3,1,3);
in_phase_carrier=cos(2*pi*fc*n*Ts);
q_phase_carrier=sin(2*pi*fc*n*Ts);
y_m=real(y_s).*in_phase_carrier+imag(y_s).*q_phase_carrier;
plot (n,real(y_m), '-');
subplot(3,2,3);
plot(n,imag(y_m), '--');
pav=sum(y_m.^2)/length(y_m);
et=sum(y_m.^2)/fs;
snrdb=20;
snrlin=10.^(snrdb./10);
eb=sum(y_m.^2)/length(y_m);
u=0.00022676;
g=5/60;
n1=(u-n);
in_phase_carrier_rec=cos(2*pi*fc*n1*Ts);
q_phase_carrier_rec=sin(2*pi*fc*n1*Ts);
y_mn1=(real(y_s).*in_phase_carrier_rec)+(imag(y_s).*q_phase_carrier_rec);
figure(4)
subplot(4,1,4);
r = (sqrt((1-g)^2))*y_m+y_mn1*g;
plot(n,r);
snrdb=20;
snrlin=10.^(snrdb/10);
n0 = eb/snrlin;
sigma=(n0.*fs)/2;
noise = sqrt(sigma).*randn(1,length(y_m));
recieved=noise+r;
%% demodulation of signal
subplot(4,2,4);
r_dm_in=real(recieved).*in_phase_carrier;
plot(n,r_dm_in,'-');
r_dm_out=imag(recieved).*q_phase_carrier;
plot(n,r_dm_out,'--');
Hello I am trying to demodulate using match filter and sampling it wwith 44100Hz. can anyone help with match filter and sampling of this code.
  1 Comment
Subhadeep Koley
Subhadeep Koley on 5 Nov 2019
Your code is running without an error. Can you elaborate what problem exactly you are facing? What is you expecting as the output?

Sign in to comment.

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!