2014-11-01 40 views
2

我有兩個麥克風連接到Y-適配器電纜,然後連接到筆記本電腦上的麥克風端口。麥克風相距一定距離,我的目標是找到兩個信號之間的時間延遲。但是,我認爲我沒有正確地讀取聲音。我的理解是,我應該能夠獲得代表從每個麥克風錄製的聲音的兩個單獨的矢量。當我比較情節,雖然它看起來很奇怪。一幅情節的幅度遠不及刻度,我無法觀察延遲。有人能告訴我我做錯了什麼嗎? 這裏是我的代碼:從2個麥克風錄音(同時)到MATLAB

rec1=audiorecorder(44100,16,1,1); 
rec2=audiorecorder(44100,16,1,2); 
record(rec1,5); 
record(rec2,5); 
y1=getaudiodata(rec1); 
y2=getaudiodata(rec2); 
plot(y1) 
figure; plot(y2) 
+1

如果您的兩個麥克風連接到筆記本電腦上的**相同**麥克風端口(感謝Y-適配器),您將只能獲取1個信號,這將構成信號由兩個麥克風錄製。在這種情況下,不需要使用兩個'audiorecorder'對象。要麼找到一種方法,將2個麥克風連接到計算機的** 2個獨立輸入**中,否則必須使用信號處理來分離單個輸入信號的2個分量,然後計算時差。 – Hoki 2014-11-01 20:17:20

+0

如果我將耳機插孔連接到耳機插孔,它可以工作嗎?我應該嘗試嗎? – 2014-11-01 20:29:14

+2

我想,如果您的計算機的輸入端口是立體聲(並且您的聲卡不會將它混合爲單聲道),那麼您可以通過執行將每個麥克風放在單獨的通道上(左側或右側)接線是否正確(取決於連接器以及麥克風是單聲道還是立體聲)。 'audiorecorder'似乎通過''nChannels''選項處理雙聲道立體聲輸入。 – horchler 2014-11-01 20:29:57

回答

0

這是假設你的「麥克風」輸入是立體聲的,否則,你的假設是錯誤的。

myhardware=audiodevinfo; 
devid=myhardware.input(1).ID 
stereo = 2 

%Check myhardware.input(1).Name for correct input change (1) until you find correct mic 

rec1=audiorecorder(44100,16,stereo,devid); 
recordblocking(rec1,5); 
y1=getaudiodata(rec1); 
plot(y1) 

left=y1(:,2); 
right=y1(:,1);