Thanks to visit codestin.com
Credit goes to www.scribd.com

100% found this document useful (1 vote)
248 views3 pages

MATLAB OFDM Optical Comm BER Analysis

The document discusses using OFDM modulation to transmit data over an optical communications link in MATLAB. It generates random binary data, performs QAM modulation, takes the IFFT to create the time-domain signal, adds a cyclic prefix, filters it to the device bandwidth, transmits over an AWGN channel, performs the FFT at the receiver, demodulates using QAM, and calculates the bit error rate for different data rates. It is asking for suggestions on how to determine the relationship between data rate and bit error rate.

Uploaded by

Bala Vishnu
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
248 views3 pages

MATLAB OFDM Optical Comm BER Analysis

The document discusses using OFDM modulation to transmit data over an optical communications link in MATLAB. It generates random binary data, performs QAM modulation, takes the IFFT to create the time-domain signal, adds a cyclic prefix, filters it to the device bandwidth, transmits over an AWGN channel, performs the FFT at the receiver, demodulates using QAM, and calculates the bit error rate for different data rates. It is asking for suggestions on how to determine the relationship between data rate and bit error rate.

Uploaded by

Bala Vishnu
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

Im trying to run some point-to-point communications link using OFDM modulation scheme. In matlab, I generate a random bit stream.

This stream is converted in a sequence of symbol : I used a 4-QAM modulation, so the length of one symbol is 2. Im trying to achieve optical communications so the time-domain signal has to be real-valued and positive. I realize a hermitian symmetry of the signal so as the output of my IFFT is only real and positive. After that, the signal goes through my device modulation bandwidth and a AWGN channel. At the receiver, I demodulate the signal using FFT operation and QAM demapping. Note that its not really OFDM because for the moment because I dont use cyclic prefix nor forward error correction. I need to plot BER for different data rates, but I dont find the relation between these two. Any suggestions ? Thanks in advance. Here my code : (correct me if there are errors, Im new in matlab and OFDM) %% Setup % OFDM parameters M =4; % Size of signal constellation k = log2(M); % Number of bits per symbol n_bits =512; % Number of bits to process N=2^11; % IFFT/FFT length (2^15 max AWG can take) num_zeros=N-1-2*(n_bits/k); % number of zeros to add hMod = comm.RectangularQAMModulator(M); % Create a M-QAM modulator %% Signal Source x = randi([0 1],n_bits,1); % Random binary data stream %% Bit-to-Symbol Mapping % Convert the bits in x into k-bit symbols. hBitToInt = comm.BitToInteger(k); xsym = step(hBitToInt,x); %% Modulation x_mod = modulate(modem.qammod(M),xsym); % Modulate using M-QAM. %% IFFT x_mod=[1;x_mod]; % DC component x_herm=flipud(conj(x_mod)); % Hermitian symmetry x_zero=[x_mod;zeros(num_zeros,1);x_herm]; % Zero padding : FFT algorithm efficient if input is a power of 2 x_ifft=N.*ifft(x_zero,N); % IFFT : x_ifft should be real due to hermitian symmetry

%% Butterworth filter (LED bandwidth) Fe=10e6; Te=1/Fe; fc=4e6 ; %cut-off frequency [b,a] = butter(4,fc/(Fe/2),low); % freqz(b,a,1000,Fe); % [h_filt,t_filt]=impz(b,a,100); %% Data through transmitter Tx=filter(b,a,x_ifft); %% Channel % White gaussian noise EbNo = 10; % ratio of bit energy to noise power spectral density, Eb/N0 in dB snr = EbNo + 10*log10(k) 10*log10(1); hChan = comm.AWGNChannel(NoiseMethod, Signal to noise ratio (SNR), SNR,snr); hChan.SignalPower = (Tx * Tx)/ length(Tx); awgn = step(hChan,Tx); %% Data through receiver Rx=awgn; %% FFT y_fft=fft(Rx,N)./N; y_fft=y_fft(1:length(x)/k+1); y_fft=y_fft(2:end); %% Demodulation y_demod = demodulate(modem.qamdemod(M),y_fft); %% Symbol 2 bit Mapping hIntToBit = comm.IntegerToBit(k); y_bits = step(hIntToBit,y_demod); %% Plot:QAM mapping h=scatterplot(y_fft,1,0,g.); hold on; scatterplot(x_mod(2:end),1,0,k*,h); title(Received signal); legend(Received signal, Signal constellation); axis([-5 5 -5 5]); hold off;

%% BER Computation % Compare x and z to obtain the number of errors and % the bit error rate. hErrorCalc = comm.ErrorRate; berVec = step(hErrorCalc,x,y_bits); bit_error_rate = berVec(1) number_of_errors = berVec(2)

You might also like