MATLAB-混合不同采样频率的wav文件
基本上我有一个学校项目,我必须从给定的wave文件创建一个新的wave文件。这个新的波形必须在Matlab中创建,唯一的区别是正弦波将与给定的wav文件混合(而不是连接到末端..)。正弦波应为500hz 到目前为止,我的代码是:MATLAB-混合不同采样频率的wav文件,matlab,wav,Matlab,Wav,基本上我有一个学校项目,我必须从给定的wave文件创建一个新的wave文件。这个新的波形必须在Matlab中创建,唯一的区别是正弦波将与给定的wav文件混合(而不是连接到末端..)。正弦波应为500hz 到目前为止,我的代码是: clear; filename = 'C:\Documents and Settings\cmh0007\My Documents\rofl.wav'; [y, Fs, nbits, readinfo] = wavread(filename); duration =
clear;
filename = 'C:\Documents and Settings\cmh0007\My Documents\rofl.wav';
[y, Fs, nbits, readinfo] = wavread(filename);
duration = numel(y) / Fs;
sinefs = 0:0.002:duration;
sinwave = 0.5*sin(2*pi*sinefs);
disp(size(y));
disp(size(sinwave));
newsignal = y + sinwave;
subplot(2,2,1), plot(y), title('Entire waveform');
subplot(2,2,3), plot(sinwave), title('sine waveform');
subplot(2,2,2), plot(newsignal), title('added waveform');
但是,此代码在创建newsignal变量时失败。问题在于,由于两个波之间的采样率不同,两个矩阵的大小不同
大小调用的输出如下所示:
797696 2
1 18089
由于这些文件的大小相差约44倍,我想我可以简单地对给定波形文件的每个样本使用来自正弦波的相同样本44次。然而,因为差别不完全是44,我甚至不知道这是否是一种选择
有人对如何混合这两个文件有什么建议吗 尝试将0.002更改为1/Fs。这样,您将获得相同的采样率。您还应该只为y选择一个立体声通道,并进行适当的转置
您还可以考虑将名称<强> SoeFs变为<强> SnET或者表示时间参数而不是采样频率的东西。< /P>它解决了您的问题吗?如果是这样,请标记为已回答,以便其他人可以享受此帖子。非常感谢。。不知道我怎么会忽略了这么简单的事情>