0% found this document useful (0 votes)
140 views97 pages

Introduction To Communications Toolbox in Matlab 7

This document provides an introduction and overview of the Communications Toolbox in MATLAB. It discusses the objective of presenting the toolbox, an outline of topics to be covered, and expected background knowledge from users. Some key components of communication systems that will be studied include analog and digital modulation/demodulation functions. Examples will also be provided on simulating communication links and using the BERTool graphical user interface.

Uploaded by

guddu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
140 views97 pages

Introduction To Communications Toolbox in Matlab 7

This document provides an introduction and overview of the Communications Toolbox in MATLAB. It discusses the objective of presenting the toolbox, an outline of topics to be covered, and expected background knowledge from users. Some key components of communication systems that will be studied include analog and digital modulation/demodulation functions. Examples will also be provided on simulating communication links and using the BERTool graphical user interface.

Uploaded by

guddu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 97

Introduction to Communications

Toolbox in MATLAB 7.6.0 (R2008)

Presented By:
Amit Degada
NIT, Surat.
Electronics Engineering Department,
Sardar Vallabhbhai National Institute of Technology,
Surat-395007. [Gujarat-India]
Meaning
Presentation Outline
 Objective of the Lecture
 Section Overview
 Expected background from the Users
 Studying Components of the
Communication System
 BER : As performance evaluation Technique
 Scatter Plot
 Simulating a Communication
Link….Examples
 BERTool : A Bit Error Rate GUI
Objective of The Lecture
 Introduce to Communication Toolbox in MATLAB
7.6.0 (R2008)

 Cover Basic Expect of Communication system

 Exposure to some functions

 Simulation analysis of Communication Link

 Exposure to Graphical User Interface (GUI) Feature


in Communications Toolbox
After The Lecture……..

 You will be able to

 Make Communication Link

 Analysis of your link with Theoretical Result

 For that you have Assignments……..


Presentation Outline
 Objective of the Lecture
 Section Overview
 Expected background from the Users
 Studying Components of the
Communication System
 BER : As performance evaluation Technique
 Scatter Plot
 Simulating a Communication
Link….Examples
 BERTool : A Bit Error Rate GUI
Section Overview
 Extends the MATLAB technical computing
environment with
 Functions,
 Plots,
 And a Graphical User Interface
For exploring, designing, analyzing, and
simulating algorithms for the physical layer of
communication systems

 The Toolbox helps you create algorithms for


commercial and defense wireless or wireline
systems.
Key Features
 Functions for designing the physical layer of
communications links, including source coding,
channel coding, interleaving, modulation, channel
models, and equalization

 Plots such as eye diagrams and constellations for


visualizing communications signals

 Graphical user interface for comparing the bit error


rate of your system with a wide variety of proven
analytical results

 Galois field data type for building communications


algorithms
Presentation Outline
 Objective of the Lecture
 Section Overview
 Expected background from the Users
 Studying Components of the
Communication System
 BER : As performance evaluation Technique
 Scatter Plot
 Simulating a Communication
Link….Examples
 BERTool : A Bit Error Rate GUI
Expected background from User
 We assume that you already have the Basic
Knowledge of subject called ‘Communication’

 The discussion and examples in this chapter are


aimed at New users

 Experienced User can go for many online reference


that includes include examples, a description of the
function's algorithm, and references to additional
reading material
http://www.mathworks.com/matlabcentral/
Presentation Outline
 Objective of the Lecture
 Section Overview
 Expected background from the Users
 Studying Components of the
Communication System
 BER : As performance evaluation Technique
 Scatter Plot
 Simulating a Communication
Link….Examples
 BERTool : A Bit Error Rate GUI
Studying Components of
Communication system

 We will See for two Types:

 Analog Communications
 Digital Communications
Analog Communication System

Signal De-
Modulation
Source Modulation

This may be any analog signal such as Sine wave, Cosine Wave,
Triangle Wave………………..
Analog Modulation/Demodulation
Functions

ammod Amplitude modulation


