Полифазная реализация интерполяционных фильтров в цифровой обработке сигналов
В этой статье рассматривается эффективная реализация интерполяционных фильтров, называемых многофазной реализацией.
В цифровой обработке сигналов (DSP) мы обычно используем концепцию multirate, чтобы сделать систему, такую как A / D или D / A преобразователь, более эффективной. В этой статье рассматривается эффективная реализация одного из основных строительных блоков многомерных систем, интерполяционного фильтра. Метод, который мы рассмотрим здесь, называется многофазной реализацией.
Мы можем получить многофазную реализацию систем прореживания и интерполяции с использованием частотно-доменного представления сигналов и систем. Это выходит за рамки этой статьи, но вы можете узнать больше в разделе 11.5 книги Digital Signal Processing от John Proakis.
Здесь мы попытаемся прояснить работу полифазного интерполяционного фильтра, рассматривая конкретный пример во временной области.
интерполирование
Как показано на рисунке 1, простая реализация интерполяции использует upsampler в размере $$ L $$ и затем применяет фильтр нижних частот с нормированной частотой среза $$ \ frac { pi} {L} $$, Вы можете прочитать об интерполяционном фильтре в моей статье Multirate DSP и его приложении в D / A Conversion.

Рисунок 1. Upsampling, за которым следует фильтр нижних частот с нормированной частотой среза интерполяции Lperforms
Upsampler помещает $$ L-1 $$ нулевые значения между смежными выборками ввода, $$ x (n) $$ и увеличивает частоту дискретизации в $$ L $$. Следовательно, фильтр на рисунке 1 помещен в ту часть системы, которая имеет более высокую частоту дискретизации.
Конечный фильтр импульсной характеристики (FIR) длины $$ N $$, который помещается перед upsampler, должен выполнять умножение $$ N $$ и $$ N-1 $$ добавок для каждого образца $$ x (n) $ $. Тем не менее, фильтр на рисунке 1, который помещается после upsampler, должен будет выполнять $$ LN $$ умножения и $$ L (N-1) $$ добавок для каждого образца $$ x (n) $$.
Есть ли способ смягчить вычислительную сложность этой системы? Text-align: center; "> $$ y (n) = \ sum_ {k = 0} ^ {5} b_ {k} x (nk) $$
Уравнение 1
Предположим, что входной сигнал, $$ x (n) $$, показан на рисунке 2.

Рисунок 2. Входная последовательность $$ x (n) $$
После повышения частоты дискретизации в два раза мы имеем $$ x_1 (m) $$, показанный на рисунке 3 ниже:

Рисунок 3. Воспроизводимая последовательность $$ x_1 (m) $$
Предположим, что шестигранный КИХ-фильтр реализован с помощью структуры прямой формы ниже:

Рисунок 4. Прямая реализация FIR-фильтра с шестью кранами
В этих предположениях давайте рассмотрим прямую реализацию фильтра интерполяции на рисунке 1. При индексе времени $$ m = 5 $$ фильтр FIR будет таким, как показано на рисунке 5.

Рисунок 5. Фильтр FIR при $$ m = 5 $$
Как вы можете видеть, при $$ m = 5 $$ половина умножений фильтра FIR имеет нулевой вход. Ветви, соответствующие этим умножениям, показаны пунктирными линиями. Вы можете проверить, что для нечетных эти умножения будут всегда равны нулю, а $$ y (m) $$ будет определяться только коэффициентами $$ b_1 $$, $$ b_3 $$ и $$ b_5 $$. В следующий раз индекс, т. Е. $$ m = 6 $$, мы получим рисунок 6 ниже:

Рисунок 6. Фильтр КИХ при m = 6
Опять же те ветви, которые содержат нулевой вход, показаны пунктирными линиями. На рисунке 6 показано, что, опять же, половина умножений имеет нулевой вход. Рассматривая рисунки 5 и 6, мы видим, что для нечетного временного индекса половина коэффициентов, а именно $$ b_1 $$, $$ b_3 $$ и $$ b_5 $$, определяют выходное значение и сумму продукты, содержащие другие коэффициенты, равны нулю. Для четного индекса времени коэффициенты, т.е. $$ b_0 $$, $$ b_2 $$ и $$ b_4 $$, важны, а сумма продуктов для остальных коэффициентов равна нулю.
Давайте использовать два разных фильтра после upsampler: один с нечетными коэффициентами, а другой с четными коэффициентами и добавим выход этих двух фильтров вместе, чтобы получить $$ y (m) $$. Результат показан на рисунке 7.

