NARNAUL (HARYANA)
PRACTICAL FILE
OF
DIGITAL SIGNAL PROCESSING LAB
Submitted in Partial Fullfillment of the
Requirment in
Electronics & Communication Engineering
(Session 2012-2015)
Submitted to :
Submitted by:
Mrs. Kavita Rohilla
Pankaj Dheer
( [Link] E.C.E Deptt. )
ECE. 7th Sem.
Roll No:1202220
Digital Signal Processing Lab.
DIGITAL SIGNAL PROCESSING LAB.
INDEX
[Link] Program Name
1.
2.
3.
Page
No.
Introduction of MATLAB.
2-9
18-Sep.2014
Program to perform arithmetic operations in
MATLAB.
10
[Link]. 2014
Program to represent basic Signals
(Exponential, Ramp, Impulse Signals).
Program To Generate Sine and Cosine Signals.
11-12
13-14
4.
Program to find convolution of two discrete
functions.
5.
Program to find cross correlation of to discrete
signal.
17-18
6.
Program to find z transform of given function.
19
7.
Program to design IIR Filter using bilinear
transformation.
Program to design IIR Filter using invariant
transformation.
8.
Date
15-16
20-21
22-23
Lect. Sign
[Link]. 2014
29. Oct. 2014
[Link]. 2014
[Link]. 2014
[Link]. 2014
6. Nov. 2014
[Link]..2014
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 1
Digital Signal Processing Lab.
INTRODUCTION
To study about MATLAB.
HISTORY
Developed primarily by Cleve Moler in the 1970's. Derived from FORTRAN
subroutines LINPACK and EISPACK, linear and eigenvalue systems.
Developed primarily as an interactive system to access LINPACK and
EISPACK. Gained its popularity through word of mouth, because it was not
oficially distributed. Rewritten in C in the 1980's with more functionality,
which include plotting routines.
The MathWorks Inc. was created (1984) to market and continue development
of MATLAB. According to Cleve Moler, three other men played important roles
in the origins of MATLAB: J. H. Wilkinson, George Forsythe, and John Todd. It
is also interesting to mention the authors of LINPACK: Jack Dongara, Pete
Steward, Jim Bunch, and Cleve Moler. Since then another package emerged:
LAPACK. LAPACK stands for Linear Algebra Package. It has been designed to
supersede LINPACK and EISPACK.
Introduction
MATLAB is a high-level technical computing language and interactive
environment for algorithm development, data visualization, data analysis, and
numeric computation. Using the MATLAB product, you can solve technical
computing problems faster than with traditional programming languages,
such as C, C++, and Fortran.
The name MATLAB stands for Matrix Laboratory. MATLAB was written
originally to provide easy access to matrix software developed by the
LINPACK (linear system package) and EISPACK (Eigen system package)
projects.
MATLAB is a high-performance language for technical computing. It
integrates computation, visualization, and programming environment.
Furthermore, MATLAB is a modern programming language environment: it
has sophisticated data structures, contains built-in editing and debugging
tools, and supports object-oriented programming. These factors make
MATLAB an excellent tool for teaching and research.
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 2
Digital Signal Processing Lab.
MATLAB has many advantages compared to conventional computer languages
(e.g., C, FORTRAN) for solving technical problems. MATLAB is an interactive
system whose basic data element is an array that does not require
dimensioning. The software package has been commercially available since
1984 and is now considered as a standard tool at most universities and
industries worldwide.
It has powerful built-in routines that enable a very wide variety of
computations. It also has easy to use graphics commands that make the
visualization of results immediately available. Specific applications are
collected in packages referred to as toolbox. There are toolboxes for signal
processing, symbolic computation, control theory, simulation, optimization,
and several other fields of applied science and engineering.
Areas where MATLAB can be used
You can use MATLAB in a wide range of applications, including :
1.
2.
3.
4.
5.
6.
Signal and image processing
Communications
Control design
Test and measurement
Financial modeling and analysis
and computational biology.
Add-on toolboxes (collections of special-purpose MATLAB functions,
available separately) extend the MATLAB environment to solve particular
classes of problems in these application areas.
MATLAB provides a number of features for documenting and sharing your
work. You can integrate your MATLAB code with other languages and
applications, and distribute your MATLAB algorithms and applications.
The MATLAB System
The MATLAB system consists of these main parts:
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 3
Digital Signal Processing Lab.
Desktop Tools and Development Environment
This part of MATLAB is the set of tools and facilities that help you use and
become more productive with MATLAB functions and files. Many of these
tools are graphical user interfaces. It includes: the MATLAB desktop and
Command Window, an editor and debugger, a code analyzer, and browsers for
viewing help, the workspace, and folders.
Mathematical Function Library
This library is a vast collection of computational algorithms ranging from
elementary functions, like sum, sine, cosine, and complex arithmetic, to more
sophisticated functions like matrix inverse, matrix eigenvalues, Bessel
functions, and fast Fourier transforms.
The Language
The MATLAB language is a high-level matrix/array language with control flow
statements, functions, data structures, input/output, and object-oriented
programming features. It allows both "programming in the small" to rapidly
create quick programs you do not intend to reuse. You can also do
"programming in the large" to create complex application programs intended
for reuse.
GRAPHICS
MATLAB has extensive facilities for displaying vectors and matrices as graphs,
as well as annotating and printing these graphs. It includes high-level
functions for two-dimensional and three-dimensional data visualization,
image processing, animation, and presentation graphics. It also includes lowlevel functions that allow you to full customize the appearance of graphics as
well as to build complete graphical user interfaces on your MATLAB
applications.
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 4
Digital Signal Processing Lab.
External Interfaces
The external interfaces library allows you to write C/C++ and Fortran
programs that interact with MATLAB. It includes facilities for calling routines
from MATLAB (dynamic linking), for calling MATLAB as a computational
engine, and for reading and writing MAT-files.
Starting MATLAB
After logging into your account, you can enter MATLAB by double-clicking on
the MATLAB shortcut icon (MATLAB 7.0.4) on your Windows desktop. When
you start MATLAB, a special window called the MATLAB desktop appears. The
desktop is a window that contains other windows.
When you start MATLAB, the desktop appears, containing tools (graphical
user interfaces) for managing files, variables, and applications associated with
MATLAB.
The following illustration shows the default desktop. You can customize the
arrangement of tools and documents to suit your needs.
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 5
Digital Signal Processing Lab.
The major tools within or accessible from the desktop are:
The Command Window
The Command History
The Workspace
The Current Directory
The Help Browser
The Start button
(>>) in the Command Window.
Usually, there are 2 types of prompt:
>> for full version
EDU> for educational version
Mathematical functions
MATLAB offers many predefined mathematical functions for technical
computing which contains a large set of mathematical functions. Typing help
elfun and help specfun calls up full lists of elementary and special functions
respectively. There is a long list of mathematical functions that are built into
MATLAB. These functions are called built-ins. Many standard mathematical
functions, such as sin(x), cos(x), tan(x), ex, ln(x), are evaluated by the
functions sin, cos, tan, exp, and log respectively in MATLAB. Here is the lists of
some commonly used functions, where variables x and y can be numbers,
vectors, or matrices.
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 6
Digital Signal Processing Lab.
Key Features
The key features of MATLAB are:
High-level language for technical computing
Development environment for managing code, files, and data
Interactive tools for iterative exploration, design, and problem solving
Mathematical functions for linear algebra, statistics, Fourier analysis,
filtering, optimization, and numerical integration
2-D and 3-D graphics functions for visualizing data
Tools for building custom graphical user interfaces
Functions for integrating MATLAB based algorithms with external
applications and languages, such as C, C++, Fortran, Java, COM, and
Microsoft Excel
Elementary functions
1. cos(x) Cosine
2. abs(x) Absolute value
3. sin(x) Sine
4. sign(x) Signum function
5. tan(x) Tangent
6. max(x) Maximum value
7. min(x) Minimum value
8. exp(x) Exponential
9. round(x) Round to nearest integer
10. sqrt(x) Square.
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 7
Digital Signal Processing Lab.
Getting help
To view the online documentation, select MATLAB Help from Help menu or
MATLAB Help directly in the Command Window. The preferred method is to
use the Help Browser. The Help Browser can be started by selecting the ? icon
from the desktop toolbar. On the other hand, information about any command
is available by typing >> help Command
Quitting the MATLAB Program
To end your MATLAB session, select File > Exit MATLAB in the desktop, or
type quit in the Command Window. You can run a script file named finish.m
each time MATLAB quits that, for example, executes functions to save the
workspace.
Confirm Quitting
MATLAB can display a confirmation dialog box before quitting. To set this
option, select File > Preferences > General > Confirmation Dialogs, and select
the check box for Confirm before exiting MATLAB.
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 8
Digital Signal Processing Lab.
ADVANTAGES
MATLAB may behave as a calculator or as a programming language
MATLAB combine nicely calculation and graphic plotting.
MATLAB is relatively easy to learn
MATLAB is interpreted (not compiled)
MATLAB is optimized to be relatively fast when performing matrix
operations MATLAB does have some object-oriented elements
DISADVANTAGES
MATLAB is not a general purpose programming language such as C, C++,
or FORTRAN
MATLAB is designed for scientific computing, and is not well suitable for
other applications
MATLAB is an interpreted language, slower than a compiled language
such as C++
MATLAB commands are specific for MATLAB usage. Most of them do
not have a direct equivalent with other programming language
commands
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 9
Digital Signal Processing Lab.
Program No: 2
Aim: To Perform the basic arithmetic operations in MATLAB.
clc;
clear all;
close all;
x=2^5;
y=x-1;
z=x/y;
OUTPUT:
Z=1.0323
clear all;
close all;
x=3*sqrt(s)-1;
y=sqrt(s)+1;
x=x/y;
OUTPUT:
Z=1.7639
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 10
Digital Signal Processing Lab.
Program No: 2
Aim: To represent basic Signals (Exponential, Ramp, Impulse Signals)
clc;
clear all;
close all;
n=[0:0.5:20];
x=Input(Enter the value of x);
y=exp(x*h);
subplot(3,1,1);
stem(h,y);
xlabel(x);
ylabel(y);
title(Exponential);
n=[0:0.5:20];
subplot(3,1,2);
stem(n,n);
xlabel(x);
ylabel(y);
title(Ramp);
n=[-[Link];
y=[Zeros(1.3)ones(1,1),Zeros(3,1,3)];
subplot(3,1,3);
stem(n,y);
xlabel(x);
ylabel(y);
title(Impulse);
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 11
Digital Signal Processing Lab.
Output:
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 12
Digital Signal Processing Lab.
Program No: 3
Aim: To Generate Sine and Cosine Signals
clc;
clear all;
close all;
t=[0:.1:pi];
y=cos(2*pi*t);
subplot(2,1,1);
stem(t,y);
xlabel('x');
ylabel('cos');
title('cos2pit');
y=sin(2*pi*t);
subplot(2,1,2);
stem(t,y);
xlabel('x');
ylabel('sin');
title('sin2pit');
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 13
Digital Signal Processing Lab.
Output:
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 14
Digital Signal Processing Lab.
Program No: 4
Aim: Program to find convolution of two discrete function
clc;
clear all;
close all;
x=[1 2 3 4];
h=[2 3 5 6];
y=conv(x,h);
subplot(3,1,1);
stem(x);
xlabel('x');
ylabel('amp');
title('x sequence');
subplot(3,1,2);
stem(h);
xlabel('h');
ylabel('amp');
title('y sequence');
subplot(3,1,3);
stem(y);
title('convolution');
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 15
Digital Signal Processing Lab.
Output:
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 16
Digital Signal Processing Lab.
Program No: 5
Aim: Program to find cross correlation of to discrete signal.
clc;
clear all;
close all;
x=[1 2 3 4];
h=[2 3 5 6];
y=xcorr(x,h);
subplot(3,1,1);
stem(x);
xlabel('x');
ylabel('amp');
title('x sequence');
subplot(3,1,2);
stem(h);
xlabel('h');
ylabel('amp');
title('y sequence');
subplot(3,1,3);
stem(y);
title('correlation');
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 17
Digital Signal Processing Lab.
Output:
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 18
Digital Signal Processing Lab.
Program No: 6
Aim: Program to find z transform of given function.
clc;
clear all
close all;
syms a n z
f=a^n;
ztrans(f,z)
OUTPUT-
ans =z/a/(z/a-1)
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 19
Digital Signal Processing Lab.
Program No: 7
Aim: : Write a Program to design IIR Filter using bilinear transformation.
clc;
clear all;
close all;
b=[1 2 3]
a=[3 4 5 6]
fs=1
tf(b,a)
[bz,az]=bilinear(b,a,fs)
tf(bz,az,fs)
Output:
b=
1
a=
3
fs =
1
ans =
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 20
Digital Signal Processing Lab.
s^2 + 2 s + 3
----------------------3 s^3 + 4 s^2 + 5 s + 6
Continuous-time transfer function.
bz =
0.1964 0.1607 0.0179 0.0536
az =
1.0000 -1.0714 1.1429 -0.2143
ans =
0.1964 z^3 + 0.1607 z^2 + 0.01786 z + 0.05357
--------------------------------------------z^3 - 1.071 z^2 + 1.143 z - 0.2143
Sample time: 1 seconds
Discrete-time transfer function.
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 21
Digital Signal Processing Lab.
Program No: 8
Aim: Write a Program to design IIR Filter using invariant transformation.
clc;
clear all;
close all;
b=[1 2 3]
a=[3 4 5 6]
fs=1
tf(b,a)
[bz,az]=impinvar(b,a,fs)
tf(bz,az,fs)
Output:
b=
a=
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 22
Digital Signal Processing Lab.
fs =
ans =
s^2 + 2 s + 3
----------------------3 s^3 + 4 s^2 + 5 s + 6
Continuous-time transfer function.
bz =
1.0000 0.5232 0.3382
az =
3.0000 -2.6378 3.3082 -0.7908
ans =
z^2 + 0.5232 z + 0.3382
-----------------------------------3 z^3 - 2.638 z^2 + 3.308 z - 0.7908
Sample time: 1 seconds
Discrete-time transfer function.
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 23
Digital Signal Processing Lab.
Department of Electronics & Communication Engineering, YCET, Narnaul, Haryana
Page 24