我的电脑上有一个左声道和一个右声道。我希望得到一些建议或一个开始的地方,以改变两个扬声器之间的音频平衡。我想编写 Matlab 代码,它将通过我的 PC 扬声器播放声音并输出,这将能够完成:
1) 1 个通道没有声音,第 2 个通道有声音 2) 1 个通道的音量较低,第 2 个通道的音量较高 3) 任何一个通道都没有声音。
谢谢,任何帮助都会很甜蜜。
听起来像是一份工作bsxfun
:
% Data
left_channel = rand(1e5,1); % for example. Column vector
right_channel = rand(1e5,1); % for example. Another column vector
signal = [left_channel right_channel]; % stereo signal. Two columns
fm = 48e3; % sample frequency
balance = [1 1]; % for example. Row vector
% Construct balanced signal
balanced_signal = bsxfun(@times,signal,balance);
% Play it
sound(balanced_signal,fm) % or use the scaled version, "soundsc"
您可以使用矢量来控制平衡balance
。对于您想要的情况,将其设置为 1) [0 1]
、 2) [.5 1]
、 3) [0 0]
。