首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘制EKG信号傅里叶变换的相位和幅度

绘制EKG信号傅里叶变换的相位和幅度
EN

Stack Overflow用户
提问于 2013-11-19 01:24:19
回答 1查看 894关注 0票数 1

因此,我得到了一个存在的ekg信号,我必须得到傅里叶变换,并绘制相位(角度)和幅度。我的代码如下所示:

代码语言:javascript
复制
x1 = 3.5*ecg(2700);
y1 = sgolayfilt(kron(ones(1,13),x1),0,21);
n = (1:30000)';
del = round(2700*rand(1));
mhb = y1(n+del);
ts = 0.00025;
t = [ts: ts: 7.5];
%plot(t,mhb)
%xlabel('Time(sec)')
%ylabel('Amp'); grid on 

Xf = fft(mhb(t));

w = [-(n/2):1:(n/2)-1]*(1/(ts*n));
w = [-(n/2):1:(n/2)-1]*(1/(ts*n));

subplot(211), plot(w, fftshift(abs(Xf))), grid 
subplot(212), plot(w, fftshift(angle(Xf))), grid

它告诉我这个错误:"Subscript索引必须是真正的正整数或逻辑。“我很确定这是正确的,除非我做了一些完全不正确的事情。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-19 01:40:30

注意,t是带有值的实数组(让我们看看前几个):

代码语言:javascript
复制
>> t(1:10)

ans =

    0.0003    0.0005    0.0008    0.0010    0.0013 ... and so on

所以fft的参数是mhb(t),但是您正在调用mhb的值(也是一个数组),值t作为索引。

这将给出错误:

代码语言:javascript
复制
>> mhb(t)
Subscript indices must either be real positive integers or logicals.

所以你需要做的事情是:

代码语言:javascript
复制
mhb(1:length(t));

事情清楚了吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20061371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档