This book is no longer available/updated. The book is replaced by the following books. Please choose one from below.
Digital Modulations using Matlab
(PDF ebook)
Paperback (Black and White) printed book. Buy from nearest Amazon store
►United States ►United Kingdom ►Germany ►France ►Spain ►Italy ►Japan►Canada
Paperback (Color) printed book. Buy from nearest Amazon store
►United States ►United Kingdom ►Germany ►France ►Spain ►Italy ►Japan►Canada
Wireless Communication Systems in Matlab
Second Edition(PDF)
Paperback (Black and White) printed book. Buy from nearest Amazon store
►United States ►United Kingdom ►Germany ►France ►Spain ►Italy ►Japan►Canada
Paperback (Color) printed book. Buy from nearest Amazon store
►United States ►United Kingdom ►Germany ►France ►Spain ►Italy ►Japan►Canada
Digital Modulations using Python
(PDF ebook)
Paperback (Black and White) printed book. Buy from nearest Amazon store
►United States ►United Kingdom ►Germany ►France ►Spain ►Italy ►Japan►Canada
Paperback (Color) printed book. Buy from nearest Amazon store
►United States ►United Kingdom ►Germany ►France ►Spain ►Italy ►Japan►Canada
I need a code matlab of cdma-chaotic shift keying modulation, excatly in the detection of signal
hello sir,
This is vinay, I have purchased your latest book on digital communications using matlab 2nd edition , can you please write a code a matlab code on the following.
1)BER of QPSK over rayleigh channal
2) BER of QPSK over rician channal.
Hello sir,
Is there any book have a complete simulations about femtocells and the interference between the femtocell and the macro cell?
hello sir …. i have code of ccofdm done through AWGN and i want to use rayleigh channel …could you help me ?….
hello sir i want to ask u if u have any code using matlab or simulink about code shift keying modulation
i have been searching for any refrence or code about this type of modulation but could not find anything so plz can u help ?
Code Shift Keying (CSK) is a modified Direct Sequence Spread Spectrum (DSSS) scheme. A simple google search will fetch the matlab code for DSSS.
Implementation details for CSK can be found here.
https://hal.archives-ouvertes.fr/hal-01022510/document
Do u mean than the code of DSSS is the same for csk ?
Yes, you can choose the same pseudo random sequence. But the difference is , in CSK cyclic shifts of the pseudo random sequence are used to modulate the data. K bits of input data are modulated using one of the cyclically shifted version of the pseudo random sequence. Actually it combines a form of M-ary orthogonal signaling and DSSS
do u have any idea how can i make a cyclic pn code using the pn sequence generator in simulink
iam facing a lot of problem while iam trying to shift the code to create a new code from it
if u can help me plz ill be thankfull
hello sir, i wanna ask about how to plot the rician fading code on matlab with BPSK modulation and using channel coding 1/3 convolutional code?
Sorry, I dont have the code right now. However, it is not tough to figure this out from Matlab’s communication toolbox documentations.
Hi Sir, I have gone through your book intensively, but i am working on msk. How different is the ber of msk from ber of qpsk?
if they are different, how can i plot the ber of msk with carrier frequency?
Hello Jerry,
MSK modulation is very similar to QPSK, OQPSK modulations. It can be interpreted as two BPSK-like modulator on I and Q channel, with one of them being shifted by half-symbol period and shaped by sinusoids. Hence the BER for MSK is identical to that of BPSK, which is given by
Pb = 0.5 erfc(sqrt(Eb/N0))
You can read about MSK modulation/detection in this reference
Dayan Adionel Guimaraes, Contributions to the Understanding of the MSK Modulation, revista telecomunicaes, VOL. 11, NO.
01, MAIO DE 2008.
http://www.inatel.br/revista/busca/148-1-contributions-to-the-understanding-s356794-1/file
Hi Sir, What is the latest edition? and does your book include Filter design, implementation examples?
Second edition listed here is the latest. It is primarily intended for simulating fundamental blocks in digital communication systems. Filter design is very specific to signal processing and it is NOT covered in this ebook.
Dear sir,I am msc student and i’m working on efficient antenna polarization can u help me which type of antenna polarization is efficient for cognitive radio using matlab simulation
Dear sir, I am a PhD scholar and working in the field of channel modelling. Can you please help me in finding channel capacity using monte carlo simulation and symbol error rate.
hellow sir
can you help me providing MATLAB CODE for BER vs Eb/N0 in Rayleigh channel using Gold code and BER vs Eb/N0 in Rayleigh channel using P-N code???
thanks in advance..
hi mister
can you give me matlab code just for (ber vs eb/no with 16-QAM over AWGN)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% Alamouti Code for 2-transmiters and 1-receiver %%%%%%%%%
%%%%%%%%%%%%%%%%%%% 16-QAM %%%%%%%%%%%%%%%%%%
clc
clear all;
close all;
N = 10^5;
snr=linspace(0,25,26);
M=16;%M-ary Constellation
x = randint(N,1,M);
y1=modulate(modem.qammod(M),x);
y1=reshape(y1,1,N);
y = zeros(2,N);
y(:,1:2:end) = reshape(y1,2,N/2); % [x1 x2; …]
y(:,2:2:end) =(kron(ones(1,N/2),[-1;1]).*flipud(reshape(conj(y1),2,N/2)));% [-x2* x1*; ….]
h1 = 1/sqrt(2)*(randn(1,N/2) + 1i*randn(1,N/2));
h2 = 1/sqrt(2)*(randn(1,N/2) + 1i*randn(1,N/2));
h=[h1;h2];
H = kron(h,ones(1,2));
hEq = zeros(2,N);
hEq(:,(1:2:end)) = reshape(h,2,N/2); % [h1 0 … ; h2 0…]
hEq(:,(2:2:end)) = kron(ones(1,N/2),[1;-1]).*flipud(reshape(h,2,N/2)); % [h1 h2 ..; h2 -h1..]
hEq(1,:) = conj(hEq(1,:)); % [h1* h2* … ; h2 -h1 …. ]
hEqPower = sum(hEq.*conj(hEq),1);% mod(h1)^2+mod(h2)^2
ser=length(snr);
th=[];
for i=1:length(snr)
n=1/sqrt(2)*(randn(1,N)+1i*randn(1,N));% AWGN Noise vector
y3=sum(H.*y,1)+10^(-(snr(i)-10*log10(20))/20)*n;%snr is in dB
% Scaling w.r.t Transmitted power and divided by Avg Constellation Power
% Avg Constellation power is 10 for 16 QAM and each Transmitter power is P/2
% so subtract snr by 10*2=20
yMod = kron(reshape(y3,2,N/2),ones(1,2)); % [y1 y1 … ; y2 y2 …]
yMod(2,:) = conj(yMod(2,:)); % [y1 y1 … ; y2* y2*…]
yHat = sum(hEq.*yMod,1)./hEqPower; % [h1*y1 + h2y2*, h2*y1 -h1y2*, … ]
z=qamdemod(yHat,M);%Qam Demodulation
z=reshape(z,N,1);
[num ty]=symerr(x,z);%findind Symbol error rate
ser(i)=ty;
end
semilogy(snr,ser,’r-*’);grid on;hold on;
title(‘Plot of symbol error rates for Alamouti nTx=2, nRx=1, for 16-QAM’,’Color’,’k’,’FontSize’,13);
legend(‘sim (nTx=2, nRx=1, Alamouti(16-QAM))’);
xlabel(‘SNR(dB) —->’,’FontSize’,11);Ylabel(‘Symbol Error Rate —->’,’FontSize’,11);
Hello sir:
What difference between PM-QPSK and DP-QPSK?
Are PolSK and PM-mQAM modulation have linear or circular polarization?
PM-QPSK (polarization mode QPSK) or DP-QPSK (dual Polarization QPSK) refer to the same technique. The names are used interchangeable in many texts.
Here, the laser beam is split into two polarizations (TE and TM modes) and each polarized signal is separately modulated using QPSK and then added together [1].
For theory operation behind PolSK (polarization shift keying) techniques refer [2]
Reference:
[1] “Trends and Issues in Ultra-High Speed Transmission Technologies: For the implementation of 100 GbE/40 GbE and long haul transmission by optical modulation,” Technical Note, Anritsu, 2009.
https://dl.cdn-anritsu.com/en-us/test-measurement/files/Technical-Notes/Technical-Note/MP1800A_40_100GbE_EE1200.pdf
[2] Sergio Benedetto et al, “Theory of Polarization Shift Keying Modulation”, IEEE TRANSACTIONS ON COMMUNICATIONS. VOL. 40, NO. 4, APRIL 1992
http://web.mit.edu/6.441/spring06/projects/1/[email protected]
thanks alot
hello sir i want a code of OFDM in DWT and IDWT instead of FFT and IFFT
Sorry I do not have the code. May be I can add it for the further editions.
thank you
i wait you answer
please help me
Hello
How could I detect the PNC mapping of the constellations for 16-QAM? My input constellations are
M=4;
s1=[1+1j,-1+1j,1-1j,-1-1j];
s2=[0.4+0.4j,-0.4+0.4j,0.4-0.4j,-0.4-0.4j];
a= randi([0 M-1],1,N);
b= randi([0 M-1],1,N);
z=s1(a+1)+s2(b+1);
as you know in 4QPSK the PNC mapping for the constellations are
1- The points 2+2j,-2+2j,2-2j,-2-2j represents 1+1j
2- The points 2,-2 represents 1-1J
3- The points 2j,-2j represents -1+1j
4- the point 0 represents the point -1-1j
So how can I know the order for z ?
Thanks in advance
Othman
Sir,can u please provide me how to write the matlab codesto simulate ber function Eb/N0 for QPSK for differetes SF values
This article will be of some help for you
https://www.gaussianwaves.com/2015/06/how-to-generate-awgn-noise-in-matlaboctave-without-using-in-built-awgn-function/
My question is related to the way a gaussian signal is generated in MATLAB. For example, I have a signal defined in MATLAB as
signal = randn(1,1e6);
How is this signal represented mathematically i.e in the form of an equation?
Sir,can u please provide the matlab codes for simo and miso channnels.I want to calculate outage and ergodic capacity
Some information related to this topic :
* Capacity of a MIMO system over Fading Channels
https://www.gaussianwaves.com/2014/11/capacity-of-a-mimo-system-over-fading-channels/
* Ergodic Capacity of a SISO system over a Rayleigh Fading channel – Simulation in Matlab
https://www.gaussianwaves.com/2014/09/ergodic-capacity-of-a-siso-system-over-a-rayleigh-fading-channel-simulation-in-matlab/
* Capacity of a SISO system over a fading channel
https://www.gaussianwaves.com/2014/09/capacity-of-a-siso-system-over-a-fading-channel/
Sir,
I’m a mtech 1st year student.I am currently working on periodograms. Please help me in matlab coding in finding periodogram of a signal without using inbuilt function
The simplest method to plotting periodogram is given here:
* Plotting PSD of a sine wave using FFT – https://www.gaussianwaves.com/2014/07/how-to-plot-fft-using-matlab-fft-of-basic-signals-sine-and-cosine-waves/
* Plotting PSD of a noise like signal – https://www.gaussianwaves.com/2013/11/simulation-and-analysis-of-white-noise-in-matlab/
If you are looking for more advanced methods like Welch estimation please consult the actual journal papers from the respective authors.
* Peter D Welch , “The use of Fast Fourier Transform for the estimation of power spectra : A method based on time averaging over shot, and Modified Periodograms “, IEEE Trans. audio and electroacoust, vol AU-15, pp 70-73, June 1967 – URL :
https://www.utd.edu/~cpb021000/EE%204361/Great%20DSP%20Papers/Welchs%20Periodogram.pdf
For more example, you can consult the Matlab documentation too:
http://www.mathworks.com/help/signal/ug/psd-estimate-using-fft.html
can anybody suggest how to handle this type of question?
sir,
I am a mtech 1st year student … and for thesis my topic is power efficiency in ofdm..Pls help me to find the best book for ofdm and simulation in matlab…
Thanking You
Sir,
I’m a research student.Please help me by providing matlab function that generates fixed gold code
thank you
Please find the discussion on generating Gold codes (in Matlab) here
https://www.gaussianwaves.com/2010/10/generation-of-gold-codes-and-their-cross-correlation-2/
For details on its hardware implementation:
https://www.gaussianwaves.com/2015/06/hardware-implementation-of-gold-codes/
This book is helping me a lot in Digital Communications chair at Master’s degree in Electrical Engineering.
The support was fast to solve my doubts.
Recommended.
Thanks Mateus for your review.
Sir,
I’m a research student.Please help me by providing matlab code for atleast any of the following.
1.loss budget for a 40Gbps IMDD OFDM LR-PON
2.16 and 8 QAM constellations before and after employing SSII cancellationat optical received power of -4dbm
3.program for output power and reflection power of a 60KM single mode fiber
Thanks a lot
actually, I have two mapping signals and I want to make it as 16-QAM mapping signals, but these two mapping signals in a complex numbers
check the answer for your question below
Hi
I am grateful for helping me, I want to rewrite the previous question, how can I merge the two matrices where x(1) is a MSB(most significant bit) for the first bits and y(1) is a LSB for the first bits and x(2) =MSB(2), y(2)=LSB(2) and so on, to get a new matrix z.
Thanks in advance
Othman
z=[ 2+5j 1+2j, -4-3j -3-2j …….]
Here you go,
x=[2+5j , -4-3j, 4+2j, 3-3j];
y=[1+2j, -3-2j, 1-3j, 5+2j];
k=[x;y]; %vertical concatenation – the row vector y will be placed below the row vector x
z=k(:).’ %flatten the matrix and transpose it
output: z=> [2+5j 1+2j -4-3j -3-3j 4+2j 1-3j 3-3j 5+2j]
Hello sir
Would you please tell me how can I put two bits beside two bits from two separate matrices to generate a new matrix, but the original matrices with a complex number? because I used bitconcat and it dosen’t work becaused this instruction for real numbers!
Many thanks
Othman
for example;
x=[2+5j , -4-3j, 4+2j, 3-3j]
y=[1+2j, -3-2j, 1-3j, 5+2j]
Can you show the expected output matrix from x and y ?
thanks a lot,you are very kind
you are symbol of humanity.i believe there are humanity.
i thank you from us Iranians.
i searched this book more 6 month,but i can’t found free version.
please see my blog for free ebooks.this blog for my people till easy access to books
http://www.stablewaves.blogfa.com
thank you so so so much.thank you
Hey! Your book was very useful and helpful, but I want to know about PNC(Physical layer Network Coding) why you don’t included in your book? can you help me to know the code for 16-QAM in PNC please?
Regards
Hey! Your book was very valuable.! As a matter of fact ,do you have a matlab code to generate autocorrelation function of the rician fading channel using clarke’s model (Chapter 5.8)
Regards
Dear karthik
Thanks for purchasing the eBook. Only Rayleigh fading using Clark’s model is given. I do not have the code for rician fading with clarks model. However, I am intending to write about it in the next edition of the eBook.
Thanks for your support.
Please check your email. Thanks
thanks a lot,you are very kind
you are symbol of humanity.
i thank you from us iranians.
i searched this book more 6month,but i can’t download it.
please see my blog for free ebooks.this blog for my people till easy access to books
http://www.stablewaves.blogfa.com
thank u so so so much.thank you
thanks a lot,you are very kind
you are symbol of humanity.
i thank you from us iranians.
i searched this book more 6month,but i can’t download it.
please see my blog for free ebooks.this blog for my people till easy access to books http://www.stablewaves.blogfa.com
thank u so so so much.thank you
I think it is Hierarchical modulation!!! Actually one of my friend ask me about it and there is no reference about this scheme.
Many Thanks, you are helping me a lot. Can I ask you one more question please ? As you know after modulation the 16-QAM the output is 9 constellation points, so is there any way to get 9 points in every quarter(in Gray mapping) something like this way below
Best Regards
Is it a hierarchical modulation scheme ? Any reference to the plot above ?
Usually for M-QAM constellation (square & non-square types), the number of constellation points will be powers of 2 (example: 4,8,16,32,64,128,256 etc..,)
Still, if you are interested in Gray code mapping, you can make use of Karnaugh Maps. This method is discussed here : https://www.gaussianwaves.com/2014/11/constructing-a-rectangular-constellation-for-m-qam-using-karnaugh-map-walks/
Hello Mathuranathan,
Thanks a lot for your reply
Can you please told me how can I take one bit and left the next one from a matrix or array? For example my matrix is: x=[1001,1011,0011,0001] and I want to split them like this: 1-0- , 1-1-, 0-1-, 0-0-
In fact, I need to rearrange(decrease) these bits from four bits to two bits but in the receiver I need to put zeros between these bits and comparison between the transmitted and the received bits!!!
Thanks
You could do it via indexing.
Consider a simple vector x= [11,12,13,14,15,16,17,18,19,20] . In other words, x(11) = 11 ,x(2)=12, x(3)=13 and so on
If I am interested in elements 15 16 17 which are placed at indices [5,6,7], the code would be
>> x(5 6 7)
ans = 15 16 17
If I am interested in alternate elements
>> x(1 3 5 7 9)
ans = 11 13 15 17 19
Alternate way (more elegant)
>> x(1:2:end) %start from index 1, increment in steps by 2, reach till the last index)
ans = 11 13 15 17 19
To fetch alternate elements in reverse (decreasing) order
>>x(end:-2:1)
More indexing methods discussed here: https://www.gaussianwaves.com/2013/05/tips-tricks-indexing-in-matlab/
Hi
Can you please told me how can I write the code for hierarchical modulation?
Thanks
I do not think you can simulate hierarchical modulation using build-in Matlab commands.
This paper might help: http://www.radioeng.cz/fulltexts/2010/10_03_429_436.pdf
Hi,
I have read through the book and wondered how could I plot the channel throughput with the respect to the Shannon capacity in chapter 1.5? The code is not provided in the book. Looks like the formula for calculating the channel throughput is not declared neither.
“Throughput” – The rate of successful message delivery (no errors) across a communication channel. It is measured in bits/second. The channel capacity is the MAXIMUM data rate for noiseless communication.
The maximum data rate achievable on an AWGN channel (unconstrained capacity) is given in the chapter as C=B log2(1+S/N) (on page 20). The simulation for channel capacity and power efficiency limit is given in page 22,23
For more discussions and derivations please refer appendix A1,A2 and A3 at the end of the ebook.
Let me know if this is what you are looking for.
Hi,
Thank you for the prompt reply.
Actually I was asking for how to plot the graph on page 30. And I thought the dots inside the Shannon limit were the corresponding channel throughput. Correct me if I am wrong. If possible, can I hav the code plz?
Following equation will come handy to solve for R/B for the given Eb/N0. Substitute the following equation for 2^(neta) in your equation above.
simple LOS channel including pathloss exponent & unifrmly distributed random phase in matlab
Hi
Thanks a lot for your reply.
Even while using power as as mentioned in the reply, if my understanding is right, for m= 2 ,
2 ( m-1) in the above example is again 2 ( 2 1 )
Therefore only 2 states are there. I am not sure, if I am going wrong somewhere. Please check
Thanks a lot for your time.
Hi,
There exist two versions of formulas to calculate the constraint length (L)
The number of memory elements has to be interpreted accordingly.
For a (n=2,k=1,L=3) convolutional code the constraint length L=3.
If we use formula 1, then 3=1*(m+1) => m=2. This gives us two memory elements, which is straight forward. Then the number of states will be 2^m = 2^2=4 states.
If we use formula 2, then 3=1*m => m=3. Then you have to use the formula 2^(m-1) to calculate the number of states. Which gives 2^(3-1)=2^2=4 states again.
So, care must be taken to interpret the constrain length definition properly. I will elaborate more on this.
please send the code for dwt & idwt
1. In general, for most of the topics , matlab codes are given. So, it is possible to practically simulate and understand the concepts. This is a good feature.
2. If possible references may be added to get a better understand of some of the topics.
3. Some areas, explanantion can be more clear. For example , I went through the convolution encoder. It is not clear how the generator polynomials are used.
4. According to the formula given, the number of states in the state diagram is 2(m-1), where m is the number of memory element.
For a (2,1,3) encoder, the number of memeory elements m is calculated as follows:
L = k(m+1) -> 3 = 1(m+1) -> m=2
Therefore, the number of states = 2(m-1) -> 2(2-1) = 2.
But in the book, it is mentioned as 4 states. I am not sure if I am making any mistake. Please check.
Hi Kalpa,
Thanks for your inputs. I will improve the ebook and provide more clarity on the topics.
Regarding the states, the equation is and not . That was a typo in printing. I will take care of that in the next edition. So that leaves us with 4 states.
I bought this book from iTune one week ago. This book introduces simulation of communication systems from the beginning. It deeply attracts me. It includes digital communication, channel coding, inter-symbol interference, fading, digital modulations, OFDM and so on. This book covers all the basics of simulation of communication systems. I am hoping that authors can add some new technologies into it.