Problems with Matlab Projects? You may face many Problems, but do not worry we are ready to solve your Problems. All you need to do is just leave your Comments. We will assure you that you will find a solution to your project along with future tips. On Request we will Mail you Matlab Codes for Registered Members of this site only, at free service...Follow Me.

DISCRETE-TIME SIGNALS IN THE TIME DOMAIN

DISCRETE-TIME SIGNALS IN THE TIME DOMAIN

Program P1 1 can be used to generate and plot a unit sample sequence.

% Program P1_1

% Generation of a Unit Sample Sequence

clf;

% Generate a vector from -10 to 20

n = -10:20;

% Generate the unit sample sequence

u = [zeros(1,10) 1 zeros(1,20)];

% Plot the unit sample sequence

stem(n,u);

xlabel(’Time index n’);ylabel(’Amplitude’);

title(’Unit Sample Sequence’);

axis([-10 20 0 1.2]);

For the generation of a complex exponential sequence we use the command

x = K*exp(c*n);

For the generation of a real exponential sequence we use the command

x = K*a.^+n;

A simple example that generates a sinusoidal signal.

% Program P1_2

% Generation of a sinusoidal sequence

n = 0:40;

f = 0.1;

phase = 0;

A = 1.5;

arg = 2*pi*f*n - phase;

x = A*cos(arg);

clf; % Clear old graph

stem(n,x); % Plot the generated sequence

axis([0 40 -2 2]);

grid;

title(’Sinusoidal Sequence’);

xlabel(’Time index n’);

ylabel(’Amplitude’);

axis;

Simple Operations on Sequences

Signal Smoothing:

Program P1 3 implements the above algorithm.

% Program P1_3

% Signal Smoothing by Averaging

clf;

R = 51;

d = 0.8*(rand(R,1) - 0.5); % Generate random noise

m = 0:R-1;

s = 2*m.*(0.9.^m); % Generate uncorrupted signal

x = s + d’; % Generate noise corrupted signal

subplot(2,1,1);

plot(m,d’,’r-’,m,s,’g--’,m,x,’b-.’);

xlabel(’Time index n’);ylabel(’Amplitude’);

legend(’d[n] ’,’s[n] ’,’x[n] ’);

x1 = [0 0 x];x2 = [0 x 0];x3 = [x 0 0];

y = (x1 + x2 + x3)/3;

subplot(2,1,2);

plot(m,y(2:R+1),’r-’,m,s,’g--’);

legend(’y[n] ’,’s[n] ’);

xlabel(’Time index n’);ylabel(’Amplitude’);

DISCRETE-TIME SYSTEMS IN TIME DOMAIN

% Program P2_1

% Simulation of an M-point Moving Average Filter

% Generate the input signal

n = 0:100;

s1 = cos(2*pi*0.05*n); % A low frequency sinusoid

s2 = cos(2*pi*0.47*n); % A high frequency sinusoid

x = s1+s2;

% Implementation of the moving average filter

M = input(’Desired length of the filter = ’);

num = ones(1,M);

y = filter(num,1,x)/M;

% Display the input and output signals

clf;

subplot(2,2,1);

plot(n,s1);

axis([0, 100, -2, 2]);

xlabel(’Time index n’); ylabel(’Amplitude’);

title(’Signal # 1’);

subplot(2,2,2);

plot(n,s2);

axis([0, 100, -2, 2]);

xlabel(’Time index n’); ylabel(’Amplitude’);

title(’Signal # 2’);

subplot(2,2,3);

plot(n,x);

axis([0, 100, -2, 2]);

xlabel(’Time index n’); ylabel(’Amplitude’);

title(’Input Signal’);

subplot(2,2,4);

plot(n,y);

axis([0, 100, -2, 2]);

xlabel(’Time index n’); ylabel(’Amplitude’);

title(’Output Signal’);

axis;

Illustration Cascade of LTI Systems

% Program for Cascade Realization

clf;

x = [1 zeros(1,40)]; % Generate the input

n = 0:40;

% Coefficients of 4th-order system

den = [1 1.6 2.28 1.325 0.68];

num = [0.06 -0.19 0.27 -0.26 0.12];

% Compute the output of 4th-order system

y = filter(num,den,x);

% Coefficients of the two 2nd-order systems

num1 = [0.3 -0.2 0.4];den1 = [1 0.9 0.8];

num2 = [0.2 -0.5 0.3];den2 = [1 0.7 0.85];

% Output y1[n] of the first stage in the cascade

y1 = filter(num1,den1,x);

% Output y2[n] of the second stage in the cascade

y2 = filter(num2,den2,y1);

% Difference between y[n] and y2[n]

d = y - y2;

% Plot output and difference signals

subplot(3,1,1);

stem(n,y);

ylabel(’Amplitude’);

title(’Output of 4th-order Realization’);grid;

subplot(3,1,2);

stem(n,y2)

ylabel(’Amplitude’);

title(’Output of Cascade Realization’);grid;

subplot(3,1,3);

stem(n,d)

xlabel(’Time index n’);ylabel(’Amplitude’);

title(’Difference Signal’);grid;

Illustration Convolution

The following MATLAB program illustrates this approach.

% Program

clf;

h = [3 2 1 -2 1 0 -4 0 3]; % impulse response

x = [1 -2 3 -4 3 2 1]; % input sequence

y = conv(h,x);

n = 0:14;

subplot(2,1,1);

stem(n,y);

xlabel(’Time index n’); ylabel(’Amplitude’);

title(’Output Obtained by Convolution’);grid;

x1 = [x zeros(1,8)];

y1 = filter(h,1,x1);

subplot(2,1,2);

stem(n,y1);

xlabel(’Time index n’); ylabel(’Amplitude’);

title(’Output Generated by Filtering’);grid;

Illustration of Filtering Concept

System No. 1

System No. 2

MATLAB Program P2_4 is used to compute the outputs of the above two systems for an input

% Program

% Generate the input sequence

clf;

n = 0:299;

x1 = cos(2*pi*10*n/256);

x2 = cos(2*pi*100*n/256);

x = x1+x2;

% Compute the output sequences

num1 = [0.5 0.27 0.77];

y1 = filter(num1,1,x); % Output of System No. 1

den2 = [1 -0.53 0.46];

num2 = [0.45 0.5 0.45];

y2 = filter(num2,den2,x); % Output of System No. 2

% Plot the output sequences

subplot(2,1,1);

plot(n,y1);axis([0 300 -2 2]);

ylabel(’Amplitude’);

title(’Output of System No. 1’);grid;

subplot(2,1,2);

plot(n,y2);axis([0 300 -2 2]);

xlabel(’Time index n’); ylabel(’Amplitude’);

title(’Output of System No. 2’);grid;

0 comments:

Post a Comment

Recent Comments

Popular Matlab Topics

Share your knowledge - help others

Crazy over Matlab Projects ? - Join Now - Follow Me

Sites U Missed to Visit ?

Related Posts Plugin for WordPress, Blogger...

Latest Articles

Special Search For Matlab Projects

MATLAB PROJECTS

counter

Bharadwaj. Powered by Blogger.