Рисунок 7. Разбиение разностного уравнения фильтра на два набора коэффициентов: нечетные коэффициенты и четные
Мы легко можем получить приведенный выше рисунок, манипулируя уравнением 1 как
$$ y (n) = \ big (b_0 x (n) + b_2 x (n-2) + b_4 x (n-4) big) + \ big (b_1 x (n-1) + b_3 x (n -3) + b_5 x (n-5) big) $$
Уравнение 2
Однако наше предыдущее обсуждение показывает, почему нас интересует эта декомпозиция: в каждый момент времени только один из этих двух фильтров может генерировать ненулевой вывод, а другой - ноль. Для дальнейшего уточнения рассмотрим нижний путь на рисунке 7. Мы знаем, что вывод этого пути отличен от нуля только для четных временных индексов. В результате нам нужно только упростить каскад upsampler и FIR2 при четных индексах времени, когда выход фильтра отличен от нуля. В следующем индексе времени мы можем просто подключить вывод пути к нулю. Это будет дополнительно объяснено в остальной части статьи.
Теперь давайте рассмотрим upsampler, а затем нижний путь на рисунке 7, который включает четные коэффициенты. На этом пути мы сначала повышаем выборку $$ x (n) $$, чтобы получить $$ x_1 (m) $$. При этой операции, как показано на рисунках 2 и 3, мы создаем разницу во времени, равную двум единицам времени между каждыми двумя последовательными образцами $$ x (n) $$. С другой стороны, фильтр FIR2 на рисунке 7 «смотрит» на свой вход кратным «двум единицам времени». Например, в то время как умножение на $$ b_0 $$ принимает текущий образец, умножения на $$ b_2 $$ и $$ b_4 $$ получают выборки с двумя единицами времени и четырьмя временными единицами, соответственно. Поэтому, когда вывод FIR2 будет отличным от нуля, мы можем просто найти результат, применив $$ x (n) $$, а не $$ x_1 (m) $$ к коэффициентам $$ b_0 $$, $$ b_2 $$ и $$ b_4 $$ при условии, что мы используем задержку одного единичного времени, то есть $$ Z ^ {- 1} $$, между этими коэффициентами. Эта эквивалентная фильтрация показана на рисунке 8.

Рисунок 8. Схема эквивалентна каскаду upsampler и FIR2 на рисунке 7
На рисунке 8 также включен переключатель после фильтра, зачем нам этот переключатель? Помните, что FIR2 на рисунке 7 имеет ненулевой вывод для четного $$ m $$. Для нечетного $$ m $$ выход этого фильтра всегда будет нулевым в нашем примере. Вот почему нам нужно заставить выходной сигнал эквивалентной схемы на рисунке 8 равняться нулю для нечетного m. Интересно, что работа этого конкретного переключателя в точности совпадает с работой повышающего счетчика в два раза. Следовательно, мы получаем окончательную эквивалентную схему на рисунке 9.

Рисунок 9. Схема эквивалентна каскаду upsampler и FIR2 на рисунке 7
В чем преимущество диаграммы 9 над каскадом upsampler и FIR2 на рисунке 7? На рисунке 7 мы оценивали FIR2 как в нечетных, так и в четных временных показателях независимо от того, что для индекса нечетного времени выход FIR2 всегда равен нулю. На рисунках 8 и 9 это свойство учитывается, и выход напрямую связан с нолем для нечетного временного индекса. Таким образом, мы избегаем ненужных вычислений. Другими словами, триггерный КИХ-фильтр на рисунке 9 помещается перед повышающим счетчиком, поэтому мы выполняем только три умножения и два добавления для каждого входного образца x (n). Однако нижний путь на рисунке 7 помещает умножения после upsampler, и нам нужно было бы выполнить шесть умножений и четыре дополнения для каждого входного образца $$ x (n) $$.
Процесс упрощения нижнего пути на рис. 7 к блок-диаграмме на рисунке 9 на самом деле является частным примером идентичности, называемой вторым знатным идентификатором. Это обозначение показано на рисунке 10.

Рисунок 10. Второй благородный идентификатор утверждает, что эти две системы эквивалентны. Изображение предоставлено цифровой обработкой сигналов
Учитывая наше предыдущее обсуждение, вы должны теперь представить себе, почему нам разрешено приводить систему, которая может быть выражена в терминах ZI, т. Е. H (ZI), до того, как множитель upsampler множителя, при условии, что для новой системы, ZI заменяется Zin передаточной функцией. На самом деле, upsampler создает разницу во времени, равную I единицам времени между каждыми двумя последовательными образцами x (n). Однако для временного индекса, при котором выход отличен от нуля, системная функция H (ZI) «смотрит» на свой вход кратным «единицам времени I». Следовательно, мы можем упростить каскад upsampler и системной функции в соответствии с тем, что мы сделали с траекторией FIR2 на рисунке 7. Чтобы прочитать о доказательстве второго благородного тождества, прочитайте раздел 11.5.2 этой книги.
Как мы можем упростить верхний путь на рисунке 7? Мы можем получить системную функцию FIR1 как
$$ H_ {fir1} (г) = B_ {1} г ^ {- 1} + B_ {3} г ^ {- 3} + B_ {5} г ^ {- 5} $$
Чтобы использовать второе знаковое имя, нам нужно выразить эту функцию только через $$ z ^ {- 2} $$. Мы можем переписать системную функцию как
$$ H_ {FIR1} (z) = \ big (b_ {1} + b_ {3} z ^ {- 2} + b_ {5} z ^ {- 4} big) z ^ {- 1} = P_ {1} (г ^ {2}) г ^ {- 1} $$
Так как $$ P_1 (z ^ 2) $$ находится в терминах $$ z ^ 2 $$, мы можем использовать знатный идентификатор для перемещения этой части передаточной функции до upsampler. В этом случае нам придется заменить $$ z ^ 2 $$ $$ z $$ в $$ P_1 (z ^ 2) $$. Окончательная система показана на рисунке 11.

Рисунок 11. Окончательная система, полученная после применения второго знатного тождества
В этой системе все умножения выполняются до операций с повышающей дискретизацией. Следовательно, достигается значительное сокращение вычислительной сложности. Схема на рисунке 11 называется многофазной реализацией интерполяционного фильтра.
Теперь давайте рассмотрим общий вид приведенного выше примера. В этом случае мы имеем фактор-умножитель фактора M, за которым следует системная функция H (z).
Многофазное разложение и эффективное внедрение интерполятора
Чтобы найти многофазное разложение M-компоненты данной системы $$ H (z) $$, нам нужно переписать системную функцию как
$$ H (z) = \ sum_ {k = 0} ^ {M-1} z ^ {- k} P_ {k} (z ^ M) $$
Уравнение 3
где $$ P_k (z) $$ называется многофазной компонентой $$ H (z) $$, которая задается формулой
$$ Р- {K} (г) = \ sum_ {п = - \ infty} ^ {+ \ infty} ч (нмоль + к) г ^ {- п} $$
Уравнение 4
Теперь, если $$ H (z) $$ предшествует фактор-умножитель фактора-M, мы можем применить второй знатный идентификатор к компонентам $$ P_k (z ^ M) $$ и добиться более эффективной реализации.
Например, если для H (z) предшествует фактор-умножитель фактора-3, мы можем использовать разложение уравнения 2, чтобы получить рисунок 12 ниже. мы получим рисунок 12 для M = 3. Теперь, применив вторую благородную идентичность, у нас будет рисунок 13. Чтобы получить более удобное отношение к уравнениям 2 и 3, попробуйте использовать эти два уравнения, чтобы получить схему на рисунке 11 непосредственно из системной функции фильтра в уравнении 1.

Рисунок 12. Трехкомпонентная многофазная декомпозиция $$ H (z) $$, которой предшествует фактор умножения на три фактора. Изображение предоставлено цифровой обработкой сигналов

Рисунок 13. Использование трехкомпонентной многофазной декомпозиции $$ H (z) $$ для реализации умножающего фактора-тройки upsampler, за которым следует $$ H (z) $$. Изображение предоставлено цифровой обработкой сигналов
Более подробную информацию и примеры см. В разделе 11.5 обработки цифровых сигналов, раздел 12.2 обработки цифровых сигналов: основы и приложения, а также эта отличная статья от IEEE.
Резюме
- Прямая реализация фильтра интерполяции помещает $$ H (z) $$ в ту часть системы, которая имеет более высокую частоту дискретизации.
- Фильтр конечной импульсной характеристики (FIR) длины $$ N $$, который помещается перед upsampler, должен выполнять умножение $$ N $$ и $$ N-1 $$ добавок для каждого образца $$ x (n) $ $. Тем не менее, фильтр на рисунке 1, который помещается после upsampler, должен будет выполнять $$ LN $$ умножения и $$ L (N-1) $$ добавок для каждого образца $$ x (n) $$.
- Согласно второму благородному тождеству, нам разрешено приводить систему, которая может быть выражена через $$ Z ^ I $$, т. Е. $$ H (Z ^ I) $$, до того, как умножитель фактора I при условии, что для новой системы $$ Z ^ I $$ заменяется $$ Z $$ в передаточной функции.
- Если $$ H (z) $$ предшествует фактор-умножитель фактора-M, мы можем переписать системную функцию через ее многофазные компоненты $$ P_k (z ^ M) $$ и применить второе благородное тождество для замены положения многофазных компонентов и повышающего счетчика.
Чтобы просмотреть полный список моих статей, посвященных DSP в AAC, см. На этой странице.