2017-10-08 76 views
0

現在我已經相當一段時間了。對於iOS應用程序,我使用設備的麥克風錄製一些音頻。我後來嘗試評估錄音。我使用SciPy在Python中完成了一切,它的工作非常好。我使用SciPy的butterworth過濾器實現。將帶通濾波器應用於快速漂浮陣列

但是,當我試圖將我的代碼翻譯成Swift時,我找不到一個將帶通濾波器應用到我的浮點數組的好方法。

任何人都可以引導我進入正確的方向,還是已經完成了代碼示例?我需要一個頻率範圍從1100到2100赫茲的帶通濾波器。

+1

也許這將幫助https://github.com/bartolsthoorn/NVDSP – algrid

+0

感謝。圖書館工作非常好。雖然SciPy的butterworth過濾器給出了尖銳的邊緣,但它並沒有給我帶來什麼。但對我的用例足夠好。 – NickysChannel13

+0

你可以將你的更新推薦給答案並接受它嗎?其他人也提出了同樣的問題,但我無法回答這個問題。 –

回答

1

對於這裏的任何未來的訪客是解決方案:

https://github.com/bartolsthoorn/NVDSP
多虧了答案,這個庫解決了這個問題。
我不得不爲Swift創建一個橋接頭,但那不是什麼大問題。最終的代碼看起來像這樣。

let bandpass: NVBandpassFilter = NVBandpassFilter(samplingRate: fs) 
bandpass.centerFrequency = 1600.0 
bandpass.q = 1.6 
bandpass.filterData(&DATA, numFrames: nsamples, numChannels: 1) 

Q值可以計算這樣的:

Q = center_frequency/(top_frequency - bottom_frequency)