Цифровые процессоры обработки сигналов


Санкт-Петербургский Государственный Университет Телекоммуникаций

им. проф. М.А. Бонч-Бруевича






Пояснительная записка


к курсовому проекту




«Реализация ЦФ на цифровом процессоре обработки сигналов»














Выполнил:

Группа Р-21з

Проверил:













Санкт-Петербург

2007 г.

Содержание


Техническое задание 1: Реализация КИХ-фильтра …………………………………3

Схема алгоритма работы системы …………………………….…………………..4

Структурная схема КИХ-фильтра………………………………………………....4

Таблица идентификаторов используемых переменных, констант,

регистров и распределение памяти………………………………………………..5

Текст программы на языке ассемблера……………………………………………6

Командный файл компоновки……………………………………………………..7

Таблица компоновки………………………………………………………………..8

Таблица значений импульсной характеристики КИХ-фильтра………………….9

Импульсная характеристика и АЧХ фильтра……………………………………..10

Расчет максимально возможной частоты дискретизации………………………..11


Техническое задание 2: Реализация БИХ-фильтра …………………………………..12

Структурная схема звена БИХ-фильтра второго порядка ………………..……...13

Схема алгоритма работы системы и выполнения программы…………………...14

Таблица идентификаторов используемых переменных, констант,

и распределение памяти …………………………………………………………....15

Текст программы на языке ассемблера…………………………………………….16

Командный файл компоновки……………………………………………………...18

Таблица компоновки ………………………………………………………………..19

Таблица значений импульсной характеристики БИХ-фильтра………………......20

Импульсная характеристика и АЧХ фильтра………………………………………20

Расчет максимально возможной частоты дискретизации………………………....16

Литература……………………………………………………………………………17

Техническое задание 1

Таблица 1 Вариант задания

A

B

C

D

E

1

1

-

-

-


Разработать и отладить программу реализации на процессоре TMS320C50 цифрового фильтра с конечной импульсной характеристикой (КИХ-фильтр), коэффициенты которого заданы.

Таблица 2 Распределение памяти процессора и тип прерывания

Назначение

Начальный адрес

начальный адрес памяти для размещения кодов программы

040h

начальный адрес памяти для размещения данных

100h

начальный адрес памяти для размещения коэффициентов и переменных

200h

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

INT1

Период прерываний

1000 тактов


Для решения технического задания 1 необходимо сделать следующее:

  1. Написать программу реализации фильтра.

  2. Отладить написанную программу с помощью имитатора процессора.

  3. Снять ИХ полученного фильтра, используя в качестве входного сигнала единичный импульс. Критерием правильности будет совпадение значений полученной импульсной характеристики с заданными коэффициентами фильтра с учётом введённого на входе масштабного множителя ( для совпадения коэффициенты должны быть умножены на ММ).

  4. Используя пакет программ FD3 получить импульсную характеристику заданного фильтра и сравнить её с характеристикой, снятой в имитаторе.

  5. Определить в имитаторе время вычисления выходного отсчета фильтра (в тактах) и рассчитать максимально возможную для этого фильтра частоту дискретизации входного сигнала.

Структурная схема системы ЦОС:

Данные

Выходное ВУ (получатель выходного сигнала системы)

Входное ВУ (источник исходного сигнала)



Система ЦОС (ЦПОС)


ЗП






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

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


Структурная схема КИХ-фильтра

Z-1 - элемент задержки;

ММ - масштабный множитель;

bn - коэффициенты фильтра;

X(n) - входной отсчет сигнала;

Y(n) - выходной отсчет сигнала.

Таблица 3 Коэффициенты фильтра

Коэффициент

Значение

В0

0.05049010

В1

0.03060544

В2

0.03276830

В3

-0.14641758

В4

0.25854980

В5

0.69452531

В6

-0.25854980

В7

-0.14641758

В8

-0.03276830

В9

0.03060544

В10

0.05049010

ММ

0.9

Таблица 4 Идентификаторы, используемых переменных, констант, регистров и распределение памяти

Наименование

Назначение

Адрес

Переменные

BUFFER2

Ячейки для хранения входных отсчетов сигнала

0200h

INAD

Входной отсчет сигнала

0100h

OUTAD

Выходной отсчет сигнала

0101h

Константы

BUFFER1

Ячейки для хранения коэффициентов фильтра

0300h

INPORT

Параллельный порт для ввода

0050h

MM

Масштабный множитель

0102h

N

Количество коэффициентов фильтра

119

OUTPORT

Параллельный порт для вывода

0051h

Регистры

AR1

Содержит адрес текущего коэффициента


AR2

