From Wikipedia, the free encyclopedia
This page is not here yet.
[edit] How to use the DFT, with Matlab examples
DFT quick reference
What is it? |
DFT element |
matlab example and comments |
How often do you want to sample? |
sampling frequency fs |
fsample=100; |
sample at 100Hz |
psample=1/fsample; |
sample period |
|
For how long do you want to sample? |
time range  |
tmax=10; |
run from 0 to 10 sec. inclusive |
|
How many samples does that give you? |
N |
nsamples=tmax/psample+1; |
+1 because we include t=0 and t=tmax. |
nsamples=2^ceil(log2(nsamples)); |
round up to a power of 2 in length so FFT will work. |
times=(0:psample:(nsamples-1)*psample)'; |
Create a column vector of sample times. |
|
How far apart are each of the frequency-domain result points? |
 |
delf=fsample/nsamples; |
frequencies=(0:delf:(nsamples-1)*delf)'; |
Column vector of result frequencies |
|
What signal do you want to sample? |
input x(t) |
x=sin(2*pi*10*times)+sin(2*pi*3*times); |
Make a 10Hz sine wave plus a 3Hz sine wave |
|
What are the results? |
Fourier transform  |
fft_x=fft(x, length(x)); |
What frequencies does the signal have? |
Xm(f) = | X(f) | |
fft_x_mag=abs(fft_x); |
What phase relationships? |
 |
fft_x_phase=unwrap(angle(fft_x)); |
How do you view the results? |
|
plot(frequencies, fft_x_mag); |
Or, to match the amplitude of the magnitude peak to the amplitude of the sine wave, |
plot(frequencies, (2/nsamples)*fft_x_mag); |
|
What about the power spectrum? |
Xp(f) = | X(f) | 2 |
fft_x_power=fft_x_mag.^2; |
plot(frequencies, fft_x_power); |
|
[edit] References
Lyons, Richard G. Understanding digital signal processing. Upper Saddle River: Prentice Hall PTR, 2001. ISBN 0-201-63467-8. Chapter 3 discusses the DFT.