4.71429

4.7 | 15 ratings Rate this file 1173 downloads (last 30 days) File Size: 147.43 KB File ID: #25293

MATLAB for Digital Communication

by Won Yang

 

11 Sep 2009

Code covered by the BSD License  

The MATLAB programs in "MATLAB/Simulink for Digital Communication" authored by Won Y. Yang et. al

Download Now | Watch this File

File Information
Description

CHAPTER 1: FOURIER ANALYSIS
1.1 CONTINUOUS-TIME FOURIER SERIES (CTFS)
1.2 PROPERTIES OF CTFS
       1.2.1 Time-Shifting Property
       1.2.2 Frequency-Shifting Property
       1.2.3 Modulation Property
1.3 CONTINUOUS-TIME FOURIER TRANSFORM (CTFT)
1.4 PROPERTIES OF CTFT
       1.4.1 Linearity
       1.4.2 Conjugate Symmetry
       1.4.3 Real Translation and Complex Translation
       1.4.4 Real Convolution and Correlation
       1.4.5 Complex Convolution – Modulation/Windowing
       1.4.6 Duality
       1.4.7 Parseval Relation - Power Theorem
1.5 DISCRETE-TIME FOURIER TRANSFORM (DTFT)
1.6 DISCRETE-TIME FOURIER SERIES - DFS/DFT
1.7 SAMPLING THEOREM
       1.7.1 Relationship between CTFS and DFS
       1.7.2 Relationship between CTFT and DTFT
       1.7.3 Sampling Theorem
1.8 POWER, ENERGY, AND CORRELATION
1.9 LOWPASS EQUIVALENT OF BANDPASS SIGNALS

CHAPTER 2: PROBABILITY AND RANDOM PROCESSES
2.1 PROBABILITY
2.2 LINEAR FILTERING AND PSD OF A RANDOM PROCESS
2.3 FADING EFFECT OF A MULTI-PATH CHANNEL
CHAPTER 3: ANALOG MODULATION
3.1 AMPLITUDE MODULATION (AM)
       3.1.1 DSB (Double Sideband)-AM (Amplitude Modulation)
       3.1.2 Conventional AM (Amplitude Modulation)
       3.1.3 SSB (Single Sideband)-AM(Amplitude Modulation)
3.2 ANGLE MODULATION - FREQUENCY/PHASE MODULATIONS

CHAPTER 4: ANALOG-TO-DIGITAL CONVERSION
4.1 QUANTIZATION
       4.1.1 Uniform Quantization
       4.1.2 Non-uniform Quantization
       4.1.3 Non-uniform Quantization Considering Relative Errors
4.2 Pulse Code Modulation (PCM)
4.3 Differential Pulse Code Modulation (DPCM)
4.4 Delta Modulation (DM)

CHAPTER 5: BASEBAND DIGITAL TRANSMISSION
5.1 RECEIVER (RCVR) and SNR
       5.1.1 Receiver of Filter Type
       5.1.2 Receiver of Matched Filter Type
       5.1.3 Signal Correlator
5.2 SIGNALING AND ERROR PROBABILITY
       5.2.1 Antipodal (Bipolar) Signaling
       5.2.2 OOK(On-Off Keying)/Unipolar Signaling
       5.2.3 Orthogonal Signaling
       5.2.4 Signal Constellation Diagram
       5.2.5 Simulation of Binary Communication
       5.2.6 Multi-level(amplitude) PAM Signaling
       5.2.7 Multi-dimensional Signaling
       5.2.8 Bi-orthogonal Signaling

CHAPTER 6: BANDLIMITED CHANNEL AND EQUALIZER
6.1 BANDLIMITED CHANNEL
       6.1.1 Nyquist Bandwidth
       6.1.2 Raised-Cosine Frequency Response
       6.1.3 Partial Respone Signaling - Duobinary Signaling