amdemod Amplitude demodulation
fmmod Frequency modulation
fmdemod Frequency demodulation
pmmod Phase modulation
pmdemod Phase demodulation
ssbmod Single sideband amplitude Mod
ssbdemod Single sideband amplitude DeMod
ammod Amplitude modulation
Syntax

y = ammod(x,Fc,Fs)
y = ammod(x,Fc,Fs,ini_phase)
y = ammod(x,Fc,Fs,ini_phase,carramp)

Where
x = Analog Signal
Fc = Carrier Signal
Fs = Sampling Frequency
ini_phase = Initial phase of the Carrier
carramp = Carrier Amplitude
amdemod Amplitude Demodulation
Syntax

z = amdemod(y,Fc,Fs)
z = amdemod(y,Fc,Fs,ini_phase)
z = amdemod(y,Fc,Fs,ini_phase,carramp)
z = amdemod(y,Fc,Fs,ini_phase,carramp,num,den)

Where
y= Received Analog Signal
Fc = Carrier Signal
Fs = Sampling Frequency
ini_phase = Initial phase of the Carrier
carramp = Carrier Amplitude
num, den = Coefficients of butterworth low pass filter
Example……..
Amplitude Modulation Generation

Fs = 8000; % Sampling rate is 8000 samples per second.


Fc = 300; % Carrier frequency in Hz
t = [0:.1*Fs]'/Fs; % Sampling times for .1 second
x = sin(20*pi*t); % Representation of the signal
y = ammod(x,Fc,Fs); % Modulate x to produce y.
figure;
subplot(2,1,1); plot(t,x); % Plot x on top.
subplot(2,1,2); plot(t,y) % Plot y below.
Results
fmmod Frequency modulation
Syntax

y = fmmod(x,Fc,Fs,freqdev)
y = fmmod(x,Fc,Fs,freqdev,ini_phase)

Where
x = Analog Signal
Fc = Carrier Signal
Fs = Sampling Frequency
ini_phase = Initial phase of the Carrier
freqdev = Frequency deviation constant (Hz)
fmdemod Frequency Demodulation
Syntax

z = fmdemod(y,Fc,Fs,freqdev)
z = fmdemod(y,Fc,Fs,freqdev,ini_phase)

Where
Z = Received Analog Signal
Fc = Carrier Signal
Fs = Sampling Frequency
ini_phase = Initial phase of the Carrier
freqdev = Frequency deviation constant (Hz)
pmmod phase modulation
Syntax

y = pmmod(x,Fc,Fs,phasedev)
y = pmmod(x,Fc,Fs,phasedev,ini_phase)

Where
x = Analog Signal
Fc = Carrier Signal
Fs = Sampling Frequency
ini_phase = Initial phase of the Carrier
phasedev = Frequency deviation constant (Hz)
pmdemod phase Demodulation
Syntax

z = pmdemod(y,Fc,Fs,phasedev)
z = pmdemod(y,Fc,Fs,phasedev,ini_phase))

Where
x = Analog Signal
Fc = Carrier Signal
Fs = Sampling Frequency
ini_phase = Initial phase of the Carrier
phasedev = Frequency deviation constant (Hz)
Example

Statement: The example samples an analog signal and modulates it. Then
it simulates an additive white Gaussian noise (AWGN) channel,
demodulates the received signal, and plots the original and demodulated
signals.
Example
% Prepare to sample a signal for two seconds,
% at a rate of 100 samples per second.
Fs = 100; % Sampling rate
t = [0:2*Fs+1]'/Fs; % Time points for sampling

% Create the signal, a sum of sinusoids.


x = sin(2*pi*t) + sin(4*pi*t);

Fc = 10; % Carrier frequency in modulation


phasedev = pi/2; % Phase deviation for phase modulation

y = pmmod(x,Fc,Fs,phasedev); % Modulate.
y = awgn(y,10,'measured',103); % Add noise.
z = pmdemod(y,Fc,Fs,phasedev); % Demodulate.

% Plot the original and recovered signals.


figure; plot(t,x,'k-',t,z,'g-');
legend('Original signal','Recovered signal');
Results

