Министерство РФ по связи и информатизации

Московский технический университет связи и информатики.


Кафедра радиотехнических систем



Лабораторная работа №37


ИЗУЧЕНИЕ РЕАЛИЗАЦИИ НЕРЕКУРСИВНОГО ФИЛЬТРА НА ЦИФРОВОМ СИГНАЛЬНОМ ПРОЦЕССОРЕ ADSP-2181.

Москва 2003



Автор: 

Рецензент:

Редактор:

© Кафедра радиотехнических систем Московского Технического Университета Связи и Информатики, 2003г.

1.ЦЕЛЬ РАБОТЫ


Целью лабораторной работы является изучение принципов цифровой фильтрации, алгоритма цифровой фильтрации и его реализации на цифровом сигнальном процессоре (ЦСП)  ADSP-2181.

2.ПРЕДВАРИТЕЛЬНАЯ ПОДГОТОВКА


А. Выполняется при домашней подготовке

Изучить принцип цифровой фильтрации по указанной литературе. Изучить по данному описанию алгоритм цифровой фильтрации и его программную реализацию на ЦСП ADSP-2181. Для заданного варианта (таблица 1) входного сигнала и коэффициентов фильтра получить сигнал на выходе фильтра. Для заданных в таблице 2 коэффициентов получить амплитудно-частотную характеристику (АЧХ) цифрового фильтра.

Б. Выполняется в лаборатории.

С помощью программы «DSP Navigator» ознакомиться с принципом работы цифрового фильтра, реализованного на ЦСП ADSP-2181 и порядком выполнения программы для ЦСП. Используя свой вариант из таблицы 1получить сигнал на выходе цифрового фильтра и сравнить его  с сигналом, полученным при домашнем расчёте. Сравнить полученную при домашнем расчёте АЧХ фильтра с полученной в программе (для коэффициентов, взятых из таблицы 2). Зарисовать для этого варианта коэффициентов отклик на входное воздействие в виде единичного импульса. Проверить полученные знания, заполнив пустые места в предлагаемом варианте программы.

3.МЕТОДИЧЕСКИЕ УКАЗАНИЯ


Типичной задачей цифровой обработки сигналов является линейная фильтрация. Цифровые фильтры (ЦФ) обладают рядом существенных преимуществ, среди которых высокая стабильность параметров, возможность получения разнообразных форм частотных характеристик. ЦФ не требуют настройки и легко реализуются программными методами. Цифровая фильтрация получила новый стимул развития с появлением сигнальных процессоров, позволяющих обрабатывать сигналы в реальном масштабе времени. Высокая производительность сигнальных процессоров достигается благодаря их принципиально другой архитектуре,  многофункциональной и гибкой системе команд, аппаратной реализации большинства типичных для данных приложений операций, высокой степени параллелизма процессов в микропроцессоре, сокращения командного такта [1].

НЕ нашли? Не то? Что вы ищете?

Математическая теория ЦФ переносит на случай дискретных сигналов все основные положения теории линейных систем, преобразующих непрерывные сигналы [2]. Нерекурсивный цифровой фильтр или фильтр с конечной импульсной характеристикой (КИХ или FIR фильтр) реализует алгоритм дискретной временной свертки.  Общий алгоритм линейной цифровой фильтрации, вытекающий из свойств линейности и стационарности ЦФ, состоит в следующем. На вход ЦФ с известной импульсной характеристикой {hk} поступает сигнал, представляющий собой последовательность отсчётов {xk} = (x0, x1, x2, x3,…,). Можно записать n-ый отсчет выходного сигнала {yk} с помощью разностного уравнения:

  (1)

представляющего собой дискретную свёртку входного сигнала{xk} и импульсной характеристики фильтра {hk}. Таким образом, ЦФ производит взвешенное суммирование всех предыдущих значений входного сигнала, причём весовыми коэффициентами являются коэффициенты фильтра конечной длины N (его импульсная характеристика). Число N является порядком цифрового нерекурсивного фильтра.

Таблица 1


Номер варианта

Последовательность входных отсчётов {xk}

Коэффициенты фильтра {hk}

1

(1,1,1,1,-1,-1,-1,-1)

(1,1,0,0,0)

2

(-3,-2,-1,0,1,2,3,0)

(0,0.5,1,0.5,0)

3

(1,1,1,1,-1,-1,-1,-1)

(1,-1,0,0,0)

4

(-3,-2,-1,0,1,2,3,0)

(0,-0.5,1,-0.5,0)

5

(1,1,1,1,-1,-1,-1,-1)

(-1,1,0,0,0)

6

(-3,-2,-1,0,1,2,3,0)

(1,0,1,0,1)

7

(1,1,1,1,-1,-1,-1,-1)

(0.5,0,-1,0,0.5)

8

(-3,-2,-1,0,1,2,3,0)

(1,1,0,0,0)

9

(1,1,1,1,-1,-1,-1,-1)

(0,0.5,1,0.5,0)

10

(-3,-2,-1,0,1,2,3,0)

(1,-1,0,0,0)

11

(1,1,1,1,-1,-1,-1,-1)

(0,-0.5,1,-0.5,0)

12

(-3,-2,-1,0,1,2,3,0)

(-1,1,0,0,0)

13

(1,1,1,1,-1,-1,-1,-1)

(1,0,1,0,1)

14

(-3,-2,-1,0,1,2,3,0)

(0.5,0,-1,0,0.5)



Таблица 2


Номер варианта

Импульсная характеристика ЦФ {hk}

1

(1,0,0,0,0)

2

(1,-1,0,0,0)

3

(1,1,0,0,0)

4

(-1,1,0,0,0)

5

(1,0,1,0,1)

6

(0.5,0,-1,0,0.5)

7

(0,-0.5,1,-0.5,0)

8

(0,0.5,1,0.5,0)

9

(1,0,1,0,1)

10

(-1,0,0,0,0)

11

(1,-1,0,0,0)

12

(1,1,0,0,0)

13

(-1,1,0,0,0)

14

(1,0,1,0,1)


Примечание: номер варианта  соответствует номеру бригады по журналу.

Пример расчета отклика ЦФ (пункт 2.А.3). Дискретный сигнал задан пятью равноотстоящими отсчётами {xk}= (5, 4, 3, 2, 1). При расчете предполагается, что фильтрация начинается в момент времени, соответствующем нулевому отсчёту, то есть предыдущие значения входного сигнала (…, x-3, x-2, x-1,) принимаются равными нулю{xk}= (…, 0, 0, 0, 0, 5, 4, 3, 2, 1).  Импульсная характеристика ЦФ задана коэффициентами фильтра {hk} = (-0.5, 0.5  1  0.5 –0.5). Сигнал на выходе ЦФ представляется в виде последовательности отсчётов:

На рис 1 изображены: а) входной сигнал, б) импульсная характеристика ЦФ и в) выходной сигнал для данного примера соответственно.

  а)  б)  в)

Рис.1.

Расчёт АЧХ цифрового фильтра (пункт 2.А.4) удобно проводить используя методы z-преобразований. Сопоставим дискретным сигналам {xk}, {yk} и {hk} их z-преобразования X(z),Y(z) и H(z) соответственно. Выходной сигнал фильтра {yk} есть свёртка входного сигнала и импульсной характеристики, поэтому:

  (2)

Системная функция H(z)  стационарного линейного ЦФ – отношение z-преобразования выходного сигнала к z-преобразованию сигнала на входе, то есть z-преобразование импульсной характеристики. Для нахождения частотного коэффициента передачи ЦФ в его системной функции делается подстановка , где Δ - интервал дискретизации.

Пример расчета отклика ЦФ. Цифровой фильтр имеет импульсную характеристику {hk}, состоящую из отсчётов (1,0,-1). Системная функция этого ЦФ равна:

откуда:

и АЧХ фильтра:

изображена на рис. 2. АЧХ фильтра является периодической функцией, но практически она имеет смысл лишь в интервале частот от 0 до ω=π/Δ.

Рис. 2.

ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ЦИФРОВОГО НЕРЕКУРСИВНОГО ФИЛЬТРА


Ниже приводится текст программы цифровой фильтрации (КИХ-фильтр) для процессора ADSP-2181.


0100

Wl:

IDLE; {цикл ожидания прерывания SPORT0}

0101

CNTR=LENGTH-1; {задание длины циклического буфера коэффициентов}

0102

MR=0; MX0=DM(I0,M0),MY0=PM(I4,M4); {обнуление накопителя, считывание значений x(n-N+1) и h(N-1) из памяти}

0103

DO Co UNTIL CE; {цикл умножения h(k)*x(n-k) с накоплением}

0104

Co:

MR=MR+MX0*MY0(SS),MX0=DM(I0,M0), MY0=PM(I4,M4);

0105

MR=MR+MX0*MY0(RND);{умножение h(0)*x(n-k), накопление}

0106

IF MV SAT MR; {и округление с насыщением}

0107

TX0=MR1; {запись y(n) из MR1 в регистр передачи SPORT0}

0108

JUMP Wl; {переход к началу цикла (возврат к режиму ожидания следующего прерывания)}

000C

SR1 = RX0; {чтение отсчета данных x(n) с порта SPORT0}

000D

DM(I0,M0)=SR1;{пересылка x(n) в начало очереди данных}

000E

RTI; {возвращение в главную программу}


I0 –начало очереди данных

I4 = начало буфера коэффициентов

M0, M4 = 1 Возвращаемые значения

TX0 = выходной отсчет (с округлением)

I0 – указывает начало очереди данных

I4 – указывает начало таблицы коэффициентов

Изменяемые регистры: SI, MX0, MY0, MR, CNTR

Программа реализации цифрового фильтра содержит главный модуль и модуль подпрограммы обработки данных. Подпрограмма обработки данных вызывается из главного модуля  по прерыванию приема очередного отсчета данных.