Содержит адрес текущего отсчета



Текст программы на языке ассемблера (kih1.asm)

/*Реализация КИХ фильтра 10 порядка*/

.version 50

.global BUFFER2

.mmregs


N .set 11

OUTPORT .set 51h

INPORT .set 50h


.data


INAD .word 0

OUTAD .word 0

MM .word 32768*9/10


.sect "Vectors"

B START

B BEGIN

B BEGIN

B BEGIN

B BEGIN


.sect "Initmain"

START:

SETC INTM

CLRC OVM

SPM 1

SETC SXM

LDP #0

SPLK #0Fh,IMR

CLRC INTM

LOOP:

NOP

B LOOP


.sect "Vvod"

BEGIN:

LDP #0

SPLK #(N-2),BRCR

LDP #INAD

IN INAD,INPORT

LT INAD

MPY MM

LDP #BUFFER2

SPH BUFFER2


.sect "Filter"


LAR AR2,#(BUFFER2+N-1)

LAR AR1,#(BUFFER1+N-1)

MAR *,AR1

ZAP

RPTB B_END-1

LT *-,AR2

MPYA *-

DMOV *,AR1

B_END:


LT *,AR2

MPYA *

APAC

LDP #OUTAD

SACH OUTAD

.sect "Vivod"

OUT OUTAD,OUTPORT

CLRC INTM

RET


.sect "BUFFER2"

BUFFER2 .space N*16


.sect "BUFFER1"

FFER1

.word 32768*504/10000

.word 32768*306/10000

.word 32768*327/10000

.word -(32768*1464/10000)

.word 32768*2585/10000

.word 32768*6945/10000

.word -(32768*2585/10000)

.word -(32768*1464/10000)

.word -(32768*327/10000)

.word 32768*306/10000

.word 32768*504/10000

.end

Командный файл компоновки (kih1.cmd)

/*командный файл компоновки для КИХ фильтра*/


-v0

-e RESET

-m kih1.map

-o kih1.out

kih1.obj


MEMORY

{

PAGE 0:

VECS: origin = 0x0000, length = 0x0040

PROG: origin = 0x0040, length = 0x0300

PAGE 1:

REGS: origin = 0x0000, length = 0x0060

BLOCK0: origin = 0x0100, length = 0x0100

BLOCK1: origin = 0x0200, length = 0x0100

BLOCK2: origin = 0x0300, length = 0x0100

}

SECTIONS

{

Vectors : {}>VECS PAGE 0

Main : {*(Initmain)

*(Vvod)

*(Filter)

*(Vivod)

}> PROG PAGE 0


.data : {}>BLOCK0 PAGE 1

BUFFER2 : {}>BLOCK1 PAGE 1

BUFFER1 : {}>BLOCK2 PAGE 1

}

Таблица 5 Значения импульсной характеристики фильтра

Номер

отсчета

Значение ИХ в FD

Значение ИХ в FD, пересчитанные с учетом ММ

Значения ИХ снятые при выполнении программы

0




1




2




3




4




5




6




7




8




9




10




В данном случае (при воздействии на входе КИХ-фильтра тестового сигнала в виде единичного импульса) отсчеты ИХ фильтра равны соответствующим коэффициентам фильтра.

Техническое задание 2

Таблица 6 код варианта задания

A

B

C

D

E

F

3

1

-

-

-

2

Разработать и отладить программу реализации фильтра с бесконечной импульсной характеристикой (БИХ-фильтр) на процессоре TMS320C50.


Таблица 7 Распределение памяти процессора и тип прерывания

Назначение

Начальный адрес

начальный адрес памяти для размещения кодов программы

400h

начальный адрес памяти для размещения данных

300h

начальный адрес памяти для размещения коэффициентов и переменных

180h

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

INT1

Период прерываний

1000 тактов


Для решения технического задания 2 необходимо сделать следующее:

  1. Написать программу реализации фильтра в виде последовательного соединения звеньев заданной структуры (трансформированная).

  2. Отладить написанную программу с помощью имитатора процессора.

  3. Используя пакет программ FD получить импульсную характеристику заданного фильтра и составить таблицу её значений.

  4. Снять ИХ полученного фильтра, используя в качестве входного сигнала единичный импульс. Критерием правильности будет совпадение значений полученной импульсной характеристики с значениями функции, полученной в пакете FD.

  5. Определить в имитаторе время вычисления выходного отсчета фильтра (в тактах) и рассчитать максимально возможную для этого фильтра частоту дискретизации входного сигнала.

Структурная схема звена БИХ-фильтра второго порядка – каноническая форма











Z-1 - элемент задержки;

