0% found this document useful (0 votes)
50 views13 pages

Problems Answers PDF

This document discusses using MATLAB to: 1) Calculate and plot Fourier series coefficients and truncated Fourier series for different signals like a staircase signal. Code is provided to calculate the coefficients and plot the truncated series for different numbers of harmonics N. 2) Calculate and plot a truncated exponential Fourier series for a trapezoidal wave using a for loop instead of matrix multiplication to reduce memory usage for students with limited MATLAB versions. Plots are shown for truncating at N=3, 10, and 40 harmonics. 3) The Fourier series plots converge to the original signal as more harmonics are included, demonstrating that the truncated Fourier series approximations improve with increasing N.

Uploaded by

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

Problems Answers PDF

This document discusses using MATLAB to: 1) Calculate and plot Fourier series coefficients and truncated Fourier series for different signals like a staircase signal. Code is provided to calculate the coefficients and plot the truncated series for different numbers of harmonics N. 2) Calculate and plot a truncated exponential Fourier series for a trapezoidal wave using a for loop instead of matrix multiplication to reduce memory usage for students with limited MATLAB versions. Plots are shown for truncating at N=3, 10, and 40 harmonics. 3) The Fourier series plots converge to the original signal as more harmonics are included, demonstrating that the truncated Fourier series approximations improve with increasing N.

Uploaded by

Hussein Elattar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Some of the work can be done using MATLAB:

» n=1:15;
» cn=-4*j./n/pi.*sin(pi*n/6).*sin(n*pi/2).*exp(-j*n*pi/3);
» n=-15:-1;
» c_n=-4*j./n/pi.*sin(pi*n/6).*sin(n*pi/2).*exp(-j*n*pi/3);
» cn=[c_n 0 cn];
» n=-15:15;
» subplot(221),stem(n,abs(cn))
» title('|c_n|')
» subplot(222),stem(n,angle(cn))
» title('angle(c_n) in rad')

To plot the Fourier series to check your answers:

T=6;
w0 = 2*pi/T;
t = -1.5*T:T/1000:1.5*T;
N = input(’Number of harmonics ’);
c0 = 0;
x = c0*ones(1,length(t)); % dc component
for n=1:N,
cn = -4*j/n/pi*sin(pi*n/6)*sin(n*pi/2)*exp(-j*n*pi/3);
c_n = conj(cn);
x = x + cn*exp(j*n*w0*t) + c_n*exp(-j*n*w0*t);
end
plot(t,x)
title([’ N = ’,num2str(N)])

|c n| angle(c n) in rad
0.8 4

0.6 2

0.4 0

0.2 -2

0 -4
-20 -10 0 10 20 -20 -10 0 10 20
N = 50
4

-2

-4
-10 -5 0 5 10
Some of the work can be done using MATLAB:

» n=-10:10;
» cn=cos(pi/2*n*w0)/5./(1-(n*w0).^2);
» subplot(221),stem(n,abs(cn))
» title('|c_n|')
» subplot(222),stem(n,angle(cn))
» title('angle(c_n) in rad')

will give first plots shown below. To check your answer, you can plot the truncated series and see if it
converges correctly.

T=10;
w0 = 2*pi/T;
t = -1.5:T/1000:1.5*T;
N = input(’Number of harmonics ’);
c0 = 1/5;
x = c0*ones(1,length(t)); % dc component
for n=1:N,
cn = cos(pi/2*n*w0)/5/(1-(n*w0)^2);
c_n = cn;
x = x + cn*exp(j*n*w0*t) + c_n*exp(-j*n*w0*t);
end
plot(t,x)
title([’ N = ’,num2str(N)])

|c n| angle(c n) in rad
0.2 4

0.15 3

0.1 2

0.05 1

0 0
-10 -5 0 5 10 -10 -5 0 5 10

N = 20
1

0.5

-0.5
-20 -10 0 10 20
Time (sec)
% trucated Fourier series for a staircase signal
T = 4;
w0 = 2*pi/T;
t = 0:T/1000:3*T;
N = input(’input N’)
nneg = -N:-1;
npos = 1:N;
c0 = 3/4;
cneg = 1/j/pi./nneg.*(1-.5*(-1).^nneg-.5*exp(-j*nneg*pi/2));
cpos = 1/j/pi./npos.*(1-.5*(-1).^npos-.5*exp(-j*npos*pi/2));
n = [nneg 0 npos];
c_n = [cneg c0 cpos];
x = c_n*exp(j*w0*n’*t);
x = real(x); % strips off negligible imaginary parts
plot(t,x)
xlabel(’Time (sec)’)
title([’x’,num2str(N),’(t)’])

The truncated series is plotted from top to bottom for N = 3, N = 10, and N = 40.

x 3(t)
4

-2
0 2 4 x 10(t)
6 8 10 12
4 Time (sec)

-2
0 2 4 x 40(t)
6 8 10 12
4 Time (sec)

-2
0 2 4 6 8 10 12
Time (sec)
This program uses a loop to compute the Fourier series rather than the large matrix multiplication.
One student had difficulty using the student version of Matlab with the other program (it took too
much memory). This one is less efficient because of the loop, but it uses less memory.

% computes exponential Fourier series for trapezoidal wave


T = 5;
w = 2*pi/5;
t = -T:T/1000:2*T;
N = input(’Number of harmonics ’);
c0 = 3/5;
w0 = pi;
xN = c0*ones(1,length(t)); % dc component
for n=1:N,
cn = 2/5./n.^2/w/w*(cos(n*w)-cos(2*n*w));
c_n = cn;
xN = xN + cn*exp(j*n*w*t) + c_n*exp(-j*n*w*t);
end
plot(t,xN)
title([’ N = ’,num2str(N)])

Running this program for N = 3, N= 10 and N= 40 gives:

N=3
2

-1
-5 0 N = 10 5 10
2

-1
-5 0 N = 40 5 10
2

0
-5 0 5 10
Time (sec)

You might also like