Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
799 Кб
Скачать

меню Debug выбрать Probe Points. В листе Probe Point выбрать

MODEMTX.C line 337 -->. В поле Connect To выбрать In Phase Delay Line и нажать Add. Нажать OK для сохранения введенных данных и закрытия диалогового окна.

В меню Debug выбрать Animate или нажать на панели

инструментов (Animate) для запуска программы. На графике должна появиться временная диаграмма сигнала КАМ. В меню Debug выбрать Halt для остановки программы. Зарисовать полученный график.

Глаз-диаграмма

В меню View выбрать Graph Eye Diagram. В диалоговом окне Graph Property Dialog ввести данные в соответствии с нижеприведенным рисунком. Нажать OK для сохранения введенных значений и открытия окна глаз-диаграммы.

С помощью нажатия на правую кнопку мыши, щелкнув по окну просмотра графика, выбрать Clear Display из всплывающего меню. В

меню Debug выбрать Probe Points. В листе Probe Point выбрать MODEMTX.C line 337 -->. В поле Connect To выбрать Eye Diagram и

нажать Add. Нажать OK для сохранения введенных данных и закрытия диалогового окна.

В меню Debug выбрать Animate или нажать на панели инструментов (Animate) для запуска программы. На графике должна появиться глаз-

11

диаграмма сигнала КАМ. В меню Debug выбрать Halt для остановки программы. Зарисовать полученный график.

Сигнальное созвездие

В меню View выбрать Graph Constellation. Заполнить диалоговое окно Graph Property Dialog в соответствии с нижеприведенным рисунком. Нажать OK для сохранения введенных значений и открытия окна просмотра сигнальных созвездий.

С помощью нажатия на правую кнопку мыши, щелкнув по окну просмотра графика, выбрать Clear Display из всплывающего меню. В

меню Debug выбрать Probe Points. В листе Probe Point выбрать MODEMTX.C line 337 -->. В поле Connect To выбрать Constellation Plot

и нажать Add. Нажать OK для сохранения введенных данных и закрытия диалогового окна.

Вменю Debug выбрать Animate или нажать на панели

инструментов (Animate) для запуска программы. На графике должно появиться сигнальное созвездие сигнала КАМ. В меню Debug выбрать Halt для остановки программы. Зарисовать полученный график. Определить кратность модуляции.

Преобразование Фурье (просмотр графика в частотной области)

В меню View выбрать Graph Time/Frequency. Заполнить диалоговое окно Graph Property Dialog в соответствии с нижеприведенным рисунком. Нажать OK для сохранения введенных значений и открытия окна просмотра БПФ.

12

С помощью нажатия на правую кнопку мыши, щелкнув по окну просмотра графика, выбрать Clear Display из всплывающего меню. В

меню Debug выбрать Probe Points. В листе Probe Point выбрать MODEMTX.C line 337 -->. В поле Connect To выбрать FFT Waterfall и

нажать Add. Нажать OK для сохранения введенных данных и закрытия диалогового окна.

В меню Debug выбрать Animate или нажать на панели

инструментов (Animate) для запуска программы. На графике можно наблюдать сигнал КАМ в частотной области. В меню Debug выбрать Halt для остановки программы.

1.5. СОДЕРЖАНИЕ ОТЧЕТА

Отчет должен содержать цель работы, выполняемый вариант, пример основной программы и программы обработки, графики колебаний в масштабе. Отчет заканчивается выводами по проделанной работе.

1.6.КОНТРОЛЬНЫЕ ВОПРОСЫ

1.Перечислите основные области применения цифровых сигнальных процессоров (ЦСП).

2.Дайте определение архитектуры микропроцессора.

3.Какие требования предъявляются к архитектуре ЦСП?

4.Из чего состоит командный цикл?

5.В чем различие понятий «машинный цикл» и «командный цикл»?

13

6.Поясните смысл конвейерной обработки на примере трехступенчатого конвейера.

7.Приведите типовую структуру современного ЦСП и объясните назначение функциональных модулей.

8.Что входит в состав периферийных устройств типового ЦСП?

9.Каковы основные характеристики ЦСП?

10.Каковы основные компоненты базовой архитектуры ЦСП

TMS320C5510?

