Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
DSP_raspechatat.docx
Скачиваний:
26
Добавлен:
12.03.2015
Размер:
1.05 Mб
Скачать

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

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

>> fdatool

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

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

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

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

  1. Response type – тип фильтра;

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

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

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

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

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

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

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

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

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

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

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

Рис.13. ИХ полученного фильтра

Затем при помощи нажития на значок получаем коэффициенты нашего фильтра (показано на рис.14)

Рис.14. Коэффициенты полученного фильтра.

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

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

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

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

Рис.16. Главное окно visualDSP++

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

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

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

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

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

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

#define n 6

#define z_out 0x700

.section/data 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; /*------Interrupt vector table------*/

__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; /*pointer to x input buffer*/

I2=x_output;

I4=y_input; /*pointer to y input buffer*/

M0 = 1;

M1 = -1;

M5 = 1;

L0 = 0;

L1 = 0;

L2 = 0;

L4 = 2*n+1;

SE = 4;

AX0 = 0;

CNTR = n;

DO goclr UNTIL CE;

goclr: DM(I2,M0) = AX0;

CNTR = z_out;

DO go UNTIL CE;

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;

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;

SR = LSHIFT MR0(LO);

SR = SR OR ASHIFT MR1(HI);

DM(I2,M0)=SR1;

go: MODIFY(I1,M0);

IDLE;

Чтобы посмотреть АЧХ фильтра нужно открыть вкладку View, далее Debug, Windows, Plot, New. (показано на рис.18)

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

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

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

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

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

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

Получаем АЧХ реализованного фильтра

А.

f=4000Гц

Б. f=8000Гц

В. f=12000Гц

Рис.19(А,Б,В). АЧХ реализованного фильтра в программном пакете visualDSP++ на сигнальном процессоре ADSP-2181.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]