Разработка фильтров на современных цифровых сигнальных процессорах

Анализ системы цифровой обработки аналоговых сигналов. Принципы сигнальных процессоров. Обобщенный алгоритм решаемой задачи на слоге высокого уровня. Результаты проектирования фильтра в среде MatLab. Программа на языке ассемблера с бесконечным циклом.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид курсовая работа
Язык русский
Дата добавления 22.08.2016
Размер файла 184,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Задание на курсовую работу

Разработать КИХ-фильтр на цифровом сигнальном процессоре ADSP-2189M по следующим техническим условиям:

1.Тип АЧХ фильтра - ПФ

2.Метод конструирования: Equiripple

3. Оконная функция: -

4. Частота дискретизации fs = 8000Гц

5. Частота пропускания Fpass =330-710Гц

6. Частота задержания Fstop = 300-780Гц

7. Неравномерность в полосе пропускания Apass =2дБ

8. Затухание в полосе задержания Astop = 40дБ

9. Исходные сведения, литература и программные средства:

ь Глинченко Учебные пособия ЦОС, DSP

ь Материалы ЦОС, главы (файлы .pdf) 5 и 6

ь Программа MATLAB

ь Программа VisualDSP++

ь Программа DFT

10. Источник синхросигналов внутренний , fкв = 20МГц

11. Ввод через АЦП

12. Вывод через программу

Оглавление

Введение

1. Физическое содержание задания

2. Обобщенный алгоритм решаемой задачи на языке высокого уровня

3. Результаты проектирования цифрового фильтра в среде MATLAB

4. АЧХ фильтра, полученная по импульсной характеристике средствами MathCAD

Список использованной литературы

Введение

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

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

Это позволяет допускать увеличение такого параметра, как число звеньев, и получать характеристики более высокого качества, чем у традиционных, рекурсивных фильтров. В связи с этим КИХ-фильтры оказываются более перспективными.

1. Физическое содержание задания

Цифровая фильтрация

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

Рассмотрим, из каких элементов должна состоять система цифровой обработки сигналов и место, занимаемое в ней цифровыми фильтрами.

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

Аналоговый сигнал x(t) поступает на вход дискретизатора (Д), на выходе которого появляются отсчеты x(kT). Реально, аналого-цифровой преобразователь (АЦП) выдает отсчеты xц(kT) в цифровой форме, т.е. в виде комбинаций двоичного кода, так что каждая комбинация этого кода является представлением соответствующего отсчета в двоичной системе счисления. Точность такого описания дискретных отсчетов сигнала x(t) зависит от числа разрядов в кодовых комбинациях и в принципе может быть сделана сколь угодно высокой.

Последовательность отсчетов xц(kT) c выхода АЦП поступает на вход цифрового вычислительного устройства, которое по заданному алгоритму “пересчитывает” ее в последовательность выходных отсчетов y(kT). Алгоритмы обработки цифровых сигналов могут быть очень разнообразными как по характеру, так и по степени сложности. В частности в качестве цифрового вычислительного устройства может использоваться цифровой фильтр. Цифровые устройства, производящие линейную обработку сигналов, называют цифровыми фильтрами (ЦФ). Разумеется, выходная последовательность отсчетов ЦФ y(kT) также представляет собой последовательность кодовых комбинаций двоичного кода. Для преобразования цифрового сигнала в аналоговый используют восстанавливающее устройство (штриховая линия на рис. 1), состоящее из цифро-аналогового преобразователя (ЦАП) и выходного сглаживающего фильтра (СФ). ЦАП преобразует цифровой сигнал в импульсы прямоугольной формы, чьи амплитуды в точности равны записанным в двоичной системе счисления значениям y(kT). Импульсы прямоугольной формы подаются на СФ, и на выходе этого фильтра получается аналоговый сигнал y(t).

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

Где

* - символ свертки;

N - количество звеньев фильтра.

Схемы дискретной цепи (прямая и каноническая) имеют в данном случае одинаковый вид, который можно получить непосредственно из формулы (1):

1. стабильность частотных и временных характеристик, малая их зависимость от влажности, температуры, изменения питающих напряжений и т.д.;

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

3. отсутствие этапа предварительной настройки (в аналоговом фильтре нередко приходится подгонять номиналы элементов);

4. значительно более высокая точность обработки сигналов;

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

6. отсутствует задача согласования нагрузок;

7. уменьшенные масса и габаритные размеры, а также унифицированное и стандартизованное исполнение.

По сравнению с аналоговыми фильтрами цифровые фильтры имеют следующие недостатки:

1. обязательные аналого-цифровые и цифро-аналоговые преобразователи, что удорожает и усложняет процесс цифровой обработки сигналов;