11.Как представлены периферийные устройства в архитектуре ЦСП

TMS320C5510?

12.Сколько шин в процессоре TMS320C5510? Каковы их функции и разрядность?

13.Каковы основные компоненты структурной схемы ядра ЦСП TMS320C5510 и их функциональное назначение?

14.За счет каких элементов архитектуры ЦСП TMS320C5510 обладает высокой производительностью?

15.Какие программные и аппаратные средства используются для разработки и отладки программ сигнальных процессоров

TMS320C5510?

16.Каковы основные этапы проектирования систем на базе ЦСП

TMS320C5510?

17.Поясните понятия «проект», «менеджер проектов».

18.Какие средства используются для редактирования файлов в среде разработки CCS?

19.Для чего используются точки останова?

20.Для чего используются точки пробника?

21.Поясните разницу между точками останова и точками пробника.

22.Перечислите средства визуализации данных, с которыми вы познакомились в ходе выполнения работы и объясните их назначение.

23.Какова структура лабораторной платы для отладки систем на базе сигнального процессора TMS320C5510?

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

1.Сперанский B.C. Сигнальные микропроцессоры и их применение в системах телекоммуникаций и электроники: Учебное пособие для вузов.– М.: Горячая линия-Телеком, 2008. - 168 с.

2.TMS320C55x DSP CPU Reference Guide. Literature Number: SPRU371F, February 2004.

14

Практикум № 2

Изучение формирователей синусоидальных колебаний и шума на цифровом сигнальном процессоре TMS320C5510

2.1. ЦЕЛЬ РАБОТЫ

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

2.2. ДОМАШНЕЕ ЗАДАНИЕ

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

2.Изучить программную реализацию на языке С формирователя синусоидального колебания на цифровом сигнальном процессоре TMS320C5510, приведенную в Приложении 2.

3.Подготовить на языке С код формирователя шумового колебания и формирователя синусоидального колебания в соответствии с вариантом, заданным в Таблицах 2.1 и 2.2. Варианты выбираются в соответствии с номером бригады в журнале лабораторных работ.

4.Подготовить ответы на контрольные вопросы.

2.3. ЗАДАНИЕ НА РАБОТУ

1.Включить лабораторную плату DSK 5510 и выполнить ее тестирование.

2.В соответствии с методическими указаниями запустить Code Composer Studio (CCS) и сформировать синусоидальное колебание с указанными в Таблице 1 параметрами. С помощью осциллографа убедиться в верности полученного результата.

3.С помощью указанных в Таблице 2 параметров сформировать шумовое колебание из равномерно распределенных отсчетов.

Зарисовать колебание с экрана осциллографа. Для всех вариантов взять значения x0=31 и m=215-1=32767.

Таблица 2.1

Параметры синусоидального колебания

№ в

1

2

3

4

5

6

7

8

9

10

11

12

журнале

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Амплитуда

0.5

0.2

0.5

0.4

0.9

0.6

0.7

0.8

0.3

0.1

0.2

0.5

 

 

 

 

 

 

 

 

 

 

 

 

 

Частота,

0.1

1.2

0.3

1.4

0.5

1.6

4.8

0.8

2.2

2.4

3.2

2.0

кГц

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

Таблица 2.2

Параметры шумового колебания

№ в журнале

1

2

3

4

5

6

a

26125

311

117

10933

26125

311

 

 

 

 

 

 

 

c

3

5

11

17

19

23

 

 

 

 

 

 

 

№ в журнале

7

8

9

10

11

12

 

 

 

 

 

 

 

a

29

27

1029

149

26125

1029

 

 

 

 

 

 

 

c

29

37

3

5

11

17

 

 

 

 

 

 

 

2.4. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

2.4.1. Подключить лабораторную плату DSK 5510 к осциллографу (на вход осциллографа подать сигнал с выхода line out, к выходу hp out можно подключить наушники). Включить осциллограф и лабораторную плату DSK 5510, выполнив ее тестирование (см. пункт 1.4.1 практикума № 1).

2.4.2. Создать папку project2 в директории C:\CCStudio_v3.10\RTSProjects. Скопировать в эту папку содержимое папки C:\CCStudio_v3.10\examples\dsk5510\bsl\tone или папку, указанную преподавателем.

