Procedure:
Download the Spectrum Analyzer function Spectrum Analyzer.m from the website. Instructions for using Spectrum Analyzer
Spectrum Analyzer(Array You Wish To Analyze,Sampling Frequency) Output is a plot in dB showing the output FFT.
Create a series of sinusoids.
Create a 10 second time axis, sampling every 0.0001 seconds (Fs=10000 Hz).
Create and plot about 10 cycles of y= cos (2*p*f0*t) where t is your time axis and
f0 is 200 Hz.
Now try to visualize it in the spectral domain by using
Spectrum Analyzer(y,10000). Note that there are 2 lines at 200 Hz and -
200 Hz
Listen to the sound by using the soundsc(y,10000) function
Create another sinusoid at the second harmonic of the sinusoid (400Hz). Plot it on the same graph as the first, and play it using your sound card.
Visualize it using the Spectrum Analyzer Function. Now you will see a pair of lines at 400 and -400 Hz.
Plot on the same graph as before
Createa square wave from the sinusoids,after each step plot a small section,and run the spectrum Analyzer function.
Add first harmonic term you crated +(sin(k*p/2)/k)*cos(k*2*p* f0*t) for k=3
now do it for k=1,3,5 (using the scaling coefficient on each term)
now do it for k=1,3,5,7 (etc)
now do it for k=1,3,5,7,9,11,13
Use a for loop with a pause to do 21 harmonics (only odd).
Comment on the squareness of the output as a function of the number of harmonics that you use. Play it on your sound card using the soundsc(y,Fs) and listen to the difference.
C. RemovealltheHarmonicsusingalowpassfilter.
Design a filter to remove all harmonics from the square wave with the exception of the first. Let Fs=10000 Hz, Pass band = 220 Hz, stop band =300 Hz
Export the coefficients to workspace (Num) Run y=filter(Num,1,SquareWave) to remove harmonics. Plot and listen on your sound card. Run through the spectrum analyzer and compare to part A.
D. Look at a song in the time and frequency domain. Type "Load Handel". This will create an array (y,Fs) where y has the music and Fs is the sampling frequency 8192 Hz.
play the song using your sound card
look at the song in the frequency domain using spectrumanalyzer
look at the first 10000 points in the time domain.
Speed the music, play using sound card at Fs=12000
Design a low pass filter to pass frequencies from 0 to 2000 Hz.
Follow the procedure from before and filter your waveform, plot the spectrum and listen to the output. It does not sound so good anymore.
SpectrumAnalyzer is below:
function SpectrumAnalyzer(InputArray,Fs)
Yaxis=abs(fftshift(fft(InputArray)));
Yaxis=Yaxis.*Yaxis;
v=size(Yaxis);
if v(1)==1
V=size(Yaxis,2);
Xaxis=-Fs/2+Fs/V:Fs/V:(Fs/2);
else
V=v(1);
Xaxis=-Fs/2+Fs/V:Fs/V:(Fs/2);
Xaxis=Xaxis.';
end
Yaxis=10*log10(Yaxis*4/(V.*V));
figure
plot(Xaxis,Yaxis)
xlabel('Frequency (Hz)')
ylabel('Power')