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

如何在c#/Silverlight中实现带通滤波器,c#,silverlight,audio,synthesis,C#,Silverlight,Audio,Synthesis,我如何在c#中实现带通滤波器?我在Silverlight中使用定制的MediaStreamSource,并使用加法合成来产生声音。我的音频流是int16短片的连续流: //over-simplified example: short sample = oscillator.GetNextSample(); memoryStream.WriteByte((byte)(sample & 0xFF)); memoryStream.WriteByte((byte)(sample >>

我如何在c#中实现带通滤波器?我在Silverlight中使用定制的MediaStreamSource,并使用加法合成来产生声音。我的音频流是int16短片的连续流:

//over-simplified example:
short sample = oscillator.GetNextSample();
memoryStream.WriteByte((byte)(sample & 0xFF));
memoryStream.WriteByte((byte)(sample >> 8));
…其中“sample”是从short.MinValue到short.MaxValue的正弦计算(或其他复杂波形组合)的函数


我不知道从哪里开始使用带通滤波器。我将如何着手实施它

查看的答案,特别是你可能会发现有用的答案。

这是数学,不是吗;-) 所以我猜是它的系统,数学
阅读这个免费的

啊,这就是我想要的:


我还没有试过,但这是我希望找到的原始计算示例。看起来我需要修改代码来使用Int16而不是double,而且在定义我需要的特定常数/系数方面,我还有很多麻烦的工作要做,但这应该让我朝着正确的方向开始

你能试着把那个文件放在一个“更好”的免费上传网站上吗?上传的.to链接让我等待时间很长,文件从未下载。很抱歉,我没有上传,从这个网站我不确定这些响应会转化到我的Silverlight应用程序中,因为它们似乎是针对托管DirectX或非托管库的,这两个库在我的上下文中都不可用。我希望能找到更多的“原始”计算示例。不过,这些回答可能会有所帮助——我来看看。