我正在使用MATLAB分析心电图数据。数据由两列组成,一列是以毫秒为单位的时间,另一列是伏特(mV),并从CSV文件导入MATLAB。
我在MATLAB中使用内置的fft
函数(即fft(mV)
)。现在我已经转换了数据,我不知道如何绘制它。
我知道我需要频率数据,但我无法理解它来自何处以及其他轴是什么。
答案 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);