2013-10-04 41 views
0

我的電腦上有左聲道和右聲道。我希望得到一些建議或一個地方開始,以改變兩個揚聲器之間的音頻平衡。我想編寫將通過我的PC揚聲器播放聲音並輸出的Matlab代碼,它將能夠實現:通過內部揚聲器實現音頻平衡

1)聲道中沒有聲音,第二聲道中有完整聲音 2)音量降低1頻道,第二頻道音量較高 3)兩個頻道都沒有聲音。

謝謝,任何幫助將是甜蜜的。

回答

2

聽起來像是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]