如何在c#/ Silverlight中实现带通滤波器

问题描述:

我该如何去实现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)); 

...,其中“样品”是一个正弦计算的函数(或波形的一些其它复杂组合) 。

我不知道从哪里开始带通滤波器。我将如何去实施它?

啊,这就是我在寻找:

Low pass filter software?

我还没试过,但那是我希望找到的原始计算示例。看起来我需要修改该代码以使用Int16而不是双精度,而且它看起来像我之前有很多肮脏的工作来定义我需要的特定常量/系数,但它应该得到我从正确的方向开始。

请参阅this question的答案,特别是您可能会发现Jacob's answer有用。

+0

我不确定这些响应将如何转换为我的Silverlight应用程序,因为它们似乎针对的是托管DirectX或非托管库 - 两者都不适用于我的上下文。我希望找到更多的“原始”计算示例。这些回应可能会有帮助 - 我会看看。 – kindohm 2009-11-03 17:12:33

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