Главный модуль обеспечивает управление синхронизированным вводом/выводом данных и их алгоритмической обработкой. Ввод/вывод данных осуществляется через последовательный порт сигнального процессора SPORT0. Порт работает в режиме внутренней тактовой и кадровой синхронизации. Источниками – приемниками данных могут быть любые внешние последовательные устройства, в том числе АЦП и ЦАП, непосредственно сопрягаемые с последовательными портами процессора. При этом импульсы внутренней кадровой синхронизации порта, выводимые наружу, используются также в качестве импульсов частоты дискретизации преобразуемого в код сигнала. Возможен также вариант с внешней кадровой синхронизацией порта с частотой выборок сигнала, то есть с внешней частотой дискретизации. Ввод данных в процессор и их обработка выполняются по прерываниям приема данных, генерируемых портом, также как и вывод обработанных данных.

В главном модуле программы осуществляется настройка прерываний и системных регистров процессора, выполняется программирование последовательного порта SPORT0, организуется цикл ожидания прерывания приема данных. По генерируемому портом прерыванию вызывается подпрограмма обработки данных цифрового фильтра, при возврате из которой процессор снова переводится в цикл ожидания очередного отсчета данных из последовательного порта.

Значения h(N – 1), h(N – 2), … h(1), h(0) в указанной последовательности размещаются по возрастающим адресам памяти программ, образуя массив или циклический буфер коэффициентов. Они умножаются на соответствующие отсчеты входного сигнала x(n–N+1), x(n–N+2), … x(n–1), x(n), которые образуют сигнальную память фильтра или циклический буфер отсчетов сигнала в памяти данных процессора. Ему соответствует структура данных типа очередь постоянной длины. Очередной отсчет сигнала x(n) после его обработки замещает самое старое значение сигнала в очереди x(n–N). Адрес этого отсчета определяет начало очереди, которое циклически перемещается в буфере в процессе обработки сигнала. Такому способу обработки соответствует алгоритм программной реализации нерекурсивного фильтра без сдвига сигнальной памяти. Исходный адрес начала очереди соответствует обычно началу буфера в памяти данных.

В модуле подпрограммы, реализующем базовую операцию свертки осуществляется алгоритмическая обработка очередного отсчета сигнала, который считывается с приемного регистра порта RX0.  Выходной отсчет данных записывается в передающий регистр последовательного порта TX0. Все коэффициенты и значения данных для нерекурсивного фильтра представляются в формате 1.15.

4.ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ В ЛАБОРАТОРИИ.


Загрузить программу (файл DSPNAVIG. EXE). Запустить вторую часть программы – ADSP 2181 Application. В появившемся меню выбрать «FIR Model». Ввести в компьютер исходные величины в соответствии со своим вариантом таблицы 1 и 2. Зарисовать структурную схему нерекурсивного цифрового фильтра, его частотную и импульсную характеристику, а также входной и выходной сигналы для своего варианта. Выйти в меню «Application menu» и выбрать «FIR Program on AD 2181». Изучить работу программы с помощью пошагового выполнения («Single step on»). Выйти в меню «Application menu» и выбрать «Blankety blank». На пустые места в программе расставить недостающие строчки (под красной чертой), перетаскивая их с помощью указателя мыши, удерживая левую кнопку.

Примечание:

В приложении приведены русифицированные варианты некоторых окон программы DSPNAVIG. EXE.

СОДЕРЖАНИЕ ОТЧЕТА


Отчет должен содержать: цель работы, алгоритм и программу цифровой фильтрации для ЦСП ADSP-2181, схему цифрового фильтра, результаты домашнего расчета и компьютерного моделирования, выводы по проделанной работе. 

КОНТРОЛЬНЫЕ ВОПРОСЫ.


Принцип цифровой фильтрации. Импульсная характеристика цифрового фильтра и её свойства. Как определяется понятие системной функции цифрового фильтра? Чем принципиально отличаются импульсные характеристики нерекурсивных и рекурсивных фильтров? Как вычисляется АЧХ и ФЧХ нерекурсивного цифрового фильтра. Передаточная функция рекурсивного фильтра 2-ого порядка. Вычисление дискретной свертки. Почему нерекурсивные ЦФ являются устойчивыми системами? Какова структура программ цифровой фильтрации? Подпрограмма вычисления свертки на ЦСП ADSP2181. Каковы основные команды программы реализации нерекурсивного фильтра? Где хранятся данные и коэффициенты, как формируются их адреса? Как задаются данные и коэффициенты в программе? Возвращаемые и изменяемые параметры и регистры. Какие устройства используются при реализации фильтра на ЦСП? Покажите схему подключения АЦП и ЦАП при программной реализации цифровых фильтров. Как производится ввод/вывод данных в процессор ADSP2181. Составьте схему алгоритма программной реализации нерекурсивного фильтра, соответствующую приводимому примеру его программы. Чем определяется максимальный порядок фильтра? Оценить число инструкций при реализации нерекурсивного фильтра порядка N на ЦСП.

ЛИТЕРАТУРА

Сперанский сигнальные процессоры и их применение для формирования и обработки сигналов. Учебное пособие. – М.: МТУСИ, 1997, стр. 46-50. Баскаков цепи и сигналы. – М.: Высшая школа, 2000, стр. 388-407.

ПРИЛОЖЕНИЕ


© Кафедра радиотехнических систем Московского Технического Университета Связи и Информатики, 2003г.