Моделирование КИХ фильтра в программном симуляторе ЦПОС TMS320C25

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    52,13 Кб
  • Опубликовано:
    2015-06-14
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Моделирование КИХ фильтра в программном симуляторе ЦПОС TMS320C25

Санкт-Петербургский государственный политехнический университет

Институт физики, нанотехнологий и телекоммуникаций

Кафедра «Радиотехника и телекоммуникации»










КУРСОВой проект

Моделирование КИХ фильтра в программном симуляторе ЦПОС TMS320C25

по дисциплине «Применение программируемой элементной базы в РТС»

Выполнил

студент гр.53422/3 Е.К.Тихонова

Руководитель

Е.С.Поклонская



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

Задание на задание на курсовое проектирование

Вариант 2

Рассчитать фильтр с указанными параметрами несколькими методами и написать программу, реализующую рассчитанный фильтр на процессоре TMS320C25.

Параметры фильтра

. Порядок фильтра: 19;

. Тип фильтра: ВЧ;

. Частота дискретизации: FS=10 кГц; частота среза: Fc1=1.2 кГц.

СОДЕРЖАНИЕ

Задание на задание на курсовое проектирование

ВВЕДЕНИЕ

. Описание архитектуры процессора TMS320C25

. Моделирование фильтра в модуле FDATool программной среды Matlab

.1 Алгоритм нерекурсивной фильтрации сигнала

.2 Расчет коэффициентов  КИХ фильтра

.3 Расчет массива отсчетов входного сигнала

. Программа моделирования КИХ фильтра

.1 Симулятор SSIM25

.2 Описание программы КИХ фильтра

.3 Корректировка программы КИХ фильтра

.4 Моделирование КИХ фильтра при различных частотах входного сигнала

.5 Обработка результатов моделирования КИХ фильтра

ЗАКЛЮЧЕНИЕ

Библиографический список

ВВЕДЕНИЕ

Цель данной работы - расчёт фильтра с указанными параметрами несколькими методами и написание программы, реализующей рассчитанный фильтр на процессоре TMS320C25.

В процессе выполнения курсового проекта предполагается выполнение следующих пунктов:

. Описание архитектуры процессора TMS320C25.

. Моделирование фильтра в модуле FDATool программной среды Matlab двумя методами.

. Описание программы работы фильтра на выбранной программируемой элементной базе.

. Сравнение результатов моделирования в Matlab и на симуляторе ЦПОС.

1. Описание архитектуры процессора TMS320C25

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

Второе поколение процессоров Texas Instruments, относящееся к классу16-тиразрядных процессоров с фиксированной точкой, включает в себя - TMS32020 (командный цикл 200 нс), TMS320C25,TMS320C25-50(внешняя тактовая частота 50 МГц), TMS320E25 (ПЗУ с ультрафиолетовым стиранием), TMS320C26 (внутренне ОЗУ на 1568 слов). Архитектура этих устройств базируется на архитектуре процессора первого поколения TMS32010.

Характеристики процессора TMS320C25:

− командный цикл - 100 нс.

− внутренняя память данных (RAM) - 544 слова.

− внутренняя память программ (ROM) - 4 Кслова.

− адресуемая внешняя память программ/данных - 128 Кслов (64К×16 - память данных, 64К×16 - память программ).

− 16-разрядныйпараллельный интерфейс.

− прямой доступ к памяти от внешних устройств.

− 32-разрядные умножитель MPL и арифметико-логическое устройство ALU с32-разрядным аккумулятором.

− одноцикловые команды умножения/накопления.

− масштабирующий сдвигатель от 20 до 216.

− набор команд, поддерживающих операции с плавающей точкой.

− возможность перемещения блоков памяти программ/данных.

− возможность многократного повторения команд.

− 8 вспомогательных регистров для хранения данных и для косвенной адресации памяти с возможностью автоинкремента/автодекремента.

− отдельное арифметическое устройство для операций со вспомогательными регистрами.

− последовательный порт для построения мультипроцессорных систем, подключения кодеков и последовательных АЦП и ЦАП.

−циклы ожидания для связи с медленными внешними устройствами или памятью.

− внутренний таймер.

− три внешних маскируемых прерывания.

− напряжение питания + 5 В.

− внутренний тактовый генератор.

АРХИТЕКТУРА TMS320C25

Функциональная схема процессора TMS320C25 (рисунок 1.1) включает следующие аппаратные средства:

− ALU - 32-разрядноеарифметико-логическоеустройство, оперирующее с числами в дополнительном коде;

− ACCH (31-16),ACCL(15-0)-32-разрядный аккумулятор - накопитель старших и младших разрядов, соответственно;

− MULTIPLIER - параллельный 16×16 умножитель;

− SHIFTER - сдвиговые регистры;

− ARAU - 16-разрядноеустройство беззнаковой арифметики, для операций над адресами (данными), содержащимися во вспомогательных регистрах;

− AR0-AR7- файл16-разрядных вспомогательных регистров, используемых для адресации памяти данных и хранения других данных;

− ARP - 3-разрядный указательный регистр. Содержит номер одного из вспомогательных регистров;

− DATA BUS - 16-разрядная внутренняя шина данных;

− PROGRAMM BUS - 16-разрядная внутренняя шина программ;

− DAB - 16-разрядная шина адреса памяти данных;

− DRB - 16-разрядная шина непосредственного адреса памяти данных (образуется объединением содержимого DP - регистра и семи младших бит кода команды;

− AFB - 16-разрядная шина вспомогательных регистров AR(n);

− D0-D15- внешняя шина данных;

− A0-A15- внешняя шина адреса;

− RSR - входной 16-разрядный сдвиговый регистр последовательного порта;

− XSR - выходной 16-разрядный сдвиговый регистр последовательного порта;

− DRR - 16-разрядный регистр-приемник последовательного порта;

− DXR - 16-разрядный регистр-передатчик последовательного порта;

− TIM - 16-разрядный таймер;

− IMR - 6-разрядный регистр масок прерываний;

− GREG - 8-разрядный регистр местоположения и размера глобальной памяти;

− PRD - 16-разрядный регистр периода для загрузки таймера;

− DP - 9-разрядный указатель страницы адреса памяти данных;

− RAM (B0) - ОЗУ (256×16) с произвольным доступом для хранения данных или программ;

− RAM (B1) - ОЗУ (256×16) с произвольным доступом для хранения данных;

− RAM (B2) - ОЗУ (32×16) с произвольным доступом для хранения данных;

− ROM - память программ, объемом 4К×16;

− PC - 16-разрядныйсчетчик команд для адресации памяти команд;

− PFC - 16-разрядныйсчетчик предзахвата команд;

− MCS - однословный стек для временного хранения содержимого PFC;

− Stack - аппаратный стек объемом 8×16 для размещения значений PC во время прерываний или программных вызовов;

− QIR - 16-разрядный регистр для хранения предварительно захваченной команды;

− IR - 16-разрядный регистр выполняемой команды;

− RPTC - 8-разрядный счетчик повторения одной команды;

− IFR - 6-разрядный флаговый регистр для захвата внешних или внутренних прерываний;

− ST0, ST1 - 16-разрядные регистры состояния для хранения управляющих битов и битов состояния;

− MUX - мультиплексоры.

Архитектура TMS320C25 построена вокруг двух основных шин - шины команд (Program Bus) и шины данных (Data Bus). Шина команд служит для передачи кодов команд и непосредственных операндов, расположенных в памяти программ. Шина данных подсоединяет CALU (ALU, SHIFTER, ACC и MPL) к ОЗУ данных (RAM).C25 обладает высокой степенью параллелизма, т.е. в то время когда происходит обработка данных в CALU, арифметические операции могут выполняться в арифметическом устройстве вспомогательных регистров (ARAU). Это позволило создать мощный набор одноцикловых команд, выполняющих арифметические, логические операции и операции, манипулирующие битами. [1,2]

2. Моделирование фильтра в модуле FDATool программной среды Matlab

.1 Алгоритм нерекурсивной фильтрации сигнала

Структура устройства, реализующего данный алгоритм, показана на рисунке 2.1. Формирование отсчета выходного сигнала  производится в течение интервала дискретизации T непрерывного сигнала , через который на вход устройства поступают отсчеты входного сигнала . Интервал времени T задается частотой дискретизации  при . Целочисленный аргумент  является номером входного и выходного отсчетов. [3]

Рисунок 2.1. Алгоритм нерекурсивной фильтрации сигнала

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

Набор из  коэффициентов  при  определяет тип нерекурсивного фильтра - ФНЧ, ФВЧ, полосовой фильтр, преобразователь Гильберта. Величина  называется порядком нерекурсивного фильтра.

Аналитически алгоритм работы нерекурсивного фильтра можно записать в виде:

,                 (2.1)

где  - конечная импульсная характеристика (КИХ) фильтра;

 - количество отсчетов КИХ.

Формула (2.1) представляет собой свертку отсчетов входного дискретного сигнала  и отсчетов  конечной импульсной характеристики фильтра. Нерекурсивный фильтр, реализующий алгоритм обработки (2.1), часто называют КИХ фильтром.

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

Расчет фильтра производится в среде MatLab с использованием пакета Filter Design and Analysis Tool (FDATool).

Исходные данные для расчёта:

-       Граничная частота полосы прозрачности = 1.2 кГц;

-       Частота дискретизации = 10 кГц;

-       Порядок фильтра: 19;

-       Метод расчета - с использованием сглаживающего окна Кайзера с параметром =2,5 (используем в первом случае);

-       Второй используемый метод расчёта - метод с использованием окна Хэмминга.

После ввода заданных параметров осуществляется расчет КИХ фильтра (с помощью кнопки Design Filter). [4]

Окно Кайзера с параметром β=2,5; порядок фильтра =19; частота дискретизации = 10 кГц; граничная частота полосы прозрачности фильтра = 1.2 кГц.

Листинг 2.1.Массив коэффициентов h(k) КИХ фильтра в редакторе Edit в среде MatLab. При расчёте фильтра использовался метод Кайзера с β=2.5.

% Generated by MATLAB(R) 8,4 and the Signal Processing Toolbox 6,22,

% Generated on: 08-May-2015 07:14:18

% Coefficient Format: Decimal

% Discrete-Time FIR Filter (real)

% -------------------------------

% Filter Structure : Direct-Form FIR

% Filter Length : 20

% Stable : Yes

% Linear Phase : Yes (Type 4)

Numerator:

,0065041457740196221

,015124649328759584

,017578729886695461

,0056461390879967667

,022115438826829221

,054925411643134317

,069918239399893736

,036865024553908159

,088380802089546739

,59144964730382499

,59144964730382499

,088380802089546739

,036865024553908159

,069918239399893736

,054925411643134317

,022115438826829221

,0056461390879967667

,017578729886695461

,015124649328759584

,0065041457740196221

Для дальнейшей обработки коэффициентов h(k) произведено копирование массива коэффициентов в буфер обмена и введите их в электронную таблицу Excel. После ряда манипуляций (значения коэффициентов h(k) переведены в область целых чисел, вычислены и шестнадцатеричные значения и сформированы их 4-хразрядные значения) таблица обработки данных представлена в следующем виде.

Таблица 2.1. Представление коэффициентов  в форме 4-х разрядных шестнадцатеричных чисел. При расчёте фильтра использовался метод Кайзера с β=2.5.

k

h(k)

h(k)*2^14

ДЕС.В.ШЕСТН(Ck;4)

ПРАВСИМВ(Dk;4)

0

-0,0065

-107

FFFFFFFF95

FF95

1

-0,01512

-248

FFFFFFFF08

FF08

2

-0,01758

-288

FFFFFFFEE0

FEE0

3

-0,00565

-93

FFFFFFFFA3

FFA3

4

0,022115

362

016A

016A

5

0,054925

900

0384

0384

6

0,069918

1146

047A

047A

7

0,036865

604

025C

025C

8

-0,08838

-1448

FFFFFFFA58

FA58

9

-0,59145

-9690

FFFFFFDA26

DA26

10

0,59145

9690

25DA

25DA

11

0,088381

1448

05A8

05A8

12

-0,03687

-604

FFFFFFFDA4

FDA4

13

-0,06992

-1146

FFFFFFFB86

FB86

14

-0,05493

-900

FFFFFFFC7C

FC7C

15

-0,02212

-362

FFFFFFFE96

FE96

16

0,005646

93

005D

005D

17

0,017579

288

0120

0120

18

0,015125

248

00F8

00F8

19

0,006504

107

006B

006B


Вышеприведённые характеристики были получены для расчёта методом окна Кайзера с параметром β=2.5. Теперь проведём расчёт другим методом - посредством окна Гаусса с параметром α =1,4. В итоге получаем АЧХ и импульсную характеристику КИХ фильтра, рассчитанного методом окна Гаусса с параметром α =1,4.

Листинг 2.2.Массив коэффициентов h(k) КИХ фильтра в редакторе Edit в среде MatLab. При расчёте фильтра использовался метод Гаусса с α=1.4.

% Generated by MATLAB(R) 8,4 and the Signal Processing Toolbox 6,22,

% Generated on: 14-May-2015 17:52:54

% Coefficient Format: Decimal

% Discrete-Time FIR Filter (real)

% -------------------------------

% Filter Structure : Direct-Form FIR

% Filter Length : 20

% Stable : Yes

% Linear Phase : Yes (Type 4)

Numerator:

,0080386346104561329

,017002249040225202

,018694504122804434

,005816381426908445

,022391970242300673

,055145974779394577

,069968823664196947

,036868388738027398

,088423686507553598

,59199176438460488

,59199176438460488

,088423686507553598

,036868388738027398

,069968823664196947

,055145974779394577

,022391970242300673

,005816381426908445

,018694504122804434

,017002249040225202

,0080386346104561329

Таблица 2.2. Представление коэффициентов  в форме 4-х разрядных шестнадцатеричных чисел. При расчёте фильтра использовался метод Гаусса с α=1.4.

k

h(k)

h(k)*2^14

ДЕС.В.ШЕСТН(Ck;4)

ПРАВСИМВ(Dk;4)

0

-0,00804

-132

FFFFFFFF7C

FF7C

1

-0,017

-279

FFFFFFFEE9

FEE9

2

-0,01869

-306

FFFFFFFECE

FECE

3

-0,00582

-95

FFFFFFFFA1

FFA1

4

0,022392

367

016F

016F

5

0,055146

904

0388

0388

6

0,069969

1146

047A

047A

7

0,036868

604

025C

025C

8

-0,08842

-1449

FFFFFFFA57

FA57

9

-0,59199

FFFFFFDA1D

DA1D

10

0,591992

9699

25E3

25E3

11

0,088424

1449

05A9

05A9

12

-0,03687

-604

FFFFFFFDA4

FDA4

13

-0,06997

-1146

FFFFFFFB86

FB86

14

-0,05515

-904

FFFFFFFC78

FC78

15

-0,02239

-367

FFFFFFFE91

FE91

16

0,005816

95

005F

005F

17

0,018695

306

0132

0132

18

0,017002

279

0117

0117

19

0,008039

132

0084

0084


2.3 Расчет массива отсчетов входного сигнала

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

, (2.2)

где  - относительная частота дискретного сигнала .

Заданы следующие значения частоты  исходной гармонической функции:

-    В левой полосе задерживания КИХ фильтра ==0.8 кГц;

-       В полосе пропускания КИХ фильтра ==1.6 кГц;

-       В правой полосе задерживания КИХ фильтра ==3.2 кГц.

При заданной частоте дискретизации = 10 кГц для частот ,  и  определим соответствующие относительные частоты  дискретных сигналов и их фундаментальные периоды. Результаты расчетов представлены в таблице 2.3.

Таблица 2.3. Определение фундаментального периода

№ пп

Заданные значения частоты

Относительная частота

Фундаментальный период


кГц



1

0.8

25

2

1.6

25

3

3.2

25


В ходе выполнения работы получим таблицу расчета входного сигнала  в форме 4-х разрядных шестнадцатеричных чисел для заданной частоты ==0.8 кГц (Таблица 2.3):

Таблица 2.4. Представление отсчетов входного сигнала  для частоты F=F1=0.8 кГц в форме 4-х разрядных шестнадцатеричных чисел.

n

x(n)=SIN(2*ПИ()*2/25*Ak)

Bk*2^10

ДЕС.В.ШЕСТН(Ck;4)

ПРАВСИМВ(Dk;4)

0

0

0

0000

0000

1

0,4818

493

01ED

01ED

2

0,8443

865

0361

0361

3

0,998

1022

03FE

03FE

4

0,9048

927

039F

039F

5

0,5878

602

025A

025A

6

0,1253

128

0080

0080

7

-0,3681

-377

FFFFFFFE87

FE87

8

-0,7705

-789

FFFFFFFCEB

FCEB

9

-0,9823

-1006

FFFFFFFC12

FC12

10

-0,9511

-974

FFFFFFFC32

FC32

11

-0,6845

-701

FFFFFFFD43

FD43

12

-0,2487

-255

FFFFFFFF01

FF01

13

0,2487

255

00FF

00FF

14

0,6845

701

02BD

02BD

15

0,9511

974

03CE

03CE

16

0,9823

1006

03EE

03EE

17

0,7705

789

0315

0315

18

0,3681

377

0179

0179

19

-0,1253

-128

FFFFFFFF80

FF80

20

-0,5878

-602

FFFFFFFDA6

FDA6

21

-0,9048

-927

FFFFFFFC61

FC61

22

-0,998

-1022

FFFFFFFC02

FC02

23

-0,8443

-865

FFFFFFFC9F

FC9F

24

-0,4818

-493

FFFFFFFE13

FE13


Аналогично получим данные для ==1.6 кГц и ==3.2 кГц.

Таблица 2.5 . Представление отсчетов входного сигнала  для частоты F=F1=1.6 кГц в форме 4-х разрядных шестнадцатеричных чисел.

n

x(n)=SIN(2*ПИ()*4/25*Ak)

Bk*2^10

ДЕС.В.ШЕСТН(Ck;4)

ПРАВСИМВ(Dk;4)

0

0

0

0000

0000

1

0,8443

865

0361

0361

2

0,9048

927

039F

039F

3

0,1253

128

0080

0080

4

-0,7705

-789

FFFFFFFCEB

FCEB

5

-0,9511

-974

FFFFFFFC32

FC32

6

-0,2487

-255

FFFFFFFF01

FF01

7

0,6845

701

FFFFFFFE87

FE87

8

0,9823

1006

03EE

03EE

9

0,3681

377

0179

0179

10

-0,5878

-602

FFFFFFFDA6

FDA6

11

-0,998

-1022

FFFFFFFC02

FC02

12

-0,4818

-493

FFFFFFFE13

FE13

13

0,4818

493

01ED

01ED

14

0,998

1022

03FE

03FE

15

0,5878

602

025A

025A

16

-0,3681

-377

FFFFFFFE87

FE87

17

-0,9823

-1006

FFFFFFFC12

FC12

18

-0,6845

-701

FFFFFFFD43

FD43

19

0,2487

255

00FF

00FF

20

0,9511

974

03CE

03CE

21

0,7705

789

0315

0315

22

-0,1253

-128

FFFFFFFF80

FF80

23

-0,9048

-927

FFFFFFFC61

FC61

24

-0,8443

-865

FFFFFFFC9F

FC9F


Таблица 2.6 . Представление отсчетов входного сигнала  для частоты F=F1=3.2 кГц в форме 4-х разрядных шестнадцатеричных чисел.

n

x(n)=SIN(2*ПИ()*8/25*Ak)

Bk*2^10

ДЕС.В.ШЕСТН(Ck;4)

ПРАВСИМВ(Dk;4)

0

0

0000

0000

1

0,9048

927

039F

039F

2

-0,7705

-789

FFFFFFFCEB

FCEB

3

-0,2487

-255

FFFFFFFF01

FF01

4

0,9823

1006

03EE

03EE

5

-0,5878

-602

FFFFFFFDA6

FDA6

6

-0,4818

-493

FFFFFFFE13

FE13

7

0,998

1022

FFFFFFFE87

FE87

8

-0,3681

-377

FFFFFFFE87

FE87

9

-0,6845

-701

FFFFFFFD43

FD43

10

0,9511

974

03CE

03CE

11

-0,1253

-128

FFFFFFFF80

FF80

12

-0,8443

-865

FFFFFFFC9F

FC9F

13

0,8443

865

0361

0361

14

0,1253

128

0080

0080

15

-0,9511

-974

FFFFFFFC32

FC32

16

0,6845

701

02BD

02BD

17

0,3681

377

0179

0179

18

-0,998

-1022

FFFFFFFC02

FC02

19

0,4818

493

01ED

01ED

20

0,5878

602

025A

025A

21

-0,9823

-1006

FFFFFFFC12

FC12

22

0,2487

255

00FF

00FF

23

0,7705

789

0315

0315

24

-0,9048

-927

FFFFFFFC61

FC61

 

 

3. Программа моделирования КИХ фильтра


Для моделирования КИХ фильтра будем использовать программный симулятор SSIM25.EXE цифрового процессора сигналов TMS320C25.

3.1 Симулятор SSIM25

Симулятор SSIM25 предназначен для отладки программ цифрового процессора сигналов TMS320C25. После запуска программы симулятора открывается основное окно, представленное на рисунке 3.1. Верхняя строка окна представляет основное меню симулятора, которое содержит 6 разделов: Program, Data, Run, Break, Option и Tool.

Основное окно симулятора разделено на четыре поля: INSTRUCTIONS, REGISTERS, DATA, PROG.

В поле INSTRUCTIONS отображаются команды выполняемой программы. С указанием абсолютного адреса размещения команды, ее машинного кода и мнемонического вида на языке ассемблер.

В поле REGISTERS отображаются содержимое регистров цифрового процессора сигналов TMS320C25 в шестнадцатеричном коде, включая счетчик команд PC.

В поле DATA в шестнадцатеричном коде отображается содержимое памяти данных цифрового процессора сигналов TMS320C25, а в поле PROG отображается содержимое памяти программ.

3.2 Описание программы КИХ фильтра

Каждый отсчет выходного сигнала  должен быть вычислен в течение интервала дискретизации T от момента поступления текущего отсчета входного сигнала  до момента поступления следующего отсчета входного сигнала . В этом заключается суть работы устройства в реальном масштабе времени. Поэтому сокращение времени вычисления отсчетов выходного сигнала является актуальным вопросом при реализации устройств ЦОС в реальном масштабе времени. В системе команд ЦПОС второго поколения предусмотрены универсальные команды, реализующие операции умножения, аккумулирования и сдвига данных за один машинный такт. В цифровом процессоре сигналов TMS320C25 такой универсальной командой является MACD (multiplay and accumulate with data move).

Цифровой процессор сигналов TMS320C25 имеет внутреннюю память данных объемом 544 16-ти разрядных слова, разделенных на три блока B0, B1 и B3. При этом блоки B1 и B3 размером 256 и 32 слова, соответственно, всегда являются памятью данных, а блок B0 размером 256 слов программируется либо как память данных, либо как память программ. Для конфигурации блока B0 служат две команды. Команда CNFD конфигурирует блок B0 как память данных, а команда CNFP конфигурирует блок B0 как память программ, т.е. указанные команды позволяют динамически изменять карту памяти процессора программными средствами, как это изображено на рисунках 3.2 и 3.3. [5]

Текст программы КИХ фильтра, использующей память данных в соответствии со схемой распределения памяти на рисунке 3.4, представлен в таблице 3.1.

Таблица 3.1. Программа КИХ фильтра.

Адрес

Команда

Описание

0020

CNFP

Блок B0 определяется как память программ.

0021

LDPK >0007

Загрузка указателя DP страницы памяти данных номером 7.

0022

IN >XX,PA0

Cчитывание 16-разрядного слова из внешнего порта PA0 ввода/вывода и запись его в ячейку памяти данных с относительным адресом >ХХ на странице №7. В нашем случае это адрес верхней границы (младший адрес) буфера входных отсчетов , который равен >XX=>007F -N+1. Соответствующий абсолютный адрес равен >380+>007F -N+1= >3FF-N+1, что совпадает с распределением памяти на рисунке 3.4.

0023

LRLK AR1,>03FF

Абсолютный адрес >03FF последней ячейки 7-ой страницы загружается в регистр AR1 для использования в качестве нижней (старший адрес) границы буфера входных отсчетов . Длина буфера равна N.

0025

MAR *,AR1

Выбор регистра AR1 в качестве рабочего регистра.

0026

MPYK 0

Обнуление Р-регистра

0027

ZAC

Обнуление аккумулятора

0028

RPTK >N-1

Повторить выполнения следующей команды N раз.

0029

MACD >FF00,*-

Первый операнд команды MACD равен (PMA)= FF00, что соответствует верхней границе (младший адрес) буфера отсчетов  импульсной характеристики КИХ фильтра. Указанное значение загружается в счетчик команд PC. Второй операнд (DMA) команды MACD равен содержимому рабочего регистра, в качестве которого был выбран регистр AR1, и соответствует нижней границе (старший адрес >3FF) буфера входных отсчетов . Команда перемножает текущие значения  и . Предварительно производится сложение предыдущего произведения с содержимым аккумулятора. Затем ячейка памяти данных, адресуемая через AR1, копируется в следующую более старшую ячейку памяти данных. Содержимое регистра AR1 уменьшается на 1, а содержимое счетчика команд увеличивается на 1.

002B

APAC

Команда является вспомогательной для выполнения команд LTA, LTD, MAC, MACD и SQRA.

002C

SACH >YY,1

Команда SACH копирует аккумулятор со сдвигом. 32-разрядное число сдвигается влево на 1 разряд и затем старшие 16 бит помещаются в ячейку >YY памяти данных. В нашем случае ячейка >YY используется для хранения выходного отсчета . Адрес >YY можно выбрать любой в диапазоне от >00 до> 007F -N ячеек памяти данных не занятом отсчетами  на странице №7.

002D

OUT >YY,PA1

Вывод данных из ячейки памяти в порт PA1.

002E

B >0022

Безусловный переход по указанному адресу. В нашем случае - это организация бесконечного цикла путем перехода к команде считывания очередного выборочного значения сигнала .


3.3 Корректировка программы КИХ фильтра

Перед запуском программы КИХ фильтра в папке C:/306/dsp/ присутствуют следующие файлы:

-    FILT - файл, содержащий программу КИХ фильтра;

-       Coeff.txt - файл, содержащий массив отсчетов импульсной характеристики. В случае второго метода расчёта фильтра используется файл Coeff1.txt

-       IN_F1.TXT - файл, содержащий массив отсчетов входного сигнала  для частоты = в форме 4-х разрядных шестнадцатеричных чисел;

-       IN_F2.TXT - то же, для частоты =;

-       IN_F3.TXT - то же, для частоты =.

Далее необходимо внести изменения в программу КИХ фильтра в соответствии с заданной длиной импульсной характеристики.

Вычислим верхний адрес массива отсчетов входного сигнала  в памяти данных симулятора:

>XX = >7F - N + 1 = >7F - >13 = >6C.

С помощью клавиши Tab переходим в поле INSTRUCTIONS и клавишами стрелки выбираем и производим коррекцию адреса ячейки

>XX в следующей команде:

                   IN >6C,PA0

Выберем t команду RPTK и откорректируем операнд = >13 в этой команде:

                   RPTK >13

Выберем команды SACH и OUT для корректировки адрес ячейки >YY = >XX-1= >6C - 1 = 6B в этих командах:

C                SACH > 6B, 1

D                OUT > 6B, PA1

Измененную программу сохраняем в файле C:/306/dsp/FILT.

Затем приступаем к моделированию КИХ фильтра при различных частотах входного сигнала.

3.4 Моделирование КИХ фильтра при различных частотах входного сигнала

Фильтрация сигнала на частоте =.

Настраиваем симулятор для работы с файлом C:/306/dsp/IN_F1.TXT входных данных  и определяем имя выходного файла - OUT_F1.TXT. После проверки в подменю Option/Data type установки опции TXT записываем в строках IN 0 и OUT 1 подменю Option/ i/o files окна Files for I/O and Serial Ports IN_F1.TXT и OUT_F1.TXT (соответственно).

Затем следует записать массив коэффициентов КИХ фильтра в память данных с адресами от >200 до >213 из подготовленного ранее файла Coeff.txt. Для этого необходимо в открытом окне симулятора войти в основное меню нажатием клавиши F10. В подменю Data/Mem limits вводим следующие адреса:

Start Adr:   >200Adr:   >213.

После в подменю Data/Data Load в открывшемся окне Input RAM LOAD File Name вводим имя файла Coeff.txt и нажимаем клавишу Enter. Далее устанавливаем стартовый адрес >20 программы в счетчике команд (РС) симулятора.

Теперь симулятор готов к проведению программного моделирования работы КИХ фильтра.

Запускаем программу с помощью подменю Run/Run и клавиши Enter.

В результате работы программы КИХ фильтра с входным файлом IN_F1.TXT в файле OUT_F1.TXT записан массив отсчетов выходного сигнала в форме 4-х разрядных шестнадцатеричных чисел для частоты F=F1.

После каждого эксперимента необходимо перевести программу КИХ фильтра в исходное состояние, после чего повторяем эти манипуляции для частот F=F2 и F=F3.

Затем проделаем всё это для второго метода расчёта - метода окна Гаусса с α=1.4. В этом случае используем файл Coeff1.txt, а не Coeff1.txt. В этом случае массивы отсчетов выходного сигнала в форме 4-х разрядных шестнадцатеричных чисел для частот F=F1, F=F2, F=F3 будут записаны в файлы OUT_F11.TXT, OUT_F22.TXT, OUT_F33.TXT соответственно.

3.5 Обработка результатов моделирования КИХ фильтра

Для дальнейшей обработки результатов фильтрации сигналов на частотах F1, F2 и F3, содержащихся в файлах OUT_F1.TXT, OUT_F2.TXT и OUT_F3.TXT, соответственно, переписываем по 41 первому отсчету из каждого файла в электронную таблицу Excel. При этом отрицательные 4-х разрядные числа преобразовываются в 10-ти разрядные (путём дополнения каждого такого числа слева символами FFFFFF). Так же поступим и с файлами OUT_F11.TXT, OUT_F22.TXT, OUT_F33.TXT - для второго метода расчёта фильтра.

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

Таблица 3.2. Результаты программного моделирования КИХ фильтра

В качестве метода расчёта использовался метод окна Кайзера с β=2.5.

n

y(n) при F=0.8 кГц


y(n) при F=1.6кГц


y(n) при F=3.2 кГц


1

FFFFFFFFFB

-5

0

0

FFFFFFFE14

-492

2

FFFFFFFFEE

-18

2

2

00CB

203

3

FFFFFFFFE6

-26

9

9

01AF

431

4

FFFFFFFFE6

-26

000F

15

FE40

-492

5

FFFFFFFFEF

-17

8

8

FFFFFFFFB

-37

6

1

1

FFFFFFFFF1

-15

000D

13

7

15

21

FFFFFFFFCF

-49

FFFFFFFFE0

-32

8

001F

31

FFFFFFFFB8

-72

FFFFFFFFC4

-60

9

13

19

FFFFFFFFD0

-48

01DF

479

10

FFFFFFFFC1

-63

35

53

FFFFFFFEFA

-262

11

10

16

168

360

88

136

12

20

32

52

82

FFFFFFFDF8

-520

13

18

24

FFFFFFFED7

-297

00E0

224

14

7

7

FFFFFFFE92

-366

01D1

465

15

FFFFFFFFF4

-12

FFFFFFFFC7

-57

FFFFFFFE5C

-420

16

FFFFFFFFE8

-24

012A

298

FFFFFFFFEC

-20

17

FFFFFFFFE6

-18

89

137

001E

30

18

FFFFFFFFEB

-21

01CB

459

FFFFFFFFF6

-10

19

FFFFFFFFF5

-11

FFFFFFFEF6

-266

FFFFFFFFD7

-41

1

1

FFFFFFFE09

-503

01D5

469

21

000C

12

FFFFFFFF0B

-245

FFFFFFFE89

-375

22

13

19

00E7

231

FFFFFFFEFF

-257

23

16

22

01DA

474

01F0

496

24

13

19

107

263

FFFFFFFF2A

-214

25

000C

12

FFFFFFFF3A

-198

FFFFFFFEC6

-314

26

1

1

FFFFFFFE25

-475

01F9

505

27

FFFFFFFFF6

-10

FFFFFFFED

-307

FFFFFFFFA4

-92

28

FFFFFFFFED

-19

96

150

FFFFFFFE62

-414

29

FFFFFFFFE9

-23

01D7

471

01BF

447

30

FFFFFFFFEA

-22

162

354

20

32

31

FFFFFFFFF1

-15

FFFFFFFFA4

-92

FFFFFFFE24

-476

32

FFFFFFFFFB

-5

FFFFFFFE3B

-453

174

372

33

6

6

FFFFFFFE72

-398

99

153

34

10

16

16

22

FFFFFFFDA

-518

35

15

21

01A1

417

105

261

36

15

21

01A7

423

010E

270

37

10

16

002A

42

FFFFFFFE14

-492

38

6

6

FFFFFFFE93

-365

00C4

196

39

FFFFFFFFFB

-5

FFFFFFFE61

-415

01A5

421

40

FFFFFFFFF1

-15

FFFFFFFFB8

-72

FFFFFFFE3E

-450

41

FFFFFFFFEA

-22

133

307

FFFFFFFFE2

-30


Исходя из данных таблицы 3.2., получаем графики сигнала  на выходе КИХ фильтра при значениях частоты входного сигнала F1, F2 и F3.

В качестве метода расчёта использовался метод окна Кайзера с β=2.5.

Согласно графикам на рисунках 3.5-3.7 при одинаковой амплитуде входного сигнала амплитуда выходного сигнала в установившемся режиме равна:

-       единиц на частоте F1=0.8 кГц;

-       единиц на частоте F2=1.6 кГц;

-       единиц на частоте F3=3.2 кГц;

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

F1=0.8 кГц и F3=3.2 кГц по сравнению с прохождением сигнала на частоте F21.6 кГц в пределах полосы прозрачности фильтра:

дБ;

дБ.

Теперь вновь вернёмся к варианту расчёта методом окна Гаусса с α=1.4

Таблица 3.3. Результаты программного моделирования КИХ фильтра

В качестве метода расчёта использовался метод окна Гаусса с α=1.4

n

y(n) при F=0.8 кГц


y(n) при F=1.6кГц


y(n) при F=3.2 кГц


1

0

0

0

0

0

0

2

1

1

3

3

3

3

3

7

7

000B

11

4

4

4

10

16

10

16

0

0

5

15

21

9

9

FFFFFFFFFD

-3

6

10

16

FFFFFFFFEF

-17

FFFFFFFFF7

-9

7

FFFFFFFFF9

-7

FFFFFFFFCD

-51

FFFFFFFFF0

-16

8

FFFFFFFFD3

-45

FFFFFFFFB7

-73

FFFFFFFFEF

-17

9

FFFFFFFFAE

-82

FFFFFFFFD0

-48

FFFFFFFFFB

-5

10

FFFFFFFFB3

-77

37

55

20

32

11

005D

93

169

361

0,00E+00

0

12

005F

95

51

81

FFFFFFFE0D

-499

13

32

50

FFFFFFFED5

-299

00CF

224

14

2

2

FFFFFFFE90

-368

01B4

436

15

FFFFFFFFE3

-29

FFFFFFFFC8

-56

FFFFFFFE47

-441

16

FFFFFFFFD8

-40

012C

300

FFFFFFFFE5

-27

17

FFFFFFFFDD

1

008B

139

20

32

18

FFFFFFFFE9

-23

01CB

459

FFFFFFFFFB

-5

19

FFFFFFFFF6

-10

FFFFFFFEF3

-269

FFFFFFFFDA

-38

20

1

1

FFFFFFFE06

-506

01D5

469

21

9

9

FFFFFFFF09

-247

FFFFFFFE89

-375

22

10

19

0,00E+00

2,32E+02

FFFFFFFEFF

-257

23

12

18

01DD

477

01EF

495

24

10

19

109

265

FFFFFFFF2A

-214

25

9

12

FFFFFFFF39

-199

FFFFFFFEC7

-313

26

1

1

FFFFFFFE23

-477

507

27

FFFFFFFFF8

-8

FFFFFFFECC

-308

FFFFFFFFA5

-91

28

FFFFFFFFF1

-15

97

151

FFFFFFFE62

-414

29

FFFFFFFFED

-19

01DA

474

01BF

447

30

FFFFFFFFEE

-18

165

357

20

32

31

FFFFFFFFF4

-12

FFFFFFFFA4

-92

FFFFFFFE24

-476

32

FFFFFFFFFC

-4

FFFFFFFE38

-456

174

372

33

5

5

FFFFFFFE6F

-401

98

152

34

000D

13

15

21

FFFFFFFDF8

-520

35

11

17

01A3

419

104

260

36

11

21

01AA

426

010E

270

37

000D

16

002A

42

FFFFFFFE14

-492

38

5

6

FFFFFFFE91

-367

00C4

196

39

FFFFFFFFFC

-4

FFFFFFFE5E

-418

01A5

421

40

FFFFFFFFF4

-12

FFFFFFFFB8

-72

FFFFFFFE3E

-450

41

FFFFFFFFEE

-18

135

309

FFFFFFFFE2

-30


В качестве метода расчёта использовался метод окна Гаусса с α=1.4.

В качестве метода расчёта использовался метод окна Гаусса с α=1.4.

Согласно графикам на рисунках 3.9-3.11 при одинаковой амплитуде входного сигнала амплитуда выходного сигнала в установившемся режиме равна:

-       единиц на частоте F1=0.8 кГц;

-       единиц на частоте F2=1.6 кГц;

-       единиц на частоте F3=3.2 кГц;

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

F1=0.8 кГц и F3=3.2 кГц по сравнению с прохождением сигнала на частоте F21.6 кГц в пределах полосы прозрачности фильтра:

дБ;

дБ.

ЗАКЛЮЧЕНИЕ

В ходе выполнения работы была изучена архитектура процессора TMS320C25, проведено моделирование фильтра в модуле FDATool программной среды Matlab двумя методами (методом окна Кайзера с параметром β=2.5 и методом окна Гаусса с α=1.4).

Дано описание программы работы фильтра на выбранной программируемой элементной базе. Также были представлены:

.        описание и результаты расчета коэффициентов КИХ фильтра;

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

.        описание и результаты программного моделирования КИХ фильтра при различных частотах входного сигнала;

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

Результаты, полученные при расчёте фильтра двумя методами, близки друг другу, что соответствует истине. Приведённые графики сигнала  на выходе КИХ фильтра при различных частотах входного сигнала и частоте дискретизации FS= 10 кГц, а также графики входного сигнала данного фильтра свидетельствуют о корректной работе фильтра. Расхождения между начальными областями графиков сигнала  на выходе КИХ фильтра при частоте входного сигнала F1=0.8 кГц и частоте дискретизации FS= 10 кГц объясняются разницей в плане подходов к расчёту у двух методов - это расхождение повторяет расхождение участков АЧХ фильтра для F1=0.8 кГц для двух методов. Также при использовании метода окна Кайзера с β=2.5

=-26.6 дБ, при использовании метода окна Гаусса с α=1.4 - =-28.2., это в достаточной степени отличается от других участков, где расхождение не превышает 0.1 дБ (к примеру, в случае частоты F3=3.2 кГц 0.056 дБ).

Теоретически и экспериментально полученные характеристики фильтра в достаточной степени близки: для начальной области графика наибольшее совпадение с экспериментальными имеется у данных, рассчитанных по методу окна Гаусса с α=1.4, для области частот от 1 кГц - у данных, рассчитанных по методу окна Кайзера с β=2.5.

Таким образом, задание курсового проекта можно считать выполненным.

Библиографический список

1)      Журнал "Электроника" том 59, No.03 (736), 1986г - пер. с англ. М.: Мир, 1986, стр.11.

2)      Интернет-ресурс: <http://www.ti.com>.

3)      Цикин И.А. Свойства сигналов, используемых в радиосистемах. Учебное пособие.- Л., изд. ЛПИ, 1980. 64с.

4)      Справочная система MATLAB 6. Filter Design Toolbox.

5)      Ветров Ю.В., Радченко Н.Н. Применение программируемой элементной базы в радиотехнических системах. Учебное пособие. СПб., Издательство Политехнического Университета, 2010

Похожие работы на - Моделирование КИХ фильтра в программном симуляторе ЦПОС TMS320C25

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!