声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1570|回复: 9

[综合讨论] 如何将WAV文件中读出的信号叠加上正弦信号

[复制链接]
发表于 2007-4-27 15:37 | 显示全部楼层 |阅读模式

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

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

x
[y,fs,bits]=wavread('e:\test.wav');
t=0:0.01:10;
x=sin(2*pi*50*t);
Y=y+x;
显示维度不同,不能叠加,怎样解决,谢了!
回复
分享到:

使用道具 举报

发表于 2007-4-27 16:08 | 显示全部楼层
原帖由 公冶玄 于 2007-4-27 15:37 发表
[y,fs,bits]=wavread('e:\test.wav');
t=0:0.01:10;
x=sin(2*pi*50*t);
Y=y+x;
显示维度不同,不能叠加,怎样解决,谢了!


生成 t 时,按照 y 的维数进行
 楼主| 发表于 2007-4-27 16:21 | 显示全部楼层
原帖由 eight 于 2007-4-27 16:08 发表

生成 t 时,按照 y 的维数进行

麻烦再问一下,比如现在y的维数是100,那么 t 应该怎样生成?
发表于 2007-4-27 16:23 | 显示全部楼层
t=0.01:0.01:1
 楼主| 发表于 2007-4-27 16:35 | 显示全部楼层
原帖由 eight 于 2007-4-27 16:23 发表
t=0.01:0.01:1

好像还是不可以。
y的维度是length(y)吗
发表于 2007-4-27 17:19 | 显示全部楼层

回复 #5 公冶玄 的帖子

应该是
或者用size(y)
发表于 2007-4-27 17:26 | 显示全部楼层
原帖由 公冶玄 于 2007-4-27 16:35 发表
好像还是不可以。
y的维度是length(y)吗


建议先阅读matlab基础书,了解matlab基本知识
 楼主| 发表于 2007-4-27 19:00 | 显示全部楼层
[y,fs,bits]=wavread('e:\test.wav')
得到的采样率是16000,WAV长度是10秒。
N=length(y)得到的是160000
那么,是不是写成t=1/160000:1/160000:1或是t=1/16000:1/16000:10?
这两个我都试过, x=sin(2*pi*50*t);Y=x+y 还是加不到一起。报错:Matrix dimensions must agree.
因为急用,麻烦各位了!不好意思
发表于 2007-4-27 19:10 | 显示全部楼层
原帖由 公冶玄 于 2007-4-27 19:00 发表
[y,fs,bits]=wavread('e:\test.wav')
得到的采样率是16000,WAV长度是10秒。
N=length(y)得到的是160000
那么,是不是写成t=1/160000:1/160000:1或是t=1/16000:1/16000:10?
这两个我都试过, x=sin(2*pi*50* ...


后者

对 t 或者 y 转置
发表于 2007-11-22 21:47 | 显示全部楼层

回复 #8 公冶玄 的帖子

是否可以考虑下linspace指令?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-14 03:29 , Processed in 0.065904 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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