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

бесплатно 0
4.5 94
Нахождение коэффициентов фильтра с помощью программного пакета MatLab. Структурная схема прямой канонической формы фильтра. Листинг программного пакета visual DSP . Построение амплитудно-частотной характеристики синтезированного фильтра, расчет графика.


Аннотация к работе
Для нахождения коэффициентов фильтра открываем программный пакет MATLAB, и в командной строке прописываем: >> fdatool Появляется окно Filter Design & Analysis Tool, которое выглядит так: Рис.1. Astop - неравномерность рабочего затухания в полосе пропускания с помощью кнопки Designe Filter под меню запускаем программу Нажатием на значок получаем коэффициенты нашего фильтра Затем нажатием на , получаем структурную, прямую каноническую схему фильтра (показано на рис.5)В ходе работы с помощью, программного пакета MATLAB и Visual DSP были получены следующие результаты: в MATLAB найдены коэффициенты фильтра, построена АЧХ цифрового фильтра прототипа (рис.2.), ФЧХ (рис.3.), ГВЗ( рис.4) и структурная схема прямой канонической формы фильтра (рис.5.); нашли H(z) и построили график (рис.6.).

План
Содержание

Введение

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

Выводы

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

Введение
В процессе разработки цифровой аппаратуры передачи и обработки сигналов возникают задачи, для которых приходится производить громоздкие расчеты и операции над очень малыми числами (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.034368360279280495

0.10310508083784148

0.10310508083784148

0.034368360279280495

Denominator: 1

-1.5430332949796606

1.1342539034879857

-0.31627372627408118

Затем нажатием на , получаем структурную, прямую каноническую схему фильтра (показано на рис.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 0x0500 /*Константа - определяет длину реализации входного воздействия и отклика*/ 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; /* 0x0000: Reset vector*/

RTI; nop; nop; nop; /* 0x0004: IRQ2*/

RTI; nop; nop; nop; /* 0x0008: IRQL1*/

RTI; nop; nop; nop; /* 0x000C: IRQL0*/

RTI; nop; nop; nop; /* 0x0010: SPORT0 transmit*/

RTI; nop; nop; nop; /* 0x0014: SPORT0 receive*/

RTI; nop; nop; nop; /* 0x0018: IRQE*/

RTI; nop; nop; nop; /* 0x001C: BDMA*/

RTI; nop; nop; nop; /* 0x0020: SPORT1 transmit*/

RTI; nop; nop; nop; /* 0x0024: SPORT1 receive*/

RTI; nop; nop; nop; /* 0x0028: Timer*/

RTI; nop; nop; nop; /* 0x002C: 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с.

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

Размещено на .
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?