Канал вокодера с использованием БПФ - что делать с частотой постоянного тока и частотой Найквиста? - PullRequest
1 голос
/ 26 июля 2011

Я пытаюсь реализовать канальный вокодер с использованием алгоритмов FFT iOS Accelerate vDSP.У меня возникают проблемы с выяснением того, как обрабатывать компонент постоянного тока и частоту Найквиста.

Сигналы модулятора и несущей являются поплавковыми массивами длины n.На каждом из них я выполняю прямое БПФ, и мне возвращается частотный график (назовем его bin []) длиной n / 2.

Согласно спецификациям vDSP, bin [1] содержит первую частоту выше 0 Гц, bin [2] - вторую и т. Д.… Bin [0] содержит компонент постоянного тока в реальной части и частоту Найквиста.(который обычно будет в bin [n / 2]) в мнимой части.vDSP, по сути, упаковывает частотный график в как можно меньшее пространство (мнимая часть для bin [0] и bin [n / 2] всегда должна быть равна нулю перед упаковкой).

Я разделил частотный график для обоихнесущая и модулятор на k полос.Моя цель - умножить каждую частоту в carrier.band [x] на общую величину частот в modulator.band [x].По сути, увеличивая интенсивность тех частот в несущей, которые также присутствуют в модуляторе.

Таким образом, если n = 8 и k = 2, вторая полоса для модулятора будет содержать bin [2] и bin[3].Достаточно просто, чтобы найти общую величину, просто сложите величины каждого бина (например, mag [2] = sqrt (bin [2] .real * bin [2] * real + bin [2] .imag * bin [2])* imag)).

Это прекрасно работает для всех полос, кроме первой, потому что первая полоса содержит странный мусорный ящик [0] с компонентом DC и частотой Найквиста.

Как мне обработать этот первый бин при расчете общей величины полосы?Я просто предполагаю, что величина для первого бина является ПРОСТО компонентом DC?Откажусь ли я от частоты Найквиста?

Спасибо всем, кто может дать некоторые рекомендации!Я ценю это.

1 Ответ

0 голосов
/ 26 июля 2011

Я предлагаю вам игнорировать 0 Гц и Найквист, поскольку они не содержат полезной информации в случае звукового сигнала.

...