Fourier Series Example Script: Difference between revisions

From Class Wiki
Jump to navigation Jump to search
No edit summary
 
(11 intermediate revisions by the same user not shown)
Line 21: Line 21:


===Fourier Series Solution for Sinusoidal Steady State Response of a Low Pass Filter===
===Fourier Series Solution for Sinusoidal Steady State Response of a Low Pass Filter===
This goes with the [http://people.wallawalla.edu/~Rob.Frohne/ClassNotes/ENGR351/2010f/Background/index.php class notes for October 1, 2010.]
This goes with the [http://people.wallawalla.edu/~Rob.Frohne/ClassNotes/ENGR351/2010f/Background/index.php class notes for October 1, 2010.]

[[File:LowPassFilter.png]]


clf;
clf;
Line 32: Line 34:
current =0;
current =0;
for n=1:2:M,
for n=1:2:M,
vin = vin+1./(n.*pi).*(3.*sin(pi.*n./2)-sin(3.*n.*pi./2)).*cos(2.*pi.*n.*t./T);
vin = vin+1./(n.*pi).*(3.*sin(pi.*n./2)...
current = current+1./(sqrt(R.^2+1./((2.*pi.*n./T).^2*C.^2))).*1./(n.*pi).*(3.*sin(pi.*n./2)-sin(3.*n.*pi./2)).*cos(2.*pi.*n.*t. /T-atan2(-1,2*pi*n/T*R*C));
-sin(3.*n.*pi./2)).*cos(2.*pi.*n.*t./T);
current = current+1./(sqrt(R.^2+1./...
((2.*pi.*n./T).^2*C.^2))).*1./(n.*pi).*(3.*sin(pi.*n./2)...
-sin(3.*n.*pi./2)).*cos(2.*pi.*n.*t./T-atan2(-1,2*pi*n/T*R*C));
end
end
vout=vin-R.*current;
vout=vin-R.*current;
Line 46: Line 51:


The output produces a nice plot.
The output produces a nice plot.

[[File:LowPass.png|800px]]

Latest revision as of 11:24, 13 October 2011

Sampled Fourier Series

This is a script that plots a few terms of the Fourier series of a square wave and then plots some samples of it in red *'s. You can copy this and paste it into your editor and run it from octave or just paste it into an octave window to see the plot.

% This script plots a Fourier Series for a Square Wave
clf;
t=0:.01:10;
T=2.5
M=50    
sum1=0;
for m=1:2:M,
    sum1 = sum1+4/m/pi*sin(m*pi/2)*cos(2*pi*m*t/T);
end
plot(t,sum1,'b-',t(1:10:end),sum1(1:10:end),'r*')
title('Fourier Series Representation of a Square Wave')
xlabel('time (seconds)')
ylabel('Function')
grid on;
axis([0,10,-2,2])
legend('Five Terms','Five Terms Sampled')
print("squarewave.png","-dpng")  % Prints the plot to a png file called squarewave.png

Fourier Series Solution for Sinusoidal Steady State Response of a Low Pass Filter

This goes with the class notes for October 1, 2010.

LowPassFilter.png

clf;
t=0:.01:10;
T=pi;
R=2;
C=1;
M=101;
vin=0;
current =0;
for n=1:2:M,
	vin = vin+1./(n.*pi).*(3.*sin(pi.*n./2)...
-sin(3.*n.*pi./2)).*cos(2.*pi.*n.*t./T);
	current = current+1./(sqrt(R.^2+1./...
((2.*pi.*n./T).^2*C.^2))).*1./(n.*pi).*(3.*sin(pi.*n./2)...
-sin(3.*n.*pi./2)).*cos(2.*pi.*n.*t./T-atan2(-1,2*pi*n/T*R*C));
end
vout=vin-R.*current;
plot(t,vin,'b-',t,vout)
title('Fourier Series Representation of a Square Wave')
xlabel('time (seconds)')
ylabel('Function')
grid on;
axis([0,10,-2,2])
legend('Input Voltage','Output Voltage')
print("LowPass.png","-dpng")  % Prints the plot to a png file called squarewave.png

The output produces a nice plot.

LowPass.png