How to do a fft from a sine signal with hanning function
Mostrar comentarios más antiguos
Hello, i want to do a fast fourier transformation on a sine signal. By using the hanning function. Btw i am a newbie, concering matlab programming so, dont be to hard too me. If you could also help me explain the hanning function properly, i would really appreciate it.
Respuestas (2)
Gareth Thomas
el 4 de Oct. de 2016
MATLAB has awesome help. If you type
doc fft
1 comentario
Jack Walker
el 4 de Oct. de 2016
You can try starting with something like this
fs = 44100; % sampling frequency
T = 1; % period, 1 second
n = T*fs;
t = linspace(1/fs, T, n);
% calculate hanning window, if you have Signal Processing Toolbox just use hann(n)
window = 0.5 - 0.5*cos(2*pi*linspace(0, 1, n));
% generate simplest sine signal
freq = 1000; % 1kHz sine wave
s = sin(2*pi*freq);
% calculate fft
z = fft(s.*window);
hanning window is just 1 - one period of cosine function, it's usually normalised to 1.
5 comentarios
Jack Walker
el 4 de Oct. de 2016
Jan Orwat
el 4 de Oct. de 2016
That's right, corrected.
Show your plotting attempt, let's investigate what's wrong there.
Jack Walker
el 4 de Oct. de 2016
mehdi fathizad
el 23 de Mzo. de 2019
hi everone
Now i am doing a project about damage detection of structure based on ARMA model. I have already taken all the accelerations for damaged and undamaged system and I want to use pre-whitening procedure to remove correlation between the story's responses. I read somewhere that for doing pre-whitening its better to do hanning window at first on my response time series. then carry out the fft fallowing the normalization. at the end, inverse FFT and then start the ARMA procedure on the obtained new time series.
I am wondering if its correct (whole concept and the arrangement)?
and also normalization means dividing all magnitude by the maximum amount?
if so, after producing the new time series, how can I check to find out the procedure was rigth or not?(for example checking the variance, mean and so on)
thanks
David Pinho
el 6 de Mayo de 2019
s = sin(2*pi*freq); should be sin(2*pi*freq*t)
Categorías
Más información sobre Vibration Analysis en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!