# Articles

Hi,

Thanks for comment and hoping that you liked the article. I will look into your comment and expect to respond with in two/three days if there is a query.

Further, you may join the email subscription (to get new articles delivered to your inbox).

**Note:** Joining the email subscription list entitles you to receive the **free e-Book on Probability of Error for BPSK/QPSK/16QAM/16PSK/64QAM in AWGN**.

**Subscribe and download the free e-Book**

**Alternatively, you may subscribe to the RSS feed by clicking here.**

## Articles

**Symbol and Bit error rate computation for various modulation scheme in AWGN**

- Bit error rate for BPSK
- Bit error rate for FSK (frequency shift keying)
- Bit error rate for differential binary phase shift keying (DBPSK)
- Symbol error rate for 4-PAM
- Symbol error rate for QPSK
- Symbol error rate for 16-QAM
- Symbol error rate for 16-PSK
- Comparing symbol error rate for 16QAM and 16PSK modulation

**Orthogonal signals**

- Minimum frequency spacing for having orthogonal sinusoidals
- OFDM transmission
- Cyclic prefix in orthogonal frequency division multiplexing
- Peak to average power ratio in OFDM signalling

**Receiver synchronization**

- Frequency offset estimation using 802.11a short preamble
- First order PLL for tracking constant phase offset

**Filters**

- Cascaded Integrator Comb (CIC) filter
- Digital implementation of RC low pass filter
- Transmit pulse shaping filter

**Hardware efficient signal processing circuits**

- Polyphase filters for interpolation
- Using CORDIC for phase rotation
- Using CORDIC for phase and magnitude computation

**Miscellaneous**

**MIMO**

- MIMO with Zero Forcing equalizer
- MIMO with MMSE equalizer
- MIMO with ZF Successive Interference Cancellation equalizer
- MIMO with ML equalization
- MIMO with MMSE SIC and optimal ordering

Hope you like the blog.

{ 112 comments… read them below or add one }

i need matlab code for BFSK in rayleigh channel

@Manoj: The post at http://www.dsplog.com/2007/08/30/bit-error-rate-for-frequency-shift-keying-with-coherent-demodulation/

describes fsk in awgn case. Should be straightforward to extend to rayleigh channel cases.

i need matlab code to calculate bit error rate for BFSK in rayleigh channel

@Manoj: Please check out the following post for FSK in AWGN.

http://www.dsplog.com/2007/08/30/bit-error-rate-for-frequency-shift-keying-with-coherent-demodulation/

Hopefully easy to adapt to rayleigh channel case

Hi,

Could you mail me the instructions to download the e-book. I have subscribed but am unable to download it. Thanks

@Harsha: emailed the instructions

hi all

I need matlab code for siso channel capacity

Capacity of siso channel(bps/Hz) vs. Average snr(dB)

@Nirupa: Hope the following post be of help

http://www.dsplog.com/2008/06/18/bounds-on-communication-shannon-capacity/

thank you for your explanation about CIC

Help me

Sr , I’m need base code for SPACE DIVISION MULTIPLE ACCESS-SDMA. Can you give that code or any document relate .thanks

@vsang: For topics on multiple transmit and receive antenna scenarios, please refer http://www.dsplog.com/category/mimo/

hello sir….

i need your help regarding my project…

i need a matlab code for video transmision as soon as possible…

thnxzzz in advance…..

@shona: Are you modeling the physical layer or some higher layers like MAC too.

Hi Krishna,

I would like to say thanks first of all as you are helping us and I fully appreciate your work.

Now I am doing project on ::4×4 MIMO simulation

This is the detail::::

Multiple input multiple output (MIMO) is very promising for future high data rate mobile communications. In LTE, 4×4 MIMO (four antennas in the transmitter and four antennas in the receiver) have been adopted. In this project, the student is required to implement 4×4 MIMO encoding and decoding by using the specifications in LTE. Simulink is a suggested tool.

Can you please help me for code (In simulink) and also any books which I can refer????

@Manit: For some unit level simulation with 2×2 MIMO case, please refer to the posts in

http://www.dsplog.com/tag/mimo

Thnks for your reply. But could please tell me regarding encoding and decoding in simulink.

Thank you

@Manit: I have not tried Simulink.

Hello sir,

I NEED

theoryBer_16QAM

@norseen: Please check

16QAM Bit Error Rate (BER) with Gray mapping

http://www.dsplog.com/2008/06/05/16qam-bit-error-gray-mapping/

I hope you reply me as soon as possible

could you please send me a matlab code for mimo capacity vs SNR for unknown channel

@basha: Are you trying to plot the bits per second per Hz for the different modulation schemes?

You can take a look at

a) http://www.dsplog.com/2008/06/18/bounds-on-communication-shannon-capacity/

b) http://eetimes.com/design/communications-design/4017668/Modulation-roundup-error-rates-noise-and-capacity?pageNumber=1

K=SQRT(1/(2/3M-1)) is a mistake.

it needs to be: K=SQRT(1/(2/3*(M-1)))

sir……..i am doing prjct on ofdm.. plz give me a matlab code for papr of 16qam…….

@sailaja: I have not discussed PAPR for 16QAM explicitly, but the post http://www.dsplog.com/tag/papr/ might be of help

hi do you have any matlab code that calculates the outage probability for two way relay channel for two,three, four time slot schemes?

@akis: sorry, no

Dear Akis

Do you have any matlab code about calculates the outage probability for two way relay , BER , power for Multihop ….? Please share me. Thank you

my email: nguyenkimhieuha@gmail.com

Thank you

Dear Akis

I am also worikng on multi-hop relay network. I am new in this area and need some help from you. if you can give meur email address please. my email nguyenkimhieuha@gmail.com

i’ll wait for ur reply,plz contzct me on my email.

hi sir

please help me to find code for simulation of power line communication plc with OFDM modulation

please please

@imen: Sorry, I have not studied power line communication

Any codes in Spatial multiplexing? or MIMO in LTE??

@Rabi: Please take a look at http://www.dsplog.com/tag/mimo

hi ,

can u give me the matlab code for pc-cfr technique in ofdm

@vijay: what is pc-cfr?

hi sir,

i qm working on pc-cfr technique, can you assist me with the relevent matlab code

@vanita: what is pc-cfr?

thank you Krishna for your above reply,

first of all ,, i am a master student ,, and my search ” enhancement study of CDMA celluar system by introducing OFDM technology”

so i am trying to do CDMA system then i add OFDM part to the code

and i did the most work of what i said above,

but i have some question

i change the rayleigh channel that i used by this :

channel=(randn(1,Ntap)+1j*randn(1,Ntap)).*sqrt(Power/2);

which is familiar with the channel that you are use in your programs.

my questions is :

1) how much the bitrate that your are sent? and how can i insert the

effect of bitrate with this channel to my program?

2) generally , the effect of bitrate can only add on channel part of the matlab code?

3) for OFDM-CDMA system the equlizer that i used namly ”least square” which is simply divide in frequency domain the received signal by FFT(channal impulse response) , and the place of this divide after the FFT part of receiver, but in CDMA reeceiver >> where will be put?

when i put it in the begging of receiver (of course i take FFT for the received signal and for channel impulse response then divided the received signal by channel frequency response in frequency domain) then i take IFFT for the resualt to back to time domain and complete my despreading and demapping.

the probem is : i got a very good resualt .. almost the effect of channel are completly removed ….. i got BER = 1e-5 at -5 dB…… ?

finally thank you for this very helpfull site ,, thank you for your replies

@ammar: My replies:

1. Bit rate is a notional concept in Matlab. If the samples are spaced T s seconds apart, then sampling rate is 1/T Hz…

2. Did not understand the question

3. How does the OFDM-CDMA transmit chain look like?

can u please explain me about bit error probability code of 8 PAM and 16PAM?

@varma: I have discussed 4-PAM in the past.

http://www.dsplog.com/2007/10/07/symbol-error-rate-for-pam/

Hope that helps?

Hello. Thanks for your posts

i just want to ask you if you deal with matlab function named”rayleighchan”?

its great

but i have some question on it

@ammar: Sorry, i do not ‘deal’ with rayleighchan

hello sir ,

pls help me with me , with a code for MIMO with MMSE equaliser in QAM-16 modulation technique

@Gayathri: Sorry, I do not have the exact matlab code handy. But I can point you to

a) MIMO with MMSE equalizer – BPSK 2×2 in Rayleigh channel

http://www.dsplog.com/2008/11/02/mimo-mmse-equalizer/

b) 16QAM in AWGN over OFDM

http://www.dsplog.com/2012/01/01/symbol-error-rate-16qam-64qam-256qam/

Hope both helps to get you what you need.

Hello. Thanks for your posts.

I have a question.

When I simulated 2by2 MIMO system, the 4PAM-ZF system has same SER of 4PAM-MMSE system.

(Rayleigh ch./AWGN noise/BER vs SNR

But, there is a little difference

So, I am very confusing.

Please answer my question

Thanks

@Ari: When you try to reduce the modulation from 4PAM to 2PAM (BPSK), are you seeing differences in the MMSE behaviour vs ZF behaviour. Further, in AWGN the difference might not be present, as there is no interference terms.

Do reply back with your findings.

Nice Article,i Appriciate u=r Knowledge

hi krishna sir

I saw ur example of ber -bpsk-rayleigh channel but i need the the qpsk for the rician channel I dont know coding sir so please help me sir give some hints where to change thats enough for me sir .please sir

@shu: My replies:

1/ For QPSK, send data on I channel as well as Q channel

2/ I have not discussed Rician channel model

plz send me the book…

@usman: Have you subscribed to email newsletter from dsplog.com.

If not, please click here to subscribe.

http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1348583&loc=en_US

Once you have subscribed, you should have received a confirmation email. Please reply to that

email and you will receive email instructions on how to download the eBook.

How do I get access to the download site for the e-book?

@Willie: Emailed you the download instructions

hey…

will u plz giv me code for gmsk….

thanks..

avdhut

@avdhut: I do not have the code for GMSK, but you may refer the MSK code @

http://www.dsplog.com/2009/06/16/msk-transmitter-receiver/

http://www.dsplog.com/2008/01/19/simulating-minimum-shift-keying-transmitter/

Hello;

How can i cacluate the SNR between two nodes A and B if they used BPSK

B.R

@Ahmed: Sorry, the question is not clear

hello krishna,

i m making code for PTS scheme for PAPR reduction. i m facing some problems in that……

1. how to implement oversampling in ofdm?

2. how do we calculate CCDF for PAPR calculation?

thanx in advance.

@gul: My replies

1/ For oversampling by a factor of 2 insert 1 zero inbetween samples; for oversampling by factor of 3 insert 2 zeros inbetween samples; and so on. Note: Oversampling need to be followed by filtering

2/ Take the histogram of the time domain samples to find the PDF. Use cumsum to find the CDF. Then 1- CDF gives CCDF. In the post on PAPR in OFDM, I have plotted the CDF of the time domain waveform http://www.dsplog.com/2008/02/24/peak-to-average-power-ratio-for-ofdm/

Hello,

I have a question about plotting BER vs SNR in MIMO systems. Lets say i have a 2×2 MIMO system, and i perform an SVD on the channel, so i can encode and decode the signal with V and U, respectively, such that i am left with 2 uncoupled SISO channels. now each channel has its own singular value, and let us assume for now that the noise power is the same in both channels. So we have SNR1 in the first channel, and SNR2 in the second channel, and they are different.

Q1: How would you define the SNR of this system? is it the average SNR of both channels?

Now we now that according to the Water Filling algorithm, we can transmit more power (and thus, more bits) in channels with higher SNR. so if come to conclusion that the first channel can carry QPSK, and the second channel can only carry BPSK, i have different contelations in both channels… So the SNR which were calculated earlier for each channel, should now be modified in order to reflect the number of bits which are transmitted via those channels, by: SNR_bit=SNR_sym/k, where k=log_2(M).

Q2: How should plot 1 graph which describes the BER vs. SNR_bit of this system? Should i calculate SNR_bit for each SISO channel, and BER for each SISO channels separately, and the average the results?

Thanks

@ben: My replies

1.a) As I recall, when we are multiplying by V, we are not introducing any gain in the transmitter. In that case, signal power at the transmitter remains the same irrespective of multiplication by V. Agree?

Having said that reporting SNR information from both the streams and average SNR is useful. I believe most MIMO test instruments report both

1.b) The signal to noise ratio is independent of the constellation used. If you want to compare using Eb/N0, then yes, need to factor in the constellation

2) Hmm…. you can defined Es/N0 = ratio of total power at tx / total noise power at rx. Then depending on the number of bits which are pumpre through, Es/N0_dB = Eb/N0_dB + 10*log10(number of bits per symbol across all tx chains)

Agree? Your thoughts please.

hello sir..

how to downsample received UWB signal ???kindly help us with matlab code sir

@Uma: Sorry, I have not tried modeling UWB signals

Hello Krishna,

I have referred your example on first order PLL for constant phase tracking.It was very useful.

http://www.dsplog.com/2007/06/10/first-order-digital-pll-for-tracking-constant-phase-offset/

But in the example a complex carrier is being used at the transmitter and receiver.Practically , when I use a cosine carrier at Tx. and cosine,sine carriers at Rx.(as in costas loop) , can the same loop filter be used ?

I have tried to simulate the above situation in the following script but was unable to estimate the phase. Please help me……….

% MODULATION

clc;

clear all;

close all;

[b,a] = butter(1,0.0156,’low’); % low pass filter to remove

nterm_i = 0; % double frequency component

dterm_i = 0;

nterm_q = 0;

dterm_q = 0;

n_sym = 10; % number of symbols

fs = 12.8e6;

t = 0:1/fs:100e-6 – 1/fs;

fc = fs/8; % carrier freuency

theta = 70*pi/180; % phase offset

r = 0.1e6; % symbol rate

oversamp = fs/r;

sym = randint(n_sym,1)*2-1;

in = 0;

for ind=1:1:n_sym

tmp(1:oversamp) = sym(ind);

in = [in tmp];

end

tx = in(2:end);

tx_carrier = cos(2*pi*fc*t + theta);

tx_out = tx.*tx_carrier;

% first order pll

alpha = 0.05;

phiHat = 0;

for ii = 1:1:length(t)

% Remove carrier

rx_i(ii) = tx_out(ii)*cos(2*pi*fc*t(ii) + phiHat);

rx_q(ii) = tx_out(ii)*sin(2*pi*fc*t(ii) + phiHat);

% low-pass IIR filter for I-channel

iir_in_i(ii) = rx_i(ii);

iir_out_i(ii) = b(1)*iir_in_i(ii)+ nterm_i + dterm_i;

nterm_i = b(2)*iir_in_i(ii);

dterm_i = a(2)*iir_out_i(ii);

% low-pass IIR filter for Q-channel

iir_in_q(ii) = rx_q(ii);

iir_out_q(ii) = b(1)*iir_in_q(ii)+ nterm_q + dterm_q;

nterm_q = b(2)*iir_in_q(ii);

dterm_q = a(2)*iir_out_q(ii);

% demodulating circuit

xHat = 2*(iir_out_i(ii)>0) -1 ; % symbol estimate

phiHatT =angle(conj(xHat)*rx_i(ii)); % phase error estimate angle(iir_out_i(ii) + i*iir_out_q(ii));%

% accumulation

phiHat = alpha*phiHatT + phiHat; % phase accumulator output

% dumping variables for plot

phiHatDump(ii) = phiHat;

end

plot(phiHatDump*180/pi,’-');

@venkat: Does the transmitted symbol has phase information?

Help hw do i generate E/No curve for ASK modulation

@taona: I have discussed symbol error rate for 4-PAM case http://www.dsplog.com/2007/10/07/symbol-error-rate-for-pam/

Hope that serves as a good reference

I need to compute 24 point dft using 8 point dft chips……. pls help!!!!!!

@Karthick: Did you try looking into the FFT equations?

@Karthick: Have you tried looking into the FFT equations?

hi krishna

i m new to matlab and i need to know tht ur code for ml equalisation uses viterbi algo aur something else,please tell i m not able to figure it out.

thanks

@deepak: which is the code which you are referring to?

i wan to know how can we find papr for 7 caiiers

suppose by block coding code is 1100110 then how to find papr

@manisha: Please look at the post http://www.dsplog.com/2008/02/24/peak-to-average-power-ratio-for-ofdm/. The article discuss the N carrier case, which you can adapt to 7 carrier case.

im new in matlab.

Hello Krishna, thanks for ur nice work on OFDM.

i want to design an OFDM simulator using matlab GUI so that we can easily to find out the BER vs SNR when i change any parameter on the modulation..

can u give me some idea which part i need to change mybe on the sampling freq or mybe on the no of sample..

and lastly from ur code which part i must to do so…please teach me…-shah-

@shah: Well, the concept of sampling is notional in Matlab

Hi

Krishna

If the channel became Nakagami-m in OFDM system, how change the value of ht in program simulation of BER of multipath OFDM in Relaigh fading channel

Thank you

@Ahmed: Sorry, I have not tried to model Nakagami systems

hw i will generate multipath channel coefficient in ofdma

@surjeet: You can have an exponential channel model (like Naftali model for WLAN)

http://www.commsdesign.com/article/printableArticle.jhtml?articleID=16505977

https://mentor.ieee.org/802.11/file/00/11-00-0282-00-00sb-evaluating-the-performance-of-ieee802-11-hrb-proposal-in-multipath.ppt

hi krishna!

I need matlab code to obtain BER vs SNR curve for binary on-off keying modulation.

also, i need code for SER vs SNR curve for 3ASK modulation.

Can you demodulate the co-channel AIS signals(GMSK signals) and does there exists any methods to separete the co-channel AIS signals(GMSK signals) ?thanks very much

i subscribed dsplog but i didn’t get BER e-book. i received the mail to download the book but its not working. Kindly send me.

@gul: I re-checked the download link, its working. I mailed the same to you again.

thank you for the same.

i m doing a project on OFDM. i want to implement wavelet transform in place of FFT.can u suggest am i on right track or not?

is it little possible to do this.

Hello sir,

i subscribed dsplog but i didn’t get ber e-book. i got mail to download book but its not working. its giving corrupted pdf. Kindly send me.

@Umashankar: I mailed you the download instructions. please check.

plz sir help me in providing matlab code for interleaver using rs using qam or any other modulation scheme in awgn . its urgent. plz help

thanks in advance

@gurinder: Sorry, I have not made any posts involving interleaver

thanks a lot for the demonstration

why u r not using the builtin functions for modulation,demodulation etc.

is there any book for digital communication and wireless/mobile communication using MATLAB?

thank you for sharing such information.

i m doing a project on OFDM.can u please help me for the use of wavelet transform in OFDM.

@gul: Sorry, am not familiar with wavelet transform in OFDM

can u pls mail me matlab program for papr calculation

i hav prefferd iee paper of jones and wiliksons paper

@manisha: You can refer articles on PAPR at http://www.dsplog.com/tag/papr

iam dioing simulation to find ber of bpsk modualtion for pass band case in awgn channel. i am using a carrier with some perticular frequency.

@rama: Please ask queries. I will try to answer to the best of my knowledge.

Plz it is urgent I need it today

sir

please give me the suggestion to calculate throughput in WLAN OFDM systems

@SREENU: I would recommend you to go over the paper

Throughput and Delay Limits of IEEE 802.11, Yang Xiao, Jon Rosdahl, IEEE COMMUNICATIONS LETTERS, VOL. 6, NO. 8, AUGUST 2002

Its available online and you should be able to find it by quick googling. Good luck.

sir i am able to do matlab program for papr calcaulation for 7 carriers

@manisha: Thats nice

thank you sir

sorry about the incomplete comment !!

I meant that the variance will be changed or not if I didn’t use a complex part ?

Sir, while converting data into OFDM signal , it is observed that Subcarrier index is used. Inthis for standndard 802.11a , 64 subcarriers are used ,of which 52 is for data. The subcarrier index used is -26 to +26 . I want to know Why it is used so? Why 0 is not included in this.

@Selvi Rajan: Answer for one of the queries in http://www.dsplog.com/2009/10/07/quiz-ieee-80211a-specifications/ address this.

DC is not used because, there can be DC in the system due to RF impairments. Hence will corrupt the information send on DC subcarrier. The edge subcarriers are not used to allow the spectrum to roll-off.

my question is how to demodulate the SSB-SCsignals.

hi

i need simulink’s (matlab) block for accunting BPSK BER

thanks

@sam: Sorry, I do not have Simulink.