2.4.3. Запустить Code Composer Studio (CCS) с помощью иконки на рабочем столе, или выбрав в меню Windows Пуск Programs Texas Instruments Code Composer Studio 3.1 Code Composer Studio 3.1.

2.4.4. Для соединения среды программирования с отладочной платой выбрать Debug Connect.

2.4.5. С помощью меню Project Open открыть проект tone.pjt,

находящийся в папке C:\CCStudio_v3.10\RTSProjects\project2. Собирать заново проект не нужно, для работы используется готовый проект.

2.4.6. Ознакомиться с кодом файла источника. После двойного нажатия на название файла tone.c в Project View в правом окне откроется файл источника (программа приведена в Приложении 2). В этом примере используется модуль кодека AIC23 из библиотеки поддержки платы DSK5510. Программно генерируемый синусоидальный сигнал частотой 1 кГц подается на аудиовыходы в течение 5 секунд. Таблица синуса предварительно рассчитывается и записывается в массив с именем sinetable. По умолчанию кодек работает с частотой дискретизации 48 кГц. Поскольку рассчитанная таблица синусоидального колебания имеет 48 отсчетов на период, то время выполнения внутреннего цикла занимает 1 мс (частота 1 кГц), а 5000-кратное выполнение внешнего цикла занимает 5 секунд.

2.4.7.Построить проект и запустить программу. Выбрать

Project Rebuild All или нажать

(Rebuild All) на панели

16

инструментов. Программа перекомпилирует, переассемблирует и перекомпонует все файлы в проекте. В нижней части окна появится информация о ходе построения. По умолчанию файл tone.out, полученный в ходе отладки появится в папке Debug в текущей папке проекта.

2.4.8.Выбрать File Load Program. Выбрать программу, полученную в ходе построения tone.out и нажать Open.

2.4.9.Выбрать Debug Run или нажать (Run) на панели инструментов.

2.4.10. Для остановки программы Выбрать Debug Halt. 2.4.11. В файле tone.c внести следующие изменения:

1)выполнение внешнего цикла сделать постоянным с помощью инструкции while(1);

2)во внутренний цикл внести изменения для генерации

синусоидального

колебания

в

соответствии

с

заданием

(см. методические указания к данному практикуму).

 

 

2.4.12.

Построить

проект и

запустить

программу.

Выбрать

Project Incremental Build или нажать

на

панели инструментов.

Отладить программу.

 

 

 

 

 

 

 

2.4.13.

Выбрать Debug Run

или

нажать

(Run)

на

панели

инструментов.

2.4.14. Зарисовать сигнал с экрана осциллографа в масштабе. 2.4.15. В файле tone.c внести следующие изменения:

1)в начале программы main вместо переменных Int16 msec, sample ввести новые переменные, задающие значения x0, m, a, с и инициализировать их в соответствии с заданием (Таблица 2);

2)во внутренний цикл внести изменения для формирования шумового колебания в соответствии с заданием (см. методические указания). 2.4.16. Построить проект и запустить программу. Выбрать

Project Incremental Build или нажать на панели инструментов. Отладить программу.

2.4.17. Выбрать Debug Run или нажать (Run) на панели инструментов.

2.4.18. Зарисовать сигнал с экрана осциллографа в масштабе.

2.5. СОДЕРЖАНИЕ ОТЧЕТА

Отчет должен содержать: цель работы, индивидуальное задание, алгоритмы формирования синусоидального колебания и шумового колебания, блок-схемы алгоритмов, подпрограммы формирования на языке С, графики колебаний в масштабе. Отчет заканчивается выводами по работе.

17

2.6.МЕТОДИЧЕСКИЕ УКАЗАНИЯ

2.6.1.Методы цифрового формирования синусоидального колебания

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

Существует несколько методов формирования гармонического колебания y=sin(x), из них наибольшее распространение получили два метода: табличный (или метод одного эталона) и метод аппроксимации

[1; 2].

При табличном методе предварительно рассчитываются и записываются в память данных процессора значения функции синуса на