6.2 EQUALIZER
       6.2.1 Zero-Forcing Equalizer (ZFE)
       6.2.2 MMSE Equalizer (MMSEE)
       6.2.3 Adaptive Equalizer (ADE)
       6.2.4 Decision Feedback Equalizer (DFE)

CHAPTER 7: PASSBAND DIGITAL TRANSMISSION
7.1 AMPLITUDE MODULATION - AMPLITUDE SHIFT KEYING (ASK)
7.2 FREQUENCY MODULATION - FREQUENCY SHIFT KEYING (FSK)
7.3 PHASE MODULATION - PHASE SHIFT KEYING (PSK)
7.4 DIFFERENTIAL PHASE SHFT KEYING (DPSK)
7.5 QUADRATURE AMPLITUDE MODULATION (QAM) - PAM/PSK
7.6 COMPARISON OF VARIOUS SIGNALINGS

CHAPTER 8: CARRIER RECOVERY AND SYMBOL SYNCHRONIZATION
8.1 INTRODUCTION
8.2 PLL (PHASE-LOCKED LOOP)
8.3 ESTIMATION OF CARRIER PHASE USING PLL
8.4 CARRIER PHASE RECOVERY
       8.4.1 Carrier Phase Recovery Using Squaring Loop for BPSK
       8.4.2 Carrier Phase Recovery Using Costas Loop for PSK
       8.4.3 Carrier Phase Recovery for QAM Signals
8.5 SYMBOL SYNCHRONIZATION (TIMING RECOVERY)
       8.5.1 Early-Late Gate Timing Recovery for BPSK Signals
       8.5.2 NDA-ELD Synchronizer for PSK Signals

CHAPTER 9: INFORMATION AND CODIN
9.1 MEASURE OF INFORMATION - ENTROPY
9.2 SOURCE CODING
       9.2.1 Huffman Coding
       9.2.2 Lempel-Zip-Welch Coding
       9.2.3 Source Coding vs. Channel Coding
9.3 CHANNEL MODEL AND CHANNEL CAPACITY
9.4 CHANNEL CODING
       9.4.1 Waveform Coding
       9.4.2 Linear Block Coding
       9.4.3 Cyclic Coding
       9.4.4 Convolutional Coding and Viterbi Decoding
       9.4.5 Trellis-Coded Modulation (TCM)
       9.4.6 Turbo Coding
       9.4.7 Low-Density Parity-Check (LDPC) Coding
       9.4.8 Differential Space-Time Block Coding (DSTBC)
9.5 CODING GAIN

CHAPTER 10: SPREAD-SPECTRUM SYSTEM
10.1 PN (Pseudo Noise) Sequence
10.2 DS-SS (Direct Sequence Spread Spectrum)
10.3 FH-SS (Frequency Hopping Spread Spectrum)

CHAPTER 11: OFDM SYSTEM
11.1 OVERVIEW OF OFDM
11.2 FREQUENCY BAND AND BANDWIDTH EFFICIENCY OF OFDM
11.3 CARRIER RECOVERY AND SYMBOL SYNCHRONIZATION
11.4 CHANNEL ESTIMATION AND EQUALIZATION
11.5 INTERLEAVING AND DEINTERLEAVING
11.6 PUNCTURING AND DEPUNCTURING
11.7 IEEE STANDARD 802.11A - 1999