2. повышенное быстродействие процессора, реализующего ЦФ, аналого-цифровых и цифро-аналоговых преобразователей (особенно при высоких разрядностях входных переменных);

3. наличие специфических погрешностей, вызванных дискретизацией, квантованием сигнала и округлением значений обрабатываемого сигнала в процессе вычислений.ц

Реализация цифровых фильтров

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

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

Основным достоинством программной реализации цифровых фильтров является достаточная гибкость перестройки, которая сводится лишь к вводу в память данной ЭВМ другой программы; основным недостатком - пониженное быстродействие, поскольку структура универсальной ЭВМ ориентирована на решение класса различных задач, а не только на реализацию данного цифрового фильтра.

Сигнальные процессоры

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

-использование гарвардской архитектуры;

-сокращение длительности командного цикла;

-применение конвейеризации;

-применение аппаратного умножителя;

-оптимизация системы команд на задачи ЦОС;

-аппаратная поддержка операций с двойной точностью.

Гарвардская архитектура подразумевает хранение программ и данных в двух раздельных запоминающих устройствах и наличие как минимум двух раздельных шин адреса и данных. Такая организация памяти позволяет совместить во времени выполнение команд и выборку команд и данных.

Конвейерный режим в сочетании с коротким командным циклом обеспечивает повышение быстродействия путем одновременной обработки двух и более инструкций на разных стадиях их выполнения.

Аппаратный умножитель применяется для уменьшения времени на выполнение одной из основных операций ЦОС - операции умножения. В процессорах общего назначения эта операция реализуется за несколько тактов сдвига и сложения и занимает много времени. ЦСП выполняют эту операцию за один командный цикл.

Сигнальные процессоры появились в начале 80-х годов. Однако уже в 1982 году лидерство в этой области захватила американская фирма Texas Instruments, выпустившая сигнальный процессор TMS32010. По своей архитектуре и системе команд он существенно превзошел изделие NEC и до настоящего времени находит практическое применение.

Второе поколение ЦСП появилось в середине 80-х годов. Повышение степени интеграции позволило расширить функции ЦСП. Увеличилась скорость выполнения команд и уровень распараллеливания обработки данных. Введена аппаратная поддержка кольцевых буферов и циклов DO - UNTIL, исключающая непроизводительные затраты времени на условные переходы.

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

Рассматриваемое далее базовое семейство ADSP-21xx представляет собой ряд программируемых однокристалльных микропроцессоров и микрокомпьютеров, которые объединяет общая базовая архитектура, оптимизированная для цифровой обработки сигналов и высокоскоростной обработки цифровых данных. В состав семейства входят процессоры 2101, 2103, 2105, 2111, 2115, 2171, 2181, 2183, 2186, 21msp58/59 и некоторые другие. Основными их функциональными элементами, размещенными на кристалле, являются вычислительные устройства, генераторы адреса данных, генератор адресов инструкций, память данных и программ, таймер, последовательные порты. Данные элементы имеют практически все процессоры семейства, отличаясь лишь их качественными характеристиками и объемом внутренней памяти. Кроме того, процессоры ADSP-21msp58/59 имеют встроенный аналоговый интерфейс, у отдельных процессоров реализован также порт интерфейса хост-машины и/или порты прямого доступа к памяти, предусмотрен режим низкого энергопотребления.

Типичная длительность командного цикла процессоров составляет от 30 до 60 нс.

Так, сигнальный процессор ADSP-2181, относящийся к одной из последних разработок семейства, кроме базовых элементов - трех вычислительных модулей, генераторов адресов данных и устройства управления программой, содержит два последовательных порта, 16- разрядный порт прямого доступа к внутренней памяти, внешний порт прямого доступа к байтовой (загрузочной) памяти, программируемый таймер, 80 Кбайт памяти на кристалле, сконфигурированной как 16К 24- разрядных слов ОЗУ программ и 16К 16-разрядных слов ОЗУ данных. Наличие схемы пониженного энергопотребления позволяет применять процессор в переносном оборудовании. Командный цикл процессора составляет 30 нс. Каждая команда выполняется за один цикл процессора.

Гибкая архитектура ADSP-2181 и эффективная система команд определяют высокую степень распараллеливания выполняемых процессором операций.

За один цикл процессор ADSP-2181 может:

-генерировать следующий адрес

-программы;

-выбирать следующую команду;

-выполнить одно или два перемещения данных;

-модифицировать один или два указателя адреса данных;

-выполнить вычислительную операцию.

Это происходит в то время, как процессор продолжает:

-получать и передавать данные через два последовательных порта;

-получать и/или передавать данные через внутренний порт прямого доступа в память;

-получать и/или передавать данные через порт прямого доступа в байтовую память;

-декрементировать таймер.

Формирование частотной и импульсной характеристик фильтра