Fig: Phase modulation and demodulation


Digital Communication

Digital Pulse
Source
Modulation Shaping

Channel

Digital Matched
Sink Filter
Demodulation
Source

randint Generate matrix of Uniformly


distributed Random integers
randsrc Generate random matrix using
prescribed alphabet
randerr Generate bit error patterns
randint Random Integer
Syntax

out = randint %generates a random scalar that is either 0 or 1, with


equal probability
out = randint(m) %generates an m-by-m binary matrix, each of whose
entries independently takes the value 0 with probability ½
out = randint(m,n) %generates an m-by-n binary matrix, each of whose entries
independently takes the value 0 with probability ½
Example
Statement : To generate a 10-by-10 matrix whose elements are uniformly
distributed in the range from 0 to 7

out = randint(10,10,[0,7]) or out = randint(10,10,8);

Results
Example
Statement : How to generate 0s and1s….

out = randint(1,7,[0,1])

Results
Digital Communication

Digital Pulse
Source
Modulation Shaping

Channel

Digital Matched
Sink Filter
Demodulation
Digital Modulation/Demodulation
fskmod Frequency shift keying modulation
fskdemod Frequency shift keying
demodulation
pskmod Phase shift keying modulation
pskdemod Phase shift keying demodulation
mskmod Minimum shift keying modulation
mskdemod Minimum shift keying
demodulation
qammod Quadrature amplitude modulation
qamdemod Quadrature amplitude demodulation
fskmod
Frequency shift keying modulation
Syntax

y = fskmod(x,M,freq_sep,nsamp)
M is the alphabet size and must be an integer power of 2. The message
signal must consist of integers between 0 and M-1.
freq_sep is the desired separation between successive frequencies in
Hz.
nsamp denotes the number of samples per symbol in y and must be a
positive integer greater than 1.

y = fskmod(x,M,freq_sep,nsamp,Fs)
%Specifies the sampling rate in Hertz

y = fskmod(x,M,freq_sep,nsamp,Fs,phase_cont)
%specifies the phase continuity. Set phase_cont to 'cont' to force phase
continuity across symbol boundaries in y, or 'discont' to avoid forcing
phase continuity. The default is 'cont'.
fskdemod
Frequency shift keying demodulation
Syntax

z = fskdemod(y,M,freq_sep,nsamp)
M is the alphabet size and must be an integer power of 2.
freq_sep is the frequency separation between successive frequencies in
Hz.
nsamp is the required number of samples per symbol and must be a
positive integer greater than 1.

z = fskdemod(y,M,freq_sep,nsamp,Fs)
%specifies the sampling frequency in Hz.

z = fskdemod(y,M,freq_sep,nsamp,Fs,symbol_order)
%specifies how the function assigns binary words to corresponding
integers. If symbol_order is set to 'bin' (default), the function uses a
natural binary-coded ordering. If symbol_order is set to 'gray', it uses a
Gray-coded ordering.
Example………

Statement: FSK modulation and demodulation over an AWGN channel

M = 2; k = log2(M);
EbNo = 5;
Fs = 16; nsamp = 17; freqsep = 8;
msg = randint(5000,1,M); % Random signal
txsig = fskmod(msg,M,freqsep,nsamp,Fs); % Modulate.
msg_rx = awgn(txsig,EbNo+10*log10(k)-10*log10(nsamp),...
'measured',[],'dB'); % AWGN channel
msg_rrx = fskdemod(msg_rx,M,freqsep,nsamp,Fs); % Demodulate
[num,BER] = biterr(msg,msg_rrx) % Bit error rate
BER_theory = berawgn(EbNo,'fsk',M,'noncoherent') % Theoretical BER
Results
Digital Communication

Digital Pulse
Source
Modulation Shaping

Channel

Digital Matched
Sink Filter
Demodulation
Pulse shaping

rectpulse Rectangular pulse shaping

rcosflt Filter input signal using raised


cosine filter

rcosine Design raised cosine filter


rectpulse
Rectangular pulse shaping

Syntax