Required Products Communications Blockset
Communications Toolbox
Signal Processing Blockset
Signal Processing Toolbox
MATLAB release MATLAB 7.4 (R2007a)
Zip File Content  
Other Files
adc.m,
add_vc.m,
ade.m,
Alaw.m,
Alaw_inv.m,
awgn_.m,
ch_80.dat,
ch_80.txt,
ch_complex.dat,
channel.m,
channel_estimate.m,
cir09e05.m,
coarse_CFO_estimate.m,
combis.m,
compensate_CFO.m,
compensate_phase.m,
conv_encoder.m,
corr_circular.m,
CTFS.m,
CTFT.m,
cyclic_decoder.m,
cyclic_decoder0.m,
cyclic_encoder.m,
dc0109_1.m,
dc0109_2.m,
dc01e01.m,
dc01e03.m,
dc01e16.m,
dc01e17.m,
dc01p02.m,
dc02e02a.m,
dc02e02b.m,
dc02e03.m,
dc02e05.m,
dc02f05.m,
dc02p01.m,
dc0301_1.m,
dc0301_2.m,
dc0301_3.m,
dc040e03.m,
dc0501.m,
dc05f17.m,
dc0701_1.m,
dc07p01.m,
dc09p07.m,
deci2bin1.m,
decoder.m,
deinterleaving.m,
dem_PSK_or_QAM.m,
demodulate_PSK_or_QAM.m,
demultiplex.m,
depuncture.m,
detector_FSK.m,
detector_MSK.m,
detector_PSK.m,
dfe.m,
do_ade.m,
do_BCH_BPSK_sim.m,
do_CFO.m,
do_CFO_PHO_STO.m,
do_channel_estimation.m,
do_cyclic_code.m,
do_cyclic_codes.m,
do_dfe.m,
do_FSK_sim.m,
do_Hamming_code74.m,
do_interleaving.m,
do_mmsee.m,
do_MSK_sim.m,
do_nonuniform_quantization.m,
do_OFDM0.m,
do_OFDM1.m,
do_PNG.m,
do_PSK_sim.m,
do_puncture.m,
do_QAM_sim.m,
do_rcos1.m,
do_rcos2.m,
do_square_filter_clock.m,
do_STO.m,
do_STO_estimation.m,
do_sync_for_DMB.m,
do_sync_w_double_window.m,
do_TCM_8PSK.m,
do_uniform_quantization.m,
do_vector_quantization.m,
do_vitdecoder.m,
do_vitdecoder1.m,
do_Viterbi_QAM.m,
do_zfe.m,
DS_SS.m,
encoderm.m,
equalizer_in_freq.m,
f5252.m,
f5252_0.m,
FH_SS.m,
FH_SS2.m,
fine_CFO_estimate.m,
Gauss_Hermite.m,
Gausshp.m,
gm2gM.m,
gray_code.m,
gray_code0.m,
Hamm_gen.m,
Hermitp.m,
huffman_code.m,
I0.m,
IFO_estimate.m,
interleaving.m,
inv_GF2.m,
Jkb.m,
LDPC_decoder.m,
LDPC_demo.m,
license.txt,
logmap.m,
long_train_seq.m,
LZW_code.m,
LZW_coding.m,
LZW_decode.m,
LZW_decoding.m,
mmsee.m,
mod_PSK_or_QAM.m,
modulate_PSK_or_QAM.m,
mulaw.m,
mulaw_inv.m,
OFDM_parameters.m,
phase_from_pilot.m,
phase_ref_symbol.m,
plot_ds_ss.m,
plot_MOD.m,
PNG.m,
prdctr.m,
principal_frequency.m,
prob_err_msg_bit.m,
prob_error.m,
PSK_slicer.m,
puncture.m,
Q.m,
QAM.m,
QAM4_slicer.m,
QAM_dem.m,
quantize_nonuniform.m,
quantize_uniform.m,
rD.m,
rD_wave.m,
remove_vc.m,
Rice_pdf.m,
rotate_l.m,
rsc_encode.m,
set_CFO.m,
set_parameter_11a.m,
short_train_seq.m,
sim_antipodal.m,
sim_ASK_bandpass_coherent.m,
sim_ASK_bandpass_noncoherent.m,
sim_biorthogonal.m,
sim_Delta_Sigma.m,
sim_DM.m,
sim_DPCM.m,
sim_DPSK_passband.m,
sim_DSB_AMSC.m,
sim_DSB_AMTC.m,
sim_FM.m,
sim_FSK_bandpass_coherent.m,
sim_FSK_bandpass_noncoherent.m,
sim_MSK.m,
sim_OQPSK.m,
sim_orthogonal.m,
sim_PCM.m,
sim_PLL.m,
sim_PM.m,
sim_PSK_passband.m,
sim_QAM_carrier_recovery.m,
sim_QAM_passband.m,
sim_QPSK_Costas.m,
sim_QPSK_Costas_earlylate.m,
sim_S_QDPSK.m,
sim_squaring_loop.m,
sim_SSB_AM.m,
sim_sym_sync_earlylate.m,
sim_TCM.m,
Sk_CTFS.m,
slice.m,
source_coding.m,
source_decoding.m,
sova.m,
start_PSK_carrier_phase_timing_recovery.m,
state_eq.m,
TCM.m,
TCM1.m,
TCM_decoder.m,
TCM_decoder1.m,
TCM_encoder.m,
TCM_encoder1.m,
TCM_state_eq0.m,
TCM_state_eq1.m,
test_corr_circular.m,
test_DSTBC_G2_PSK.m,
test_DSTBC_H4_PSK.m,
test_encode_decode.m,
test_Rayleigh_fading.m,
test_unwrap.m,
trellis.m,
tri.m,
tri_wave.m,
turbo_code_demo.m,
vector_quantization.m,
vit_decoder.m,
Viterbi_QAM.m,
xcorr_my.m,
zfe.m
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (36)
15 Oct 2009 Erdal Bizkevelci  
22 Oct 2009 haider mehraj  
30 Jan 2010 Ustun Ozgur

