Архивы: по дате | по разделам | по авторам

Технология под грифом "DSP"

Архив
автор : Юрий Романов   22.11.2000

Не алгоритмы, а одни выражения!

В принципе цифровая обработка сигналов представляет собой разновидность цифровой обработки данных, однако подразумевается, что данные, информация, «процессированием» которой занимаются DSP, - процесс, протекающий в реальном времени.

Оцифрованный процесс, впрочем, можно записать в виде массива чисел и подвергнуть обработке off line при помощи любого подходящего компьютера с соответствующим ПО. И хотя алгоритмы такой обработки в принципе те же, что и в on line (и даже круче, так как можно не спешить), все же тут существует определенная терминологическая традиция… Сам же термин «обработка сигналов» заключает в себе поистине колоссальное количество конкретики, связанной как с самим понятием «сигнал», так и с представлениями о том, что с ним можно делать. На этом «поле» сталкиваются и противоборствуют даже философские и мировоззренческие концепции!

Что же происходит «внутри» DSP-процессора?

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

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

Чтобы лучше все это понять, предлагаю «деловую» игру. Представьте себя «на месте» сигнального процессора. Представили? В простейшем случае вы «видите» лишь одно-единственное текущее значение входного сигнала. Все, что «вы можете», - это осуществлять любые вычисления с использованием этой величины и только. Можно умножать ее на любой коэффициент или саму на себя. Можно вычислять сколь угодно сложные функции, используя в качестве аргумента значение входного сигнала в одной точке, но…

Но никакого представления о свойствах входного сигнала как процесса вы не имеете, а значит, никаких действий над ним как над протяженным во времени явлением вам выполнить не удастся. По одной причине. «У вас» отсутствует память о прошлом, что, вообще говоря, не позволяет и предвидеть будущее. Именно наличие памяти позволяет «воспринимать» процессы как протяженное во времени явление. Само восприятие реального времени связано с этим! Если «вы» помните, что было, и способны, в каком-то приближении, прогнозировать то, что будет, тогда вам открывается смысл понятия «сейчас». Если «вы» живете без памяти о прошлом, у «вас» нет и представления о времени и нет понятия «сейчас». Любопытно, не правда ли?

А вот еще одна интересная особенность DSP-процессоров. В отличие от большинства «классических» алгоритмов обработки данных, содержащих большое количество логических операций, блоков сравнения, условных и безусловных переходов, алгоритм цифровой обработки сигнала - это, как правило, вычисление значения математического выражения. Иначе говоря, выходной сигнал DSP-процессора - это отклик, реакция некоторой абстрактной математической конструкции на подаваемый на ее «вход» абстрактный математический процесс - сигнал.

Неспециалистам, вероятно, будет интересно узнать, что математические выражения, обладающие «чувством времени», то есть содержащие в качестве аргументов свои собственные значения в прошлые моменты времени, «живут» порой чрезвычайно сложной «жизнью»! Их реакция - отклик - даже на единичное входное воздействие, например, на одно-единственное число (импульс), может не исчезнуть сразу, а угасать много-много тактов спустя после исчезновения входного импульса. А могут развиться колебания. Может возникнуть многократное эхо. Много чего может возникнуть…

Так вот, большинство «классических» приложений DSP базируется на нашем знании тех математических структур, свойства и поведение которых естественно обеспечивают получение нужных нам результатов.

В DSP-технологиях на нас работает сама Математика! Впечатляет. Не правда ли?

Архитектурные изящества

Архитектура - это застывшая математика.
Перифраз

Самое время вспомнить, что существуют такие принципиально непохожие вещи, как «хард» и «софт».

Так вот, «софтом» DSP чаще всего являются программы, реализующие алгоритмы вычисления математических выражений (причем, как правило, тот или иной конкретный процессор постоянно занят этой «работой» и больше никакой). Перепрограммировать сигнальный процессор во время функционирования в большинстве случаев не требуется, - он просто «служит», где поставлен, и всё (вот уж, поистине, прибор «для служебного пользования»!).

Часто разработчики DSP идут по пути создания устройств, аппаратная «начинка» которых - «хард» - воспроизводит математическую структуру вычислительной процедуры обработки сигнала, положенной в основу конкретного прибора. Идеологически этот подход родственен принципам аналоговой вычислительной техники, с той лишь разницей, что сигналы тут - цифровые.

