matlab - 具有去趋势和移位的 MATLAB FFT 波形图只有一个尖峰
问题描述
我有一些初学者的基本 Physionet 数据正在尝试应用 FFT,但我对我得到的结果有点困惑,并且认为它们不正确。我主要使用此示例 和fftshift 文档页面中的代码并进行了一些调整,但我不太确定我的代码或结果有什么问题。我附上了我的代码和我得到的结果的快照。
load aami3am.mat
Fs = 720; % Sampling frequency
T = 1/Fs; % Sample time
L = 60000; % Length of signal
t = (0:L-1)*T; % Time vector
plot(t(1:43081),val(1:43081))
title('aami4b_h Signal')
xlabel('Seconds')
ylabel('ECG Amplitude')
NFFT = 2^nextpow2(L);
val = detrend(val);
Y = fft(val,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);
plot(f,2*abs(Y(1:NFFT/2+1)))
title('FFT')
yY = fftshift(Y);
fshift = (-L/2:L/2-1)*(Fs/L);
powershift = abs(yY).^2/L;
plot(fshift(1:L),powershift(1:L))
title('FFT Shifted')
我使用 43081 是因为 .mat 文件中有 43081 个值超过 60 秒的数据。
解决方案
推荐阅读
- python - 链接 Python3 的 Openssl-FIPS 库
- angular - Angular 项目由于安装任何 npm 包而崩溃。如果我们在测试项目中安装相同的包它可以工作但在实际项目中没有
- spring-boot - 从 log4j2.xml 访问环境变量
- python - python中的服务器套接字不打印新行
- database - 需要 Zabbix 导入/导出的帮助
- python - 如何获取表中的行数?
- android - Android Canvas - 限制绘图区域
- android - 如何保持按钮禁用任何editText为空?
- php - 用户登录后如何更改导航栏?
- azure - 将 Azure 应用服务限制为 IP 白名单而不返回 403