Как мне пойти на внедрение полосового фильтра в С#? Я использую пользовательский MediaStreamSource в Silverlight и использую синтез добавок для создания звука. Мой аудиопоток представляет собой непрерывный поток int16 shorts:
//over-simplified example:
short sample = oscillator.GetNextSample();
memoryStream.WriteByte((byte)(sample & 0xFF));
memoryStream.WriteByte((byte)(sample >> 8));
... где "sample" - это функция вычисления синуса (или какой-либо другой сложной комбинации форм сигнала) от short.MinValue до short.MaxValue.
Я не знаю, с чего начать с полосового фильтра. Как я могу его реализовать?
А, вот что я ищу:
Программное обеспечение фильтра низких частот?
Я еще не пробовал, но это пример исходного расчета, который я надеялся найти. Похоже, мне нужно будет пересмотреть этот код для работы с Int16 вместо двухлокальных, и похоже, что впереди меня много грязной работы для определения конкретных констант/коэффициентов, которые мне понадобятся, но это должно получиться я начал в правильном направлении.
puhh это математика, не так ли;-) Поэтому я думаю, что его System.Math и прочитайте эту бесплатную книгу
Посмотрите ответы на этот вопрос, в частности, вы можете найти ответ Джейкоба полезным.