Разработка устройства цифровой обработки сигналов

Тип работы:
Курсовая
Предмет:
Коммуникации, связь, цифровые приборы и радиоэлектроника


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Содержание

Введение

Практическая часть

Выводы

Список литературы

Введение

В процессе разработки цифровой аппаратуры передачи и обработки сигналов возникают задачи, для которых приходится производить громоздкие расчеты и операции над очень малыми числами (10−7), и поэтому используем ЭВМ. В данной работе используются программные пакеты MatLab и Visual DSP++, которые упрощают вычисления, построения графиков и дают точные результаты вычисления.

Практическая часть

Для нахождения коэффициентов фильтра открываем программный пакет MatLab, и в командной строке прописываем:

> > fdatool

Появляется окно Filter Design & Analysis Tool, которое выглядит так:

Рис. 1. Окно Filter Design & Analysis Tool.

В появившемся окне задаём параметры фильтра и нажимаем Design Filter

Описание появившегося окна:

Response type — тип фильтра;

Designe Method — метод реализации фильтра и импульсная характеристика;

Filter order — порядок фильтра;

(Fs) — задать частоту дискретизации;

Fpass — задать граничную частоту полосы пропускания;

Fstop — задать граничную частоту полосы задержания;

Apass — гарантированное затухание в полосе задержания

Astop — неравномерность рабочего затухания в полосе пропускания

с помощью кнопки Designe Filter под меню запускаем программу

Выводим на экран АЧХ получившегося фильтра:

Рис. 2. АЧХ полученного фильтра.

Выводим ФЧХ полученного фильтра:

Рис. 3. ФЧХ полученного фильтра

Выводим ГВЗ полученного фильтра:

Рис. 4. ГВЗ полученного фильтра

Нажатием на значок получаем коэффициенты нашего фильтра

Numerator:

0. 34 368 360 279 280 496

0. 10 310 508 083 784 148

0. 10 310 508 083 784 148

0. 34 368 360 279 280 496

Denominator:

1

-1. 5 430 332 949 796 606

1. 1 342 539 034 879 857

-0. 31 627 372 627 408 120

Затем нажатием на, получаем структурную, прямую каноническую схему фильтра (показано на рис. 5)

Рис. 5. Структурная схема прямой канонической формы фильтра.

Что бы найти передаточную функцию цифрового фильтра H (z) воспользуемся программой Mathcad. В данной программе подставим в формулу коэффициенты полученные с помощью программы MatLab. И в данной же программе построим график АЧХ.

Рис. 6. Ачх

Реализуем полученный фильтр в программном пакете Visual DSP++ на сигнальном процессоре ADSP-2181.

Запускаем программный пакет visual DSP++

Рис. 7.

Главное окно visual DSP++

Будем реализовывать цифровой фильтр на сигнальном процессоре серии 21хх. Для этого во вкладке Session выбираем Select Session и из списка ADSP- 2181 Simulation.

Рис. 8. Показана вкладка Session.

Для того чтобы реализовать фильтр создаем новый проект во вкладке Project New, выбираем директорию для сохранения и название проекта. В папке проекта находи файлы bix вводим туда свои коэффициенты.

В появившемся проекте добавляем в папку Source Files файл «bix» и в Linker Files «ADSP-2181. ldf» Нажимаем Build project (F7) ставим курсор на последнюю строку программы и нажимаем Run to Cursor.

Листинг программного пакета visual DSP++

************2181 Vector Add Example************/

#define n 10 /*Константа — определяет длину фильтра*/

#define z_out 0×0500 /*Константа — определяет длину реализации входного воздействия и отклика*/

section/data data1; /* В сегменте данных data1*/

VAR x_input[z_out+n] = «xin. dat»; /*Файл данных — входной сигнал*/

VAR x_output[z_out+n]; /*Массив данных — выходной сигнал*/

section/pm pm_da; /*В сегменте памяти программы*/

VAR y_input[2*n+1] = «bix. dat»; /*Файл данных — значения

импульсной характеристики*/

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

_reset: JUMP start; nop; nop; nop; /* 0×0000: Reset vector*/

RTI; nop; nop; nop; /* 0×0004: IRQ2*/

RTI; nop; nop; nop; /* 0×0008: IRQL1*/

RTI; nop; nop; nop; /* 0×000C: IRQL0*/

RTI; nop; nop; nop; /* 0×0010: SPORT0 transmit*/

RTI; nop; nop; nop; /* 0×0014: SPORT0 receive*/

RTI; nop; nop; nop; /* 0×0018: IRQE*/

RTI; nop; nop; nop; /* 0×001C: BDMA*/

RTI; nop; nop; nop; /* 0×0020: SPORT1 transmit*/

RTI; nop; nop; nop; /* 0×0024: SPORT1 receive*/

RTI; nop; nop; nop; /* 0×0028: Timer*/

RTI; nop; nop; nop; /* 0×002C: Power down*/

section/pm program;

start: I1=x_input+n; /*В регистр I1 записывается адрес первой ячейки входных данных*/

I2=x_output; /*В регистр I2 записывается адрес первой ячейки выходных данных*/

I4=y_input; /*В регистр I4 записывается адрес первой ячейки коэффициентов фильтра*/

M0 = 1; /*Значение, на которое модифицируется регистр I0*/

M1 = -1; /*Значение, на которое модифицируется регистр I1*/

M5 = 1; /*Значение, на которое модифицируется регистр I5*/

L0 = 0; /*Длина регистра I0*/

L1 = 0; /*Длина регистра I1*/

L2 = 0; /*Длина регистра I2*/

L4 = 2*n+1; /*Длина регистра I4*/

SE = 4;

AX0 = 0;

CNTR = n; /*Указание значения счётчика*/

DO goclr UNTIL CE; /*Выполнение цикла, пока не достигнет

конца счётчик*/

goclr: DM (I2,M0) = AX0;

CNTR = z_out; /*Указание значения счётчика*/

DO go UNTIL CE; /*Выполнение цикла, пока не достигнет конца счётчик*/

I0=I1; /*В регистр I0 записывается значение регистра I1*/

CNTR = n; /*Указание значения счётчика*/

MR = 0, MX0 = DM (I0,M1), MY0 = PM (I4, M5); /*Загрузка

значениями регистров умножителя с накоплением*/

DO sop1 UNTIL CE;

sop1: MR=MR+MX0*MY0(SS), MX0=DM (I0,M1), MY0=PM (I4,M5);

/*Вычисление значения выходного отсчёта*/

MR=MR+MX0*MY0(SS); /*Округление значения выходного отсчёта*/

I0=I2; /*В регистр I0 записывается значение регистра I2*/

MX0 = DM (I0,M1);

CNTR = n-1; /*Указание значения счётчика*/

MX0 = DM (I0,M1), MY0 = PM (I4, M5);

DO sop2 UNTIL CE; /*Выполнение цикла, пока не достигнет конца счётчик*/

sop2: MR=MR+MX0*MY0(SS), MX0=DM (I0,M1), MY0=PM (I4,M5);

/*Вычисление значения выходного отсчёта*/

MR=MR+MX0*MY0(SS); /*Округление значения выходного отсчёта*/

IF MV SAT MR; /*Если произошло переполнение, то производится насыщение регистра MR*/

SR = LSHIFT MR0(LO);

SR = SR OR ASHIFT MR1(HI);

DM (I2,M0)=SR1; /*В память данных записывается вычисленное

значение*/

go: MODIFY (I1,M0); /*Изменение значения регистра I1 на значение М0 без считывания данных*/

IDLE; /*Переход в режим пониженной мощности*/

Чтобы посмотреть входной и выходной сигнал нужно открыть вкладку View, далее Debug, Windows, Plot, New. (показано на рис. 9)

Рис. 9. Окно Plot Configuration.

В поле Title указываем название графика

В поле Name вводим название характеристики

Во вкладке Address выбираем необходимое значение.

Параметр Count определяет длину отсчета;

Нажимаем Add, OK.

Получаем входной и выходной сигнал реализованного фильтра.

Рис. 10. Сигнал на входе фильтра

Для того чтобы построить АЧХ синтезированного фильтра, мы изменяем частоту от 500 Гц до fB=5000 Гц с интервалом в 500 Гц и в итоге получаем 10 графиков входных и выходных сигналов.

Рис. 11. Сигнал на выходе фильтра

Выводы

В ходе работы с помощью, программного пакета MatLab и Visual DSP++ были получены следующие результаты: в MatLab найдены коэффициенты фильтра, построена АЧХ цифрового фильтра прототипа (рис. 2.), ФЧХ (рис. 3.), ГВЗ (рис. 4) и структурная схема прямой канонической формы фильтра (рис. 5.); нашли H (z) и построили график (рис. 6.). В Visual DSP++ реализован цифровой фильтр на сигнальном процессоре серии ADSP- 2181, а именно: листинг программного пакета Visual DSP++, получен сигнал на входе (рис. 10.) и выходе фильтра (рис. 11) при изменении частоты в полосе от 500 Гц до fB=5000 Гц с интервалом в 500 Гц.

фильтр амплитудный частотный

Список литературы

Цифровая обработка сигналов/ А. Б. Сергиенко — СПб.: Питер, 2002 — 608 с.

Начала программирования в среде MatLAB/ Ю. Ф. Лазарев, учебное пособие. — К.: НТУУ «КПИ», 2003. — 424 с.

Цифровая обработка сигналов. Вып.1. Теоретические основы цифровой обработки сигналов/ Гадзиковский В. И. -- Екб.: ГОУ ВПО УГТУ — УПИ, 2003. -- 344с.

Конспект лекций по дисциплине «Цифровая обработка сигналов и сигнальные процессоры в ССПО»

www.

ПоказатьСвернуть
Заполнить форму текущей работой