公冶玄 发表于 2007-4-27 15:37

如何将WAV文件中读出的信号叠加上正弦信号

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

eight 发表于 2007-4-27 16:08

原帖由 公冶玄 于 2007-4-27 15:37 发表
=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 应该怎样生成?

eight 发表于 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)吗

mulan 发表于 2007-4-27 17:19

回复 #5 公冶玄 的帖子

应该是
或者用size(y)

eight 发表于 2007-4-27 17:26

原帖由 公冶玄 于 2007-4-27 16:35 发表
好像还是不可以。
y的维度是length(y)吗

建议先阅读matlab基础书,了解matlab基本知识

公冶玄 发表于 2007-4-27 19:00

=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.
因为急用,麻烦各位了!不好意思

eight 发表于 2007-4-27 19:10

原帖由 公冶玄 于 2007-4-27 19:00 发表
=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指令?
页: [1]
查看完整版本: 如何将WAV文件中读出的信号叠加上正弦信号