繁体   English   中英

在MATLAB中绘制FFT数据

[英]Plotting fft data in matlab

我正在使用MATLAB分析ECG数据。 数据由两列组成,一列以毫秒为单位,另一列包含伏特(mV),并从CSV文件导入到MATLAB中。

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

我知道我需要频率数据,但是我很难理解它来自何处以及另一个轴是什么。

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

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

要么

您可以定期进行重新采样。 为此,实际上不需要以毫秒为单位返回时间,因为间隔必须相等,但是它可以用作验证器以证明数据正确。

一旦有了定期采样周期的数据,便可以使用它来获取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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM