Kurt's Assignment: Difference between revisions

From Class Wiki
Jump to navigation Jump to search
Kurt (talk | contribs)
No edit summary
Kurt (talk | contribs)
No edit summary
Line 105: Line 105:
  legend(num2str(M) ' terms');
  legend(num2str(M) ' terms');
  print("squarewave.png","-dpng")  % Prints the plot to a png file called squarewave.png
  print("squarewave.png","-dpng")  % Prints the plot to a png file called squarewave.png
TODO:
*finish the triangle wave derivation
*start sawtooth wave derivation
*implement triangle wave Fourier Series in OCTAVE
*implement sawtooth wave Fourier Series in OCTAVE

Revision as of 23:53, 1 November 2010

Common Synthesizer Waveforms

Many synthesizers employ a variety of waveforms to produce varied sounds. The most common waveform is the sine wave. However, in additive synthesis, multiple waveforms can be added together to create a different waveform with different characteristics. The basis for this form of synthesis is the Fourier series:

x(t)=x(t+T)=a0+n=1ancos(nω0t)+bnsin(nω0t)a0=1T0Tf(t)dtan=2T0Tf(t)cos(nω0t)dtbn=2T0Tf(t)sin(nω0t)dt


The four basic waveforms are Sine Waves, Square Waves, Triangle Waves, and Sawtooth Waves.

Square Wave

By inspection of the waveform, the DC component of the wave will be 0. Also, since the waveform is odd, an will be 0. Here is the proof:

a0=1T012THdt+1T12TTHdt=1T[Ht]|t=012T1T[Ht]|t=12TT=1TH12T0[1THT1TH12T]=H2[H12H]=H2H2=0


an=2T012THcos(nω0t)dt+2T12TTHcos(nω0t)dt=2T[Hnω0sin(nω0t)]012T+2T[Hnω0sin(nω0t)]12TT=2T[Hn2πTsin(n2πT12T)0]+2T[0+Hn2πTsin(n2piT12T)]=2T[TH2πnsin(nπ)0]+2T[TH2πnsin(nπ)0]=0


This just leaves the sine component of the waveform found below.

bn=2T012THsin(nω0t)dt+2T12TTHsin(nω0t)dt=2T[Hnω0cos(nω0t)]012T+2T[Hnω0cos(nω0t)]12TT=2T[Hn2πTcos(n2πT12T)+Hn2πT]+2T[Hn2πTcos(n2πTT)Hn2πTcos(n2πT12T)]=2T[TH2πncos(nπ)+TH2πn]+2T[TH2πncos(2πn)1TH2πncos(nπ)]=Hπncos(nπ)+Hπn+HπnHπncos(nπ)=2Hπn2Hπncos(nπ)


Finally, resulting in the Fourier series for a Square Wave.

Square Wave Fourier Series: x(t)=x(t+T)=n=1(2Hπn2Hπncos(nπ))sin(nω0t)

Triangle Wave

Like the Square wave, the DC component of the Triangle Wave is 0 by inspection. Also, since the triangle wave is odd, it is made up only by sine components.

a0=1T14T14T(4HTt)dt+1T14T34T(4HTt+2H)dt=1T[124HTt2]14T14T+1T[124HTt2+2Ht]14T34T=1T[2HT(14T)22HT(14T)2]+1T[2HT(34T)2+2H(34T)(2HT(14T)2+2H(14T))]=1T[2HT116T22HT116T20]+1T[2HT916T2+32HT+2HT116T212HT]=0+1T[18H16TT2+32HT+2H16TT212HT]=1T[1816HT+2416HT+216HT816HT0]=0


an=2T14T14T(4HTt)cos(nω0t)dt+2T14T34T(4HTt+2H)cos(nω0t)dt=8HT214T14Ttcos(nω0t)dt+4HT14T34T(2Tt+1)cos(nω0t)dt=8HT2[tnω0sin(nω0t)+1n2ω02cos(nω0t)]14T14T+4HT[2Tt+1nω0sin(nω0t)2Tn2ω02cos(nω0t)]14T34T=8HT2[[14Tn2πTsin(n2πT14T)+1n24π2T2cos(n2πT14T)][14Tn2πTsin(n2πT14T)+1n24π2T2cos(n2πT14T)]]+4HT[[2T(34T)+1n2πTsin(n2πT34T)2Tn24π2T2cos(n2πT34T)][2T(14T)+1n2πTsin(n2πT(14T))2Tn24π2T2cos(n2πT(14T))]]=8HT2[[T28πnsin(12nπ)+T2n24π2cos(12nπ)][T28πnsin(12nπ)+T2n24π2cos(12nπ)]]+4HT[[T4πnsin(32nπ)T2π2n2cos(32nπ)][3T4πnsin(12nπ)T2π2n2cos(12nπ)]]=8HT2[T28πnsin(12nπ)T28πnsin(12nπ)+T2n24π2cos(12nπ)T2n24π2cos(12nπ)0]+4HT[T4πnsin(32nπ)3T4πnsin(12nπ)T2π2n2cos(32nπ)+T2π2n2cos(12nπ)0]=8HT2[2T28πnsin(12nπ)]+integrate other side=2Hπnsin(12nπ)+integrate other side

testfunction=


Sawtooth Wave

OCTAVE Scripts to Plot Fourier Series

Square Wave

clf;            %Clear Figure
t=0:.01:10;     %Limits of the graph
T=2*pi          %Definition of the period
M=100           %Number of iterations to undergo
sum1=0;         %Initialize the sum to 
%----------FOURIER SERIES----------% for m=1:1:M, %For m=1, increment by 1 until you get to M if(m!=0) sum1 = sum1 + ((2/(pi*m))-(2/(pi*m))*cos(m*pi))*sin(m*2*pi/T*t); end end
%---------------PLOT---------------% plot(t,real(sum1),'b-') title('Fourier Series Representation of a Wave') xlabel('time (seconds)') ylabel('Function') grid on;
legend(num2str(M) ' terms'); print("squarewave.png","-dpng")  % Prints the plot to a png file called squarewave.png


TODO:

  • finish the triangle wave derivation
  • start sawtooth wave derivation
  • implement triangle wave Fourier Series in OCTAVE
  • implement sawtooth wave Fourier Series in OCTAVE