Интернет-журнал "Домашняя лаборатория", 2007 №8
Шрифт:
Обобщенная форма КИХ-фильтра с числом звеньев N представлена на рис. 6.11. Как было сказано, КИХ-фильтр должен работать в соответствии с уравнением, задающим свертку:
где h(k) — массив коэффициентов фильтра и x(n-k) — входной массив данных фильтра. Число N в уравнении представляет собой число звеньев и определяет эффективность фильтра, как было сказано выше. КИХ-фильтр с числом звеньев N требует N циклов (операций) умножения с накоплением.
Согласно рис. 6.12,
РЕАЛИЗАЦИЯ КИХ-ФИЛЬТРА НА ПРОЦЕССОРЕ DSP С ИСПОЛЬЗОВАНИЕМ ЦИКЛИЧЕСКИХ БУФЕРОВ
В рядах, задаваемых уравнениями КИХ-фильтров, предполагается последовательное обращение к N коэффициентам от h(0) до h(N-1). Соответствующие точки данных циркулируют в памяти. При этом добавляются новые отсчеты данных, заменяя самые старые, и каждый раз производится вычисление выходного значения фильтра. Для реализации циклического буфера может использоваться фиксированный объем оперативной памяти, как показано на рис. 6.13 для КИХ-фильтра с 4 звеньями. Самый старый отсчет данных заменяется новым после каждой операции вычисления свертки. Выборка из четырех последних отсчетов данных всегда сохраняется в оперативной памяти.
Чтобы упростить адресацию, чтение из памяти старых значений начинается с адреса, который следует непосредственно за адресом только что записанного нового элемента выборки. Например, если значение х(4) только что записано в ячейку памяти 0, то значения данных читаются из ячеек 1, 2, 3 и 0. Этот пример может быть расширен применительно к любому числу звеньев фильтра. Используя адресацию ячеек памяти таким способом, адресный генератор должен лишь вычислять последовательные адреса, независимо от того, является ли данная операция чтением памяти или записью. Такой буфер в памяти данных называется циклическим, потому что, когда достигается его последняя ячейка, указатель автоматически позиционируется на начало буфера.
Выборка коэффициентов из памяти осуществляется одновременно с выборкой данных. В соответствии с описанной схемой адресации, самый старый отсчет данных выбирается первым. Поэтому сначала должна осуществляться выборка из памяти последнего коэффициента. При использовании адресного генератора, поддерживающего инкрементную адресацию, коэффициенты могут быть сохранены в памяти в обратном порядке: h(N-1) помещается в первую ячейку, a h(0) — в последнюю. И наоборот, коэффициенты могут быть сохранены в порядке возрастания их номеров, если использовать адресный генератор, поддерживающий декрементную адресацию. В примере, показанном на рис. 6.13, коэффициенты сохранены в обратном порядке.
Простая итоговая блок-схема для этих операций представлена на рис. 6.14.
Для DSP-процессоров компании Analog Devices все
Первая команда (помеченная меткой 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
Саженец
3. Хозяин дубравы
Фантастика:
попаданцы
альтернативная история
фэнтези
рейтинг книги
Эртан. Дилогия
Эртан
Фантастика:
фэнтези
рейтинг книги
Полковник Империи
3. Безумный Макс
Фантастика:
альтернативная история
рейтинг книги
Хозяин Теней 3
3. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
рейтинг книги
Vivuszero
Старинная литература:
прочая старинная литература
рейтинг книги
Душелов. Том 2
2. Внутренние демоны
Фантастика:
фэнтези
боевая фантастика
аниме
рейтинг книги
Черный дембель. Часть 5
5. Черный дембель
Фантастика:
попаданцы
альтернативная история
рейтинг книги
Свет Черной Звезды
6. Катриона
Любовные романы:
любовно-фантастические романы
рейтинг книги
Бастард Императора. Том 3
3. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Крутой маршрут
Документальная литература:
биографии и мемуары
рейтинг книги
Дремлющий демон Поттера
Фантастика:
фэнтези
рейтинг книги
