FFT Transform on vectors

2 visualizaciones (últimos 30 días)
Cyriac Jose
Cyriac Jose el 5 de Sept. de 2018
Editada: Cyriac Jose el 10 de Sept. de 2018
I have a set of 50Hz Voltage and Current values stored as arrays under variable name 'Volt' and 'Cur' sampled at 1000 Hz
Things to be obtained:
1. Extract the 50 Hz component out of the whole load data in turn. Require a sliding window of 20 ms taking the 50 Hz component of the vector for that sliding window and do the fft of that vector and store it in a separate array.
2. Simliary take 50 Hz component of every 20 ms window and store the same to the array.
Can anyone lend a helping hand regarding the same?

Respuestas (1)

Naman Chaturvedi
Naman Chaturvedi el 10 de Sept. de 2018
This should help.
For sliding window;
% x=signal
% A=output array
% shift=shift of sliding window
% windowlen=window length
% L=size of signal
A=[];
for i=1:shift:L-windowlen+1
A=[A;abs(fft(x(i:i+windowlen,1)))];
end
For fixed window:
% x=signal
% A=output array
% windowlen=window length
% L=size of signal
A=[];
for i=1:windowlen:L-windowlen+1
A=[A;abs(fft(x(i:i+windowlen,1)))];
end
  1 comentario
Cyriac Jose
Cyriac Jose el 10 de Sept. de 2018
Editada: Cyriac Jose el 10 de Sept. de 2018
Thanks for the help Naman! But for each of those sliding window function lets say a sliding window of size 20, we have 20 values to be stored in the array 'A' after each loop iteration. What I want is to have just the 50Hz component out of the 20 fft values in each cycle to be stored in the array 'A'. i.e if the loop is iterated 7 times, the number of elements in my array 'A' should be 7 and not 7*20 elements. Any useful info on the same?

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by