MATLAB中ECG信号的FFT

时间:2012-12-16 15:10:39

标签: matlab frequency

这是输入信号: original http://s7.postimage.org/rrr91s2q3/orig.jpg

    plot(abs(fft(ecg)))

fft http://s18.postimage.org/sknl8mhix/fft.jpg

我也试过

    fvtool(x_vals)

给了我:

another http://s7.postimage.org/hsodfpgp7/test.jpg

但是我想要以Hz为单位的x轴。所以基本上我想看到这个信号的频谱以Hz为单位。

谢谢!

1 个答案:

答案 0 :(得分:2)

function [f amp] = getspectrum( Mdata, Mf )

%  Mdata    data 
%  Mf       sampling rate / frequency (Hz)

NFFT = 2 ^ nextpow2(length(Mdata)); 
Y = fft(double(Mdata), NFFT) / length(Mdata);
f = (double(Mf) / 2 * linspace(0, 1, NFFT / 2))'; % Vector containing frequencies in Hz
amp = 2 * abs(Y(1:(NFFT / 2))); % Vector containing corresponding amplitudes

我希望这可能有所帮助。