我有一個相當不同的問題。所以我在一臺Linux Gentoo機器上使用了Matlab。我有一些華碩Xonar STX聲卡,我試圖用它們作爲敏感的音頻頻率分析儀,使用PlayRec非阻塞音頻IO包。在Linux上的Matlab中的24位聲音捕獲
現在我知道Matlab會說如果您嘗試使用audiorecorder函數並在linux中指定24位,它會告訴您24位只在Windows中受支持。然而,ALSA文獻並不意味着這是操作系統或ALSA本身的限制,事實上Alsa似乎允許您指定24位PCM設備。 PlayRec使用PortAudio,然後在Linux系統上使用Alsa。
現在,這一切都很好,而且Playrec似乎沒有指定位深度的方法,只是採樣率。我已經運行了很多測試,並且知道我的聲卡的傳輸函數是什麼(浮點返回值與輸入電壓轉換比率),我知道我的峯值電壓是3V,我的噪聲是100uV左右。這給我20 * log10(3/100e-6)= 91dB。這更接近我期望從16位而不是從24看到的。
我真正的問題是這樣的嗎?是否有某種方法來驗證我實際上獲取了24位的捕獲信號?
如果我不是,ALSA或Matlab有一些固有的侷限性,它會限制我從聲音捕獲設備只有16位數據,即使使用第三方程序來收集數據。
但是,僅僅因爲你知道FP編號中有多少位並不能真正幫助你呢?除非你有辦法在A/D上操縱一個LSB。然後你可以看到這是如何影響浮點值相對於滿量程和確定精度的位。只要它是一個黑盒子做A/d(整數值) - >單精度浮點不知道的傳遞函數,有沒有辦法來確定哪些位你是從聲卡A/d得到解決。 – dynamphorous 2014-03-31 18:50:41
@dynamphorous你是對的。我上面更新了我的答案。 – 2014-04-01 12:09:37
我會告訴你這是一種可能的方法。但是我從來沒有見過一個聲卡,它的噪底基本上不超過量化器的LSB。所以我想我可以在我的白色光譜中尋找儘可能最小的一組步驟,並嘗試假設這是我的最小量化步驟。但它對我仍然感覺很糟糕。我會將其標記爲答案,因爲我可以告訴你的確在其中考慮了相當多的想法,並且如果Johnson噪聲低於量化器的LSB,這是一個合理的答案! – dynamphorous 2014-04-01 16:26:53