Я записал акселерометр в течение 2 часов (частота дискретизации 100 Гц). Чтобы проанализировать данные, я хочу выполнить fft. Я думаю, что все данные настолько длинны, поэтому я хочу разделить его на 10 секунд или 5 секунд. Является ли это возможным?данные о длинном акселерометре, разделенные на короткий, чтобы выполнить fft в matlab
сейчас, у меня есть данные (1479168x1; один из x, y, z) с частотой дискретизации 100 Гц. Я хочу проанализировать его, разделенное на 5 секунд. (512x2889). Затем, правильно ли выполнить fft с 512 образцами (как один образец кадра, всего 2889 кадров)? Ниже мой код
no_point = 512; %% for 5seconds data of 10ms data point
Fs=100; %% sample rate
acc = data;
no_frame = length(data)/no_point;
frame_data = reshape(acc, no_point, no_frame)';
f = hann(no_point);
hann_window = repmat(f',no_frame,1);
fspace = Fs/2*linspace(0,1,no_point/2+1);
fp = zeros(no_frame, no_point);
for iframe = 1:no_frame
mean_data = mean(frame_data(iframe,:));
std_data = std(frame_data(iframe,:));
fp(iframe,:) = (frame_data(iframe,:)-mean_data)*100/mean_data;
end
fp_hann = hann_window.*fp;
abs_fp = zeros(no_frame, no_point/2+1);
for iframe = 1:no_frame
Y = fft(fp_hann(iframe,:),no_point);
abs_fp(iframe,:) = 2*abs(Y(1:no_point/2+1));
end
FFT имеет временную сложность O (n * log (n)), поэтому я сомневаюсь, что это займет гораздо больше времени, даже если это даже займет больше времени. – flawr
Измените частоту дискретизации https://www.mathworks.com/help/signal/ref/resample.html –
Благодарим за ответы, ребята, но я этого не понимаю. Не могли бы вы рассказать подробнее? –