Разработка подпрограммы на языке ассемблера для ЦСП ADSP-2189, реализующей цифровой фильтр, страница 3

RTS;


5 Характеристики фильтра

            Отсчёты импульсной характеристики фильтра и тестовые данные были сформированы в пакете Matlab. Для проверки правильности разработанной программы приведём характеристики, полученные с помощью программы и с помощью Matlab.

Импульсная характеристика фильтра.

Для получения импульсной характеристики подадим на вход фильтра дельта-функцию . Так как в формате 1.15 числа представлены в диапазоне (-1;1), то при реализации в  разработанной подпрограмме 1 заменяем на 0.999999r.

Рис. 2. Импульсная характеристика:

a) импульсная характеристика, полученная с помощью разработанной программы;

б) импульсная характеристика, полученная с помощью разработанной программы (увеличенный масштаб);

в) импульсная характеристика, полученная с помощью Matlab;

г) импульсная характеристика, полученная с помощью Matlab (увеличенный масштаб).


Переходная характеристика фильтра.

            Для получения импульсной характеристики подадим на вход фильтра единичную ступенчатую функцию . Необходимо отметить, что, так как по условию входной массив X кольцевой, то для соблюдения условия u[n]=0 при n<0 необходимо подавать на вход фильтра сигнал , где N-длина входного сигнала, K-длина импульсной характеристики. Тогда в выражении  при n<k получаем x[n-k]=0.

Как и в случае импульсной характеристики при реализации в программе заменяем 1 на 0.999999r.

Рис. 3. Переходная характеристика:

a) переходная характеристика, полученная с помощью разработанной программы;

б) переходная характеристика, полученная с помощью разработанной программы (увеличенный масштаб);

в) переходная характеристика, полученная с помощью Matlab;

г) переходная характеристика, полученная с помощью Matlab (увеличенный масштаб).


Амплитудно-частотная характеристика (АЧХ) фильтра.

            Для получения АЧХ фильтра возьмём действительную часть преобразования Фурье импульсной характеристики фильтра.

Рис. 4. АЧХ фильтра:

a) АЧХ полученная, с помощью разработанной программы;

б) АЧХ полученная, с помощью Matlab.

Разработанный фильтр является фильтром высоких частот с частотой среза  Гц/отсчёт ( рад/с/отсчёт).
Фильтрация тестового сигнала.

Для проверки работоспособности программы подадим на вход фильтра тестовый сигнал:

Рис. 5. Фильтрация тестового сигнала (разработанная программа):

a) входной сигнал во временной области;

б) выходной сигнал во временной области;

в) входной сигнал в частотной области;

г) выходной сигнал в частотной области;

            Как нетрудно заметить фильтр задержал низкочастотную составляющую сигнала частотой 0.628 рад/с/отсчёт (0.1 Гц/отсчёт).

Рис. 6. Фильтрация тестового сигнала (Matlab):

a) входной сигнал во временной области;

б) выходной сигнал во временной области;

в) входной сигнал в частотной области;

г) выходной сигнал в частотной области;


6 Оценка быстродействия

            Оценим максимальное время  исполнения подпрограммы conv. Для этого воспользуемся профайлером.

Количество тактов исполнения подпрограммы:  415744. Так как подпрограмма работает в поточном режиме, то исполнение одного вызова подпрограммы происходит за  такта процессора.

            Учтём, что за один такт процессора выполняется одна команда, а время исполнения команды 13.3 нс[1]. Получим  (мкс).


7 Выводы

            Подведём итоги проделанной работы. Поставленная задача была выполнена полностью: разработана подпрограмма для ЦСП ADSP2189, реализующую цифровой фильтр с заданной импульсной характеристикой. Исследована импульсная, переходная и амплитудно-частотная характеристика подпрограммы, проведена проверка на тестовом сигнале. В результате программа реализует цифровой ФВЧ с практически идеальной АЧХ и (вероятнее всего) линейной ФЧХ. Как ни странно, результаты работы подпрограммы совпадают с результатами моделирования фильтра в Matlab, что даёт надежду на корректность работы подпрограммы.

            Так же в процессе работы не было выявлено толерантности компилятора VisualDSP++ к символу «Я» и вообще толерантности к любым буквам русского алфавита, как в исходных текстах, так и в комментариях.



[1] www.analog.com, Документация на ADSP-2189M