Обновить
0
0

Пользователь

Отправить сообщение
Давайте рассмотрим такой случай. Допустим нужно воспроизвести сигнал с частотой f такой что количество гармоник ниже частоты Найквеста равно 100. Если хранить bandlimited таблицы на каждую октаву то получиться что в двух соседних таблицах будет 64 и 128 гармоник. Если выбрать первую таблицу то на выходе будет не хватать 36 верхних гармоник, если вторую, то верхние 28 будут вносить вклад в aliasing. Поэтому в идеальном случае нужна таблица на каждое количество гармоник попадающих в выходной сигнал. Если минимальная частота ноты 100 Гц, то при частоте дискретизации 44100 Гц, количество таблиц для квадратной волны будет 22050 / 100 = 220, что довольно много. И при уменьшении минимальной частоты количество будет расти как 1 / freq.
Понятно, спасибо ) Интересно было бы измерить уровень искажений в зависимости от того используется ли одна таблица или отдельная таблица для каждой ноты, применяется или не применяется интерполяция. Понятно что из-за ограничений на ресурсы AVR сложно воспроизвести сигнал совсем без искажений.
При таблично-волновом синтезе есть проблема при использовании единственной таблицы так как при ускоренном проигрывании семплов из таблицы верхние гармоники могут подниматься в зону частот выше частоты Найквиста, поэтому возникает алиазинг. Используете ли вы одну волновую таблицу для всех частот или как-то решаете эту проблему? Используется ли интерполяция между значений соседних семплов?

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность