Multirate DSP и его применение в преобразовании D / A
В этой статье рассматриваются основы преобразования D / A и объясняется, как многопроцессорный DSP может привести к созданию более эффективной системы.
В первой части этой серии вы можете прочитать об этой теме для преобразования A / D: Multirate DSP и его приложение в A / D Conversion.
Концептуальная работа идеального ЦАП
Как показано на рисунке 1, идеальный D / A преобразователь получает последовательность квантованных значений $$ y (n) $$ и генерирует взвешенную импульсную последовательность $$ y_ {s} (t) $$. Поскольку график $$ y (n) $$ на рисунке 1 подразумевает, $$ y (n) $$ является дискретной последовательностью значений. Мы знаем значение $$ y (n) $$ для конкретного $$ n $$, но график не предоставляет никакой информации о частоте дискретизации, с которой был выбран пробный сигнал непрерывного времени. Этап D / A должен знать период выборки, $$ T $$, чтобы произвести импульс, соответствующий определенному значению $$ y (n) $$ в момент времени $$ nT $$.

Рисунок 1. Работа идеального D / A преобразователя. Изображение предоставлено цифровой обработкой сигналов
Предположим, что каждое значение $$ y (n) $$ представлено $$ m $$ bits, $$ y_ {m-1} y_ {m-2} dots y_ {0} $$, а преобразователь - двоично-взвешенный. Следовательно, мы имеем
$$ y_ {s} (nT) = \ sum_ {k = 0} ^ {m-1} y_ {k} 2 ^ {k} R_ {ref} $$
где $$ R_ {исх} $$ представляет собой опорное напряжение, ток, или заряд. До сих пор наш идеальный этап D / A преобразовал квантованную последовательность дискретного времени, $$ y (n) $$, в аналоговый сигнал непрерывного времени, $$ y_ {s} (t) $$.
Почему нам нужен фильтр восстановления после ЦАП «text-align: center;»> $$ y_ {s} (t) = y_ {c} (t) times \ sum_ {n = - \ infty} ^ {+ \ infty} delta (t-nT) $$
В предыдущей статье мы увидели, как умножение непрерывного сигнала $$ y_c (t) $$ импульсным поездом с периодом $$ T $$ приводит к репликам спектра $$ y_c (t) $$ при кратных $$ \ frac {2 \ pi} {T} $$. Вот почему $$ y_s (t) $$ на рисунке 1 содержит не только спектр основного сигнала непрерывного времени, но и его реплики с кратным частоте дискретизации. Это показано на рисунке 2. Чтобы восстановить $$ y_c (t) $$, нам нужно избавиться от высокочастотных компонентов. Это достигается с помощью аналогового фильтра нижних частот на фиг. 1, который называется фильтром реконструкции.

Рисунок 2. Умножение сигнала импульсной схемой приводит к репликам входного спектра при кратных частоте дискретизации $$ \ Omega_s $$. Изображение предоставлено обработкой дискретного времени
Для дальнейшего уточнения требований фильтра реконструкции предположим, что мы использовали частоту дискретизации $$ 2 \ Omega_N $$ для образца $$ y_c (t) $$, который имеет всю свою энергию ниже $$ \ Omega_N $$, т. Е., $$ Y_c (j \ Omega) = 0 $$ за $$ | \ Omega | > \ Omega_N $$. В этом случае нам нужен фильтр резкой реконструкции, который передает частотные составляющие до $$ \ Omega_N $$ и устраняет нежелательные частотные составляющие $$ Y_s (j \ Omega) $$ чуть выше $$ \ Omega_N $$. Поскольку эта резкая характеристика фильтрации непрактична, нам нужно изменить наш дизайн.
Для данного $$ Y_c (j \ Omega) $$, если мы увеличим частоту дискретизации, реплики будут поступать на более высокие частоты, а фильтр восстановления может иметь более плавный переход от полосы пропускания к стоп-каналу. Например, предположим, что $$ y_c (t) $$ представляет собой аналоговый музыкальный сигнал с энергией в диапазоне $$ 0 <\ frac \ Omega {2 \ pi} <22 кГц $$. Если бы мы выбрали $$ y_c (t) $$ с частотой дискретизации $$ 8 $$ раз выше, чем частота выборки Найквиста, $$ f_ {s, new} = 352 кГц $$, то фильтр восстановления имел бы полоса перехода $$ ( Omega_s - \ Omega_N) - \ Omega_N = 2 \ pi \ times 308 кГц $$ (см. рисунок 2). Однако неэффективно использовать $$ 352, 000 $$ выборок в секунду для представления сигнала, который имеет всю свою энергию ниже $$ 22 кГц $$. Например, эта схема выборки увеличит память для хранения образцов на $$ 8 $$ раз по сравнению с системой, которая использует $$ f_s = 44 кГц $$. Вот почему, даже если мы использовали передискретизацию во время аналого-цифрового преобразования, мы применяем прореживание к нашим цифровым данным для уменьшения количества образцов.
В результате, $$ y (n) $$ обычно будет использовать наименьшее возможное количество выборок для представления заданного $$ y_c (t) $$. Возникает вопрос: можем ли мы обрабатывать y (n) в цифровой области и увеличивать частоту дискретизации путем интерполяции между существующими выборками? Если мы сможем это сделать, мы сможем увеличить частоту дискретизации и тем самым достичь важной цели по ослаблению требований к фильтру реконструкции.
интерполирование
Мы хотим увеличить частоту дискретизации $$ y (n) $$, но как? Предположим, что мы разместили $$ L-1 $$ нулевые значения между смежными выборками $$ y (n) $$ (см. Рис. 3 для $$ L = 2 $$).

Рисунок 3. Добавление одной нулевой выборки между смежными выборками сигнала дискретного времени. Изображение предоставлено IEEE
Очевидно, что это увеличивает частоту дискретизации, но, по-видимому, добавленные нами семплы не содержат никакой информации, потому что они вовсе не связаны с существующими образцами $$ y (n) $$. Однако рассмотрение преобразования Фурье полученной последовательности оказывается достойным. Назовем новую последовательность $$ y_l (n) $$, тогда мы имеем $$ y_l (n) = y (nL) $$, когда $$ n $$ является кратным $$ L $$ и нулю в противном случае. Мы получаем преобразование Фурье $$ y_l (n) $$ как
$$ Y_l (e ^ {j \ omega}) = \ sum_ {n = - \ infty} ^ {+ \ infty} y_l (n) e ^ {- jn \ omega} $$
Однако $$ y_l (n) $$ отличен от нуля только при $$ n = kL $$, где $$ k $$ - целое число. Учитывая, что ненулевые значения $$ y_l (n) $$ связаны с $$ y (n) $$, получаем
$$ Y_l (е ^ {J \ Omega}) = \ sum_ {к = - \ infty} ^ {+ \ infty} y_l (ая) е ^ {- JKL \ Omega} = \ sum_ {к = - \ infty} ^ {+ \ infty} у (к) е ^ {- JKL \ Omega} = Y (е ^ {JL \ Omega}) $$
Вышеприведенное уравнение означает, что спектр $$ y_l (n) $$ такой же, как и для $$ y (n) $$, за исключением масштабирования, который необходимо применить к оси $$ \ omega $$. Это показано на рисунке 4.

Рисунок 4. Эффект добавления нулевых значений L-1 между смежными выборками y (n). Изображение предоставлено IEEE
Исследуя приведенные выше спектры, мы видим, что можно выделить спектр $$ Y (e ^ {j \ omega}) $$ от спектра $$ Y_l (e ^ {j \ omega}) $$. Для этого нам нужно применить только острый фильтр нижних частот с нормированной частотой среза $$ \ frac { pi} {L} $$ до $$ y_l (n) $$. Это опустит все частотные компоненты выше $$ \ frac { pi} {L} $$, которые обычно называются изображениями (см. Рис. 4). Обратите внимание, что этот фильтр является цифровым, и мы можем добиться резкого отклика амплитуды вместе с линейной фазовой характеристикой в цифровом домене.
На рисунке 4 показано, что ось $$ \ omega $$ $$ Y_l (e ^ {j \ omega}) $$ масштабируется по сравнению со спектром $$ Y (e ^ {j \ omega}) $$, нет частотного масштабирования, если мы рассмотрим частоту в единицах циклов в секунду. Мы знаем, что $$ f = \ frac { omega} {2 \ pi T} $$, где $$ T $$ - период выборки, а $$ \ omega $$ - нормализованная частота. На рисунке 4 (a) период выборки составляет $$ T = \ frac {1} {f_s} $$, а точка, связанная с $$ \ omega = \ pi $$, дает $$ f = \ frac {f_s} {2} $$. На рисунке 4 (b) период выборки равен $$ \ frac {T} {L} $$, а $$ \ omega = \ frac { pi} {L} $$ соответствует
$$ f = \ frac { frac { pi} {L}} {2 \ pi \ frac {T} {L}} = \ frac {f_s} {2} $$
Поэтому, в то время как частота дискретизации увеличивается на $$ L $$, масштабирование по частотной оси отсутствует, если мы рассматриваем частоту в единицах циклов в секунду.
Таким образом, чтобы увеличить частоту дискретизации временной последовательности $$ y (n) $$, мы помещаем $$ L-1 $$ нулевые значения между смежными выборками и применяем фильтр нижних частот с нормированной частотой среза $$ \ frac { pi} {L} $$ в полученную последовательность. Это показано на рисунке 5.

Рисунок 5. Upsampling, за которым следует фильтр нижних частот с нормированной частотой среза $$ \ frac { pi} {L} $$, выполняет интерполяцию. Изображение предоставлено IEEE
Теперь давайте вернемся к проблеме разработки эффективной стадии D / A.
Интерполяция релаксирует требования фильтра восстановления
Как обсуждалось выше, увеличение частоты дискретизации $$ y (n) $$ может переносить реплики спектра $$ y_c (t) $$ на более высокие частоты и тем самым сделать реализацию аналогового фильтра более выполнимой. На рисунке 6 показано, как мы можем применить интерполяцию в цифровом домене до этапа D / A.

Рисунок 6. Интерполяция до этапа D / A. Изображение предоставлено цифровой обработкой сигналов
Как показано на рисунке, в этой системе есть две частоты выборки: $$ f_s $$ и $$ Lf_s $$. Фильтр интерполяции имеет частоту среза $$ \ frac {fs} {2} $$ и используется для удаления изображений, рассмотренных выше. Таким образом, требования к аналоговому фильтру менее требовательны, потому что ему нужно только подавить очень высокочастотные компоненты, которые имеют кратность $$ Lf_s $$.
Удержание Zero-Order на выходе практического конвертера D / A
На рисунке 1 мы предположили, что выход идеального ЦАП является импульсным поведением; однако на практике невозможно создать эти узкие импульсы. Вместо этого, практический ЦАП обычно содержит последнее выходное значение, пока не будет создано следующее значение. Это называется удержанием нулевого порядка и может быть представлено путем размещения образца и удержания на выходе идеального ЦАП (см. Рис. 7).

Рисунок 7. Практические ЦАП обычно применяют удержание нулевого порядка к выходным значениям. Изображение предоставлено цифровой обработкой сигналов
Как следует из рисунка, спектр $$ y_s (t) $$ должен быть умножен на передаточную функцию блока удержания нулевого порядка. Можно показать, что передаточная функция удержания нулевого порядка равна
$$ H (j \ Omega) = t_h \ frac {sin ( Omega \ frac {t_h} {2})} { Omega \ frac {t_h} {2}} $$
Уравнение 1
где $$ t_h $$ обозначает время удержания, которое обычно равно периоду выборки, $$ T = \ frac {1} {f_s} $$.
Предположим, что $$ y (n) $$ на рисунке 7 соответствует непрерывному сигналу $$ y_c (t) $$, который имеет всю свою энергию ниже $$ f_N = \ frac {f_s} {2} $$, и что мы получили $$ y (n) $$ путем выборки $$ y_c (t) $$ с частотой выборки $$ f_s $$. В этом случае ответ удержания нулевого порядка и спектр $$ y_s (t) $$ будут такими, как показано на рисунке 8.

