Шрифт:
Первая команда (помеченная меткой fir:) инициирует вычисления, очищая регистр MR и заполняя регистры МХ0 и MY0 первым значением данных и первым значением коэффициентов из памяти программ и памяти данных. Затем, для вычисления суммы первых N-1 слагаемых, N-1 раз в N циклах выполняется операция умножения с накоплением, реализуя свертку выборки следующего набора данных и коэффициентов. Заключительная команда умножения с накоплением выполняется с включенным режимом округления для округления результата до старших 24 разрядов регистра MR. Затем регистр MR1 условно насыщается до своего наибольшего положительного или отрицательного значения, в зависимости от состояния флага переполнения в регистре MV. Благодаря такому подходу, при накоплении результата используются преимущества регистра MR 40-разрядной точности. Насыщение происходит только в том случае, если вычисление заключительного результата привело к переполнению 32 младших значащих разрядов регистра MR.
Ограничение на число звеньев фильтра, реализующего подпрограммы КИХ-фильтрации в реальном масштабе времени, определяется, прежде всего, длительностью процессорного цикла, частотой дискретизации и требуемым объемом других вычислений. Подпрограмма КИХ-фильтра, представленная в примере, требует общего количества циклов N+5 для фильтра с числом звеньев N. Для DSP-процессора ADSP-2189M, обладающего быстродействием 75 MIPS, один цикл команды выполняется за 13,3 не, так что фильтр с числом звеньев 100 требует 13,3 нс*100 + 5*13,3 нс = 1330 нс + 66,5 нс = 1396,5 нс = 1,4 мкс.
Проектирование КИХ-фильтров
Благодаря современным средствам САПР, проектирование КИХ-фильтров выполняется относительно просто. На рис. 6.16 представлены некоторые характеристики КИХ-фильтров и наиболее популярные методы их проектирования.
ХАРАКТЕРИСТИКИ КИХ-ФИЛЬТРОВ
• Импульсная характеристика имеет конечную длительность (N циклов)
• Линейная фаза, постоянная групповая задержка (N должно быть нечетным)
• Нет аналогового эквивалента
• Безусловная устойчивость
• Может быть адаптивным
• Вычислительные преимущества при децимации на выходе
• Легкое понимание принципов и проектирование
? Оконный метод sin(x)/x (Windowed-Sinc)
? Разложение в ряд Фурье со взвешиванием (Windowing)
? Синтез произвольной частотной характеристики и использование обратного БПФ
? Программа Паркса-Макклиллана (Parks-McClellan) с алгоритмом обмена Ремеза (Remez)
Рис. 6.16
Проектирование КИХ-фильтров базируется, в первую очередь, на том, что частотная характеристика фильтра определяется импульсной характеристикой, а во-вторых, на том, что коэффициенты фильтра определяются его квантованной импульсной характеристикой. Оба положения иллюстрирует рис. 6.17.
На вход КИХ-фильтра подается одиночный импульс, и по мере прохождения этого импульса через элементы задержки, на выходе поочередно формируются коэффициенты фильтра. Таким образом, процесс проектирования КИХ-фильтра состоит в определении его импульсной характеристики по желаемой частотной характеристике с последующим квантованием импульсной характеристики в ходе генерации коэффициентов фильтра.
Полезно сделать некоторое отступление и исследовать соотношения между временным и частотным представлениями для лучшего понимания принципов, лежащих в основе цифровых фильтров, в частности — КИХ-фильтров. В дискретной системе операция свертки может быть представлена рядом операций умножения с накоплением. Операция свертки во временной или частотной области эквивалентна умножению "точки на точку" в соответствующей дуальной области. Например, свертка во временной области эквивалентна умножению в частотной области. Это изображено графически на рис. 6.18. Очевидно, что фильтрация в частотной области может быть выполнена умножением на 1 всех частотных компонентов в полосе пропускания и умножением на 0 всех частотных компонентов в полосе задержки. И наоборот, свертка в частотной области эквивалентна умножению "точки на точку" во временной области.
Функция передачи в частотной области (1 или 0) может быть отображена во временную область с использованием дискретного преобразованием Фурье (ДПФ) (на практике используется БПФ). Во временной области это дает импульсную характеристику фильтра. Так как умножение в частотной области (спектр сигнала умножается на функцию передачи фильтра) эквивалентно свертке во временной области (сигнал свернут с импульсной характеристикой), то сигнал может быть отфильтрован путем вычисления его свертки с импульсной характеристикой фильтра. Задача фильтрации с использованием КИХ-фильтра является в точности таким процессом. Так как мы имеем дело с дискретной системой, сигнал и импульсная характеристика квантуются по времени и амплитуде, давая в результате набор дискретных отсчетов. Дискретные отсчеты, включающие желаемую импульсную характеристику, являются коэффициентами КИХ-фильтра.
Математический аппарат, применяемый при проектировании фильтров (аналоговых или цифровых), в основном базируется на преобразованиях Фурье. В непрерывных по времени системах в качестве обобщенного преобразования Фурье может рассматриваться преобразование Лапласа. Подобным способом можно обобщить преобразование Фурье для дискретных по времени систем, и результат такого обобщения известен как z-преобразование. Детальное описание использования z-преобразования при проектировании цифровых фильтров дано в приложениях 1, 2, 3, 4, 5 и 6, хотя для понимания дальнейшего материала и нет необходимости в глубоких теоретических изысканиях.