RTS;
Отсчёты импульсной характеристики фильтра и тестовые данные были сформированы в пакете 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) входной сигнал во временной области;
б) выходной сигнал во временной области;
в) входной сигнал в частотной области;
г) выходной сигнал в частотной области;
Оценим максимальное время исполнения подпрограммы conv. Для этого воспользуемся профайлером.
Количество тактов исполнения подпрограммы: 415744. Так как подпрограмма работает в поточном режиме, то исполнение одного вызова подпрограммы происходит за такта процессора.
Учтём, что за один такт процессора выполняется одна команда, а время исполнения команды 13.3 нс[1]. Получим (мкс).
Подведём итоги проделанной работы. Поставленная задача была выполнена полностью: разработана подпрограмма для ЦСП ADSP2189, реализующую цифровой фильтр с заданной импульсной характеристикой. Исследована импульсная, переходная и амплитудно-частотная характеристика подпрограммы, проведена проверка на тестовом сигнале. В результате программа реализует цифровой ФВЧ с практически идеальной АЧХ и (вероятнее всего) линейной ФЧХ. Как ни странно, результаты работы подпрограммы совпадают с результатами моделирования фильтра в Matlab, что даёт надежду на корректность работы подпрограммы.
Так же в процессе работы не было выявлено толерантности компилятора VisualDSP++ к символу «Я» и вообще толерантности к любым буквам русского алфавита, как в исходных текстах, так и в комментариях.
[1] www.analog.com, Документация на ADSP-2189M
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.