BER output problem for Radio over Fiber system/Optical Comm

Thread Starter

thavamaran

Joined Feb 21, 2008
67
Hi guys, this is my first work in optical and first simulation in matlab. I am sorry if there is mistake and im really new to this.

Here is what I did, im simulation an entire Radio Over Fiber system with Matlab, linear system.

Let me insert my code first,
Rich (BB code):
%*****************************Defining constant parameter****************
%Rb = 1e+6;                  %bit rate
%Tb = 1/Rb;                  %bit duration / period
Num_bits = 1e4;             %number of bits

nsamp = 20;                 %samples per symbols
%Tsamp = Tb/nsamp;           %sampling rate, fsamp = 20MHz.
a = 0.2;                    %channel attenuation, dB/km
L = 20;                     % Length of fiber
Gain = 10;                  %Gain in dB

%*****************************Filter definations************************

snr_dB=0:20;                            %SNR in dB from 0 to 20

SNR=10.^(snr_dB./10);                   %SNR in linear scale

Tx_filter = ones(1,nsamp);              %transmitter filter, in terms of 
                                        % h(t),match filter
Rx_filter = fliplr(Tx_filter/nsamp);    % receiver filter (matched filter),
                                        % flip from left to right to make
                                        % it h(T-t), match filter

Tx_OOK = randint(1,Num_bits);           % randomly generating 1 and 0 in a 
                                        % row of matrix for 1000
                                        % column,basically ON-OFF keying
                                        % with random bits
                                        
                                        
%*****************************Channel input*****************************                                        
Tx_OOKin = 0+Tx_OOK;                    % Tx+with power, 0dBm,ideal.

%*****************************Channel properties************************
                                        
 Txch = Tx_OOKin -(a*L);                %Signal in channel, deducting with 
                                        %channel attenuation=4dB

Txout = 10.^(Txch./10);                 %Changing back the signal to linear
                                        %scale

Tx_signal = rectpulse(Txout,nsamp);     % generate rectpulse for nsamp time
                                        % per symbol
                                        
                                      
%*****************************Receiver**********************************                                        
for i=1:length(snr_dB)                                        
Rx_signal = awgn(Tx_signal,snr_dB(i)+3-10*log10(nsamp),'measured');
                                   


%*****************************Match filtering***************************
MF_out = conv(Rx_signal,Rx_filter);          %equivalent to y(t)=x(t)*h(t)

MF_out_downsamp = MF_out(nsamp:nsamp:end);   %sampling and hold



%try without truncation

%*****************************Thresholding*******************************

Rxth = zeros(1,Num_bits);               %Reset receiver before thresholding

Rxth(find(MF_out_downsamp>0.45))=1;     %value above 0.45 equivalent to one
                                        %at the receiver, thresholding.
                                        
%*****************************BER CALC**********************************
ber(i) = biterr(Tx_OOK,Rxth);           %Matlab function for ber
%******************Theoritical BER CALC**********************************
ber_pr(i) = Qfunct(sqrt(SNR(i)));       %theoritical for ber
end

figure;
semilogy(snr_dB,ber,'b');               %Simulation 
hold on;
semilogy(snr_dB,ber_pr,'r');
xlabel('SNR(dB)');
ylabel('BER');
Above is my entire code, the part i bold, i dun really get the idea, i took it from my friend cause at the receiver part, i dont really have an idea of how to receive the signal for at least with 10 different SNR rate and plot BER. My friend used the Match filter, but i dont really have the exact idea how match filter works.

The Tx_filter and Rx_filter part i got it where we flip the entire input from transmitter and at the receiver. which is h(t) from transmitter becomes h(-t).

I have uploaded the output and the blue line on the plot is the output that i got
 

Attachments

Top