我试图以相同的频率对两个信号求和,一个是从麦克风录制的,另一个是Matlab的默认声音文件,我打算做的是让它们同时发声,而我可以录制,并且播放wav文件我似乎无法以相同的频率添加它们,对于初学者我试图将两个信号放在相同的频率和相同的数字或行
然而,我当前的问题我有它,我不能在下采样功能中使用小数,所以我不能真正把它们放在相同的频率使用它
到目前为止,我已经有 Y 和 grabacion 的转置矩阵,但是,我真的不明白如何将它们放在相同的频率和行数,所以我可以将它们添加起来,然后将它们作为单个声音播放
load handel.mat
filename = 'handel.wav';
audiowrite(filename,y,Fs);
clear y Fs
[Y,fs] = audioread('handel.wav');
sound(Y);
%%
X = X = audiorecorder(8000,8,1);
disp('Inicio de grabacion (5s)')
recordblocking(X, 5);
disp('Fin de Grabacion.');
play(X);
grabacion = getaudiodata(X);
plot(grabacion,'r-');
%%
Columna_Izquierda = Y(:,1);
C_I_T = Columna_Izquierda.';
Columna_Derecha = grabacion(:,1);
C_D_T = Columna_Derecha.';
1 回答
我觉得你对频率有些困惑 . Fs是“采样频率”,即每秒记录多少个声音样本 . 它与底层信号的频率无关(忽略混叠) .
如果你只是想把两个声音加在一起;你应该做的第一件事是确保它们具有相同的长度 . handle.mat文件的长度为73113/8192 = 8.92秒 .
您正在录制5秒钟,因此您应将预先录制的样本截断为5秒 .
除非您的麦克风无法处理,否则请更改录制速率以匹配此频率 . 如果你被限制在8000Hz(我怀疑),你总是可以使用interp1 .
要么
您可能会使用样条曲线获得一些锯齿 . 我有一段时间没有看过音频过滤 .
然后,尺寸应匹配,以便您可以添加它们 .
一些修改后的代码