Frequency shift keying
clc;clear all;close all;
% Getting Input binary bits and frequency
g=[1 0 1 1 0 1];
f0=6;f1=13;
t=0:2*pi/99:2*pi;
binary=[];carrier=[];
mult=[];
% FSK algorithm
for n=1:length(g)
if g(n)==0
x=zeros(1,100);
c=sin(f0*t);
y=ones(1,100);
else g(n)==1
x=ones(1,100);
c=sin(f1*t);
y=ones(1,100);
end
carrier=[carrier c];
binary=[binary x];
mult=[mult y];
end
fsk=mult.*carrier;
% Plotting
subplot(211);plot(binary);grid on;
title('Binary Signal');
axis([0 100*length(g) -2.5 2.5]);
subplot(212);plot(fsk);grid on;
title('FSK Modulated Signal');
axis([0 100*length(g) -2.5 2.5]);
% Calculation of BER
N=10^6;
rand('state',100);
randn('state',200);
ip=rand(1,N)>0.5;
s=2*ip-1;
n=1/sqrt(2)*[randn(1,N)+j*randn(1,N)];
Eb_No_db=[-3:10];
for ii=1:length(Eb_No_db)
y=s+10^(-Eb_No_db(ii)/20)*n;
iphat=real(y)>0;
nerr(ii)=size(find([ip-iphat]),2);
end
simber=nerr/N;
theoryber=0.5*erfc(sqrt(0.5*(10.^(Eb_No_db/10))));
figure
semilogy(Eb_No_db,theoryber,'b.-');hold on
semilogy(Eb_No_db,simber,'mx-');
axis([-3 10 10^-5 0.5]);grid on;
legend('Theory','Sim');
xlabel('Eb/No,dB');ylabel('BER');
title('Bit Error Probability for FSK');
No comments:
Post a Comment