Частотная характеристика идеального ФНЧ представлена на рис. 2, A. Соответствующая импульсная характеристика во временной области представлена на рис. 2, B и является функцией sin(x)/x. Если для реализации этой частотной характеристики использовать КИХ- фильтр, то он должен иметь бесконечное число звеньев. Метод sin(x)/x со взвешиванием заключается в следующем. Сначала импульсная характеристика обрезается до разумного числа точек N, как на рис. 2, C. Частотная характеристика, соответствующая рис. 2, C, имеет слишком большое влияние боковых лепестков из-за разрывов в области конечных точек в усеченной импульсной характеристике.

Следующий шаг в процессе проектирования состоит в применении к усеченному импульсу соответствующей весовой функции, как показано на рис. 2, D, обнуляющей конечные точки. Выбранная таким образом весовая функция определяет спад и характеристики боковых лепестков фильтра. Частотная характеристика фильтра с усеченной импульсной характеристикой sin(x)/x (рис. 2, E) представлена на рис. 2, F.

2. Обобщенный алгоритм решаемой задачи на языке высокого уровня

Алгоритм работы КИХ-фильтра

1. Получение отсчета от программы (обычно по прерыванию)

2. Помещение отсчета в циклический буфер входного сигнала

3. Обновление указателя циклического буфера входного сигнала

4. Обнуление накопителя

5. Осуществление фильтрации (цикл по всем коэффициентам)

6. Выборка коэффициента из циклического буфера коэффициентов

7. Обновление указателя циклического буфера коэффициентов

8. Выборка отсчета из циклического буфера входного сигнала

9. Обновление указателя циклического буфера входного сигнала

10. Умножение коэффициента на отсчет

11. Добавление нового слагаемого к промежуточному результату

12. Выдача выходного отсчета фильтра на ЦАП

П.п. 1-3 и 12 выполняются в основной программе, п.п. 4-11 выполняются в подпрограмме fir.

3. Результаты проектирования цифрового фильтра в среде MATLAB

Спецификация и параметры фильтра

Сравнение с заданием:

Fpass(частота пропускания) по заданию составляет 300-810 Гц. В лабораторных условиях получили 306-810Гц.

Fstop(частота задержания) по заданию 330-750Гц. В результате проектирования фильтра в среде MATLAB, эта величина составила 330-757Гц.

АЧХ проектируемого фильтра

Распечатка файла коэффициентов

/*

* Filter Design and Analysis Tool - Generated Filter Coefficients - C Source

* Generated by MATLAB - Signal Processing Toolbox

*/

/* General type conversion for MATLAB generated C-code */

#include "tmwtypes.h"

/*

* Expected path to tmwtypes.h

* C:\MATLAB6p5\extern\include\tmwtypes.h

*/

/*

* Warning - Filter coefficients were truncated to fit specified data type.

* The resulting response may not match generated theoretical response.

* Use the Filter Design & Analysis Tool to design accurate fixed-point

* filter coefficients.

*/

const int BL = 256;

const int16_T B[256] = {

228, 41, -9, -89, -184, -268, -314, -301, -220,

-77, 100, 277, 412, 474, 446, 332, 158, -38,

-214, -335, -382, -354, -271, -162, -57, 19, 57,

60, 44, 27, 26, 47, 87, 134, 171, 185,

169, 126, 66, 3, -49, -84, -102, -107, -108,

-112, -121, -130, -133, -122, -93, -48, 5, 56,

95, 115, 119, 113, 106, 108, 120, 136, 146,

135, 96, 28, -59, -145, -210, -239, -225, -178,

-116, -61, -33, -37, -65, -93, -97, -56, 34,

158, 287, 382, 411, 361, 243, 89, -57, -154,

-180, -140, -66, -4, 0, -76, -224, -403, -549,

-600, -516, -298, 9, 327, 569, 671, 614, 433,

210, 46, 21, 165, 435, 723, 886, 792, 367,

-361, -1261, -2119, -2691, -2773, -2263, -1204, 220, 1716,

2955, 3656, 3656, 2955, 1716, 220, -1204, -2263, -2773,

-2691, -2119, -1261, -361, 367, 792, 886, 723, 435,

165, 21, 46, 210, 433, 614, 671, 569, 327,

9, -298, -516, -600, -549, -403, -224, -76, 0,

-4, -66, -140, -180, -154, -57, 89, 243, 361,

411, 382, 287, 158, 34, -56, -97, -93, -65,

-37, -33, -61, -116, -178, -225, -239, -210, -145,

-59, 28, 96, 135, 146, 136, 120, 108, 106,

113, 119, 115, 95, 56, 5, -48, -93, -122,

-133, -130, -121, -112, -108, -107, -102, -84, -49,

3, 66, 126, 169, 185, 171, 134, 87, 47,

26, 27, 44, 60, 57, 19, -57, -162, -271,

-354, -382, -335, -214, -38, 158, 332, 446, 474,

412, 277, 100, -77, -220, -301, -314, -268, -184,

-89, -9, 41, 228

};

Подпрограмма fir.asm на языке ассемблера ЦСП с комментариями

/*ADSP-2181 FIR-filter Subroutine

/* Подпрограмма КИХ-фильтра порядка Nфайл fir.asm

Вызываемые параметры

I0 -- Начальный адрес линии задержки входных данных

I4 -- Начальный адрес таблицы коэффициентов фильтра

L0 = N, L4 = N, M1=1, M5 = 1

CNTR = N-1

Возвращаемые величины

MR1 = Результат (округлённый и насыщенный)

I0 -- Начальный адрес линии задержки входных данных

I4 -- Начальный адрес таблицы коэффициентов фильтра

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

Время выполнения (N - 1) + 6 cycles = N + 5 cycles

Все коэффициенты в формате 1.15

Используется файл описания архитектуры ADSP-2181.ldf.

*/

GLOBAL fir;

.section/pm program;

N = 256;//количество отсчетов 256;

fir: MR=0, MX0=DM(I0,M1), MY0=PM(I4,M5); // обнуление накопителя

// считывание начальных значений x и h из памяти

CNTR = N-1; цифровой сигнальный процессор ассемблер

DO convol UNTIL CE; // цикл умножения h(m)*x(n-m) с накоплением convol: MR=MR+MX0*MY0(SS), MX0=DM(I0,M1), MY0=PM(I4,M5);

// умножение h(m)*x(n-m) с накоплением, считывание x и h из памяти MR=MR+MX0*MY0(RND);// округление IF MV SAT MR;// насыщение RTS;// возврат из подпрограммы

Испытание подпрограммы fir.asm в среде VisualDSP++

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

Файл отсчетов

228, 41, -9, -89, -184, -268, -314, -301, -220,

-77, 100, 277, 412, 474, 446, 332, 158, -38,

-214, -335, -382, -354, -271, -162, -57, 19, 57,

60, 44, 27, 26, 47, 87, 134, 171, 185,

169, 126, 66, 3, -49, -84, -102, -107, -108,

-112, -121, -130, -133, -122, -93, -48, 5, 56,

95, 115, 119, 113, 106, 108, 120, 136, 146,

135, 96, 28, -59, -145, -210, -239, -225, -178,

-116, -61, -33, -37, -65, -93, -97, -56, 34,

158, 287, 382, 411, 361, 243, 89, -57, -154,

-180, -140, -66, -4, 0, -76, -224, -403, -549,

-600, -516, -298, 9, 327, 569, 671, 614, 433,

210, 46, 21, 165, 435, 723, 886, 792, 367,

-361, -1261, -2119, -2691, -2773, -2263, -1204, 220, 1716,

2955, 3656, 3656, 2955, 1716, 220, -1204, -2263, -2773,

-2691, -2119, -1261, -361, 367, 792, 886, 723, 435,

165, 21, 46, 210, 433, 614, 671, 569, 327,

-298, -516, -600, -549, -403, -224, -76, 0,

-4, -66, -140, -180, -154, -57, 89, 243, 361,

411, 382, 287, 158, 34, -56, -97, -93, -65,

-37, -33, -61, -116, -178, -225, -239, -210, -145,

-59, 28, 96, 135, 146, 136, 120, 108, 106,

113, 119, 115, 95, 56, 5, -48, -93, -122,

-133, -130, -121, -112, -108, -107, -102, -84, -49,

3, 66, 126, 169, 185, 171, 134, 87, 47,

26, 27, 44, 60, 57, 19, -57, -162, -271,

-354, -382, -335, -214, -38, 158, 332, 446, 474,

412, 277, 100, -77, -220, -301, -314, -268, -184,

-89, -9, 41, 228

4. АЧХ фильтра, полученная по импульсной характеристике средствами MathCAD

График импульсной функции

Преобразование Фурье:

АЧХ фильтра:

В данном пункте курсовой работы мы получали импульсную характеристику средствами MathCAD. При частоте дискретизации равной 8000Гц получили соответствующие частоту пропускания и частоту задержания. Они практически сходятся со значениями, данными в задании:

Дано: Fpass=330-750Гц

Получили: 312-781Гц

Дано: Fstop=300-810Гц

Получили: 343-812Гц

Программа на языке ассемблера с бесконечным циклом

/* ADSP-2181 Isp_filt Program */

#define N 256 // Количество обрабатываемых отсчётов 256

section/data data1;

VAR/CIRC x_input[N] = "Delt.dat"; // Входной буфер данных в DM с именем x_input

