2009-11-03 44 views
2

我該如何去實現c#中的帶通濾波器?我在Silverlight中使用自定義的MediaStreamSource,並使用添加合成來產生聲音。我的音頻流是INT16短褲的連續流:從short.MinValue到short.MaxValue如何在c#/ Silverlight中實現帶通濾波器

//over-simplified example: 
short sample = oscillator.GetNextSample(); 
memoryStream.WriteByte((byte)(sample & 0xFF)); 
memoryStream.WriteByte((byte)(sample >> 8)); 

...,其中「樣品」是一個正弦計算的函數(或波形的一些其它複雜組合) 。

我不知道從哪裏開始帶通濾波器。我將如何去實施它?

回答

1

啊,這就是我在尋找:

Low pass filter software?

我還沒試過,但那是我希望找到的原始計算示例。看起來我需要修改該代碼以使用Int16而不是雙精度,而且它看起來像我之前有很多骯髒的工作來定義我需要的特定常量/係數,但它應該得到我從正確的方向開始。

0

請參閱this question的答案,特別是您可能會發現Jacob's answer有用。

+0

我不確定這些響應將如何轉換爲我的Silverlight應用程序,因爲它們似乎針對的是託管DirectX或非託管庫 - 兩者都不適用於我的上下文。我希望找到更多的「原始」計算示例。這些迴應可能會有幫助 - 我會看看。 – kindohm 2009-11-03 17:12:33

0

puhh這是數學,isn't它;-) 所以我想它System.Math 和閱讀自由book

+0

任 - 你可以嘗試把這個文件放在一個「更好」的免費上傳網站,如http://drop.io? upload.to鏈接在等待時間讓我嘮叨,文件從不下載。 – kindohm 2009-11-03 17:05:34

+0

對不起,沒有上傳,從這個網站 http://freebooksource.com/blogroll/engineering-technology/signal-analysis-wavelets-filter-banks-time-frequency-transforms-and-applications/ – 2009-11-04 08:11:14