16 Nov 2010

Frequency shift keying

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: