Home Моделирование

Несколько слов о цифровой обработке сигналов

Что такое DSP?

Окружающий нас мир мы можем рассматривать как набор аналоговых сигналов. Часто возникает необходимость делать преобразования таких сигналов. Примером таких преобразований является такая, всем известная вещь, как музыкальный эквалайзер, который усиливает или ослабляет различные частотные компоненты сигнала. Технологии типа MEGABASS,X-BASS,GROOVE и пр. тоже корректируют специальным образом спектр и фазу сигнала, с целью повысить качество восприятия звука.
Такие преобразования подразумевают необходимость выполнения арифметических операций над сигналами. При этом сигнальную обработку надо выполнять непрерывно в реальном времени. Тут то и пригодятся нам DSP процессоры. DSP - это Digital Signal Processor (Цифровой Сигнальный Процессор, ЦСП) - или процессор способный выполнять обработку сигналов. Архитектура DSP процессоров оптимизирована под выполнение операций над сигналами. Соответственно методы, которыми обрабатываются сигналы называется Цифровой Обработкой Сигналов (ЦОС). Ну а люди, которые умеют разрабатывать такие алгоритмы и программировать DSP процессоры называются DSP программистами :)
Использование DSP процессоров для обработки звука - это только одна из одна из областей в которой DSP процессоры твердо заняли свои позиции.


Другая, наверное самая важная область применения DSP процессоров - это цифровая связь ("Digital Communications" Copyright of Proakis :). Все современные технологии передачи данных посредством физической среды используют ЦСП и ЦОС. Те кто знаком с тематикой знают, какая куча задач скрывается под словами "цифровая связь". Достаточно посмотреть на толщину книги J.G.Proakis "Digital Communications" которая дает только базу ЦОС, еще довольно далекую от практики. Современное состояние DSP - это огромная гора, стоящая на таких книгах, как "Digital Communications".
И вся эта наука материализуется посредством DSP процессоров. Перечислять, где можно найти DSP процессор можно долго, но если Вы разломаете какой-нибудь мобильник, модем или дорогую радиостанцию, то, без сомнения, найдете там DSP. В конце-концов взглянув на свой жесткий диск - Вы тоже, возможно с некоторым недоумением, обнаружите в нем DSP. Хотя в жестком диске DSP стоит для других целей, но это уже совсем другая история...


А еще DSP процессоры применяются для обработки изображений. Как вы думаете, на чем реализуется DVD кодер/декодер?
Если вы ответили "на DSP", то цель этой статьи достигнута.

Что такое DSP инженерия?

Как мы уже поняли - DSP очень емкое понятие. Давайте поразмышляем, что такое DSP с точки зрения практической реализации. Предположим, что мы разрабатываем высокоскоростной модем. Для того, чтобы достигнуть требуемой скорости Вам, скорее всего, придется применять целый комплекс мер для борьбы с канальным шумом, с нелинейностью канала, с нестабильностями генераторов и т.д. Все эти методы нужно собрать воедино в некую систему.
Значит, DSP - это системный дизайн, который требует больших знаний о сигналах, каналах, видах модуляции и т.д.

Допустим, Вы придумали систему ЦОС, которая как Вам кажется соответствует требованиям к модему. А как проверить, так это или нет? Как правило довольно точный ответ можно получить, моделируя разрабатываемую систему.
Значит, DSP - это моделирование, которое требует от человека алгоритмического мышления и владения специальными средствами моделирования.

Ну вот, Ваша модель готова. Вы считаете, что эта система - это то, что Вам нужно. Теперь ее надо портировать на конкретную DSP платформу. Конечно, Вы хотите быстро пройти этот этап и портируете свою модель на язык высокого уровня, например, на "С".
Значит, DSP - это наука, требующая знаний по программированию.

Вот Вы написали программный код и исправили все ошибки. Вы померили вычислительный ресурс, требующийся для работы Вашей системы - и ужаснулись - Вашему алгоритму требуется время, на порядок превышаюшее необходимое. Это осначает, что скорость передачи Вашего модема на самом деле будет на порядок ниже, чем надо. О ужас! Вам требуется срочная оптимизация алгоритма!
Тут-то Вы и понимаете, что сможете ужать свой код многократно, если будете ипользовать все возможности архетиктуры Вашей DSP платформы. Но эти возможности, скорее всего, не поддерживаются никакими компиляторами "С" и Вам остается только ассемблер...
Значит, DSP - это рутинное низкоуровневое программирование, позволяющее выжать из процессора максимум, на который он только способен.

После оптимизации Вы, наконец, получили работающий на DSP алгоритм, но и это еще не все: Ваш алгоритм нужно протестировать, измерить его характеристики, написать документацию и пр. Вот такой тернистый путь разработки DSP систем.

Copyright (c) 2002 www.dspman.narod.ru