Чрезвычайно плодотворным оказались исследования методов реализации вычислительных алгоритмов при помощи регулярных аппаратных структур (однородных, матричных, - вообще, состоящих из одинаковых функциональных элементов). В результате этих исследований было разработано огромное число «плоских» и многомерных однородных структур, конфигурация связей между элементами которых позволяет «запрограммировать» практически любой алгоритм цифровой обработки сигнала. Именно на этом пути развилась технология транспьютерных сетей - однородных структур, в «узлах» которых находятся многофункциональные программируемые устройства (процессоры) - транспьютеры.

В ходе исследования вычислительных возможностей нейросетей выяснилось, что они отлично «приспособлены» для обработки сигналов, причем допускают «обучение» и динамическое «переучивание», то есть перестройку реализуемых математических структур в процессе функционирования. Кроме того, они позволяют организовать параллельную обработку нескольких независимых сигнальных потоков с использованием различных процедур на одной и той же аппаратной базе.

Особенно поражает отсутствие прямой зависимости общего быстродействия нейросети от быстродействия ее элементов - нейронов. В основе этого эффекта лежит то, что в нейросети может быть реализована модель распределенного представления данных, - не в виде локальных «нулей» и «единиц», описывающих состояние отдельных нейронов, но в форме топологии коллективных возбуждений групп нейронов или всей нейросреды. Быть может, именно этот «подход», реализованный в живом мозгу (который, похоже, больше напоминает нейро-DSP, чем универсальный компьютер), обеспечивает его поразительное быстродействие, сочетающееся с чрезвычайной «неторопливостью» биологических нейронов.

Кросс по платформам

Едут по Сети два скрипта.
Один другого спрашивает:
- На какую платформу прибываем?
А тот отвечает:
- И знать не желаю!..
Сюр

В теме о DSP материал о проблемах кроссплатформной совместимости, на первый взгляд, может показаться несколько инородным, однако, осмелюсь заверить, - лишь на первый взгляд.

Как известно, универсальным методом преодоления «индивидуализма» платформ (система команд, способ адресации памяти, структура, количество и свойства регистров, внутренняя архитектура, наконец) является создание так называемых виртуальных машин - алгоритмических оболочек, способных работать на данном конкретном «железе», делая его «невидимым» для конкретных прикладных программ. Все проблемы совместимости платформ, таким образом, «перекладываются на плечи» программистов, которые возьмут на себя труд написать код виртуальной машины для каждого конкретного процессора. Если же для каких-то кристаллов такого кода нет, - стало быть, нет и никакой совместимости.

Так вот, технология цифровой обработки сигналов, базирующаяся на принципах вычисления значения определенных математических выражений, породила свой собственный «подход» к проблеме совместимости платформ. Дело в том, что математические выражения инвариантны относительно средств их вычисления. Результаты окажутся одинаковыми, получим ли мы их при помощи конторских счетов, калькулятора или персонального компьютера (любого!).

Отсюда вытекает следующий простой вывод: нужно принять правила и свойства Математики в качестве внешнего языка описания наших задач, которые, будучи сформулированы на этом языке, преспокойно могут быть реализованы на любой вычислительной платформе, «умеющей» выполнять арифметические действия (а какая, интересно, этого не умеет?).

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

Одной из «глубинных» особенностей DSP-технологии является то, что процедуре вычисления отклика на входной сигнал математически соответствует построение так называемой изображающей точки в фазовом пространстве состояний.

Количество измерений этого абстрактного, нефизического пространства определяется числом независимых входных и выходных параметров (в том числе времени), «связь» между которыми осуществляется через эту самую изображающую точку, однозначно соответствующую текущему состоянию системы. Абстрактная математическая плоскость является хорошим примером двумерного фазового пространства, каждая точка которого допускает интерпретацию как образ (имя, идентификатор) состояния любой системы, зависящего от двух каких-то параметров.

Реализация системы в абстрактном пространстве есть, попросту говоря, задание той формулы, математического выражения, которое определит фазовую траекторию - «путь движения» изображающей точки при изменении входных параметров.

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

Богатство этого формализма, допускающего существование не только многомерных линейных, но и нелинейных пространств (со взаимовлиянием входных параметров), пространств с управляемой кривизной, областями сингулярностей и зонами пересечения с «соседними» пространствами и т. п., - не поддается описанию! А какое существует разнообразие свойств математических объектов, которыми можно «населить» безбрежную «виртуальную Вселенную»!

Исключительно интересной является обратная задача: сгенерировать такое фазовое пространство, чтобы движение изображающей точки в нем можно было бы интерпретировать в терминах «осмысленных» (то есть целесообразных) реакций системы на внешние сигналы (воздействия). Такое фазовое пространство, по существу, и будет являться той платформнонезависимой виртуальной машиной, «система команд» которой - Математика, имеющая место в нашем Мире.

[i37028]

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.