xxf 发表于 2006-11-25 09:36

求助:分段读信号的问题

读一个wav文件=wavread('E:\心音信号\正常信号\正常信号',20000);
读后对normal进行多分辨率分析,得到重构信号a2,现在要对a2分段读取
for j=1:125
      signal=a2(160*(j-1)+1:160*(j-1)+160);
end
这样写不行吗?为什么?

xxf 发表于 2006-11-25 10:15

没有人告诉我吗?:@(

jimin 发表于 2006-11-25 12:18

你把问题说清楚些把,把前面的程序给出,另外要把a2怎么分,分成几段

xxf 发表于 2006-11-25 19:57

=wavread('E:\心音信号\正常信号\正常信号',20000);
y=decimate(normal,4);
=wavedec(y,4,'db3');
a2=wrcoef('a',c,l,'db3',2);
for j=1:30
      signal=a2(160*(j-1)+1,160*(j-1)+160);
    end
对a2分段,每段160个点

xxf 发表于 2006-11-25 20:04

错误是 Index exceeds matrix dimensions.

mulan 发表于 2006-11-27 09:06

你的a2是一个行向量或列向量吧,怎么会在signal=a2(160*(j-1)+1,160*(j-1)+160);语句中有两个索引值呢

happy 发表于 2006-11-27 10:35

for j=1:125
      signal=a2(160*(j-1)+1:160*(j-1)+160);
end

这个是可以的,但是在你程序中却把冒号写成了逗号,显然错误

for j=1:30
      signal=a2(160*(j-1)+1,160*(j-1)+160);
end

这样的问题建议楼主自己检查程序吧,仔细一点就不应该问这样的问题了

xxf 发表于 2006-11-27 16:06

问题解决了。谢谢!
页: [1]
查看完整版本: 求助:分段读信号的问题