2016-04-13 5 views
0

Я анализирую данные ЭКГ с использованием MATLAB. Данные состоят из двух столбцов, один раз в миллисекундах, а другой содержит вольт (mV) и импортируется в MATLAB из файла CSV.Построение данных fft в matlab

Я использую встроенную функцию fft в MATLAB (то есть fft(mV)). Теперь, когда у меня есть преобразованные данные, я не знаю, как это сделать.

Я знаю, что мне нужны данные частоты, но у меня возникли проблемы с пониманием того, откуда и от чего зависит другая ось.

+1

заказ [пример] (http://www.mathworks.com/help/matlab/ref/fft.html?refresh=true#buuutyt-9) в документации. Он имеет довольно подробную демонстрацию того, как построить результат FFT. – Suever

+1

Вот еще примеры: http://stackoverflow.com/a/6698729/97160, http://stackoverflow.com/a/2113968/97160 – Amro

ответ

0

Когда вы говорите «время в миллисекундах», я надеюсь, что вы проверили четный интервал при выполнении БПФ. Если у вас нет, у вас есть два варианта.

Вы можете интерполировать данные между точками так, чтобы «угадать», где график будет иметь значение eb в то время во временной области.

ИЛИ

Вы можете повторно образца через регулярные промежутки времени. Возвращение времени в миллисекундах на самом деле не обязательно для этого, поскольку интервал должен быть равным, но он может функционировать как валидатор, чтобы доказать правильность данных.

Как только у вас есть данные с регулярным периодом выборки, вы можете использовать это для получения БПФ.

function [ X, f ] = ctft(x, T) 
% x = sample array 
% T = sampling period 

% X = fft amplitude 
% f = frequency 

N = length(x); 
X = fftshift(fft(x, N))*((2*pi)/N); 
f = linspace(-1, 1-1/N, N)/(2*T); 
+0

Не было у моего компьютера с тех пор, как я спросил, но да, выборка было сделано с регулярным интервалом. Я считаю, что период выборки составлял 4 мс, но мне нужно будет проверить. – tfiggs

+0

Затем используйте T = 0.004s и x, равные вашему вводу, и используйте код. В моем ответе. Участок (f, X), и вы уходите! – DeeCee

Смежные вопросы