声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1327|回复: 7

[编程技巧] 求助:分段读信号的问题

[复制链接]
发表于 2006-11-25 09:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

使用道具 举报

 楼主| 发表于 2006-11-25 10:15 | 显示全部楼层
没有人告诉我吗?:@(
发表于 2006-11-25 12:18 | 显示全部楼层
你把问题说清楚些把,把前面的程序给出,另外要把a2怎么分,分成几段
 楼主| 发表于 2006-11-25 19:57 | 显示全部楼层
[normal,Fs,bits]=wavread('E:\心音信号\正常信号\正常信号',20000);
y=decimate(normal,4);
[c,l]=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个点
 楼主| 发表于 2006-11-25 20:04 | 显示全部楼层
错误是 Index exceeds matrix dimensions.
发表于 2006-11-27 09:06 | 显示全部楼层
你的a2是一个行向量或列向量吧,怎么会在signal=a2(160*(j-1)+1,160*(j-1)+160);语句中有两个索引值呢
发表于 2006-11-27 10:35 | 显示全部楼层
  1. for j=1:125
  2.       signal=a2(160*(j-1)+1:160*(j-1)+160);
  3. end
复制代码


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

  1. for j=1:30
  2.       signal=a2(160*(j-1)+1,160*(j-1)+160);
  3. end
复制代码


这样的问题建议楼主自己检查程序吧,仔细一点就不应该问这样的问题了
 楼主| 发表于 2006-11-27 16:06 | 显示全部楼层
问题解决了。谢谢!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-19 18:39 , Processed in 0.076543 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表