You are on page 1of 2

Qpsk

PROGRAM:

fcarr=20;
N=10;
fs=4000;
ts=1/fs;
t=1/N;
td=[0:ts:1-ts];
data=round(rand(1,N));
data1=ones(t/ts,1)*data;
data2=data1(:);
twopi_fc_t=(1:fs)*2*pi*fcarr/fs;
sig=pskmod(data2,2);
ynoisy= awgn(sig,20);
ang=twopi_fc_t'+angle(sig);
bpsk_sig=sin(ang);
close all;
subplot(3,1,1);
plot(td,data2);
title('Message Signal');
axis([0,td(end),-0.5,1.5])
grid on;
subplot(3,1,2);
plot(td,bpsk_sig);
title('Modulated Signal');
axis([0,td(end),-1.5,1.5]);
grid on;
demod=pskdemod(ynoisy,2);
subplot(3,1,3);
plot(td,demod);
title('Demodulated signal');
axis([0,td(end),-0.5,1.5]);

grid on;
SNR=(0:50);
x=randint(10^5,1,2);
for i=1:length(SNR)
y=pskmod(x,2);
ynoisy=awgn(y,SNR(i),'measured');
z=pskdemod(ynoisy,2);
[num,rt]=symerr(x,z);
SimBer(i)=rt;
end
figure();
theory=0.5*erfc(sqrt(10.^(SNR/10)));
semilogy(SNR,theory,'b-','linewidth',2);
hold on
semilogy(SNR,SimBer,'mx-','lineWidth',2);
axis([0 50 10^-5 1]);
grid on
legend('theory','Simulation');
xlabel('Es/N0, dB');
ylabel('Symbol Error Rate');
title('symbol error probability curve for QPSK modulation');
axis([0 50 10^-5 1]);
grid on

You might also like