ММ - масштабный множитель;

Bn, An - коэффициенты фильтра;

X(n) - входной отсчет сигнала;

Y(n) - выходной отсчет сигнала.

Таблица 8 Коэффициенты БИХ-фильтра

Коэффициент

Значение

B01

0.3845

B11

-0.7691

B21

0.3845

А01

1.0000

A11

0.0388

A21

0.0000

MM1

0.598

B02

0.3845

B12

-0.3845

B22

0.0000

А02

1.0000

A12

0.1036

A22

0.3346

MM2

1.0000

Схема алгоритма работы системы и выполнения программы:

Т

екст программы на языке ассемблера (bih1.asm):

/*реализация БИХ фильтра в канонической форме*/

.version 50

.global BUFFER2

.mmregs


OUTPORT .set 51h

INPORT .set 50h


.data


INAD .word 0

OUTAD .word 0

MM1 .word 32768*598/1000


.sect "KOFVAR"


B01 .word 32768*3845/10000

B11 .word -(32768*7691/10000)

B21 .word 32768*3845/10000

A11 .word 32768*388/10000

A21 .word 32768*0/10000


B02 .word 32768*3845/10000

B12 .word -(32768*3845/10000)

B22 .word 32768*0/10000

A12 .word 32768*1036/10000

A22 .word 32768*3346/10000



IN1 .word 0

S11 .word 0

S21 .word 0

S31 .word 0

OUT1 .word 0


IN2 .word 0

S12 .word 0

S22 .word 0

S32 .word 0

OUT2 .word 0


.sect "Vectors"


B START

B BEGIN

B BEGIN

B BEGIN

B BEGIN


.sect "Initmain"


START:

SETC INTM

CLRC OVM

SPM 1

SETC SXM

LDP #0

SPLK #0Fh,IMR

CLRC INTM

LOOP:

NOP

B LOOP


.sect "Vvod"


BEGIN:


LDP #INAD

IN INAD,INPORT


LT INAD

MPY MM1

LDP #IN1

SPH IN1


.sect "Filter"


FIRST:

ZAP

LT S31

MPY B21

LTA S21

MPY B11

APAC

EXAR

LACC IN1,16

LT S31

MPY A21

LTA S21

MPY A11

APAC

SACH S11

LT S11

MPY B01

EXAR

APAC

SACH OUT1

DMOV S21

DMOV S11


LACC OUT1

LDP #IN2

SACL IN2


SEC:

ZAP

LT S32

MPY B22

LTA S22

MPY B12

APAC

EXAR

LACC IN2,16

LT S32

MPY A22

LTA S22

MPY A12

APAC

SACH S12

LT S12

MPY B02

EXAR

APAC

SACH OUT2

DMOV S22

DMOV S12


.sect "Vivod"


LACC OUT2

LDP #OUTAD

SACL OUTAD

OUT OUTAD,OUTPORT

CLRC INTM

RET

.end


Командный файл компоновки (bih1.cmd):


-v0

-e RESET

-m bih.map

-o bih.out

bih.obj


MEMORY

{

PAGE 0:

VECS: origin = 0x0000, length = 0x0040

PROG: origin = 0x0040, length = 0x0300

PAGE 1:

REGS: origin = 0x0000, length = 0x0060

BLOCK0: origin = 0x0100, length = 0x0100

BLOCK1: origin = 0x0200, length = 0x0100

}

SECTIONS

{

Vectors : {}>VECS PAGE 0

Main : {*(Initmain)

*(Vvod)

*(Filter)

*(Vivod)

}> PROG PAGE 0


.data : {}>BLOCK0 PAGE 1

KOFVAR : {}>BLOCK1 PAGE 1

}

Таблица 9 Значения импульсной характеристики БИХ - фильтра

Номер отсчета

Значение ИХ в FD

Значения ИХ снятые при выполнении программы

0



1



2



3



4



5



6



7



8



9



10



11



12



13



14



15



16



Литература


  1. Л.А. Яковлев. Реализация ЦФ на цифровом процессоре обработки сигналов.

Методические указания к выполнению курсовой работы. /СПбГУТ 2004.

  1. Л.А. Яковлев. Цифровые процессоры обработки сигналов. Методические указания к выполнению лабораторных работ /СПбГУТ 2003.

  2. А.И. Солонина, Д.А. Улахович и др. Основы цифровой обработки сигналов.СПб, «БХВ-Петербург» 2003

ċ
ЦПОС_программа.rar
(5k)
alex zaharenkov,
26 окт. 2008 г., 2:42
Ċ
alex zaharenkov,
26 окт. 2008 г., 2:41
Comments