Рисунок 8. Реакция амплитуды удержания нулевого порядка, $$ H (j2 \ pi f) $$ и спектр $$ y_s (t) $$. Изображение предоставлено CMOS Интегрированными аналого-цифровыми и цифро-аналоговыми преобразователями
На рисунке 8 показано, что частотные составляющие $$ y_c (t) $$, которые находятся вокруг $$ \ frac {f_s} {2} $$, ослаблены намного больше, чем низкочастотные компоненты. Изучая $$ H (j \ Omega) $$ при $$ \ Omega = 0 $$ и $$ \ Omega = 2 \ pi \ frac {f_s} {2} $$, заметим, что функция удержания нулевого порядка почти $$ 3, 9 дБ на $$ больше затухания для $$ \ Omega = 2 \ pi \ frac {f_s} {2} $$, чем для низкочастотных составляющих около $$ \ Omega = 0 $$. Это хорошо известное уменьшение амплитуды, называемое искажением $$ \ frac {sin (x)} {x} $$.
Предположим теперь, что мы применяем интерполяцию L-fold к $$ y (n) $$ и увеличиваем частоту выборки до $$ f_ {s, new} = Lf_s $$. В этом случае мы имеем $$ t_h = \ frac {1} {Lf_s} $$. Каково было бы затухание $$ H (j \ Omega) $$ для высокочастотных компонентов $$ y_c (t) $$ вокруг $$ f_N = \ frac {f_s} {2} $$? Подставляя значения в уравнение 1, получим
$$ | H (j0) | = t_h $$
$$ | H (j2 \ pi \ frac {f_s} {2}) | = t_h \ frac {sin ( frac { pi} {2L})} { frac { pi} {2L}} $$
Поскольку мы используем более крупный $$ L $$, $$ \ frac {sin ( frac { pi} {2L})} { frac { pi} {2L}} $$ стремится к одному и затуханию $ $ H (j \ Omega) $$ уменьшается.
Таким образом, интерполяция не только ослабляет требования фильтра реконструкции, но и делает искажение $$ \ frac {sin (x)} {x} $$ менее серьезным.
Резюме
- Идеальный D / A преобразователь получает последовательность квантованных значений $$ y (n) $$ и генерирует взвешенную импульсную последовательность $$ y_s (t) $$.
- $$ y_s (t) $$ содержит не только спектр основного сигнала непрерывного времени, но и его реплики с кратным частоте дискретизации.
- Чтобы восстановить $$ y_c (t) $$, нам нужно удалить высокочастотные компоненты с помощью фильтра реконструкции.
- Для данного $$ Yc (j \ Omega) $$, если мы увеличим частоту дискретизации, реплики перейдут на более высокие частоты, и фильтр восстановления может иметь более плавный переход от полосы пропускания к стоп-каналу.
- Чтобы увеличить частоту дискретизации дискретного времени, $$ y (n) $$, мы помещаем $$ L-1 $$ нулевые значения между смежными выборками и применяем фильтр нижних частот с нормированной частотой среза $ $ \ frac { pi} {L} $$ в полученную последовательность.
- Таким образом, требования к аналоговому фильтру становятся намного менее требовательными, поскольку ему необходимо только подавить некоторые высокочастотные компоненты.
- Интерполяция не только ослабляет требования фильтра реконструкции, но и делает искажение $$ \ frac {sin (x)} {x} $$ менее серьезным.
Более подробное обсуждение искажений $$ \ frac {sin (x)} {x} $$ и обзор методов его уменьшения см. В CMOS Integrated Analog-to-Digital и Digital-to-Analog Converters и Discrete-Time Обработка сигнала.