В данном проекте реализован простой генератор нескольких звуковых сигналов с визуализацией их спектра. Список сигналов включает в себя:
- Белый шум;
- Розовый шум;
- Коричневый/красный шум;
- Синий шум;
- Фиолетовый шум;
- Синусоида с изменяющейся частотой;
- Прямоугольная волна (нечетные гармоники убывающие на 6db/oct);
- Пилообразная волна (все гармоники убывающие на 6db/oct);
- Треугольная волна (нечетные гармоники убывающие на 12db/oct);
- Сигнал только с четными гармониками;
- Сложная частотная модуляция;
- Амплитудная модуляция;
Визуализатор спектра поддерживает разрешение до 32768 точек, а также усреднение спектра по нескольким выборкам. Визуализатор оформлен в виде отдельного контрола и может быть использован в других проектах. Для визуализации спектра применяется быстрое преобразование Фурье (FFT). Данная процедура оптимизирована для обработки реального сигнала так что за раз обрабатывается сразу 2 реальных сигнала которые затем преобразуются в 2 спектра декомпозицией на основе сигналов с четной и нечетной симметрией. Дальнейший синтез единого спектра из двух основан на сдвиге во временной области и соответствующих поворотах в частотной. Комментарии в коде подробно описывают процесс.
Спасибо за внимание!
The trick.