y = rectpulse(x,nsamp)
% Applies rectangular pulse shaping to x to produce an output signal
having nsamp samples per symbol
Digital Communication

Digital Pulse
Source
Modulation Shaping

Channel

Digital Matched
Sink Filter
Demodulation
Channels
awgn Add white Gaussian noise to signal
rayleighchan Construct Rayleigh fading channel object
ricianchan Construct Rician fading channel object
bsc Model binary symmetric channel

doppler Package of Doppler classes


doppler.ajakes Construct asymmetrical Doppler spectrum
object
doppler.bigaussian Construct bi-Gaussian Doppler spectrum
object
doppler.flat Construct flat Doppler spectrum object

And many More……………………….


Digital Communication

Digital Pulse
Source
Modulation Shaping

Channel
Bit Error Rate

Digital Matched
Scatter Plot Sink Filter
Demodulation

Eye Diagram
Presentation Outline
 Objective of the Lecture
 Section Overview
 Expected background from the Users
 Studying Components of the
Communication System
 BER : As performance evaluation Technique
 Scatter Plot
 Simulating a Communication
Link….Examples
 BERTool : A Bit Error Rate GUI
biterr
Compute number of bit errors and
bit error rate (BER)
Syntax

[number,ratio] = biterr(x,y)

 compares the elements in x and y


 The sizes of x and y determine which elements are compared:

 If x and y are matrices of the same dimensions, then biterr


compares x and y element by element. number is a scalar. See
schematic (a) in the preceding figure.

 If one is a row (respectively, column) vector and the other is a two-


dimensional matrix, then biterr compares the vector element by
element with each row (resp., column) of the matrix. The length of
the vector must equal the number of columns (resp., rows) in the
matrix. number is a column (resp., row) vector whose mth entry
indicates the number of bits that differ when comparing the vector
with the mth row (resp., column) of the matrix.
Presentation Outline
 Objective of the Lecture
 Section Overview
 Expected background from the Users
 Studying Components of the
Communication System
 BER : As performance evaluation Technique
 Scatter Plot
 Simulating a Communication
Link….Examples
 BERTool : A Bit Error Rate GUI
scatterplot
Generate scatter plot
Syntax

scatterplot(x)
scatterplot(x,n)

scatterplot(x) produces a scatter plot for the signal x.

scatterplot(x,n) is the same as the first syntax, except that the function
plots every nth value of the signal, starting from the first value. That is,
the function decimates x by a factor of n before plotting.
Presentation Outline
 Objective of the Lecture
 Section Overview
 Expected background from the Users
 Studying Components of the
Communication System
 BER : As performance evaluation Technique
 Scatter Plot
 Simulating a Communication
Link….Examples
 BERTool : A Bit Error Rate GUI
Simulating a Communication
Link….Examples

Statement: Process a binary data stream using a


communication system that consists of a baseband
modulator, channel, and demodulator. Compute the
system's bit error rate (BER). Also, display the transmitted
and received signals in a scatter plot. Consider 16 QAM
system.
Taskforce (sorry……. Functions)

Task Functions

Generate a random binary data stream randint

Modulate using 16-QAM modulate method on


modem.qammod object

Add white Gaussian noise awgn

Create a scatter plot scatterplot

Demodulate using 16-QAM modulate method on


modem.qamdemod object

Compute the system's BER biterr


Solution of the problem

Type

>> edit commdoc_mod in command


promt
Task 1 Generate binary data
%% Setup
% Define parameters.
M = 16; % Size of signal constellation
k = log2(M); % Number of bits per symbol
n = 3e4; % Number of bits to process
nsamp = 1; % Oversampling rate

%% Signal Source
% Create a binary data stream as a column vector.
x = randint(n,1); % Random binary data stream

% Plot first 40 bits in a stem plot.


stem(x(1:40),'filled');
title('Random Bits');
xlabel('Bit Index'); ylabel('Binary Value');
Results

Fig: Binary Data