периоде, с некоторым шагом . При шаге 1 градус нужны 360 ячеек памяти. Затем, в соответствии с программой, формируются адреса ячеек памяти, из которых вызываются значения функции с шагом 1 более крупным, чем в заданной таблице. Так для формирования функции с достаточной точностью можно взять 12 выборок с шагом 30 градусов.

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

Другой способ предполагает вычисление и запись в память только необходимых отсчетов. При таком способе можно существенно сэкономить память, но при этом будет формироваться колебание только одной частоты. Для получения синусоидального колебания нужной частоты необходимо рассчитать длительность периода и разделить его на период следования отсчетов. Тот же результат получаем, разделив частоту дискретизации на заданную частоту. Получим необходимое число отсчетов синусоидального колебания, для которых рассчитываем соответствующие значения (к примеру, в системе Matlab c помощью программы, приведенной в Приложении 3).

Например, необходимо сгенерировать колебание с частотой 3.5 кГц. Для этого необходимо 48/3.5 ≈ 14 выборок (рис. 2.1). При процессорной реализации табличного метода таблица значений отсчетов представляется в формате 1.15, причем старший разряд является знаковым. При этом угол в 180 градусов равен максимальному положительному числу 0х7FFF, а угол в –180 градусов равен

18

максимальному отрицательному числу 0х8D00. При запуске программы формируется заголовочный файл следующего вида:

int sineTable [SIZE_SINE_TABLE] = {0x0, 0x2744, 0x46c2, 0x583c, 0x583c, 0x46c2, 0x2744, 0x0, 0xd8bb, 0xb93d, 0xa7c3, 0xa7c3, 0xb93d, 0xd8bb};

Его необходимо включить в свой проект.

Рис. 2.1. Расчет таблицы значений синуса с помощью программы Matlab

Другой метод использует аппроксимацию функции y sin(x) степенным рядом, например

y 3.140625x 0.02026367 x2 - 5.325196 x3 0.5446778 x4 1.800293x5 .

Аргументом функции является нормированная переменная x , связанная

с угловой мерой 180 180 или

( рад) соотношениями

x / 180 или

x ( рад) / ,

таким образом 1 x 1.

Непосредственно вычисления по формуле выполняются для первого квадранта, соответствующего значениям 0 x 0.5, или 0 90 , или 0 ( рад) / 2 , так как только в этом квадранте наблюдается хорошее совпадение синусоидальной функции со степенным рядом (рис.

2.2).

Для

других

квадрантов

используются

соотношения:

sin( ) sin( ) , sin(180 ) sin( ) , и

sin( 180) sin( ) .

При реализации алгоритма сначала анализируется значение аргумента x. Если оно соответствует первому квадранту, значение функции y sin(x) вычисляется по приведенной выше формуле. Если значение аргумента находится во втором или четвертом квадрантах, то вычисленное значение инвертируется. Знак результата вычисления также корректируется с учетом номера квадранта. Функцию cos( ) можно вычислить с учетом соотношения: cos( ) sin( / 2) . Для получения синусоидального сигнала заданной амплитуды предусматривается

19

амплитудный множитель, для получения синусоидального сигнала заданной частоты соответствующим образом выбирается частота дискретизации. Обычно она составляет fd (60...100) fc , где fc частота

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

[1].

Рис. 2.2. Графики синусоидальной функции и полинома, вычисленного по приближенной формуле

6.2.2.Формирователь шума

Вданной работе используется конгруэнтный алгоритм, подробно рассмотренный в [2]. Рассматриваются методы генерирования последовательности случайных дробей, т.е. случайных действительных чисел Un, равномерно распределенных между нулем и единицей (на интервале [0,1]). Так как компьютер может представлять действительные числа только с определенной точностью, генерируются целые числа х(n) между нулем и некоторым числом m. Дробь U(n) = х(п)/m будет, следовательно, лежать между нулем и единицей. Обычно m выбирают равным размеру слова в процессоре.

Внастоящее время наиболее популярными генераторами случайных чисел являются генераторы, в которых используется следующая схема, предложенная Д.Г. Лехмером (D.H. Lehmer) в 1949 году:

x n 1 ax n c mod m, n 0,

где а – множитель; x0 – начальное условие; с – приращение; m – модуль;

0<m, 0<a<m, 0<c<m, 0<x0<m.

20

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