Из опыта выполнения лабораторных работ №№ 4..6 можно придти к заключению, что отладка программы с использованием имитатора сопровождается значительными затратами времени на подготовку входных данных, управление имитатором, вывод и анализ получаемых результатов. Из-за этого достижение полноты обследования и наглядности получаемых результатов чаще всего оказывается проблематичным. Явно ощущается необходимость осциллографического контроля результатов работы циклического алгоритма. Обычно стремятся перенести возникающие проблемы и недоработки на этап отладки с применением эмулятора. Однако для этого этапа кроме дорогостоящего эмулятора необходимо иметь в законченном, рабочем виде комплекс смежных узлов: источник входных сигналов и обработчик выходных сигналов отлаживаемого узла. Смежные узлы зачастую появляются гораздо позже, чем возникает потребность в отладке программы конкретного узла разрабатываемого устройства.
Однако ещё не все возможности имитатора исчерпаны. Для формирования входных сигналов и обработки выходных данных можно привлечь внешние программы, вызывая их из имитатора.
Подпрограмма демодулятора обрабатывает один элемент сигнала. Для полного обследования работы подпрограммы во всём диапазоне возникающих условий потребовалось бы много раз вызывать (т.е. запускать) из имитатора внешнюю программу, моделирующую получение исходных данных для подпрограммы. Алгоритм моделирования во внешней программе выполняется циклически для каждого элемента сигнала, и каждый раз программу приходилось бы останавливать, выходить из неё с сохранением всех параметров, выполнять подпрограмму демодулятора в имитаторе и вновь запускать внешнюю программу, чтобы продолжить её работу с места останова.
Переходы от имитатора к внешней программе и обратно связаны с потерей времени. Чтобы сократить потери времени на переходы, внешняя программа Test_DEM.exe обрабатывает элементы сигнала не по одному, а блоками, и передает блоки в DSP-демодулятор и из него посредством файлов .dat. Длина обрабатываемого блока ограничена размерами памяти сигнального процессора. Предусмотрено использование блоков любой длины до 512 элементов сигнала. Длина блока Sample и количество обрабатываемых блоков Cycle устанавливаются при первом входе в программу. Результаты обработки каждого блока выводятся на экран монитора в виде осциллограммы.
Ниже описаны основные компоненты программного комплекса и их взаимодействие.
В подпрограмме демодулятора demo.asm реализован один из простейших способов приёма дискретных сигналов ОФМ – способ сравнения фаз. Для ослабления помех в программе Test_DEM осуществлена оптимальная фильтрация с использованием двух корреляторов со сбросом до демодулятора. Получаемые на выходах корреляторов квадратурные сигналы X и Y представляют собой вектор, фаза которого несёт сведения о фазе элемента сигнала. Этот вектор подаётся на демодулятор, в котором для принятия решения о переданном элементе сигнала производится сравнение с фазой вектора [X0,Y0], сохранённого после обработки предыдущего элемента сигнала.
В качестве функционала правдоподобия используется выражение
Z = X * X0 + Y * Y0, величина которого пропорциональна проекции вектора на вектор. Амплитуды векторов роли не играют, и решение о переданном символе принимается по знаку Z:
R = sign(Z).
Физически, принимается решение R=0, если фазы векторов отличаются менее чем на p/2, и R=1, если разность фаз более p/2. В подпрограмме два условных оператора удалось заменить одним оператором сдвига.
Текст подпрограммы demo.asm с комментариями содержится в файле Описание Лр8.doc.
Программа MAIN1.asm
Программа MAIN1.asm предназначена для проведения отладки и испытаний различных вариантов программ демодуляторов дискретных сигналов с относительной фазовой модуляцией, реализуемых на сигнальном процессоре ADSP-2181, с использованием внешней программы Test_DEM.exe.
Программа MAIN1.asm используется в составе программного комплекса, содержащегося в папке Demod.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.