VAR/CIRC delay[N]; // Линия задержки фильтра

VAR/CIRC dm_y[N]; // Выходной буфер данных в DM с именем dm_y

section/pm pm_da;

VAR/CIRC coef_[N] = {

228, 41, -9, -89, -184, -268, -314, -301, -220,

-77, 100, 277, 412, 474, 446, 332, 158, -38,

-214, -335, -382, -354, -271, -162, -57, 19, 57,

60, 44, 27, 26, 47, 87, 134, 171, 185,

169, 126, 66, 3, -49, -84, -102, -107, -108,

-112, -121, -130, -133, -122, -93, -48, 5, 56,

95, 115, 119, 113, 106, 108, 120, 136, 146,

135, 96, 28, -59, -145, -210, -239, -225, -178,

116, -61, -33, -37, -65, -93, -97, -56, 34,

158, 287, 382, 411, 361, 243, 89, -57, -154,

-180, -140, -66, -4, 0, -76, -224, -403, -549,

-600, -516, -298, 9, 327, 569, 671, 614, 433,

210, 46, 21, 165, 435, 723, 886, 792, 367,

-361, -1261, -2119, -2691, -2773, -2263, -1204, 220, 1716,

2955, 3656, 3656, 2955, 1716, 220, -1204, -2263, -2773,

-2691, -2119, -1261, -361, 367, 792, 886, 723, 435,

165, 21, 46, 210, 433, 614, 671, 569, 327,

9, -298, -516, -600, -549, -403, -224, -76, 0,

-4, -66, -140, -180, -154, -57, 89, 243, 361,

411, 382, 287, 158, 34, -56, -97, -93, -65,

-37, -33, -61, -116, -178, -225, -239, -210, -145,

-59, 28, 96, 135, 146, 136, 120, 108, 106,

113, 119, 115, 95, 56, 5, -48, -93, -122,

-133, -130, -121, -112, -108, -107, -102, -84, -49,

3, 66, 126, 169, 185, 171, 134, 87, 47,

26, 27, 44, 60, 57, 19, -57, -162, -271,

-354, -382, -335, -214, -38, 158, 332, 446, 474,

412, 277, 100, -77, -220, -301, -314, -268, -184,

-89, -9, 41, 228}; // таблица коэффициентов фильтра

EXTERN fir;

section/pm interrupts; // Таблица векторов прерываний

_reset: JUMP start; NOP; NOP; NOP; // Прерывание по сбросу процессора

RTI; NOP; NOP; NOP;

RTI; NOP; NOP; NOP;

RTI; NOP; NOP; NOP;

RTI; NOP; NOP; NOP;

RTI; NOP; NOP; NOP;

RTI; NOP; NOP; NOP;

RTI; NOP; NOP; NOP;

RTI; NOP; NOP; NOP;

RTI; NOP; NOP; NOP;

RTI; NOP; NOP; NOP; // Прерывание от таймера

RTI; NOP; NOP; NOP;

.section/pm program;

start: I0 = delay;// Начальный адрес линии задержки фильтра

L0 = N; // буфер кольцевой

I4 = coef_; // Начальный адрес массива коэф-ов

L4 = N; // буфер кольцевой

M1 = 1; M5 = 1;

AX0 = 2499;

DM(0X3FFD) = AX0; // Установить в TPERIOD 2499

DM(0X3FFC)=AX0; // Установить в TCOUNT 2499

AX0=0;

DM(0X3FFB)=AX0;

I1 = x_input; L1 = 255;// Начальный адрес входного буфера

I2 = dm_y; L2 = 255;// Начальный адрес выходного буфера

CNTR = N;

DO clear UNTIL CE; // Очистка линии задержки

clear:DM(I0,M1) = 0;

IMASK = 0x01; // Разрешение прерывания от таймера

ICNTL = 0x07; // Прерывания без вложения, с реакцией на перепад

ENA TIMER;

DO loop1 UNTIL FOREVER;

sr1 = dm(i1,m1);// Ввод отсчёта входного сигнала в ЛЗ

dm(i0,m1) = sr1;// вызывает смещение входных отсчётов

// относительно массива коэф-ов

CALL fir;// Вызов подпрограммы КИХ-фильтра

DM(I2,M1) = MR1;// Сохранение выходного отсчёта фильтра

IDLE;// Ожидание прерывания от таймера

loop1:NOP; // Конец программы

Рассчитаем параметры таймера:

Расчётная формула:

Период прерываний tпр = (TPERIOD+1)*(TSCALE+1)* tц сек,

Время цикла процессора tц = 1/fкв задаётся кварцевым генератором.

Обычно TSCALE = 0, если TPERIOD умещается в 16 разрядов.