Task 2 Prepare to Modulate.
%% Bit-to-Symbol Mapping
% Convert the bits in x into k-bit symbols.
xsym = bi2de(reshape(x,k,length(x)/k).','left-msb');

%% Stem Plot of Symbols


% Plot first 10 symbols in a stem plot.
figure; % Create new figure window.
stem(xsym(1:10));
title('Random Symbols');
xlabel('Symbol Index'); ylabel('Integer Value');
Results

Fig Symbol Index


Task 3 Modulate Using 16-QAM

%% Modulation
y = modulate(modem.qammod(M),xsym); % Modulate using 16-
%QAM
Task 4 Add White Gaussian
Noise
%% Transmitted Signal
ytx = y;

%% Channel
% Send signal over an AWGN channel.
EbNo = 10; % In dB
snr = EbNo + 10*log10(k) - 10*log10(nsamp);
ynoisy = awgn(ytx,snr,'measured');

%% Received Signal
yrx = ynoisy;
Task 5 Create a Scatter Plot.
%% Scatter Plot
% Create scatter plot of noisy signal and transmitted
% signal on the same axes.
h = scatterplot(yrx(1:nsamp*5e3),nsamp,0,'g.');
hold on;
scatterplot(ytx(1:5e3),1,0,'k*',h);
title('Received Signal');
legend('Received Signal','Signal Constellation');
axis([-5 5 -5 5]); % Set axis ranges.
hold off;
Results

Fig: Scatter Plot


Task 6
Demodulate Using 16-QAM

%% Demodulation
% Demodulate signal using 16-QAM.
zsym = demodulate(modem.qamdemod(M),yrx);
Task 7 Convert the Integer-Valued
Signal to a Binary Signal

%% Symbol-to-Bit Mapping
% Undo the bit-to-symbol mapping performed earlier.
z = de2bi(zsym,'left-msb'); % Convert integers to bits.
% Convert z from a matrix to a vector.
z = reshape(z.',prod(size(z)),1);
Task 8 Compute the System's
BER
%% BER Computation
% Compare x and z to obtain the number of errors and
% the bit error rate.
[number_of_errors,bit_error_rate] = biterr(x,z)
Results
Simulating a Communication
Link….Examples Cont

Statement: Plot a 16-QAM signal constellation with


annotations that indicate the mapping from integers to
constellation points.
Solution of the problem

Type

>> edit commdoc_const in command


promt
Task 1 Find All Points in the
16-QAM Signal Constellation

M = 16; % Number of points in constellation


h=modem.qammod(M); % Modulator object
mapping=h.SymbolMapping; % Symbol mapping vector
pt = h.Constellation; % Vector of all points in
%constellation
Task 2
Plot the Signal Constellation

% Plot the constellation.


scatterplot(pt);
Task 3 Annotate the Plot to
Indicate the Mapping
% Include text annotations that number the points.
text(real(pt)+0.1,imag(pt),dec2bin(mapping));
axis([-4 4 -4 4]); % Change axis so all labels fit in plot.

Fig: Binary-Coded
16-QAM Signal
Constellation
Modifications…..
%% Modified Plot, With Gray Coding
M = 16; % Number of points in constellation
h = modem.qammod('M',M,'SymbolOrder','Gray'); % Modulator object
mapping = h.SymbolMapping; % Symbol mapping vector
pt = h.Constellation; % Vector of all points in constellation

scatterplot(pt); % Plot the constellation.

% Include text annotations that number the points.


text(real(pt)+0.1,imag(pt),dec2bin(mapping));
axis([-4 4 -4 4]); % Change axis so all labels fit in plot.
Results
Simulating a Communication
Link….Examples Cont

Statement: Modify the Gray-coded modulation example so that it


uses a pair of square root raised cosine filters to perform pulse
shaping and matched filtering at the transmitter and receiver,
respectively.
Solution of the problem

Type

>> edit commdoc_rrc


to view the code
Task1 Define Filter-Related
Parameters

nsamp = 4; % Oversampling rate

Also Define

%% Filter Definition
% Define filter-related parameters.
filtorder = 40; % Filter order
delay = filtorder/(nsamp*2); % Group delay (# of
%input samples)
rolloff = 0.25; % Rolloff factor of filter
Task 2 Create a Square Root
Raised Cosine Filter
% Create a square root raised cosine filter.
rrcfilter = rcosine(1,nsamp,'fir/sqrt',rolloff,delay);

% Plot impulse response.


figure; impz(rrcfilter,1);
Task 3
Filter the Modulated Signal
%% Transmitted Signal
% Upsample and apply square root raised cosine filter.
ytx = rcosflt(y,1,nsamp,'filter',rrcfilter);

% Create eye diagram for part of filtered signal.


eyediagram(ytx(1:2000),nsamp*2);
Fig: Eye Diagram
Task 4
Filter the Received Signal
%% Received Signal
% Filter received signal using square root raised cosine filter.
yrx = rcosflt(ynoisy,1,nsamp,'Fs/filter',rrcfilter);
yrx = downsample(yrx,nsamp); % Downsample.
yrx = yrx(2*delay+1:end-2*delay); % Account for delay.
Task 5 Adjust the Scatter Plot
%% Scatter Plot
% Create scatter plot of received signal before and
% after filtering.
h = scatterplot(sqrt(nsamp)*ynoisy(1:nsamp*5e3),nsamp,0,'g.');
hold on;
scatterplot(yrx(1:5e3),1,0,'kx',h);
title('Received Signal, Before and After Filtering');
legend('Before Filtering','After Filtering');
axis([-5 5 -5 5]); % Set axis ranges.
Results

Fig: Scatter Plot


Presentation Outline
 Objective of the Lecture
 Section Overview
 Expected background from the Users
 Studying Components of the
Communication System
 BER : As performance evaluation Technique
 Scatter Plot
 Simulating a Communication
Link….Examples
 BERTool : A Bit Error Rate GUI
BERTool : A Bit Error Rate GUI

 BERTool is an interactive GUI for analyzing


communication systems' bit error rate (BER)
performance
 Using BERTool you can
 Generate BER data
 Plot one or more BER data sets on a single set of axes
 Fit a curve to a set of simulation data
 Send BER data to the MATLAB workspace or to a file
for any further processing you might want to perform
Opening BERTool

To Open the BERTool type

>> bertool

In command prompt
BERTool
BERTool Environment

A data viewer at the top. It is initially empty


BERTool Environment

A set of tabs on the bottom


Computing Theoretical BERs
1. Open BERTool, and go to the Theoretical tab.

2. Set the parameters to reflect the system whose performance you want
to analyze. Some parameters are visible and active only when other
parameters have specific values.

3. Click Plot.
Computing Theoretical BERs
Computing Theoretical BERs
4. Change the Modulation order parameter to 16, and click Plot..
Using the Semianalytic
Technique to Compute BERs
To access the semianalytic capabilities of BERTool, open the
Semianalytic tab.
Example…..
This example illustrates how BERTool applies the semianalytic
technique, using 16-QAM modulation.

Running the Semianalytic Example

Task 1:To set up the transmitted and received signals, run steps 1
through 4 from the code example

% Step 1. Generate message signal of length >= M^L.


M = 16; % Alphabet size of modulation
L = 1; % Length of impulse response of channel
msg = [0:M-1 0]; % M-ary message sequence of length > M^L

% Step 2. Modulate the message signal using baseband modulation.


modsig = qammod(msg,M); % Use 16-QAM.
Nsamp = 16;
modsig = rectpulse(modsig,Nsamp); % Use rectangular pulse shaping.
Example

% Step 3. Apply a transmit filter.


txsig = modsig; % No filter in this example

% Step 4. Run txsig through a noiseless channel.


rxsig = txsig*exp(j*pi/180); % Static phase offset of 1 degree

Task 2: Open BERTool and go to the Semianalytic tab.


Task 3: Set parameters as shown in the following figure.

Task 4: Click Plot


Questions
Dedicated to……………

Kapil
and
Ankurbhai

Our Lab Engineers


This can be downloaded from

www.amitdegada.weebly.com/download
Thank You

You might also like