Формирование сигналов специальной формы
Цифровая обработка сигналов, в сравнении с аналоговой, обеспечивает более высокую точность, надежность и стабильность параметров сигналов. Микропроцессорная реализация цифровой обработки отличается большой гибкостью, поскольку заменой программы нетрудно изменить выполняемую устройством функцию.
Одна из задач цифровой обработки сигналов - генерация сигналов заданной частоты и формы. Основные методы цифровой генерации сигналов: метод аппроксимации и табличный метод.
Метод аппроксимации использует представление периодического сигнала в аналитическом виде и выполнение в микропроцессоре вычислений по программе. Параметры генерируемого сигнала хранятся в ячейках ОЗУ микропроцессорного устройства (или в ПЗУ, если они не изменяются). Программа должна обеспечивать вычисление отсчетов функции с интервалом dt таким, чтобы число отсчетов за период сигнала T составляло не менее десятка.
В заключение цикла выполнения программы происходит вывод полученного цифрового отсчета сигнала. При необходимости получения аналогового сигнала устройство вывода содержит цифро-аналоговый преобразователь. Цифровые отсчеты сигнала могут использоваться и внутри МП-устройства, например, в другой программе.
Метод аппроксимации позволяет обходиться небольшим объемом ЗУ, а к его недостаткам относится значительное число арифметических и логических операций, затрачиваемых на формирование одного отсчета сигнала, что снижает максимальную частоту генерируемых сигналов.
Табличный метод генерации предполагает, что предварительно вычисленные цифровые отсчеты функции хранятся в постоянном ЗУ. Формирование очередного отсчета сводится к операциям подготовки адреса и чтения соответствующей ячейки ПЗУ.
Достоинством табличного метода является меньшее время, затрачиваемое на формирование отсчета и, как следствие, возможность генерации сигналов с более высокой частотой. Недостатком метода является необходимость иметь ПЗУ большого объема.
До этого момента мы изучали операции, которые необходимы для того, чтобы реализовать базовые DSP-алгоритмы, такие, как фильтрация. Все они строятся вокруг операций сдвига, умножения и сложения. Тем не менее существуют другие алгоритмы, которые требуются в современных DSP-приложениях., например, вычисление трансцендентной функции.
Трансцендентные функции, такие как синусоидальные и логарифмические, часто аппроксимируются при помощи полиномов. Наиболее широко используются разложения в ряд Тейлора и Маклорена. Они могут быть использованы для реализации практически любой функции, производная которой определена на заданном входном интервале.
В этом эксперименте мы будем разрабатывать подпрограммы для реализации функции синуса, которая аппроксимируется полиномиальным выражением. Другие трансцендентные функции могут быть реализованы подобным образом при помощи соответствующих полиномов. Т. к. ADSP-2101 выполняет операции над 16-битными числами с фиксированной точкой, точность вычисления полинома уменьшается по мере возрастания порядка полинома. Поэтому, порядок полинома должен быть сведен к минимуму, используя оптимизированные коэффициенты для аппроксимации функций.
В этом эксперименте обсуждаются две важные программные концепции. Во-первых, использование подпрограммы как инструмента программирования. Мы реализуем указанные выше функции как подпрограммы и затем сможем их вызывать при необходимости. Поэтому мы будем изучать, как обеспечить связь между подпрограммой и основной программой директмвами GLOBAL и EXTERN.
Для того, чтобы спроектировать генератор сигналов специальной формы необходимо будет формировать значения функции периодически, через равные временные интервалы, т. е. необходима синхронизация. Следовательно, второй важной концепцией, которую мы будем изучать, является использование программируемого интервального таймера ADSP-21xx для формирования периодических прерываний. Используя эти две концепции мы будем формировать и проверять однотональный гармонический сигнал различных частот.
Приёмы масштабирования
При программировании ЦСП часто возникает задача согласования диапазонов представления чисел. Задача эта называется масштабированием и сводится к необходимости умножения или деления чисел на некоторую константу. Рассмотрим вопросы эффективного решения таких задач на примере подпрограммы вычисления отсчёта синусоидального сигнала sine.dsp. Эффективное решение - значит, с минимальной затратой циклов.
Гармонический сигналявляется периодической функцией аргумента. Период составляет 0 ...2p или, что то же, -p ... p. Чтобы без проблем отображать весь диапазон значений аргумента периодической функции от -¥ до +¥ в цифровом виде, удобно рассматривать период от -1 до +1 или, соответственно, от самого отрицательного значения 0х8000 до максимального положительного значения 0х7FFF. Такое представление обеспечивает непрерывность аргумента.
Приведенная ниже формула аппроксимирует синусоидальную функцию:
sin(px)=3.140625x + 0.02026367x2 - 5.325196x3 + 0.5446778x4 + 1.800293x5
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.