В курсовой работе нужно обеспечить выполнение подпрограммы ЦФ с частотой дискретизации Fs. Необходим период прерываний tпр = 1/Fs .

Исходные данные для КР указаны в задании - это fкв и Fs .

Подставляя tпр и tц, получим TPERIOD = fкв/ Fs - 1 при TSCALE = 0.

Т.о, TPERIOD=20*106/8000 - 1 = 2499

Программа на языке ассемблера

/* ADSP-2181 Isp_filt Program */

#define N 256 // Количество обрабатываемых отсчётов 256

#define port1 0x200 // Установка значения адреса порта;

#define port2 0x200 // Установка значения адреса порта;

section/data data1;

VAR/CIRC delay[N]; // Линия задержки фильтра

VAR/CIRC dm_y[N]; // Выходной буфер данных в DM с именем dm_y

section/pm pm_da;

VAR/CIRC coef_[N] ={

228, 41, -9, -89, -184, -268, -314, -301, -220,

-77, 100, 277, 412, 474, 446, 332, 158, -38,

-214, -335, -382, -354, -271, -162, -57, 19, 57,

60, 44, 27, 26, 47, 87, 134, 171, 185,

169, 126, 66, 3, -49, -84, -102, -107, -108,

-112, -121, -130, -133, -122, -93, -48, 5, 56,

95, 115, 119, 113, 106, 108, 120, 136, 146,

135, 96, 28, -59, -145, -210, -239, -225, -178,

-116, -61, -33, -37, -65, -93, -97, -56, 34,

158, 287, 382, 411, 361, 243, 89, -57, -154,

-180, -140, -66, -4, 0, -76, -224, -403, -549,

-600, -516, -298, 9, 327, 569, 671, 614, 433,

210, 46, 21, 165, 435, 723, 886, 792, 367,

-361, -1261, -2119, -2691, -2773, -2263, -1204, 220, 1716,

2955, 3656, 3656, 2955, 1716, 220, -1204, -2263, -2773,

-2691, -2119, -1261, -361, 367, 792, 886, 723, 435,

165, 21, 46, 210, 433, 614, 671, 569, 327,

9, -298, -516, -600, -549, -403, -224, -76, 0,

-4, -66, -140, -180, -154, -57, 89, 243, 361,

411, 382, 287, 158, 34, -56, -97, -93, -65,

-37, -33, -61, -116, -178, -225, -239, -210, -145,

-59, 28, 96, 135, 146, 136, 120, 108, 106,

113, 119, 115, 95, 56, 5, -48, -93, -122,

-133, -130, -121, -112, -108, -107, -102, -84, -49,

3, 66, 126, 169, 185, 171, 134, 87, 47,

26, 27, 44, 60, 57, 19, -57, -162, -271,

-354, -382, -335, -214, -38, 158, 332, 446, 474,

412, 277, 100, -77, -220, -301, -314, -268, -184,

-89, -9, 41, 228

}; // таблица коэффициентов фильтра

EXTERN fir;

section/pm interrupts;// Таблица векторов прерываний

_reset: JUMP start; NOP; NOP; NOP; // Прерывание по сбросу процессораRTI; NOP; NOP; NOP;

RTI; NOP; NOP; NOP;

RTI; NOP; NOP; NOP;

RTI; NOP; NOP; NOP;

RTI; NOP; NOP; NOP;

RTI; NOP; NOP; NOP;

RTI; NOP; NOP; NOP;

RTI; NOP; NOP; NOP;

RTI; NOP; NOP; NOP;

RTI; NOP; NOP; NOP; // Прерывание от таймера

RTI; NOP; NOP; NOP;

section/pm program;

start: I0 = delay;// Начальный адрес линии задержки фильтра

L0 = N; // буфер кольцевой

I4 = coef_; // Начальный адрес массива коэф-ов

L4 = N; // буфер кольцевой

M1 = 1; M5 = 1;

AX0 = 2499;

DM(0X3FFD) = AX0; // Установить в TPERIOD 4000

DM(0X3FFC)=AX0; // Установить в TCOUNT 4000

AX0=0;

DM(0X3FFB)=AX0;

CNTR = N-1;

DO clear UNTIL CE; // Очистка линии задержки

clear:DM(I0,M1) = 0;

IMASK = 0x01; // Разрешение прерывания от таймера

ICNTL = 0x07; // Прерывания без вложения, с реакцией на перепад

ENA TIMER;

DO loop1 UNTIL FOREVER;

SR1 = IO(port1); // Ввод отсчёта из параллельного порта

sr1 = dm(i1,m1);// Ввод отсчёта входного сигнала в ЛЗ

dm(i0,m1) = sr1;// вызывает смещение входных отсчётов

// относительно массива коэф-ов

CALL fir;// Вызов подпрограммы КИХ-фильтра