Epic bookname fail.

22 Feb 2010 Won Yang

The value of this material will be exploded with the corresponding PPT slide (like #26384).

20 Mar 2010 Lancez  
30 Mar 2010 Montadar Taher

veeery good thank you very much

02 Apr 2010 Guillaume Ferre

Excellent job, the different topics are very well written and explained

11 Apr 2010 minh kha huynh

Thank you very much !
Can you share for me that Book ?
my email: minhkha_vt@yahoo.com

16 Apr 2010 rima assaf

could you please share chapter 4

17 Apr 2010 Won Yang

If you buy the book from the seller with ID ccy110 at Amazon, you will be entitled to get some PPT slides. Additionally, if you upload a fair review about my book, I will send you the slides for up to Chapter 10. I confess that the slides are actually baits to fish the potential book buyers. Thanks for being interested in my book.

24 Apr 2010 viet nguyen

hi ! Im a student and my graduation project is imroving the detector (depressing noise )due to the characteristics of bispectrum, use the hosa toolbox. So if you can, share me chapter 7. I try this model with FSK modulation.thanks a lot!

24 Apr 2010 viet nguyen

hi ! Im a student and my graduation project is imroving the detector (depressing noise )due to the characteristics of bispectrum, use the hosa toolbox. So if you can, share me chapter 7. I try this model with FSK modulation.thanks a lot!

29 Apr 2010 Yang Yang

Hello!
I can not run turbo_code_demo.m
Could you help me?
Many thanks

29 Apr 2010 Won Yang

probably due to the missing of one M-file with the following contents:
function y=deci2bin1(x,l)
%converts a given decimal number into a binary number of l bits
if x==0, y=0;
 else
   y=[];
   while x>=1
      y=[rem(x,2) y];
      x=floor(x/2);
   end
end
if nargin>1, y=[zeros(size(x,1),l-size(y,2)) y]; end

09 May 2010 James Gabriel

Could you please check,the file bin2deci.m is missing?
It is used in file trellis.m
Thanks

09 May 2010 Won Yang

Sorry that 'bin2deci.m is missing, too.
function y=bin2deci(x,b)
%converts a sequence of b-bit binary numbers into a sequence of decimal numbers
if nargin<2, b=length(x); end
y= [];
while length(x)>=b
   x1= x(1:b); x=x(b+1:end);
   y=[y x1*2.^[b-1:-1:0]'];
end

09 May 2010 James Gabriel

Thank you very much

16 May 2010 James Gabriel

Dear Won Yang.
I am studying about CODING in MIMO system.
Have you finished any matlab code about turbo code with 2 transmit antenna and 2 receive antenna?
It doesn't need the diversity,just replace turbo code on lconvolution code as usual.
Many thanks.

26 May 2010 Examples Learn By

It's very good material
http://learnbyexamples.org/matlab/matlab-tutorial-index.html

01 Jun 2010 William Cox

There's a whole bunch of stuff here, but the files are cryptic and very poorly commented. It's pretty useless without the textbook, which I hope explains things a bit.

02 Jun 2010 whisnu

Dear Won Yang,
Now I'm doing thesis about WCDMA system using Zero Forcing Equalizer for the Multi-user Detection, so maybe the chapter 6 of your books wold be very useful for me.
Would you kindly share the chapter 6 of your book please.
Many thanks for your kindness.

02 Jun 2010 Won Yang

The slides and programs are the baits to fish the potential book buyers with. You can buy the book "MATLAB / Simulink for Digital Communication" at
http://www.amazon.com/gp/product/8957612769/ref=s9_simh_gw_p14_i1?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=center-2&pf_rd_r=1E0T2J3H87KWSSPM2HF4&pf_rd_t=101&pf_rd_p=470938631&pf_rd_i=507846

10 Jun 2010 James Gabriel

Dear Won Yang,
I have run the file turbo_code_demo.m,and it seems to be not right when choose PUNCTURE (puncture=1),i have run from low EbNo to high EbNo like 25 30dB,but it didnot work,Ber always very high,bigger than 0.1.
But without puncture(puncture=0) it works very well(ber=10^-5 round EbNo= 3 or 4 dB)
Could u please check and find the mistake in this code?
Many thanks

10 Jun 2010 Won Yang

It is strange. I run the program with puncture=1 two times, once with EbN0dBs=2.6 and once with EbN0dBs=10 to get the following results, which seems fine since the BER has turned to decrease as the SNR increases. By the way, have you bought the book? If so, you must have got my email address. It seems that you have never rate this set of codes.

>> turbo_code_demo
----------------------------------------------------
 === SOVA decoder ===
 with Code generator G:
     1 1 1
     1 0 1
 Punctured, Code rate = 1/2
 Eb/N0[dB] = 2.5000
************** Eb/N0 = 2.50 dB **************
Bit Error Rate (from iteration 1 to iteration 4):
 Frame # 50: 1.4409e-002 1.7234e-003 4.0080e-004 2.8056e-004
 Frame # 100: 1.4058e-002 1.4930e-003 3.5070e-004 1.5030e-004
 Frame # 150: 1.2939e-002 1.1890e-003 2.7388e-004 1.3360e-004
 Frame # 200: 1.2485e-002 1.1974e-003 2.3046e-004 1.1523e-004
 Frame # 250: 1.2437e-002 1.2986e-003 2.9659e-004 1.3627e-004
 Frame # 300: 1.2391e-002 1.2325e-003 2.8724e-004 1.4362e-004

>> turbo_code_demo
----------------------------------------------------
 === SOVA decoder ===
 with Code generator G:
     1 1 1
     1 0 1
 Punctured, Code rate = 1/2
 Eb/N0[dB] = 10
************** Eb/N0 = 10.00 dB **************
Bit Error Rate (from iteration 1 to iteration 4):
 Frame # 50: 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
 Frame # 100: 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
 Frame # 150: 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
 Frame # 200: 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
 Frame # 250: 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
 Frame # 300: 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000

11 Jun 2010 James Gabriel

oh,I am so sorry,please forgive me.
Your set of codes are great.
I really highly appreciate your contribution to the community.
One more time,great thanks to you.

11 Jun 2010 Mohammad Al-Jarrah

Dear Mr. Yang, when I run the file test_DSTBC_H4_PSK.m, Matlab gives me an error message :

??? Error: File: test_DSTBC_H4_PSK.m Line: 28 Column: 18
Unbalanced or unexpected parenthesis or bracket.

please if you can help me about this error.

Also i want the figures of differential STBC made by Vahid Tarokh and Hamid Jafarkhani, can the code modified so that i can get these figures.

12 Jun 2010 Won Yang

test_DSTBC_H4_PSK.m is supposed to be completed by the students as for a end-of-chapter Problem 9.10. You have only to replace the question marks by some numbers based on the corresponding equations given in problem 9.10. Thanks for being interested in my book. How would you rate this set of MATLAB codes?

12 Jun 2010 Mohammad Al-Jarrah

Thanx Mr. Yang; i think that the book and matlab codes are very important for the communication engineering students; graduate and under graduate. and they are very useful.

i want to ask you if i want to obtain the results made by Vahid Tarokh and Hamid Jafarkhani in their paper "A Differential Detection Scheme for Transmit Diversity", what are things can be changed in your code?

12 Jun 2010 Won Yang

As I told above, the slides and programs are only the baits to fish the potential book buyers with. Even if you had bought the book "MATLAB / Simulink for Digital Communication" on Amazon, it is not easy for me to help you since I am tied up with authoring another book "MATLAB/Simulink for Digital Signal Procesing". However, in case you buy the book and send me the paper you mentioned above, I will take a glance at it to see what I can do. In any case, I do not guarantee I can help you. It is your job to modify the programs in the book in such a way they can accomodate your problems.

30 Jun 2010 Tapas Shome

I am unable to find OFDM Simulink File
 do-OFDM0-sim.mdl files as mentioned in Chapter 11.
 In fact I am unable to find any MDL files.
 Please help.

01 Jul 2010 Won Yang

As I told several times above, the slides and programs are only the baits to fish the potential book buyers with. Even if you had bought the book "MATLAB / Simulink for Digital Communication" on Amazon, I would present you with the Simulink model files only in the case where you are an instructor who has adopted my book as the text for your teaching. Thanks for being interested in my book. BTW, how do you know that my book contains the model file 'do_OFDM0_sim.mdl'?

01 Jul 2010 Tapas Shome

I have bought Two copies of your book for the Digital communication Research I am doing at Univ of Manitoba and IAS-Research.
 I am working on the OFDM Model and Would appreciate the simulink models.
It was only for the simulink model of OFDM that I bought the book from Amazon.

02 Jul 2010 Won Yang

I can't find your name in the list of my customers. All my customers must know other means like email than indirect communication through tihis MATLAB file exchange site. Anyway, I do not present the Simulink model files to my readers unless they are instructors who adopted my book as the text for their teaching since almost all the Simulink block diagrams in my book contain the parameters to be set and they are supposed to be composed by the readers as homework assignments. You know that most of my target buyers are students. If you are a professional who bought my book, I would give you a Simulink model you choose.

15 Jul 2010 zheng zhilong

Thank you very much

12 Aug 2010 Eric  
24 Aug 2010 Cheng  
Please login to add a comment or rating.
Tag Activity for this File
Tag Applied By Date/Time
matlab Won Yang 14 Sep 2009 12:53:59
signal processing Won Yang 14 Sep 2009 12:53:59
communiation Won Yang 14 Sep 2009 12:53:59
communiation Mitesh 10 Nov 2009 21:54:37
matlab Mitesh 10 Nov 2009 21:54:42
communiation akansha 17 Dec 2009 10:56:04
matlab mital solanki 07 Jan 2010 01:22:44
self_rating Matt Fig 22 Feb 2010 22:11:10
matlab Kim ?? 16 Apr 2010 11:04:02
communiation viet nguyen 24 Apr 2010 00:44:41
matlab Prashant 03 Jun 2010 22:03:36
simulink mdl files Tapas Shome 30 Jun 2010 15:16:06
communiation Juan 19 Jul 2010 13:17:34
matlab Juan 19 Jul 2010 13:17:37
signal processing sulav 07 Aug 2010 06:51:15

Contact us at files@mathworks.com