2012-10-16 29 views
0

我有一個用於收聽者位置的3d矢量和一個用於聲源的3d矢量。我也有一個三維向量的傾聽者的方向。我試圖找到NED(北,東,下)來源相對於聽衆的位置,以便我可以在右揚聲器中播放聲音...我已經做了如此的研究,但似乎無法找到必要的方程式... 任何想法?三維空間中聲源位置的計算

謝謝!

回答

0

我不認爲你會找到你正在尋找什麼。 3D場中聲源的空間位置是一個非常複雜的主題,取決於很多因素(聽衆位置,揚聲器位置,來源材料)。最接近你描述的可能是Ambisonics,但是這需要聽音樂設置也是高保真度立體聲音響,這不是很常見。如果您使用的是Dolby Digital之類的東西,我不認爲他們會公佈這些公式,您需要授權這些算法,或者將源材料與擁有許可和內置算法的設備混合使用。但是,像杜比這樣的系統是並非真正爲3D領域的精確聲源定位而設計,它們實際上只是一種空間效果,可讓聽者感受3D聲場。

0

Ambisonics B-Format編解碼器完全符合您所描述的內容。然而,儘管這個編解碼器的規格是開放的,但由於它不受歡迎,所以發現它很具挑戰性。好消息是,我寫了一個名爲「Ambisonix」的BSD開放源代碼項目,詳細介紹了實現高達三階高保真度立體聲響複製編碼和解碼所需的所有方程組。我還添加了一些功能,如距離編碼和多普勒效應,這些功能不屬於原始規格。

瞧瞧吧:http://sourceforge.net/projects/ambisonix

0

你需要從聲音矢量減去聽衆載體,那麼你可以通過監聽定向矢量旋轉。現在,您可以簡單地檢查新向量是正向還是負向。例如vector [0,10,-2]可以被讀爲[0,+, - ],它表示[central,up,back]。使用N-S W-E U-D方向只是在減去後不旋轉矢量。