MR=MR1/4(SS)

I0(port2)=MR1;

IDLE; // Ожидание прерывания от таймера

loop1:NOP; //Конец программы

Обоснование схемы управления портами

Спроектируем дешифратор порта ввода с адресом 0х200, расположенным в сегменте IOWAIT1, как показано на рисунке 3. Назначение адреса порта ввода в программе на ассемблере:

#define port1 0x200 // установка значения адреса порта 37

Получаем выражение для сигнала выбора порта (v) Если по этому же адресу расположен и порт вывода, то потребуется учесть ещё и . Сигнал выбора для регистра порта ввода должен иметь активное значение “0”. Инвертируя выражение (v) и применяя правила де-Моргана и двойной инверсии, приходим к выражению (w) Выражение w для дешифратора можно реализовать на одном инверторе и 4-входовой схеме “ИЛИ-НЕ”. Если возникают трудности с подбором логических элементов по каталогу, или если реализация представляется неоптимальной, следует проделать минимизацию полученного логического выражения или его преобразование к другому базису. Цепи выбора могут быть общими для портов ввода и вывода, если они расположены по одному адресу. Для раздельного управления вводом и выводом можно использовать сигналы чтения и записи, как показано на рисунке 4.

Рис 4

Оценка затрат времени на выполнение подпрограммы фильтра

В связи с тем, что в проекте разработана только часть программного обеспечения устройства, можно рассчитать затраты времени на выполнение разработанного фрагмента программы. Первым делом подсчитывают число команд в разработанной подпрограмме. Если внутри разработанного фрагмента имеется свой цикл, то число команд в цикле нужно умножить на число проходов по циклу. Время выполнения tвп можно рассчитать как число команд, умноженное на время цикла процессора tц = 1/fкв. Время цикла процессора задаётся кварцевым генератором.

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

Период дискретизации определяется прерываниями от таймера. Интервал дискретизации составляет 1/fS, на нём можно разместить fкв/fS циклов процессора. Суммарное время однократного выполнения всех подпрограмм, находящихся в программе, не должно превышать периода дискретизации.

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

Оценка реализации КИХ-фильтра на цифровом сигнальном процессоре ADSP-2189M

· Частота дискретизации fs = 8000 Гц

· Интервал дискретизации = 1/fs =125мкс

· Порядок фильтра N = 256

· Количество требуемых команд = N + 5 = 261

· Процессорное время на команду = 50 нс (20 MIPS)

· Общее время обработки = 261 Ч 50 нс = 13050 нс ~ 13,05 мкс

Общее время обработки меньше интервала дискретизации
в 9,5 раза. Запас времени можно использовать по-разному:

· Выделить время для других операций: 125мкс - 13.05 мкс = 111,95 мкс

Список использованной литературы

1. К.т.н., доцент Е.Н. Мохов, К.А. Быков. Проектирование цифрового фильтра на сигнальном процессоре. Учебное пособие/ Сиб. гос. ун-т телекоммуни-каций и информатики. - Новосибирск, 2010. - с. 51

2. Е.Н.Мохов Цифровые сигнальные процессоры. Методические указания к лабораторным работам №№1-9/ Н:2008

Размещено на Allbest.ru

...

