在matlab中绘制fft数据

时间:2016-04-13 19:21:12

标签: matlab plot signal-processing fft

我正在使用MATLAB分析心电图数据。数据由两列组成,一列是以毫秒为单位的时间,另一列是伏特(mV),并从CSV文件导入MATLAB。

我在MATLAB中使用内置的fft函数(即fft(mV))。现在我已经转换了数据,我不知道如何绘制它。

我知道我需要频率数据,但我无法理解它来自何处以及其他轴是什么。

1 个答案:

答案 0 :(得分:0)

当您说“以毫秒为单位的时间”时,我希望您在执行FFT时以均匀间隔进行采样。如果你还没有,那么你有两个选择。

您可以在点之间插入数据,以便“猜测”图表在时域中的位置。

OR

您可以定期重新采样。以毫秒为单位返回时间并不是必需的,因为间隔必须相等,但它可以作为验证器来证明数据是正确的。

一旦您获得了定期采样周期的数据,您就可以使用它来获得FFT。

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);