Upcoming SlideShare
×

# The FFT And Spectral Analysis

9,216 views

Published on

Sample of this year's (2011) DSP presentations for the practicals of ELEC327 at the University of Plymouth

Published in: Technology
7 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

Views
Total views
9,216
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
0
0
Likes
7
Embeds 0
No embeds

No notes for slide
• X(k) is not different than x(t), it’s just a different representationAlternative name for series is “a set of coefficients”Need to observe the series of operations. X(k) is evaluated for each k
• X(k) is not different than x(t), it’s just a different representation
• What is the different between the forward and the inverse Fourier Transform?Point out the differences between the formulas that MATLAB uses. Mention the 1/N term
• Please note, you can generate this matrix in MATLAB by typing dftmtx (“doc dftmtx” will tell you all about it)Notice how the matrix is composed of a very small set of coefficients that repeat themselves over and over again.
• The frequency axis is not in Hz (yet)Average amplitude WITHIN the window consideredWhat happened here? How has the representation of the signal changed? (Changing one coefficient we change many values in the time domain at once)What is a harmonic?
• After applying this transformation we can move between normalised frequency to physical frequency and back.
• When the signal (x(n)) contains a frequency that does not fit exactly within one of the “bins” effected by the spectral resolution of the FFT, it is distributed (“spills”) to the nearest “bins”.
• Windowing functions are used to reduce “spectral leakage”N=128;NF=512;W=blackman(N);F=fft(W,NF);subplot(121);plot(W);grid on;xlabel(&apos;n&apos;);ylabel(&apos;A&apos;);subplot(122);semilogy((1:round(NF./2))./NF,abs(F(1:round(NF./2))));xlabel(&apos;k&apos;);ylabel(&apos;A&apos;);grid on
• Please note that the power spectrum will be different depending on whether you have added the 1/N term or not.
• Parseval’s theorem allows you to produce an equivalent measurement of power from the frequency domain. Please note that the summation (in the frequency domain) does not have to include the whole signal, it could just be a subset of the harmonics that compose the signal.
• What sort of phase shift do the +φ1 and –φ1 terms imply?
• Please pay attention to the variables Fs, D, n and p we will be re-using them in the next few slides.
• plot(n,x*) will provide a plot of x3 in the time domain. That is, a plot of x3 versus the time variable which in our case is n.
• Just as we did in the time domain, we now need to “plot” the signal in the frequency domain. And just as we did with the time domain we now need to come up with a “frequency” variable that is equivalent to n.Fv = Fs * (0: (length(x3)-1)./length(x3);plot(Fv,abs(Fx3));Ah! At last we have a plot of the frequency domain (Amplitude of the fourier spectrum abs(Fx3) versus physical frequency Fv). The problem is that because of the way the FFT is calculated, X(k) can contain very big numbers (10^4) along with some very small numbers (0.0001), to get a more objective view of the spectrum we need a way to look at both small and very big numbers on the same scale. We do this by setting the Y axis of our plot (above) to a logarithmic scale:semilogy(Fv,abs(Fx3));Now we can observe both the very low amplitude and very high amplitude harmonics on the same plot.
• You can shift your signal in the time domain through the Fourier transform. In fact this is something that you have been doing all the time during your FFT lectures. Can you work out the term and the way through which you could achieve a phase shift of your x(n) just by working with the X(k) coefficients? (You can’t “touch” x(n) –as is suggested in these slides-. You should only work with X(k)….You can add, subtract, multiply, divide or do any other thing you think is necessary ON X(k) ONLY to effect a 5 sample phase shift on x(n))After you have shifted your signal, observe what was put in the place that these 5 samples occupied before. Can you work out an explanation for your observations through the properties of the Fourier Transform? (You can find a small collection of these properties at the appendix of this presentation).
• The frequency spectrum X(k) of this signal is telling us a story. It is telling us about things that were occurring during the data acquisition of the signal that we don’t have the chance to observe in the time domain.
• …and this is the story that the spectrum tells us. Because of the linearity property of the Fourier Transform (please refer to the appendix), the spectrum in the previous page is a superposition of the spectra of the different phenomena that were going on at the same time during data acquisition. Besides the neurons going on and off inside the person’s head, the EEG is also picking up the variable electric field that is caused by the heart as it beats, pumping blood around the body of the subject*. At the same time, the so called “Mains Noise” has crept up within the recorded signal. The “mains noise” although most of the times we refer to it as a single sinusoid it is not (!), if you notice the spectrum in the previous slide, there are two spectral lines close to the frequency of the power line (50Hz for this part of the world). Their relative powers create a signal that is a bit more complex than a sinusoid and contaminates the signal.Please note, that the cardiac signal was extracted from these same noisy signals by Javier Escudero Rodriguez through a signal processing technique called Independent Component Analysis (ICA). Unfortunately, we do not have the time to cover ICA but it is a very interesting technique and touches upon the concepts of spectral analysis we have been talking about in these lectures. More information on the subject can be found in: http://research.ics.tkk.fi/ica/book/
• Can you guess just by looking at the spectrum what is going on with this signal?
• Also, an excellent resource that can be used as a quick reference book as well is:http://www.numbertheory.org/book/
• DSP text books will usually contain a larger list of the FT properties and you can refer to them depending on your needs. This small collection includes all the properties we will be coming across in these lectures.
• ### The FFT And Spectral Analysis

1. 1. Spectral Analysis &The Fourier Transform Athanasios AnastasiouSignal Processing and MultimediaCommunications Research Group University of Plymouth - UK
2. 2. Learning Objectives• Familiarise yourselves with the Fourier Transform and its properties• Make sense of Fourier spectra• Carry out basic operations on various signals in MATLAB – Forward / Inverse Transform – Visualisation of spectra
3. 3. Topics• Signals In: – Time Domain – Frequency Domain• The Fourier Transform• The Fourier Spectra• Practical application in MATLAB
4. 4. Fourier Transform (?)• It was named after Jean Baptiste Joseph Fourier (1768 – 1830)• The Fourier Transform – Changes the representation of a signal – Fundamental characteristics of the signal (power, phase) remain the same, only their representation changes – Representation (?) • Time Domain • Frequency Domain – Enables us to observe signals and change them far more easily in the Frequency Domain, than it would be in the Time Domain.• The same concepts apply similarly to other transforms as well
5. 5. What is so special about the Fourier Transform?• An extremely versatile tool• Time Series Analysis / Processing / Synthesis – Tidal observations – Mechanical Vibration Analysis – Lossy Compression – Image Reconstruction – Signal Features / Classification • Speech Recognition / Animal Species Recognition – Electromagnetic Spectrum • SETI• …and some special cases: – Fast Fluid Simulation (for computer graphics)
6. 6. Time Domain Frequency Domain• One Signal – x(n) – Amplitude samples of some quantity over time• Many Different Representations – X(ω) – A series of weights to: • Trigonometric functions • Other functions• How do we pass from one domain to the other?
7. 7. Integral Transforms Transformed Signal Signal Kernel (Time Domain)(Some Domain) t2 X U t, x(t ) dt Forward Transform t1 t2 1 xt U ,t X d Inverse Transform t1 What about the Fourier Transform?
8. 8. The Fourier TransformFrequency Domain Kernel Time Domain i2 t X e x t dt ei cos i sin Euler’s Formula Re-expresses the signal x(t) as a series of weights X(ω) of sinusoids and co-sinusoids of different frequencies ω
9. 9. The Inverse Fourier TransformTime Domain Kernel Frequency Domain xt ei 2 t X d Re-composes the signal x(t) as a remix of sinusoids and co-sinusoids at different frequencies (ω) and different “strengths” X(ω)
10. 10. The Discrete Fourier Transform Remember, DSP is all about sampled signals… N 1 i2 k n 1 N k e xn N n 0 k N 1 i2 k n N xn e X k k 0…and this has some consequences on the properties of the Fourier Transform (Key properties: Linearity, Periodicity, Shifting, Convolution Duality, Interpolation, Frequency & Time Scaling) Please Note:This is the 1-Dimensional case of the Fourier Transform. It can be generalised to higher dimensions with applications to Image Processing, Volumetric Data processing and others
11. 11. Digression: Fast Fourier Transform The Discrete Fourier Transform (DFT) as a matrix operation X U x Re U Im U Perform The Unique Operations Only
12. 12. Fourier Spectra• “Spectrum” is another name for X(k) – The strength X(k) by which sinusoids and co-sinusoids of frequency k contribute to signal x(t)• “Fourier Spectrum” is synonymous with “Signal Spectrum” – Usually, “Spectral Analysis” refers to observing the Fourier Spectra of a signal• Hold on….Fourier Spectra?...There’s more than one? – Oh, yeah!
13. 13. Fourier Spectra Ak X k Amplitude 2 Pk X k Power 1 Im X k Phase k tan Re X kPlease note:• X(k) is a complex number• The power spectrum is not the same as the Amplitude spectrum!• How do these “spectra” look like and how do we make sense of them?
14. 14. Fourier Spectra Amplitude Spectrum Time Domain Frequency Domain 5 1 10 0.8 0.6 0 10 0.4 0.2 X(k)x(t) -5 0 10 -0.2 -0.4 -10 10 -0.6 -0.8 -15 -1 10 0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0 0.5 1 1.5 2 2.5 time (sec) Frequency x 10 4 What are the units of the Frequency Axis? Where are the 0, Fs/2 and Fs points on the Frequency Axis? What can the units of X(k) be?
15. 15. Fourier Spectra Amplitude Spectrum Time Domain Frequency Domain 0 1 10 0.8 -2 10 0.6 -4 10 0.4 -6 10 0.2 -8 10 X(k)x(t) 0 -10 10 -0.2 -12 10 -0.4 -14 10 -0.6 -16 -0.8 10 -18 -1 10 0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0 1000 2000 3000 4000 5000 6000 7000 8000 time (sec) Frequency (Hz) Physical Frequency k VS f Fs Normalised Frequency N Any general observations on X(k)? What about the relationship between X(k) and x(t)?
16. 16. Fourier Spectra Spectral Resolution Time Domain Frequency Domain 0 1 10 0.8 -2 10 0.6 -4 10 0.4 -6 10 0.2 -8 10 X(k)x(t) 0 -10 10 -0.2 -12 10 -0.4 -14 10 -0.6 -16 -0.8 10 -18 -1 10 0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0 1000 2000 3000 4000 5000 6000 7000 8000 time (sec) Frequency (Hz) Physical Frequency k VS f Fs Normalised Frequency N What happens when some (f) falls between two kn,kn+1?
17. 17. Fourier Spectra Digression: Windowing Functions To reduce spectral leakage in x(n): x* n xn W n X* k F x n *F W n Where W(n) is some “Window Function” 2 5 1 10 1 10 0.8 0 0.8 10 0 10 0.6 0.6 -2 A A 10A A 0.4 0.4 -5 10 -4 10 0.2 0.2 -10 -6 0 10 0 10 0 50 100 150 0 0.1 0.2 0.3 0.4 0.5 0 50 100 0 0.1 0.2 0.3 0.4 0.5 n k n k Hamming Window Blackman Window
18. 18. Fourier Spectra Power Spectrum Time Domain Frequency Domain 0 1 10 0.8 -5 10 0.6 -10 0.4 10 0.2 -15 10 P(k)x(t) 0 -20 10 -0.2 -0.4 10 -25 -0.6 -30 10 -0.8 -35 -1 10 0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0 1000 2000 3000 4000 5000 6000 7000 8000 time (sec) Frequency (Hz) What does P(k) shows and what could be its units?
19. 19. Fourier SpectraPower Spectrum (Parseval’s Theorem) Time Domain Frequency Domain 0 1 10 0.8 -5 10 0.6 -10 0.4 10 0.2 -15 10 P(k)x(t) 0 -20 10 -0.2 -0.4 10 -25 -0.6 -30 10 -0.8 -35 -1 10 0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0 1000 2000 3000 4000 5000 6000 7000 8000 time (sec) Frequency (Hz) N 1 N 1 2 1 2 xn X k n 0 N k 0
20. 20. Fourier Spectra (Phase) Time Domain Frequency Domain 1 4 0.8 3 0.6 2 0.4 0.2 1x(t) phi(k) 0 0 -0.2 -1 -0.4 -2 -0.6 -0.8 -3 -1 -4 0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0 1000 2000 3000 4000 5000 6000 7000 8000 time (sec) Frequency (Hz) What does the φ(k) axis shows?
21. 21. Fourier Spectra (Phase) Time Domain Frequency Domain 4 1 3 2 1 0.8 phi(k) 0 3 -1 -2 0.6 -3 -4 0 1000 2000 3000 4000 5000 6000 7000 8000 Frequency (Hz) 0.4 2 0.2x(t) 0 1 -0.2 phi(k) -0.4 0 -0.6 -0.8 -1 X: 440 Y: -1.571 -1 0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 time (sec) -2 -3 380 400 420 440 460 480 500 520 540 Frequency (Hz) What is the phase of x(n)?
22. 22. Fourier Spectra Summary Harmonics Fundamental 5 10 0 10 |A(k)| -5 10 1 -10 10 0.5 -15 10 0 2000 4000 6000 8000x(n) 0 Frequency (Hz) X(k)=F(x(n)) 4 3 -0.5 2 1 -1 phi(k) 0 0.2 0.4 0.6 0.8 1 1.2 1.4 0 time (sec) x 10 -4 -1 -2 -3 -4 0 2000 4000 6000 8000 Frequency (Hz) 0 Hz Fs/2 Hz FsHz Time Domain Frequency Domain
23. 23. Digression (1): Phase & Phase Shift• Positive Phase Shift – x(n)=x(n+a) – Phase Is Advancing – Signal Appears Shifted To The LEFT!• Negative Phase Shift – x(n)=x(n-a) – Phase Is Lagging – Signal Appears Shifted To The RIGHT!• This is also important for “Filter Causality”
24. 24. Digression(2): The Phase Spectrum!• The Phase Spectrum is extremely important – It encodes the “structure” of the signal – Two signals can have the same A(k)=A1(k)=A2(k) but different φ1(k), φ2(k) • This implies two completely different x1(n), x2(n)• Practical Example – Draw bars on an Organ – Additive Sound Synthesis – The importance of phase in speech enhancement
25. 25. Fourier Transform• Practical Application
26. 26. Spectral Analysis & The Fourier Transform• We will be using MATLAB• Create / Acquire Some Signals• Perform Forward / Inverse Fourier Transform• Visualise and read the spectra of some basic signals• Explore some properties of the Fourier Transform – And their consequences to DSP• Brief Case Study On Sound Analysis
27. 27. Creating / Acquiring Some Signals• Task 1 - For some… – Sampling Fequency Fs (Hz) – Signal Duration D (Sec) – Fs=8000; D=3; n=0:(1./Fs):D; p=2*pi*n; • What are the (n) and (p)?• …generate some basic signals (for some frequency f of your choice) – x1=sin(f*p); #Sin – x2=cos(f*p); #Cos – x3=square(f*p) #... – x4=sawtooth(f*p); #... – x5=sawtooth(f*p,0.5); #Triangle – x6=zeros(size(t));x6(1)=1; #Delta