Подобные документы

  • Разработка и исследование системы многоканального полосового анализа речевых сигналов на основе полосовых фильтров и на базе квадратурной обработки. Принципы организации и программирования цифровых сигнальных процессоров (ЦСП), разработка программ ЦОС.

    курсовая работа [3,5 M], добавлен 27.10.2012

  • Исследование теоретических основ математического аппарата теории цифровой обработки сигналов. Расчет параметров рекурсивных цифровых фильтров с использованием средств вычислительной техники. Методы проектирования алгоритмов цифровой обработки сигналов.

    контрольная работа [572,7 K], добавлен 04.11.2014

  • Разработка функционально законченного устройства для обработки входных сигналов линии с использованием цифровых устройств и аналого-цифровых узлов. Алгоритм работы устройства. Составление программы на языке ассемблера. Оценка быстродействия устройства.

    курсовая работа [435,5 K], добавлен 16.12.2013

  • Структурная схема микроконтроллерной системы. Схемы подключения микроконтроллера, цифровых и аналоговых сигналов, линейного дисплея и клавиатуры. Текст главной программы на языке Ассемблера для МК51. Программа ввода и обработки аналоговой информации.

    курсовая работа [372,6 K], добавлен 19.12.2013

  • Положения теории сигнальных микропроцессоров и КИХ-фильтров. Программируемая логическая интегральная схема (ПЛИС) и языки описания аппаратуры. Классификация ПЛИС, цифровая фильтрация. Цифровые процессоры обработки сигналов. Методы реализации КИХ-фильтров.

    дипломная работа [2,2 M], добавлен 07.04.2017

  • Понятие и обзор современных систем передачи информации, исследование основ преобразования сигналов и характеристик цифровых фильтров. Общая характеристика и специфические признаки процесса построения цифрового фильтра на основе полиномов Бернштейна.

    дипломная работа [740,3 K], добавлен 23.06.2011

  • Исследование внутреннего устройства и архитектуры современных модемов. Распределение функций между составными частями модема. Анализ функций аналоговых и цифровых модемов, связанных с обработкой сигналов. Метод преобразования аналоговых данных в цифровые.

    курсовая работа [335,9 K], добавлен 09.11.2014

  • Разработка электрической принципиальной схемы цифрового фильтра и отладка рабочей программы на языке ассемблера, которая будет обеспечивать взаимодействие и работоспособность БИС входящих в состав фильтра, для реализации заданных свойств фильтра.

    курсовая работа [683,2 K], добавлен 21.03.2011

  • Изучение методов цифровой фильтрации в обработке сигналов. Исследование способов синтеза бесконечной импульсной характеристики приборов для очищения жидкостей процеживанием. Особенность имитирования фильтров нижних частот в программной среде Matlab.

    дипломная работа [1,1 M], добавлен 20.05.2017

  • Проектирование цифровых фильтров, которые являются основой для большинства приложений обработки сигналов. Понятие о разностном уравнении. Фильтр с бесконечной импульсной характеристикой: описание, динамические характеристики. Реализация БИХ фильтра.

    контрольная работа [522,1 K], добавлен 16.12.2012

  • Исследование принципов разработки генератора аналоговых сигналов. Анализ способов перебора адресов памяти генератора аналоговых сигналов. Цифровая генерация аналоговых сигналов. Проектирование накапливающего сумматора для генератора аналоговых сигналов.

    курсовая работа [513,0 K], добавлен 18.06.2013

  • Сущность линейной обработки дискретных сигналов. Характеристика основных структурных элементов цифровых фильтров - элемента единичной задержки (на интервал дискретизации сигнала), сумматора и умножителя. Виды последовательности дискретных отчетов.

    презентация [79,8 K], добавлен 19.08.2013

  • Изучение сущности цифровой фильтрации - выделения в определенном частотном диапазоне с помощью цифровых методов полезного сигнала на фоне мешающих помех. Особенности КИХ-фильтров. Расчет цифрового фильтра. Моделирование работы цифрового фильтра в MatLab.

    курсовая работа [2,0 M], добавлен 21.09.2010

  • Функции цифровых сигнальных процессоров в радиопередатчиках. Типы структурных схем радиочастотных трактов: прямая и прямая квадратурная модуляция, непрямая модуляция, петля трансляции. Описание и структура цифрового сигнального процессора передатчика.

    реферат [234,4 K], добавлен 15.01.2011

  • Обзор особенностей речевых сигналов, спектрального анализа и способов его применения при обработке цифровых речевых сигналов. Рассмотрение встроенных функций и расширений Matlab по спектральному анализу. Реализация спектрального анализа в среде Matlab.

    курсовая работа [2,2 M], добавлен 25.05.2015

  • Назначение, типы и аппроксимация характеристик цифровых и аналоговых фильтров. Разработка на языке MATLAB программы моделирования ФВЧ методом Баттерворта, построение графиков амплитудно- и фазо-частотной характеристик; построение Simulink – модели.

    курсовая работа [883,8 K], добавлен 17.06.2011

  • Оценка алгоритмов цифровой обработки сигналов в условиях наличия и отсутствия помех. Проектирование модели дискретной свертки в среде Mathcad 14. Анализ кодопреобразователей циклических кодов и их корректирующие способности. Работа цифрового фильтра.

    курсовая работа [3,0 M], добавлен 11.02.2013

  • Понятие и внутренняя структура, достоинства, недостатки и области применения цифровых фильтров, классификация и разновидности. Требования задания к частотным характеристикам проектируемого фильтра. Расчет рекурсивного и нерекурсивного цифрового фильтра.

    курсовая работа [2,1 M], добавлен 16.01.2014

  • Постановка задачи расчета активных аналоговых фильтров на резистивно-емкостных радиоэлементах. Нормирование характеристик и электрических величин. Каскадная реализация фильтра по передаточной функции. Описание программы, реализующей методику расчета.

    курсовая работа [302,6 K], добавлен 28.10.2011

  • Цифровая обработка сигналов. Классификация вокодеров по способу анализа и синтеза речи. Структура БИХ-фильтра. Разработка функциональной схемы вокодера. Расчет параметров и характеристик набора цифровых полосовых фильтров. Алгоритм работы вокодера.

    курсовая работа [1,0 M], добавлен 07.11.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.