Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Министерство образования РФ
Марийский государственный технический университет
Факультет информатики и вычислительной техники
Кафедра ИВС
Проектирование цифрового фильтра
Пояснительная записка к курсовой работе
по дисциплине
Теория и методы цифровой обработки сигналов
Выполнила: студентка гр. ВМ-51 Кошкин А.С.
(Дата) (Подпись)
Проверила: Малашкевич И.А.
(Дата) (Подпись)
Йошкар-Ола
2003 г.
Техническое задание
1. Синтезировать ЦФНЧ прототип со следующими параметрами:
= 4,5 кГц частота среза;
= 4,95 кГц частота задержания;
= - 3 дБ коэффициент усиления на частоте среза;
= - 45 дБ коэффициент усиления на частоте задержания;
= 50 кГц частота дискретизации.
Тип аппроксимации: Элиптический фильтр.
Привести краткую характеристику методов синтеза, методов аппроксимаций, с помощью программы синтезировать фильтры для 4-х типов аппроксимаций, привести графики АЧХ, ФЧХ. Произвести расчет биквадратного звена заданного фильтра и анализ полученных результатов.
2. Произвести анализ ЦФНЧ прототипа. В качестве анализируемого фильтра взять фильтр с низким порядком (не более 20), проанализировать влияние расположения нулей и полюсов всех биквадратных звеньев. Привести расчетные формулы. Сделать выводы.
3. Произвести частотное преобразование ЦФНЧ прототипа в режекторный фильтр. Привести расчетные формулы. Сделать выводы.
Коэффициенты для определения новых частот среза:
К1=1,1 К2=1,3
4. Практическая реализация фильтра. Выбор разрядной сетки (рассмотреть 8, 12, 16 разрядные сетки). Обосновать выбор приемлемой разрядности. Сделать выводы.
5. Аппаратная реализация. Разработать и описать структурную схему синтезированного режекторного фильтра.
Аннотация
В данной курсовой работе рассматриваются методы синтеза цифровых фильтров, методы аппроксимации, методы анализа, частотные преобразования и аппаратная реализация цифровых фильтров на основе ЦФНЧ прототипа.
В данной работе выполняется синтез и анализ ЦФНЧ прототипа по заданным требованиям, преобразование ЦФНЧ прототипа в фильтр заданного типа, выбор разрядной сетки и аппаратная реализация цифрового фильтра.
Содержание
[0.0.0.1] Факультет информатики и вычислительной техники [1] 1. Синтез ЦФНЧ - прототипа [1.1] 1.1. Аппроксимации и методы синтеза цифровых фильтров [1.1.1] 1.1.1. Аппроксимация характеристик фильтра [1.1.2] 1.1.2. Синтез по аналоговому фильтру прототипу [1.1.3] 1.1.3. Прямой синтез цифровых фильтров [1.2] 1.2. Расчет тангенсного дискретного ФНЧ Баттерворта [1.3] 1.3. Синтез ЦФНЧ - прототипа [2] 2. Анализ ЦФНЧ прототипа [3] 3. Преобразования ЦФНЧ прототипа в фильтр заданного типа [3.1] 3.1. Идея частотных преобразований [3.2] 3.2. Преобразование ЦФНЧ прототипа в полосовой фильтр [4] Квантование коэффициентов фильтра [5] 5. Аппаратная реализация режекторного ЦФ. [5.0.0.1] Арифметико-логическое устройство [5.0.0.2] Память программ [6] Заключение [7] Список литературы
[8] |
Введение
Еще в конце 60-х годов цифровые фильтры были известны сравнительно узкому кругу специалистов, занимающихся цифровым моделированием и цифровой обработкой данных. Тогда задача реализации фильтра сводилась к задаче составления машинной программы реализации. В то же время задача технической (или аппаратурной) реализации цифрового фильтра в виде отдельного блока или микросхемы казалась чрезвычайно сложной и практически трудно выполнимой.
Однако поразительные успехи интегральной технологии цифровых схем, а также развитие новых методов синтеза цифровых фильтров позволили за последнее время не только преодолеть этот разрыв, но и в некоторых приложениях вытеснить традиционную аналоговую технику фильтрации и в первую очередь там, где требовались жесткие допуски на точность реализации, высокий порядок аппроксимирующей функции и устойчивость, не говоря уже о системах двумерной фильтрации, где преимущества цифровой обработки неоспоримы. В цифровых фильтрах можно легко изменять коэффициенты, а, следовательно, и характеристики фильтра, не изменяя структуры набора, что создает уникальную возможность осуществления последовательного спектрального анализа фактически на одном цифровом фильтре; наконец, создаются самые широкие возможности для синтеза перестраиваемых, адаптивных и многофункциональных фильтров. Развитие цифровой обработки сигналов обусловлено несколькими причинами: неизменно высокая эффективность цифровых методов позволяет лучше обрабатывать и анализировать сигналы; при ее применении проявляется большая гибкость и, наконец, имеется все возрастающая возможность использования универсальных ЭВМ и мини-ЭВМ или даже специализированных цифровых вычислителей, стоимость которых постоянно снижается. Цифровые методы приобрели также первостепенное значение в обработке двумерных сигналов и изображений.
Из всех методов, используемых при цифровой обработке сигналов, наиболее важным является цифровая фильтрация. В прошлом интерес к ней ограничивается теоретическими исследованиями, но последнее время она используется во многих важных практических приложениях для обработки одномерных и двумерных сигналов. Этот факт объясняется следующими причинами:
во-первых, наличием эффективных и относительно простых методов построения фильтров;
во-вторых, очень большими успехами в области технологии микросхем с высокой степенью интеграции для умножителей, сумматоров и запоминающих устройств с повышенной максимальной рабочей частотой и в разработке новых элементов, таких как приборы с зарядовой связью (ПЗС) и приборы на поверхностно-акустических волнах (ПАВ);
в-третьих, успехами в части разработки технических средств и программного обеспечения ЭВМ, особенно с появлением микропроцессоров и микро-ЭВМ и созданием быстрых матричных процессоров, которые используются в качестве периферийных устройств вычислительных систем или в качестве основной обрабатывающей системы.
Очень важным дополнительным преимуществом цифровых фильтров является простота перестройки их параметров, что необходимо для изменения характеристик фильтров. Это свойство позволяет разрабатывать программируемые фильтры, решающие одновременно несколько задач фильтрации, а также новые типы фильтров, например адаптивные. Основным недостатком цифровых фильтров, выполненных аппаратурно, является их относительно высокая стоимость. Однако, учитывая значительные достижения в области создания больших интегральных схем, можно надеяться, что стоимость аппаратурно реализованных цифровых фильтров значительно уменьшится в недалеком будущем.
В последние годы в связи с появлением микропроцессоров цифровая обработка сигналов получила еще более широкое распространение. Если несколько лет назад создание системы цифровой обработки сигналов было под силу лишь большому коллективу разработчиков, то теперь при наличии микропроцессоров и устройств сопряжения с ними подобную систему может собрать квалифицированный инженер за сравнительно короткое время. Все эти обстоятельства показывают, что в дальнейшем значение цифровой обработки сигналов будет возрастать.
При решении задачи синтеза фильтра обычно бывает задана частотная характеристика, реже импульсная характеристика этого фильтра. При проектировании аналоговых фильтров задача синтеза распадается на две: задачу аппроксимации частотной характеристики и задачу реализации. Обычно частотная характеристика фильтра имеет такой вид, что она не может быть реализована с помощью обычных резисторов, конденсаторов и индуктивных катушек. Например, нереализуемой оказывается идеальная прямоугольная форма частотной характеристики фильтра нижних частот. Выход из такого положения состоит в нахождении функции, которая соответствует реальной электрической цепи и достаточно хорошо аппроксимирует заданную частотную характеристику. Часто эту задачу удается решить путем определения местоположения нулей и полюсов этой функции. После этого приходится решать задачу об определении электрической схемы, соответствующей заданной частотной характеристике. Эта вторая задача обычно бывает не легче первой.
Любая физически реализуемая электрическая цель имеет передаточную функцию. Поэтому первый этап проектирования фильтра включает решение задачи аппроксимации. Эта задача состоит в нахождении устойчивой и физически реализуемой передаточной функции, которая будет наилучшим образом приближаться к заданным идеальным характеристикам фильтра.
Рассмотрим основные аппроксимирующие функции, используемые при проектировании фильтров.
Аппроксимация Баттерворта.
Фильтры Баттерворта характеризуются монотонным убыванием АЧХ как в полосе пропускания, так и в полосе задерживания. Монотонность АЧХ достигается за счет уменьшения крутизны спада АЧХ (по сравнению с другими видами аппроксимации).
По мере возрастания порядка n фильтра Баттерворта коэффициент передачи в полосе пропускания все в большей степени приближается к единице, переходная область становится все уже, а в полосе задерживания коэффициент передачи все ближе подходит к нулю. Таким образом, n является параметром, выбор которого позволяет удовлетворить заданные требования к фильтру. Фильтр Баттерворта обеспечивает нулевой коэффициент передачи только на бесконечной частоте (все нули передачи расположены в бесконечности). На любой другой частоте, в том числе и в полосе задержания, сигналы будут проходить через фильтр. Подобные фильтры называют полиномиальными.
Аппроксимация Чебышева.
Аппроксимация по Чебышеву используется, если крутизна спада модуля коэффициента передачи, особенно в районе граничной частоты полосы задержания, является более важным параметром, чем монотонности характеристики в полосе пропускания.
Фильтр Чебышева характеризуется следующим свойствами:
Подобно фильтру Баттерворта фильтр Чебышева обеспечивает нулевой коэффициент передачи только на бесконечной частоте. Если же на определенной частоте в полосе задержания требуется бесконечное подавление, то можно использовать фильтр Чебышева 2, у которого в полосе пропускания колебания коэффициента передачи отсутствуют, но существуют в полосе задержания и коэффициент передачи на определенных частотах полосы задержания становиться нулевым.
Эллиптический фильтр.
Эллиптические фильтры (называемые иногда фильтрами Золотарева или фильтрами Чебышева-Кауэра) обладают колебаниями коэффициента передачи, как в полосе пропускания, так и в полосе задержания. Здесь быстро достигается заданное значение коэффициента передачи за пределами полосы пропускания и сохраняется его минимальное значение на нежелательных частотах. Аналогично фильтрам Чебышева 2 на определенных частотах в полосе задержания они имеют нулевой коэффициент передачи. Эллиптические фильтры не являются полиномиальными.
Для аппроксимации АЧХ идеального фильтра в смысле числа элементов цепи эллиптические фильтры, по-видимому, наиболее эффективны. При заданном порядке функции имеется возможность создать наиболее экономичный фильтр либо с очень крутой переходной областью, либо с очень малым коэффициентом передачи в полосе задержания. С другой стороны, сам коэффициент передачи не спадает монотонно к нулевому значению, а сохраняется на заранее обусловленном уровне.
Аппроксимация Бесселя
До сих пор фильтры рассматривались главным образом с точки зрения их АЧХ. Однако АЧХ не полностью описывают свойства фильтра. В частности, ФЧХ цепи является одним из наиболее важных параметров фильтра, предназначенного для передачи прямоугольных или импульсных сигналов. Когда прямоугольный импульс проходит через фильтры Баттерворта или Чебышева, то в выходном сигнале будут появляться колебательные выбросы переходного процесса. Если же это нежелательно, то можно применить фильтры Бесселя.
При необходимости отсутствия колебательных выбросов в процессе фильтрации фазовый сдвиг между входным и выходным сигналами должен быть линейной функцией частоты или, говоря по-другому, скорость изменения ФЧХ в зависимости от частоты или групповое время замедления должны быть постоянными. Основной эффект постоянства группового времени фильтра состоит в том, что все частотные компоненты сигнала, передаваемые через фильтр, запаздывают на одну и ту же величину. Следовательно, поскольку импульс состоит из сигналов различных частот, то форма импульса при фильтрации его цепью с линейной ФЧХ будет сохраняться. Однако это справедливо только для фильтра Бесселя нижних частот, другие фильтры Бесселя - ФВЧ, ПФ, РФ - таким свойством не обладают (линейность фазовой характеристики ФНЧ Бесселя не сохраняется при операциях преобразования частот для получения фильтров с другими АЧХ).
Чем больше порядок n фильтра Бесселя, тем в больших пределах будет линейной ФЧХ, тем лучше данный фильтр будет аппроксимировать групповое время величиной 0 единиц в пределах широкой полосы частот. Таким образом, единственным расчетным параметром фильтров Бесселя является порядок n. выбор которого производится с таким расчетом, чтобы удовлетворить заданные требования как к фазовым характеристикам, так и к амплитудно-частотным.
Следует отметать, что, по сравнению с фильтром Баттерворта, ФНЧ Бесселя дает худшую аппроксимацию идеальной характеристики как в полосе пропускания, так и по крутизне спада АЧХ. В полосе пропускания отсутствует частота, на которой потери в коэффициенте передачи становятся нулевыми, характеристика спадает очень плавно по направлению к полосе задержания.
При создании цифровых фильтров задача аппроксимации по существу не отличается от такой же задачи для аналоговых фильтров. Решение же второй задачи задачи реализации не представляет никакого труда. Если системную функцию фильтра записать в виде дробно-рационального выражения, то можно сразу же изобразить схему фильтра. Поэтому необходимо рассмотреть некоторые способы определения системной функции цифрового фильтра в виде дробно-рационального выражения, т. е. в виде отношения двух полиномов по отрицательным степеням z. Эти методы фактически являются методами синтеза цифровых фильтров.
Метод инвариантности импульсной переходной характеристики.
Наиболее просто задача синтеза цифрового фильтра решается в том случае, если известна импульсная характеристика фильтра-прототипа. Метод синтеза цифровых фильтров, основанный на использовании импульсной характеристики фильтра-прототипа, называют методом инвариантной импульсной характеристики.
Суть метода:
Для определения импульсной характеристики проектируемого цифрового фильтра необходимо подвергнуть дискретизации импульсную характеристику h(t) аналогового фильтра-прототипа. Значения импульсной характеристики цифрового фильтра h(kT) должны быть равны значениям импульсной характеристики фильтра-прототипа в отсчетные моменты времени t = kT. Применяя к импульсной характеристике цифрового фильтра z-преобразование, можно найти системную функцию и составить алгоритм цифровой фильтрации.
Таким образом, дискретные составляющие импульсной переходной характеристики ЦФ берутся равными выборкам импульсной переходной характеристики соответствующего непрерывного фильтра.
Метод инвариантности импульсной переходной характеристики, называемый еще методом стандартного z-преобразования, дает хорошие результаты при синтезе ЦФ, передаточная функция которых не содержит нулей: фильтры нижних частот, полосовые фильтры Баттерворта, Бесселя и Чебышева I типа. Основное ограничение данного метода невозможность синтеза широкополосных фильтров.
Методы билинейного преобразования и
согласованного z-преобразования.
Синтез цифровых фильтров по заданной частотной характеристике фильтра-прототипа более сложен. При этом используются различные методы, основным из которых является метод билинейного z-преобразования.
При синтезе ЦФ чаще всего необходимо обеспечить заданную частотную характеристику, не определяя импульсную переходную характеристику. В случае, если частотная характеристика непрерывного фильтра сравнительно постоянна в полосах прозрачности и затухания, удобно использовать метод билинейного преобразования. В основе этого метода лежит алгоритм отображения точек мнимой оси плоскости S на единичную окружность в плоскости z. Полученная в результате такого преобразования передаточная функция ЦФ H(Z) в точках единичной окружности принимает ту же совокупность значений, что и передаточная функция непрерывного фильтра H(S), рассчитанная для точек мнимой оси. При этом происходит изменение частотного масштаба.
Основное достоинство метода билинейного преобразования возможность получения частотных характеристик широкополосных фильтров в полосе частот до 1/2ТД. Недостаток связан с нелинейным искажением частотной шкалы; для узкополосных фильтров это приводит к искажению частотной характеристики.
Этот метод пригоден для синтеза ЦФ всех типов, но главным образом для широкополосных.
Рассмотренный метод билинейного преобразования является одним из основных рабочих методов синтеза цифровых фильтров.
Перейдем теперь к синтезу ЦФ методом согласованного z-преобразования. Характерной особенностью синтеза ЦФ данным методом является тот факт, что частотная характеристика ЦФ имеет полюсы и нули, соответствующие полюсам и нулям непрерывного фильтра.
Отметим, что полюсы передаточной функции те же, что и при использовании стандартного z-преобразования. Однако нули обычно не соответствуют нулям, получаемым методом стандартного z-преобразования. Согласованное z-преобразование целесообразно использовать для синтеза широкополосных полосовых и режекторных фильтров. Если передаточная функция фильтра не содержит конечных нулей (например, фильтры Баттерворта и Бесселя), результаты будут неудовлетворительными. Для устранения этого недостатка необходимо умножить передаточную функцию на (l+z-1)N, где N равно порядку нуля, который желательно иметь на частоте 1/2Тд.
Итак, синтез ЦФ по методу согласованного z-преобразования имеет следующие особенности: реализация ЦФ возможна в виде последовательной или параллельной канонической формы; сохраняется форма частотной характеристики; данный метод синтеза пригоден для всех типов фильтров.
Синтез тангенсного дискретного ФНЧ Баттерворта
Синтез производиться без обращений к аналоговым фильтрам и позволяет определить передаточную характеристику непосредственными вычислениями.
Квадрат модуля передаточной характеристики тангенсного дискретного ФНЧ Баттерворта имеет вид:
(1)
По ограничениям, накладываемым на АЧХ синтезируемого фильтра, имеем:
e2 = 10-0,1Qc 1; M2 = (10-0,1Qз 1)/( 10-0,1Qc 1); a2 = tg-2N(cT/2). (2)
Подставляя а2 в (1) при = з, получим уравнение:
откуда можно определить порядок N синтезированного фильтра:
(3)
где операция округления Х до ближайшего целого, не меньшего, чем Х ().
Полюса синтезируемого фильтра определяются из решения уравнения
(4)
Для его решения следует использовать метод двухстороннего Z-реобразования, предложенный Кайзером (1963 г.). В этом методе используется тот факт, что поскольку z = cos(T) + jsin(T), то
Введем обозначения:
(5)
(6)
Тогда уравнение (4) преобразуется к виду:
Откуда следует, что искомые полюса на плоскости Р являются корнями из 1, имеют модули R и фазовые углы
; n=1,2,…..,N/2 при Nчетном; (8)
; n=0,1,2,…..,(N-1)/2 при Nнечетном. (9)
Поэтому n-ый полюс на комплексной плоскости Р можно записать в виде
.
Используя этот факт и связь (5) между точками Р- и Z-плоскостей получим выражение для искомых полюсов на Z-плоскости
(10)
Учитывая условие (2.11), нетрудно записать формулы для вычисления коэффициентов обратных связей n -го биквадратного блока синтезируемого фильтра
(11)
Если порядок N фильтра окажется нечетным, то один из блоков фильтра должен быть первого порядка. Для такого блока n=0 и p0 =0. При этом из (10) вытекает, что
такой полюс является вещественным. Поэтому единственный коэффициент обратной связи блока первого порядка находится по формуле
(12)
Итак, получены формулы, определяющие по заданньм требованиям к АЧХ синтезируемого фильтра его полюса и коэффициенты обратных связей.
Нули синтезируемого фильтра должны обеспечивать
откуда с использованием соотношения Кайзера следует, что
Это возможно только при z = -1. Поэтому все нули дискретного тангенсного ФНЧ Баттерворта сосредоточены в точке
z0 = -l, (13)
а коэффициенты прямых связей определяются по формулам
a1n=2; а2n =1; а = 1; (14).
где а коэффициент блока первого порядка появляющегося при нечетном N.
Таким образом, методика синтеза тангенсного ФНЧ Баттерворта состоит в следующем:
- формулируются требования к АЧХ задаются параметры c, з, Qc, Qз;
- по формулам (2) рассчитываются параметры е и М;
- определяется порядок фильтра по формуле (3);
- вычисляется параметр Rp по формуле (6);
- вычисляются все pn по формуле (8) или (9) в зависимости от четности порядка фильтра N;
- с помощью (11) и (12) вычисляются коэффициенты обратных связей всех биквадратных блоков;
Аналогичные методики прямого синтеза ЦФНЧ разработаны для чебышевских, эллиптических видов аппроксимаций.
Методика синтеза тангенсного ФНЧ Баттерворта (см. п. 1.1.3.) состоит в следующем:
- формулируются требования к АЧХ задаются параметры c, з, Qc, Qз;
- по формулам (2) рассчитываются параметры е и М;
- определяется порядок фильтра по формуле (3);
- вычисляется параметр Rp по формуле (6);
- вычисляются все pn по формуле (8) или (9) в зависимости от четности порядка фильтра N;
- с помощью (11) и (12) вычисляются коэффициенты обратных связей всех биквадратных блоков;
- коэффициенты прямых связей всех биквадратных блоков определяются формулой (14).
Расчет ФНЧ Баттерворта:
e2 = 10-0,1Qc 1= 10-0,1*(-3)-1 = 100,3-1 = 1,995-1 = 0,995 е = 0,997.
M2 = (10-0,1Qз 1)/( 10-0,1Qc 1) = (104-1) / (100,3-1) = 9999 / 0,995 = 10049,246 М = 100.
Получили, что порядок фильтра N=52 (четный).
Получили, что Rp = 0,29.
Т.к. порядок фильтра N=52 четное число, то для вычисления используем следующую формулу:
; n=1,2,…..,N/2 при Nчетном;
При n=1 получаем
Для вычисления используем следующие формулы:
Тогда для n=1 имеем:
Коэффициенты прямых связей определяются формулой:
a1n=2; а2n =1; а = 1;
Тогда получаем следующие коэффициенты прямых связей первого би-блока:
Полученные значения коэффициентов прямых и обратных связей совпадают со значениями, вычисленными с помощью программы (см. таблицу1.3.1.).
Зная коэффициенты прямых и обратных связей, мы можем получить передаточную функцию. В данном случае передаточная функция для 1-го би-блока имеет вид: .
В результате машинного расчета были получены следующие характеристики:
Коэффициенты биквадратных блоков:
Таблица 1.3.1.
Номер блока |
Прямые связи |
Порядок блока |
Обратные связи |
||
1. Фильтр Баттерворта |
|||||
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 |
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 |
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 |
1,099652 1,101054 1,103862 1,108088 1,113750 1,120869 1,129474 1,139600 1,151287 1,164583 1,179541 1,196221 1,214691 1,235024 1,257304 1,281618 1,308064 1,336748 1,367780 1,401283 1,437382 1,476214 1,517918 1,562640 1,610529 1,661736 |
-0,302420 -0,304080 -0,307406 -0,312411 -0,319117 -0,327548 -0,337740 -0,349733 -0,363576 -0,379323 -0,397039 -0,416795 -0,438670 -0,462753 -0,489141 -0,517938 -0,549261 -0,583234 -0,619988 -0,659668 -0,702425 0,748417 0,797811 0,850779 0,907499 0,968147 |
Фильтр Чебышева 1 |
|||||
1 2 3 4 5 6 7 |
1 2 2 2 2 2 2 |
0 1 1 1 1 1 1 |
1 2 2 2 2 2 2 |
0,961265 1,906475 1,862920 1,803991 1,745268 1,701575 1,684103 |
0 -0,926499 -0,933608 -0,944585 -0,958447 -0,974257 -0,991251 |
Фильтр Чебышева 2 |
|||||
1 2 3 4 5 6 7 |
1 -0,573568 -1,705533 -1,238907 -1,470532 -1,577203 -1,620389 |
0 1 1 1 1 1 |
1 2 2 2 2 2 |
0,191069 0,523356 0,828434 0,126649 0,355391 0,519571 1,639364 |
0 -0,131125 -0,336983 -0,542114 -0,706405 -0,835203 -0,945642 |
Эллиптический фильтр |
|||||
1 2 3 |
-0,262118 -1,485686 -1,615751 |
1 1 1 |
2 2 2 |
1,748940 1,697674 1,679303 |
-0,803272 -0,920005 -0,983111 |
АЧХ
ФЧХ
Групповая задержка
Диаграмма полюсов и нулей
Рис.1.3.1. Аппроксимация Баттерворта (порядок = 52)
По приведенным графикам видно, что амплитудно-частотная характеристика имеет гладкую форму. ФЧХ линейна как в полосе пропускания, так и в полосе задержания, поэтому фазовые искажения минимальны. В связи с линейностью ФЧХ также имеет линейную форму в полосе пропускания и в полосе задержания график групповой задержки. Но в связи с такими хорошими характеристиками и аппаратные затраты большие, т.е. порядок фильтра синтезированного с помощью данной аппроксимации максимальный.
АЧХ
ФЧХ
Групповая задержка
Диаграмма полюсов и нулей
Рис.1.3.2. Аппроксимация Чебышева 1 (порядок = 13)
По этим графикам видно, что АЧХ имеет гладкую форму только в полосе задержания, а в полосе пропускания присутствуют пульсации. Графики ФЧХ и групповой задержки имеют сильные перепады в полосе пропускания, но зато в полосе задержания эти графики линейны. Это говорит о том, что данный тип аппроксимации целесообразно применять в тех случаях, когда не накладываются жесткие ограничения на передачу сигнала в зоне пропускания, а частотные составляющие, принадлежащие полосе задержания, должны подавляться без искажений. Снижая качество преобразования сигнала (присутствие пульсаций) уменьшаются и аппаратные затраты при синтезе фильтра, порядок фильтра аппроксимации Чебышева I рода по сравнению с аппроксимацией Баттерворта значительно ниже.
АЧХ
ФЧХ
Групповая задержка
Диаграмма полюсов и нулей
Рис.1.3.3. Аппроксимация Чебышева 2 (порядок = 13)
По полученным графикам видно, что АЧХ фильтра гладкая в полосе пропускания, но в полосе задержания имеет пульсации. Графики ФЧХ и групповой задержки линейны в полосе пропускания, что обеспечивает передачу сигнала в полосе пропускания с минимальными фазовыми искажениями. Но в полосе задержания графики всех характеристик содержат пульсации, поэтому фильтры данной аппроксимации следует применять, когда не накладываются жесткие ограничения на подавление сигнала без искажений в области полосы задержания. Порядок фильтра такой же как и при аппроксимации Чебышева I рода.
АЧХ
ФЧХ
Групповая задержка
Диаграмма полюсо и нулей
Рис.1.3.4. Аппроксимация Элиптическая (порядок = 6)
АЧХ фильтра эллиптической аппроксимации имеет пульсации как в полосе пропускания, так и в полосе задержания. Данный вид аппроксимации обеспечивает самое низкое качество преобразования сигнала. Графики ФЧХ и групповой задержки содержат перепады, поэтому фазовые искажения передачи сигнала также велики. Но вместе со всеми этими недостатками эллиптическая аппроксимация обладает самыми низкими аппаратными затратами. Поэтому, если надо синтезировать фильтр с минимальными аппаратными затратами (минимальным порядком), то соответственно следует выбрать именно эту аппроксимацию.
Рассмотрим эллиптический фильтр.
С помощью программы можно получить следующие данные:
Таблица 2.1.
Номер блока |
Прямые связи |
Порядок блока |
Обратные связи |
||
А1 |
А2 |
В1 |
В2 |
||
Эллиптический фильтр |
|||||
1 2 3 |
-0,262118 -1,485686 -1,615751 |
1 1 1 |
2 2 2 |
1,748940 1,697674 1,679303 |
-0,803272 -0,920005 -0,983111 |
АЧХ ФЧХ
Нули и полюса:
1 би-блок: Zp1=-0,88j(0,20)
Zn1=0,13j(0,99)
2 би-блок: Zp2=-0,84j(0,44)
Zn2=0,74j(0,67)
3 би-блок: Zp3=-0,84j(0,52)
Zn3=0,81j(0,59)
По полученным графикам видно, что АЧХ фильтра гладкая в полосе пропускания, но в полосе задержания имеет равновеликие пульсации, что в свою очередь обеспечивает минимум ошибки аппроксимации, так как она перемещается между максимумами и минимумами равной величины. График ФЧХ линейный в полосе пропускания, что обеспечивает передачу сигнала в полосе пропускания с минимальными фазовыми искажениями. Но в полосе задержания графики всех характеристик содержат пульсации, поэтому фильтры данной аппроксимации следует применять, когда не накладываются жесткие ограничения на подавление сигнала без искажений в области полосы задержания.
Можно использовать формулировку критерия устойчивости через передаточную характеристику ЦФ. Т.к. , то , тогда если , то . Это неравенство означает, что в устойчивом ЦФ передаточная характеристика конечна во всех точках Z-плоскости, где . Это означает, что передаточная характеристика не должна иметь полюсов при , т.е. на единичной окружности и вне ее на Z-плоскости.
Так как полюса не выходят за границы единичной окружности, то это говорит о том, что фильтр является устойчивым.
Важнейшей характеристикой дискретной системы является импульсная характеристика. Импульсная характеристика это реакция системы на единичный импульс . В этом случае выходная последовательность дискретных отсчетов будет соответствовать импульсной характеристике .
Импульсную характеристику можно найти несколькими способами:
Для нахождения импульсной характеристики воспользуемся программным продуктом Matlab и стандартной его компонентой Filter Design & Analysis Tool, в которой как раз и реализован данный метод. Задав необходимые условия, удовлетворяющие варианту задания, получим следующую характеристику, она представлена на рис 5.
.
Рис.5. Импульсная характеристика.
Можно сказать, что ЦФ является устойчивым, если при любых начальных условиях реакция фильтра на любое ограниченное воздействие ограничена, т.е. при выполняется условие , где и некоторые постоянные числа.
Из уравнения следует, что
. Откуда вытекает математическая формулировка критерия устойчивости: . Это необходимое и достаточное условие устойчивости.
Импульсная характеристика фильтра согласно графику имеет затухающий вид, а это свидетельствует о том, что цифровой фильтр является устойчивым, так как удовлетворяется критерий устойчивости.
В практических задачах обработки сигналов и данных возникает потребность в самых разнообразных преобразованиях данных. Значительную часть таких преобразований можно рассматривать как линейные операции над спектром сигнала.
Наиболее эффективный метод синтеза фильтров верхних частот, полосовых и режекторных фильтров состоит в использовании двухэтапной процедуры синтеза:
Рассчитаем частоты среза для режекторного фильтра:
f1=Fc*P1=1,1*4,5=4,95 кГц;
f2=Fc*P2=1,3*4,5=5,85 кГц;
С помощью программы получаем следующие данные:
Номер блока |
Прямые связи |
Порядок блока |
Обратные связи |
||
А1 |
А2 |
В1 |
В2 |
||
Эллиптический фильтр |
|||||
1 2 3 4 5 6 |
-1,582368 -1,535368 -1,610163 -1,502963 -1,618658 -1,492258 |
0,999996 0,999995 0,999955 1,000025 1,000009 1,000047 |
2 2 2 2 2 2 |
1,607066 1,299866 1,626686 1,460486 1,624540 1,481340 |
-0,904538 -0,873869 -0,989230 -0,987324 -0,998283 -0,998018 |
1 би-блок |
2 би-блок |
3 би-блок |
4 би-блок |
5 би-блок |
6 би-блок |
Zn=0,80j(0,51) zp=0,79j(0,61) |
zn=0,64j(0,67) zp=0,77j(0,64) |
zn=0,81j(0,58) zp=0,80j(0,59) |
zn=0,75j(0,61) zp=0,84j(0,53) |
zn=0,81j(0,59 zp=0,81j(0,59 |
zn=0,74j(0,67) zp=0,74j(0,67) |
Цифровой рекурсивный фильтр будет устойчив, если модули zpвсех полюсов zp фильтра имеют значения меньше единицы. Проверим это:
1 би-блок: Zp1=0,80j(0,51), тогда zр1= - устойчив.
2 би-блок: Zp2=0,64j(0,67), тогда zр2= - устойчив.
3 би-блок: Zp3=0,81j(0,58), тогда zр3= - устойчив.
4 би-блок: Zp1=0,75j(0,61), тогда zр1= - устойчив.
5 би-блок: Zp2=0,81j(0,59), тогда zр2= - устойчив.
6 би-блок: Zp3=0,74j(0,67), тогда zр3= - устойчив.
Все 6 би-блоков устойчивы.
АЧХ режекторного фильтра
ФЧХ режекторного фильтра
АЧХ ЦФНЧ - прототипа
ФЧХ ЦФНЧ - прототипа
Режекторный фильтр - фильтр с полосой пропускания от нуля до некоторой частоты wn1 и от wn2 до и полосой задержания от wз1 и до wз2, где wп1 wз1 wз2 wп2. Он наследует от ЦФНЧ прототипа ширину переходной зоны. Кроме того, наследует «форму» АЧХ: имеет пульсации и в полосе пропускания и в полосе задержания. Устойчивость фильтра сохраняется.
Групповая задержка является функцией частоты и приводит к искажению формы сигналов, спектр которых находится в полосе пропускания. Для того чтобы обеспечить минимум искажения сигналов, следует выполнить требования независимости групповой задержки от частоты, что эквивалентно линейности ФЧХ. Также как и у фильтра прототипа в полосе задержания ФЧХ - линейна, а в полосе пропускания ФЧХ нелинейная. Но практический интерес вызывает только полоса пропускания, в связи с чем необходимо обеспечивать линейность ФЧХ именно в этой полосе, добиваясь минимального количества фазовых искажений сигналов.
Итак, мы рассмотрели преобразование ЦФНЧ прототипа в режекторный фильтр. Зная, коэффициенты прямых и обратных связей для режекторного фильтра, мы можем определить передаточную характеристику для всего фильтра и перейти к аппаратной реализации этого фильтра.
Выходная последовательность идеального цифрового фильтра описывается разностным уравнением
При квантовании коэффициентов ai и bi она изменяется. Эффект квантования состоит в замене идеальных коэффициентов ai и bi на слова конечной длины.
Квантование коэффициентов ai и bi изменяет исходное положение нулей и полюсов синтезируемого фильтра на плоскости z-1 и, как следствие, приводит к изменению его амплитудной и фазовой характеристик. При определенных условиях эта погрешность может нарушить устойчивость фильтра.
С учетом квантования последовательность на выходе цифрового фильтра можно выразить следующим образом:
При выполнении арифметических операций с фиксированной запятой меняются в пределах .
Передаточная функция такого «квантованного» фильтра:
Для конкретной задачи цифровой обработки сигналов квантование коэффициентов выполняется путем простого усечения: m разрядное число представляется k-разрядным, и отбрасываются m-k младших разрядов числа.
Шаг квантования q определяется весом разряда коэффициента
, где m разряд числа.
Рассмотрим влияние выбора разрядной сетки на амплитудно-частотную характеристику фильтра.
АЧХ режекторного фильтра:
При m = 4
При m = 6
При m = 8
Как видно из приведенных графиков, ограничения, накладываемые разрядной сеткой, в результате квантования могут заметно изменить значения коэффициентов. График амплитудно-частотной характеристики после квантования коэффициентов будет тем ближе к теоретической, чем большую разрядность имеет разрядная сетка.
Рассматривая полученные графики частотных характеристик для различной длины разрядной сетки, можно сделать такой вывод, что наиболее приемлемый результат, с точки зрения приближения к теоретическим расчетам и степенью аппаратных затрат, получен при m=8.
В связи с ограниченностью разрядной сетки значения коэффициентов прямых и обратных связей в десятичной системе счисления будут отличаться довольно сильно. Приведем значения коэффициентов рассчитанных теоретически, и после квантования с разрядной сеткой равной 8 для одного из биквадратных блока. (для примера покажем первый би-блок)
Теоретически полученные коэффициенты:
№ |
Прямые связи |
Обратные связи |
||
А1 |
А2 |
В1 |
В2 |
|
1 |
-0,266789 |
0,995776 |
-1,755645 |
-0,810526 |
Коэффициенты после квантования:
№ |
Прямые связи |
Обратные связи |
||
А1 |
А2 |
В1 |
В2 |
|
1 |
-0,265642 |
0,994686 |
-1,766438 |
-0,820945 |
Для осуществления аппаратной реализации был выбран процессор фирмы Motorola DSP56000.
Процессор DSP56000 был выбран вследствие того, что по данному процессору разработан стартовый комплекс разработчика (СКР). Также процессор DSP56000 является универсальным процессором, реализующим алгоритмы ЦОС, поэтому для разработки конкретного фильтра, в нашем случае это элиптический фильтр, нет необходимости перестраивать структуру процессора, а нужно лишь правильно его запрограммировать, что упрощает задачу.
Для аппаратной реализации воспользуемся стартовым комплексом разработчика систем ЦОС.
"Стартовый комплекс разработчика" представляет собой программную интегрированную среду под Microsoft Windows 9Х для изучения DSP, разработки, отладки и анализа программных реализаций алгоритмов ЦОС на DSP и позволяет:
Стартовый комплекс разработчика включает две основные подсистемы:
В Подсистеме изучения DSP пользователь имеет возможности:
В Подсистеме проектирования пользователь имеет возможности:
Процессор DSP56000 имеет следующую структурную схему:
Рис.13. Структурная схема процессора DSP56000.
Процессор DSP56002 поддерживает следующие режимы адресации памяти данных:
1. Непосредственная адресация.
Непосредственный операнд задается префиксом #. В этом случае команда требует дополнительного слова расширения, которое содержит операнд. Длина непосредственного операнда может быть равна 6,8,12 или 24-м битам.
2.Абсолютная адресация.
Режим адресации при котором одно слово расширения команды используется для указания адреса операндов. Перед адресом должно быть указано подпространство памяти к которому относится операнд (X:,Y: и пр.). Поддерживаются пересылки типа регистр-память, память-регистр.
3. Адресация ввода/вывода.
Режим задается префиксом <<, который ставиться перед адресом. Используется в командах MOVEP. Адреса для ввода/вывода расположены в памяти X и Y с $FFC0 по $FFFF.
4. Прямая регистровая адресация.
В команде указываются регистры, между которыми должен производится обмен (пересылки типа регистр-регистр).
5. Косвенная регистровая адресация.
В этом режиме адрес операнда задается в одном из восьми адресных регистров AGU (R0-R7). Это наиболее часто встречающийся режим, так как обеспечивается максимальная производительность при работе с памятью (нет надобности в словах расширения командного слова, поддерживаются большие возможности по модификации адресов с использованием адресных арифметических устройств, регистров смещения N0-N7 и регистров модификации M0-M7). Ниже рассматриваются основные виды косвенной регистровой адресации.
5.1. Режим без модификации. В этом режиме содержимое адресного регистра используется как адрес памяти данных;
5.2. Постдекремент (постинкремент) адресного регистра. Содержимое текущего дополнительного регистра используется как адрес памяти данных, а затем
декрементируется (инкрементируется);
5.3. Предекремент (преинкремент). Содержимое адресного регистра декрементируется (инкрементируется) а затем используется как адрес памяти данных;
5.4. Постдекремент (постинкремент) адресного регистра Rx со значением регистра смещения Nx. Cодержимое адресного регистра используется как адрес памяти
данных, а затем из него вычитается (прибавляется) содержимое регистра смещения;
5.5. Индексирование адресного регистра Rx значением регистра смещения Nх. Из содержимого адресного регистра вычитается (прибавляется) содержимое
регистра смещения, а затем используется как адрес памяти данных. Значение в адресном регистре не изменяется после выполнения команды;
Рассмотрим некоторые блоки процессора более подробнее.
Арифметико-логическое устройство
АЛУ данных разработано для повышения производительности процессов обработки сигналов широкого динамического диапазона и выполнения всех арифметических и логических операций с операндами данных в DSP. Регистры АЛУ данных могут быть прочитаны или записаны 24-битными или 48-битными операндами по шинам XDB, YDB. Операнды источника, которые могут быть длиной 24, 48 и 56 бит, всегда находятся в регистрах АЛУ данных. Результат всех операций в АЛУ данных сохраняется в аккумуляторе. 24-битные данные обеспечивают динамический диапазон в 144 децибела. Такого диапазона достаточно для большинства приложений, в которых используются параметры разрядностью не больше 24 бит. 56-битный внутренний аккумулятор АЛУ данных обеспечивает 336 децибел внутреннего динамического диапазона.
Следующие операции выполняются в АЛУ данных за один цикл: умножение, округление, сложение, вычитание, деление, нормализация, сдвиги и логические
операции.
Память программ
Память программ состоит из 3840 ячеек по 24 бит, часть её может занимать высокоскоростное ПЗУ, использование которой задаётся битами MA и MB. В случае
если внутренняя память программ запрещена используется внешняя память (расширяется до 64К слов).
Генератор адресов AGU
AGU выполняет вычисление эффективного адреса для адресации операндов данных в памяти. Это устройство использует три типа арифметики: линейную, абсолютную и реверсивный перенос, и работает параллельно с остальными устройствами на кристалле, что минимизирует затраты на генерацию адресов.
Блок регистров адреса (R0-R3 и R4-R7). Каждый из двух блоков регистров содержит четыре 16-битных регистра адреса для обращения к памяти. Каждый регистр может быть прочитан или записан с использованием глобальной шины данных. При выдаче содержимого регистров на шину данных 16-битные регистры записываются в два младших байта шины данных, а старший байт заполняется нулями. При записи в регистры старший байт шины данных отсекается. Каждый адресный регистр может использоваться как вход АЛУ адресов для модификации регистров. Если параллельно осуществляется пересылка данных из памяти Х и из памяти Y, адресные регистры разделяются на два блока, R0-R3, R4-R7.
Блок регистров смещения (N0-N3 и N4-N7). Каждый из двух блоков регистров содержит четыре 16-битных регистра смещения, используемые для модификации адресных указателей или данных. Каждый регистр может быть прочитан или записан с использованием глобальной шины данных. При выдаче содержимого регистров на шину данных 16-битные регистры записываются в два младших байта шины данных, а старший байт заполняется нулями. При записи в регистры старший байт шины данных отсекается.
Блок регистров модификации (M0-M3 и М4-М7). Каждый из двух блоков регистров модификации содержит четыре 16-битных регистра, которые определяют тип арифметики для вычисления модификаций регистров адреса или данных. Каждый регистр может быть прочитан или записан с использованием глобальной шины данных. При выдаче содержимого регистров на шину данных 16-битные регистры записываются в два младших байта шины данных, а старший байт заполняется нулями. При записи в регистры старший байт шины данных отсекается. Каждый регистр модификации устанавливается в $FFFF после сброса, что означает линейную арифметику при вычислении модификаций адреса.
АЛУ адресов. Два АЛУ адресов содержат 16-битный полный адрес, который может быть инкрементирован, декрементирован, или индексирован содержимым регистра смещения. Второй полный адрес (т. называемый модуль) определяется результатом суммирования первого полного слагаемого с величиной модуля, хранящейся в регистре модификации. Третий полный адрес определяется инкрементированием, декрементированием содержимого адресного регистра или его суммированием с величиной смещения и переносом. Смещение и реверсивный перенос подаются параллельно на разные входы. Тестовая логика определяет, какой из трех результатов подается на выход в качестве полного адреса. Каждое АЛУ адресов может модифицировать один регистр адреса в течение одного командного цикла. Величина модификатора декодируется в АЛУ адресов.
Структура AGU показана на рис.14.
Рис.14. Структура генератора адресов AGU.
Программный комплекс DSP kit фирмы Motorola позволяет создать программу, реализующую заданный фильтр. Для этого сначала необходимо задать структуру синтезируемого фильтра. Далее будут подробно рассмотрены шаги работы с программой.
1. СКР выбрираем пункт меню «Инструменты -> Расчет фильтра».
2. Заетм выбираем форму АЧХ фильтра, согласно варианту задания выбираем режекторный фильтр (bandstop).
3. Далее вводим частоты среза и задержания согласно варианту задания:
Fpass1=4.5 кГц
Fstop1=4.95 кГц
Fpass2=15 кГц
Fstop2=15.45 кГц
а так же значения пульсаций равными 0,01.
4. Программа вычислила порядок фильтра эллиптической апроксимации он равен 14.
5. Затем сохраняем полученную структуру в файл.
6. Создаем программу реализации фильтра: для этого в СКР выбрать пункт меню «Инструменты -> Расчет фильтра», и в предложенном диалоге выбрать генерацию программного кода (Code generator). Программа предложит загрузить структуру фильтра, которую мы сохранили в файл выше. Для этого в диалоге ввода необходимо указать путь к этому файлу и стартовый комплекс разработчика автоматически составит текст программы. Текст программы для нашего случая представлен в приложении 1.
Стартовый комплекс позволяет эмулировать обработку сигнала, и получить результаты либо в виде графиков, либо в табличном виде. Для этого необходимо добавить сигнал (пункт меню «Сигнал»). Далее нужно выбрать пункт меню «Анализ». В появившемся диалоге указываем параметры представления входных и выходных сигналов, а также число отсчетов, начальный отсчет и шаг выборки.
Приведем графики полученные в результате работы проргаммы.
Вход
Выход
.
В данной курсовой работе был произведен синтез элиптического цифрового фильтра. Были рассмотрены основные методы синтеза и анализа. Исследованы и проанализированы различные аппроксимации цифрового фильтра. Было исследовано влияние нулей и полюсов на характеристики фильтра, получены передаточная и импульсная характеристики ЦФ, рассмотрены методы нахождения АЧХ и ФЧХ. Кроме того, было исследовано, каким образом влияет изменение разрядной сетки коэффициентов передаточной функции на АЧХ цифрового фильтра.
Отсюда следует что синтезированный элиптический фильтр дает приемлемые характеристики обработки сигнала, исходя из соотношения между качеством обработки сигнала и аппаратными затратами (в полосе подавления присутствуют пульсации, но порядок фильтра довольно низкий). Фазовые искажения, исходя из графиков фазо-частотной характеристики и групповой задержки, минимальны в полосе пропускания, но имеют сильные колебания в полосе подавления.
При преобразовании режекторный фильтр унаследовал от фильтра-прототипа нижних частот ширину переходной полосы, пульсации (тип аппроксимации). Аппаратные затраты (порядок фильтра) увеличились вдвое, так как необходимо обеспечивать реализацию двух переходных полос между полосой пропускания и подавления.
Аппаратная реализация была осуществлена с помощью стартового комплекса разработчика на процессоре фирмы Motorola DSP56000. Составлена программа, реализующая данный фильтр.
Текст программы, реализующей фильтр Чебышева II рода на процессоре DSP56000
>
*************************************************
* ASPI TMS32010 DIGITAL FILTER REALIZATION *
* *
* FILTER GENERATED FROM FILE d:\dspk\elip.flt *
*************************************************
*************************************************
* LABEL DEFINITION AREA *
*************************************************
*
FILIN EQU 0
FILOUT EQU 1
*
*************************************************
* 7-STAGE RECURSIVE FILTER *
*************************************************
*************************************************
* LOCATION 0 - BRANCH TO INITIALIZATION CODE *
*************************************************
AORG 0
B START
*************************************************
* COEFFICIENT STORAGE AREA *
*************************************************
AORG 8
*
* SECOND-ORDER SECTION # 1
*
DATA 10181
DATA 6425
DATA 26342
DATA -20365
DATA 26342
*
* SECOND-ORDER SECTION # 2
*
DATA -24536
DATA -17682
DATA 27077
DATA 27077
*
* SECOND-ORDER SECTION # 3
*
DATA 24525
DATA -23402
DATA 15515
DATA -21580
DATA 15515
*
* SECOND-ORDER SECTION # 4
*
DATA -23480
DATA -28019
DATA 24727
DATA 12147
DATA 24727
*
* SECOND-ORDER SECTION # 5
*
DATA 26332
DATA -29893
DATA 16125
DATA -25414
DATA 16125
*
* SECOND-ORDER SECTION # 6
*
DATA -22849
DATA -31748
DATA 29840
DATA 18114
DATA 29840
*
* SECOND-ORDER SECTION # 7
*
DATA 26917
DATA -32155
DATA 16585
DATA -26889
DATA 16585
************************************************
* A/D CARD CONTROL PARAMETERS *
************************************************
MASK EQU 2
MODE EQU 3 A/D-D/A CONTROL ADDR.
RATE EQU 4 SAMPLING RATE ADDR.
************************************************
* A/D CARD INITIALIZATION CODE *
************************************************
START B GO
DMASK DATA >8000
DMODE DATA >A A/D-D/A MODE
DRATE DATA 2621 SAMPLING RATE
GO LACK DMODE
TBLR MODE
LACK DMASK
TBLR MASK
LACK DRATE
TBLR RATE
CALL FILINT INITIALIZE
OUT MODE,0 A/D SETUP
OUT RATE,1 SAMPLING RATE
************************************************
* MAIN I/O LOOP *
************************************************
LPTS BIOZ GET WAIT FOR CLOCK
B LPTS BRANCH IF NO CLOCK
GET OUT FILOUT,2 OUTPUT LAST OUTPUT
IN FILIN,2 INPUT SAMPLE
ZALS FILIN LOAD INPUT
XOR MASK REVERSE SIGN BIT
SACL FILIN SAVE IN INPUT
CALL FILTER EXECUTE FILTER
ZALS FILOUT GET OUTPUT
XOR MASK REVERSE SIGN BIT
SACL FILOUT SAVE RESULT
B LPTS LOOP
*************************************************
* FILTER INITIALIZATION SUBROUTINE *
*************************************************
FILINT LACK 1 GET A 1
SACL 39,0 TEMPORARY SAVE
LT 39 LOAD 1 IN T
MPYK 1 1 INTO P
SOVM SATURATION ARITHMETIC
LARK 1,34 NUMBER OF POINTS
LARK 0,5 POINTER TO DM
LACK 8 POINTER TO DM
ILP LARP 0 RESET AR TO 0
TBLR *+,1 TRANSFER DATA VALUE
APAC INCREMENT POINTER
BANZ ILP LOOP
LARK 1,13 NUMBER OF POINTS
LARK 0,39 POINTER TO DM
ZAC CLEAR ACCUMULATOR
ILPA LARP 0 RESET AR TO 0
SACL *+,0,1 CLEAR DATA VALUE
BANZ ILPA LOOP
RET INIT RETURN
*************************************************
* FILTER SUBROUTINE *
*************************************************
*
* SECOND-ORDER FILTER SECTION # 1
*
FILTER LAC FILIN,15 GET & SCALE INOUT
SACH FILIN SAVE SCALED INPUT
LT FILIN GET SCALE INPUT
MPY 7 B0 MULTIPLY
ZALH 39 GET Z-1
APAC FORM OUTPUT
ADDH 39 MULTIPLY BY 2
APAC FORM OUTPUT
SACH FILOUT SAVE OUTPUT
MPY 8 B1 MULTIPLY
ZALH 40 GET Z-2
LTA FILOUT GET CURRENT OUTPUT
MPY 5 A1 MULTIPLY
LTA FILOUT GET CURRENT OUTPUT
SACH 39 SAVE Z-1
MPY 6 A2 MULTIPLY
ZAC INIT. ACC
LTA FILIN GET SCALED INPUT
MPY 9 B2 MULTIPLY
APAC FORM RESULT
SACH 40 SAVE Z-2
*
* SECOND-ORDER FILTER SECTION # 2
*
LAC FILOUT,15 GET & SCALE PRE. OUT.
SACH FILIN SAVE SCALED INPUT
LT FILIN GET SCALE INPUT
MPY 12 B0 MULTIPLY
ZALH 41 GET Z-1
APAC FORM OUTPUT
ADDH 41 MULTIPLY BY 2
APAC FORM OUTPUT
SACH FILOUT SAVE OUTPUT
MPYK 2327 B1 MULTIPLY
ZALH 42 GET Z-2
LTA FILOUT GET CURRENT OUTPUT
MPY 10 A1 MULTIPLY
LTA FILOUT GET CURRENT OUTPUT
SACH 41 SAVE Z-1
MPY 11 A2 MULTIPLY
ZAC INIT. ACC
LTA FILIN GET SCALED INPUT
MPY 13 B2 MULTIPLY
APAC FORM RESULT
SACH 42 SAVE Z-2
*
* SECOND-ORDER FILTER SECTION # 3
*
LAC FILOUT,1 GET & SCALE PRE. OUT.
SACL FILIN SAVE SCALED INPUT
LT FILIN GET SCALE INPUT
MPY 16 B0 MULTIPLY
ZALH 43 GET Z-1
APAC FORM OUTPUT
ADDH 43 MULTIPLY BY 2
APAC FORM OUTPUT
SACH FILOUT SAVE OUTPUT
MPY 17 B1 MULTIPLY
ZALH 44 GET Z-2
LTA FILOUT GET CURRENT OUTPUT
MPY 14 A1 MULTIPLY
LTA FILOUT GET CURRENT OUTPUT
APAC EXTRA LOOP ADD
SACH 43 SAVE Z-1
MPY 15 A2 MULTIPLY
ZAC INIT. ACC
LTA FILIN GET SCALED INPUT
MPY 18 B2 MULTIPLY
APAC FORM RESULT
SACH 44 SAVE Z-2
*
* SECOND-ORDER FILTER SECTION # 4
*
ZALH FILOUT GET PREVIOUS OUTPUT
SACH FILIN SAVE SCALED INPUT
LT FILIN GET SCALE INPUT
MPY 21 B0 MULTIPLY
ZALH 45 GET Z-1
APAC FORM OUTPUT
ADDH 45 MULTIPLY BY 2
APAC FORM OUTPUT
SACH FILOUT SAVE OUTPUT
MPY 22 B1 MULTIPLY
ZALH 46 GET Z-2
LTA FILOUT GET CURRENT OUTPUT
MPY 19 A1 MULTIPLY
LTA FILOUT GET CURRENT OUTPUT
SACH 45 SAVE Z-1
MPY 20 A2 MULTIPLY
ZAC INIT. ACC
LTA FILIN GET SCALED INPUT
MPY 23 B2 MULTIPLY
APAC FORM RESULT
SACH 46 SAVE Z-2
*
* SECOND-ORDER FILTER SECTION # 5
*
LAC FILOUT,1 GET & SCALE PRE. OUT.
SACL FILIN SAVE SCALED INPUT
LT FILIN GET SCALE INPUT
MPY 26 B0 MULTIPLY
ZALH 47 GET Z-1
APAC FORM OUTPUT
ADDH 47 MULTIPLY BY 2
APAC FORM OUTPUT
SACH FILOUT SAVE OUTPUT
MPY 27 B1 MULTIPLY
ZALH 48 GET Z-2
LTA FILOUT GET CURRENT OUTPUT
MPY 24 A1 MULTIPLY
LTA FILOUT GET CURRENT OUTPUT
APAC EXTRA LOOP ADD
SACH 47 SAVE Z-1
MPY 25 A2 MULTIPLY
ZAC INIT. ACC
LTA FILIN GET SCALED INPUT
MPY 28 B2 MULTIPLY
APAC FORM RESULT
SACH 48 SAVE Z-2
*
* SECOND-ORDER FILTER SECTION # 6
*
ZALH FILOUT GET PREVIOUS OUTPUT
SACH FILIN SAVE SCALED INPUT
LT FILIN GET SCALE INPUT
MPY 31 B0 MULTIPLY
ZALH 49 GET Z-1
APAC FORM OUTPUT
ADDH 49 MULTIPLY BY 2
APAC FORM OUTPUT
SACH FILOUT SAVE OUTPUT
MPY 32 B1 MULTIPLY
ZALH 50 GET Z-2
LTA FILOUT GET CURRENT OUTPUT
MPY 29 A1 MULTIPLY
LTA FILOUT GET CURRENT OUTPUT
SACH 49 SAVE Z-1
MPY 30 A2 MULTIPLY
ZAC INIT. ACC
LTA FILIN GET SCALED INPUT
MPY 33 B2 MULTIPLY
APAC FORM RESULT
SACH 50 SAVE Z-2
*
* SECOND-ORDER FILTER SECTION # 7
*
LAC FILOUT,1 GET & SCALE PRE. OUT.
SACL FILIN SAVE SCALED INPUT
LT FILIN GET SCALE INPUT
MPY 36 B0 MULTIPLY
ZALH 51 GET Z-1
APAC FORM OUTPUT
ADDH 51 MULTIPLY BY 2
APAC FORM OUTPUT
SACH FILOUT SAVE OUTPUT
MPY 37 B1 MULTIPLY
ZALH 52 GET Z-2
LTA FILOUT GET CURRENT OUTPUT
MPY 34 A1 MULTIPLY
LTA FILOUT GET CURRENT OUTPUT
APAC EXTRA LOOP ADD
SACH 51 SAVE Z-1
MPY 35 A2 MULTIPLY
ZAC INIT. ACC
LTA FILIN GET SCALED INPUT
MPY 38 B2 MULTIPLY
APAC FORM RESULT
SACH 52 SAVE Z-2
RET RETURN
END
<