Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++ - Олег Вальпа
Шрифт:
Интервал:
Закладка:
DM(I3,M1)=MR1; /* Запись нового накопленного значения SIN */
calc : DM(I3,M1)=MR0;
AR=DM(I4,M5);
DM(I2,M1)=AR; /* Запись результата действующей величины * /
AR=DM(I3,M2);
DM(I1,M1)=AR; /* Запись результата мнимой величины */
outer: MODIFY(I5,M7); /* Модификация указателей циклической таблицы */
end: IDLE;
Как видно из текста программы, в ней задействованы регистры генераторов адреса DAG для задания указателей на буфер данных тестируемого сигнала, таблицу значений гармонического сигнала, буферы результата и другие вспомогательные буферы. Вычисление значений спектра производится в двух циклах, счетчики которых инициализируются числом отсчетов N = 64. Вся программа выполняется за N*N групп операций. Результат работы программы заносится в выходные буферы действительных значений real и мнимых значений imag спектра.
Для выполнения программы выполните ее трансляцию с помощью клавиши F7. Затем установите точку останова на последнем операторе программы и запустите ее с помощью клавиши F5. Через несколько секунд программа выполнит свою работу и остановится. Визуальный просмотр тестируемого сигнала, а также результатов работы программы и других вспомогательных буферов данных можно осуществлять с помощью открытия окна памяти данных процессора, используя для этого команду Memory→Data. Кроме того, эти данные можно просматривать в графическом виде. Для этого необходимо выполнить команду: View→Debug Windows→Plot→New. При этом откроется окно конфигурации графического построителя Plot Configuration, показанное на рис. 25.2.
Рис. 25.2. Окно конфигурации графического построителя Plot Configuration
Рассмотрим работу с данным конфигуратором на примере просмотра буфера данных тестируемого сигнала. Оставьте в открывшемся окне конфигуратора без изменений строку Line Plot в поле Type группы настроек Plot. В поле Title введите имя графика «Input» или другое схожее по смыслу.
В группе Data Setting оставьте без изменений имя Data Set1 в поле Name и тип памяти DM в поле Memory. Нажмите на кнопку Browse в поле Address и выделите в открывшемся окне Browse for Symbol строку с именем input (рис. 25.3), после чего нажмите кнопку OK.
Рис. 25.3
В поле смещения данных Offset оставьте нулевое значение, а в поле счетчика Count замените значение 100 на 64, что соответствует количеству отсчетов в программе. Оставьте шаг сетки в поле Stride по умолчанию равным 1, а формат данных в поле Data целочисленным int. Нажмите на кнопку Add для добавления заданных установок в поле Data sets графического построителя. При желании, в это поле можно добавить и другие данные для отображения, а затем установить или снять перед соответствующим именем графика флажок для отображения этого графика. Теперь, нажмите на кнопку OK, после чего в правой части окна Visual DSP++ отобразится график заданных данных (рис. 25.4).
Рис. 25.4.
Для разворачивания и сворачивания окно графика имеет кнопку в виде стрелки. Аналогично можно построить и рассмотреть график, сформированный из буфера синусоидальных значений и хранящихся после выполнения программы в области памяти программ PM процессора с именем «sin» (рис. 25.5).
Рис. 25.5
Данные из буфера синусоидальных значений используются в программе в качестве табличных значений гармонического сигнала для расчета коэффициентов при вычислении спектра сигнала.
После выполнения программы результат ее работы будет храниться в буферах с именами real и imag и также может быть визуально изучен.
Встроенный в программный пакет Visual DSP++ графопостроитель обладает рядом дополнительных функций. Эти функции доступны с помощью контекстного меню (рис. 25.6), открываемого щелчком правой кнопки мыши на окне графика.
Рис. 25.6
Первой в этом меню присутствует команда Data Cursor, которая позволяет узнать координатное значение любой точки графика, щелкая по нему левой кнопкой мыши. Следующая команда Reset Zoom приводит вид графика в исходное состояние. Команда Configure вызывает окно сконфигурированный графопостроителя, рассмотренное выше. Команда Modify Setting вызывает окно установок Plot Setting построителя (рис. 25.7).
Рис. 25.7
Данное окно состоит из пяти закладок и позволяет настроить изображение графопостроителя по вкусу пользователя.
Закладка General позволяет задать имя Title и вспомогательное имя Subtitle для графика. В группе Grid Lines этой закладки можно задать цвет Grid color и присутствие сетки графика по осям X, Y, обеим осям (Both) или их отсутствие (None). Группа Background Color задает цвет графика Plot и фона окна Window. Группа Margins позволяет изменить масштаб графика или произвести сброс пользовательских установок масштаба с помощью кнопки Reset. Наконец, группа Option позволяет отображать рядом с графиком его имя и статистические данные с помощью флажков, устанавливаемых в поле Legend и Statistics соответственно.
Следующая закладка 2-D Axis (рис. 25.8) позволяет задать имя осей X и Y графика в полях Title, а также начальное значение оси X в поле Start value и ее шаг в поле Increment value.
Рис. 25.8
Для оси Y можно задать линейный или логарифмический вид представления графика с помощью поля Linear/Log. Для обеих осей имеются группы Scale для задания автоматического (Auto) или ручного (Manual) масштабирования осей. При этом параметры Min value и Max value задают соответственно минимальное и максимальное значение по осям ординат, а параметр Multiplier определяет множитель шкалы.
Закладка Font (рис. 25.9) позволяет задать имя (Font name), цвет (Font color) и размер (Font size) шрифта для отображения надписей на графике.
Рис. 25.9
Очередная закладка Style (рис. 25.10) кон фигурирует линии графика с помощью полей типа линии (Line type), ее ширины (Line width), цвета (Line color) и символов (Symbol) для отображения линии с их размерами (Symbol size).
Рис. 25.10
Наконец, последняя закладка Data Processing (рис. 25.11) позволяет задать для любого графика с именем, выбранным в поле Data Sets, формат его преобразования, определяемый в поле Data Process. При этом допускается отображение графика без преобразования (None), с преобразованием в шкалу децибел (Convert to dB), преобразованием Фурье (FF Magnitude) или двумерным преобразованием Фурье (D FF Magnitude). Кроме того, на этой закладке можно задать частоту преобразования в поле Sample rate и сохранение следов в поле Stored traces. Поле Trigger позволяет задать нарастание (Rising), спадание (Falling) и величину порога триггера (Threshold value) для исследуемого сигнала, наподобие установок осциллографа.
Рис. 25.11
Следующая команда Save Settings контекстного меню (см. рис. 25.6) позволяет сохранить заданные выше настройки Plot Setting.
Очередная команда Export контекстного меню вызывает окно Export Plot (рис. 25.12), которое позволяет задать приемник для экспорта данных графопостроителя. В качестве такого приемника может быть буфер обмена (Clip Board), файл (File), принтер (Printer) или звуковая карта (Sound Card). При экспорте данных в файл пользователю предоставляется возможность выбрать любой из следующих форматов файла: jpg, bmp, gif, tif, eps, txt или dat.
Рис. 25.12
Снятие флажка перед командой Allow Docking приводит к преобразованию окна графика в перемещаемое окно.
Щелчок левой кнопкой мыши по графику вызывает цветную рамку, задающую область графика для увеличения.
Команда Close контекстного меню закрывает график.
Наконец, команда Float In Main Window вызывает перемещение графика в главное окно среды Visual DSP++.
Время вычисления спектра сигнала является основной характеристикой спектрального анализатора. Чем оно меньше, тем производительнее анализатор. Поэтому для ускорения вычисления спектра используют метод быстрого преобразования Фурье (БПФ).
Фактически БПФ является модернизацией ДПФ за счет сокращения количества операций умножения и сложения. Это стало возможным благодаря использованию свойств симметрии и периодичности коэффициентов уравнения преобразования, представляющих собой базовые гармонические функции. Если для вычисления N отсчетов спектра сигнала при использовании ДПФ требуется N*N операций умножения комплексных чисел, то при использовании БПФ количество операций сокращается до (N/2)log2(N). Эффективность БПФ по сравнению с ДПФ становится существенной, когда количество точек увеличивается до нескольких тысяч.
В табл. 25.1 приведено соотношение объема вычислительных затрат при различном объеме входных данных.
Таблица 25.1 Соотношение объема вычислительных затрат при различном объеме входных данных
Количество отсчетов N Количество умножений Коэффициент эффективности ДПФ БПФ 2 4 1 4 4 16 4 4 8 64 12 5 16 256 32 8 32 1024 80 13 64 4096 192 21 128 16384 448 37 256 65536 1024 64 1024 1048576 5120 205 2048 4194304 11264 372 4096 16777216 24576 683При вычислении спектра сигнала методом БПФ используют различные алгоритмы. Алгоритм по основанию два (Radix2) разделяет полное вычисление ДПФ на комбинацию двухточечных ДПФ. Каждое двухточечное ДПФ использует базовую операцию умножения с накоплением (так называемую «бабочку»). При этом число точек в БПФ должно быть степенью двойки. Если количество точек является степенью числа четыре, то можно использовать алгоритм по основанию четыре (Radix4). Эти алгоритмы хорошо реализуются в программах для сигнальных процессоров, поскольку в них имеются генераторы адреса с битреверсивной адресацией, предназначенной как раз для реализации подобных алгоритмов.