Требования, предъявляемые к цифровым процессорам обработки сигналов


СОДЕРЖАНИЕ:

Основы выбора цифровых сигнальных процессоров

В статье рассмотрены основные параметры цифровых сигнальных процессоров (DSP) и их влияние на выбор подходящей микросхемы, а также описано текущее состояние рынка DSP.

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

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

Естественно, ни один из процессоров не может подойти для всех приложений. Поэтому первая задача разработчика — выбор процессора, наиболее подходящего по производительности, цене, наличию определенной периферии, потреблению мощности, простоте использования и другим критериям.

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

В то же время для гидроакустических или радиолокационных систем определяющими параметрами являются скорость работы, наличие высокоскоростных интерфейсов и удобная система разработки, а стоимость является второстепенным критерием. Кроме того, во многих случаях имеет смысл учитывать и место на рынке, занимаемое поставщиком процессора, т.к. далеко не все производители могут предоставить в ваше распоряжение спектр процессоров, покрывающих все ваши потребности. Сложившееся к настоящему времени распределение рынка между ведущими поставщиками (см. табл. 1) показывает, что 4 компании, стоящие в начале списка, поставляют более 80% всех используемых в мире DSP. Именно эти компании наиболее известны и на российском рынке, и их продукция часто упоминается.

Таблица 1. Основные производители DSP и принадлежащие им доли рынка

Компании-лидеры рынка Company Name Доля рынка DSP
1 Texas Instruments 54,3%
2 Freescale Semiconductor 14,1%
3 Analog Devices 8,0%
4 Philips Semiconductors 7,5%
5 Agere Systems 7,3%
6 Toshiba 4,9%
7 DSP Group 2,2%
8 NEC Electronics 0,6%
9 Fujitsu 0,4%
10 Intersil 0,3%
Other Companies 0,5%
Total 100,0%

Следует помнить, что производители DSP, проектируя новые микросхемы, достаточно четко позиционируют их для использования в тех или иных приложениях. Это оказывает влияние и на их архитектуру, и на быстродействие, и на оснащение процессора тем или иным набором периферийных модулей. В таблице 2 показано позиционирование DSP с точки зрения их создателей.

Таблица 2. Области применения семейств сигнальных процессоров разных производителей

Обработка видео, видеонаблюдение, цифровые камеры, 3D графика TMS320DM64x/DaVinci, TMS320C64xx, TMS320C62xx (TI), PNX1300, PNX1500, PNX1700 (Philips) , MPC52xx (Freescale)
Обработка аудио, распознавание речи, синтез звука TMS320C62xx, TMS320C67xx (TI), SHARC (Analog Devices)
Портативные медиа устройства TMS320C54xx, TMS320C55xx (TI), Blackfin (Analog Devices)
Беспроводная связь, телекоммуникации, модемы, сетевые устройства TMS320C64xx, TMS320C54xx, TMS320C55xx (TI), MPC7xxx, MPC86xx, MPC8xx PowerQUICC I, MPC82xx PowerQUICC II, MPC83xx PowerQUICC II Pro, MPC85xx PowerQUICC III (Freescale), Blackfin, TigerSHARC (Analog Devices), PNX1300 (Philips)
Управление приводами, преобразование мощности, автомобильная электроника, предметы домашнего обихода, офисное оборудование TMS320C28xx, TMS320C24xx (TI), ADSP-21xx (Analog Devices), MPC55xx, MPC55xx (Freescale)
Медицина, биометрия, измерительные системы TMS320C62xx, TMS320C67xx, TMS320C55xx, TMS320C28xx (TI), TigerSHARC, SHARC (Analog Devices)

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

Формат данных и разрядность

Одна из основных характеристик цифровых сигнальных процессоров — формат обрабатываемых данных. Все DSP работают либо с целыми числами, либо с числами в формате с плавающей точкой, причем для целых чисел разрядность составляет 16 или 32, а для чисел с плавающей точкой она равна 32. Выбирая формат данных, необходимо иметь в виду следующее: DSP с целочисленными данными (или данными с фиксированной точкой) обычно дешевле и обеспечивают большую абсолютную точность при равной разрядности (т.к. на мантиссу в 32-битном процессоре с фиксированной точкой отводятся все 32 бита, а в процессоре с плавающей точкой — только 24).

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

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

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

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

Стоит заметить, что разрядность данных и разрядность команд процессоров не всегда эквивалентны.

Ключевой параметр при выборе процессора — это скорость. Она влияет на время выполнения обработки входного сигнала и, следовательно, определяет его максимальную частоту. Одна из самых частых ошибок разработчика — отождествление тактовой частоты и быстродействия, что в большинстве случаев неправильно. Очень часто скорость работы DSP указывают в MIPS (миллионах инструкций в секунду). Это наиболее просто измеряемый параметр.

Однако проблема сравнения скорости различных DSP состоит в том, что процессоры имеют различные системы команд, и для выполнения одного и того же алгоритма разными процессорами требуется разное число этих команд. Кроме того, иногда для выполнения различных команд одним процессором требуется различное количество тактов синхронизации. В результате процессор со скоростью 1000 MIPS вполне может оказаться в разы медленнее процессора со скоростью 300 MIPS, особенно при различной их разрядности.

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

Наиболее точной является оценка скорости исполнения определенных алгоритмов — например, КИХ- и БИХ-фильтрации, однако это требует разработки соответствующих программ и тщательного анализа результатов тестирования.

Существуют компании, занимающиеся анализом и сравнением процессоров по основным характеристикам, в том числе и по скорости. Лидером среди таких компаний является BDTI — Berkeley Design Technology, Inc. (www.bdti.com). В качестве примера на рисунке 1 показано сравнение по скорости современных DSP разных производителей.

Рис. 1. Пример сравнения быстродействия различных DSP с фиксированной точкой

Организация системы памяти процессора влияет на производительность. Это связано с тем, что ключевые команды DSP являются многооперандными и ускорение их работы требует одновременного чтения нескольких ячеек памяти. Например, команда MAC требует одновременного чтения 2 операндов и самой команды для того, чтобы ее можно было выполнить за 1 такт. Это достигается различными методами, среди которых применение многопортовой памяти, разделение на память программ и память данных (Гарвардская архитектура), использование кэша команд и т.д.

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

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

В то же время DSP с плавающей точкой обычно предполагают работу с большими массивами данных и сложными алгоритмами и имеют либо встроенную память большого объема, либо большую разрядность адресных шин для подключение внешней памяти (а иногда и то, и другое). Еще раз подчеркнем — выбор типа и объема памяти должен быть результатом тщательного анализа приложения, в котором используется DSP.

Удобство разработки приложений

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

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

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

Наилучшие результаты получаются при компиляции программ на ЯВУ для VLIW-процессоров (процессорах со сверхдлинным словом команды) с простой ортогональной RISC-системой команд и большими регистровыми файлами. Однако даже для этих процессоров генерируемый компилятором код получается более медленным по сравнению с оптимизированным вручную ассемблерным. С другой стороны, возможность сначала смоделировать процесс обработки сигнала в программе типа MathLab с дальнейшей автоматической трансляцией его в программу для DSP позволяет избавиться от множества серьезных ошибок еще на начальном этапе разработки.

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

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

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

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

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

Методология выбора процессора

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

Например, для реализации приложения для нас в первую очередь важны скорость, цена, эффективность работы памяти и энергопотребление. Мы определили основных претендентов, среди которых DSP с ядром C64x и C64x+ от Texas Instruments и TigerSHARC от Analog Devices. На рисунке 2 показан граф сравнительных характеристик этих процессоров по критериям скорости, стоимости, энергопотребления и удобству средств разработки.

Рис. 2. Диаграмма для выбора DSP

Теперь приоритеты. Если нам в первую очередь необходима высокая скорость и низкая цена, мы выбираем Texas Instruments. Если мы конструируем мобильное устройство и нам нужно низкое энергопотребление, причем мы готовы пожертвовать скоростью, берем Analog Devices. Не исключена вероятность того, что выбранные процессоры окажутся очень близки по ключевым параметрам. В этом случае выбор будет определяться некритичными характеристиками: доступностью средств отладки, предыдущим опытом разработчика, доступностью компонентов и т.д.

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

  1. Jeff Bier, Choosing a Processor: Benchmarks and Beyond (S043), Berkeley, California: Berkeley Design Technology, Inc., USA, 2006.
  2. Choosing a DSP Processor, Berkeley, California: Berkeley Design Technology, Inc., USA, 2000.

Статья опубликована в журнале «Электронные компоненты» №6 2006

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

Определение

Процессор цифровой обработки сигналов (digital signal processor — DSP) — это специализированный программируемый микропроцессор, предназначенный для манипулирования в реальном масштабе времени потоком цифровых данных. DSP-процессоры широко используются для обработки потоков графической информации, аудио- и видеосигналов.

Любой современный компьютер оснащен центральным процессором и только немногие — процессором цифровой обработки сигналов (DSP — digital signal processor). Центральный процессор, очевидно, представляет собой цифровую систему и обрабатывает цифровые данные, поэтому на первый взгляд неясна разница между цифровыми данными и цифровыми сигналами, то есть теми сигналами, которые обрабатывает DSP-процессор.

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

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

Вариации на тему

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

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

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

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

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

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

Зачем нужны DSP-процессоры?

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

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

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

Внутри DSP

Приведенная здесь диаграмма иллюстрирует строение ядра процессора Motorola DSP 5680x. Раздельные внутренние шины команд, данных и адресов способствуют резкому повышению пропускной способности вычислительной системы. Наличие вторичной шины данных позволяет арифметическому устройству считать два значения, перемножить их и выполнить операцию накопления результата за один такт процессора.

Поделитесь материалом с коллегами и друзьями

Требования к блоку АЦП и сигнальному процессору

Для того, чтобы преобразовать непрерывный сигнал в цифровой, необходимо использовать аналого-цифровой преобразователь (АЦП). Требований к АЦП предъявляется так же много, как и к другим блокам приемного устройства. Один из важных параметров — это быстродействие процессора [10].

Существует два этапа осуществления АЦП:

  • · квантование во времени непрерывного сигнала u(t);
  • · оцифровка каждого отсчета;

диапазон возможных значений напряжений (Umin, Umax) делится на M интервалов длиной ДU — шаг квантования по уровню.

Параметры Umin и Umax приводят в паспортных данных АЦП.

Частота дискретизации определяется в соответствии с теоремой Котельникова:

где Fв — верхняя частота принимаемого сигнала.

В данном случае Fв = Fпч2 = 465 кГц, тогда Fд = 2• 465 кГц =930 кГц.

Требованиям по тактовой частоте работы АЦП отвечает микросхема TLV2542ID. Паспортные данные приведены в [11]. Частота дискретизации — вплоть до 20 МГц.

Шаг квантования по уровню для АЦП TLV2542ID:

ДU = 0,004/1024= 0,66 мВ

Цифровой сигнальный процессор является основным узлом в SDR приемнике и от него зависит функциональность радиоприемника. Цифровой сигнальный процессор должен [12]:

  • 1) обеспечить односигнальную избирательность по соседнему каналу при расстройке ±9кГц не менее 60 дБ;
  • 2) иметь достаточное быстродействие;
  • 3) обеспечивать ручную регулировку усиления 50 дБ.

Данным требованиям отвечает цифровой сигнальный процессор для SDR радио 1288ХК1Т (МF-01). Основные характеристики представлены в [13].

Классификация микропроцессоров: универсальные и специализированные, цифровые сигнальные процессоры и микроконтроллеры

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

Универсальные МП предназначены для решения широкого круга задач обработки разнообразной информации. Их основной областью использования являются вычислительные установки массового применения: персональные компьютеры, серверы, рабочие станции, а также специализированные системы, где требуется высокая производительность: телекоммуникационное оборудование, промышленные компьютеры, системы управления сложными объектами промышленной автоматики. Важной характеристикой этих МП является наличие развитых устройств для эффективной реализации операций с плавающей точкой над 32- и 64-разрядными операндами. В последнее время в составе этих МП включаются функциональные блоки для обработки мультимедийной информации.

Основным направлением развития универсальных микропроцессоров является повышение их производительности, которая определяется количеством вычислительной работы, выполняемой в единицу времени. Обычно это 32-разрядные МП (некоторые МП этого класса имеют 64-разрядную и даже 128-разрядную структуру), которые изготавливаются по самой современной микроэлектронной технологии, обеспечивающей частоту функционирования до нескольких гигагерц.

Цифровые сигнальные процессоры (ЦСП) (англоязычный термин: DSP – Digital Signal Processor) являются классом специализированных микропроцессоров, ориентированных на цифровую обработку поступающих аналоговых сигналов. Отличительной особенностью этих задач является поточный характер обработки больших объемов данных в реальном масштабе времени, требующий от технических средств высокой производительности и обеспечения возможности интенсивного обмена с внешними устройствами. Соответствие данным требованиям достигается благодаря специфической архитектуре сигнальных процессоров, проблемно-ориентированной системе команд.

ЦСП делятся на процессоры, обрабатывающие данные в формате с фиксированной точкой и в формате с плавающей точкой.

Наиболее простые и дешевые ЦСП с фиксированной точкой обрабатывают данные с разрядностью 16 бит. Однако ограничение разрядности в ряде случаев не позволяет обеспечить необходимую точность преобразования.

Каждый электрик должен знать:  Как правильно рассчитать и подобрать резистор для светодиода

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

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

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

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

В связи с широким диапазоном решаемых задач управления требования, предъявляемые к производительности МК, объему внутренней памяти команд и данных, набору необходимых периферийных устройств, оказываются весьма разнообразными. Для удовлетворения запросов потребителей выпускается большая номенклатура микроконтроллеров, которые принято подразделять на 8-, 16- и 32-разрядные.

8-разрядные МК представляют наиболее многочисленную группу этого класса микропроцессоров. Они имеют относительно низкую производительность, которая, однако, вполне достаточна для решения широкого круга задач управления различными объектами. Это простые и дешевые МК, ориентированные на использование в относительно несложных устройствах массового выпуска. Основными областями их применения являются бытовая и измерительная техника, промышленная автоматика, автомобильная электроника, теле-, видео- и аудиоаппаратура, средства связи.

Для этих МК характерна реализация Гарвардской архитектуры, где используется отдельная память для хранения программ и данных. Внутренняя память программ обычно имеет объем от нескольких единиц до десятков Кбайт. Объем внутренней памяти данных составляет от нескольких десятков байт до нескольких Кбайт. МК этой группы обычно выполняют относительно небольшой набор команд (33 -100), использующих наиболее простые способы адресации.

16-разрядные МК во многих случаях являются усовершенствованной модификацией своих 8-разрядных прототипов. Они характеризуются не только увеличенной разрядностью обрабатываемых данных, но и расширенной системой команд и способов адресации, увеличенным набором регистров и объемом адресуемой памяти, а также рядом других дополнительных возможностей, использование которых позволяет повысить производительность и обеспечить новые области применения. Обычно эти МК позволяют расширить объем памяти программ и данных до нескольких Мбайт путем подключения внешних микросхем памяти. Основная сфера применения таких МК – сложная промышленная автоматика, телекоммуникационная аппаратура, медицинская и измерительная техника.

32-разрядные МК содержат высокопроизводительный процессор, соответствующий по своим возможностям младшим моделям универсальных микропроцессорам. В ряде случаях процессор, используемый в этих МК, аналогичен универсальным микропроцессорам, которые выпускались ранее как самостоятельные изделия. Кроме 32-разрядного процессора на кристалле МК размещаются внутренняя память программ емкостью до десятков Кбайт, память данных емкостью до нескольких Кбайт, а также сложно-функциональные периферийные устройства: таймерный процессор, коммуникационный процессор, модуль последовательного обмена и ряд других. Эти МК могут работать с внешней памятью объемом до 16 Мбайт и выше. 32-разрядные МК используются в системах управления сложными объектами промышленной автоматики, робототехнических устройства, автоматизированном электроприводе, в контрольно-измерительной аппаратуре и телекоммуникационной оборудовании.

Сигнальные процессоры. Применение цифровых процессоров обработки сигналов (ЦПОС) в радиотехнических системах

Страницы работы

Фрагмент текста работы

Министерство образования и науки Российской Федерации

Дальневосточный государственный технический университет

(ДВПИ им. В.В. Куйбышева)

Методические указания к выполнению лабораторной работы на тему:

по дисциплине “Микропроцессоры и цифровая обработка сигналов”

для студентов специальности 201100

Введение

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

Отличительной особенностью сигнальных процессоров является обработка больших массивов поточной цифровой информации с высокой производительностью. Выполнение этого требования достигается за счет высокой специализации сигнальных процессоров. Для них характерно разделение шин команд и шин данных (гарвардская архитектура), аппаратная поддержка программных циклов, наличие аппаратного умножителя, включение в систему команд операции умножения с накоплением МАС (С = A * B + C) с указанным в команде правилом изменения индекса элементов массивов.

Использование однотактного умножителя и ячеек памяти в качестве операндов обуславливает относительно низкие тактовые частоты работы этих процессоров. За счет быстрого выполнения команд межрегистрового обмена Ri→Rj не удается повысить производительность вычислений, как это делается в универсальных процессорах.

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

Примеры наиболее распространенных сигнальных процессоров: Motorola 56002,96002, Intel i960, Analog Devices 21xx,210xx, Texas Instruments TMS320Cxx. В курсовой работе расчет выполняется для систем, использующих сигнальный процессор ADSP-2189M (Analog Devices).

1. Структура и цели цифровой обработки аналоговых сигналов

Структурная схема цифровой обработки аналогового сигнала Х(t) состоит из антиэлайсингового фильтра (АФ), аналого-цифрового преобразователя (АЦП), центрального процессора (ЦП), цифро-аналогового преобразователя (ЦАП) и сглаживающего фильтра (СФ) (рис. 1).

Рис. 1. Схема цифровой обработки сигнала

В радиотехнических устройствах цифровая обработка обычно применяется в низкочастотных блоках. Сигналом X(t) может быть выходное напряжение микрофонного усилителя или выходное напряжение детектора (амплитудного, частотного, фазового). В настоящее время разработаны высокопроизводительные процессоры для обработки радиосигналов промежуточной частоты.

Отфильтрованный аналоговый сигнал Xф(t) преобразуется в пропорциональный двоичный m-разрядный код аналого-цифровым преобразователем. На выходе АЦП получается двоичное представление аналогового сигнала (рис. 2), которое затем обрабатывается арифметически цифровым сигнальным процессором (ЦП). Для 16-разрядного сигнального процессора ADSP 2189M разработаны микросхемы параллельных и последовательных АЦП и ЦАП соответствующей разрядности. В данном примере m=n=16. Количество ступеней квантования 16-разрядного АЦП равно 2 16 -1= 65535. Типовые частоты квантования данного процессора составляют 8,16,32 и 64 кГц. Одно из указанных значений частоты задается в программе обработки данных при начальной инициализации процессора. Дискретные отсчеты

Рис. 2. Квантование аналогового сигнала по времени и уровню

аналогового сигнала хранятся в виде массива 16-разрядных двоичных чисел в специально отведенной области памяти – памяти данных (Data Memory), расположенной внутри микросхемы сигнального процессора. Объем памяти данных ADSP-2189M составляет 48К 16-разрядных слов. Максимальное количество дискретных отсчетов АЦП, хранящихся во внутренней оперативной памяти данных процессора, не может превышать 49 152 (48х1024) точек. При выполнении программы элементы массива можно циклически читать одной ассемблерной командой

MХ0 = DM (I0,M1), где MX0 – регистр умножителя–накопителя, I0 и M1 – индексные регистры генератора адреса, которые хранят адрес ячейки памяти (I0) и – шаг изменения адреса (М1). Например, если перед первым выполнением команды DM в регистрах были записаны значения I0=5, М1=1, то после выполнения команды в регистр MХ0 процессор запишет 16-разрядное двоичное число пятой ячейки буфера данных (I0=5) и увеличит адрес на единицу (М1=1). При повторном проходе этой ветви программы выполнение команды

Цифровые сигнальные процессоры.

Цифровые сигнальные процессоры (ЦСП) – это особый вид микропроцессорной техники, предназначенный для работы в реальном времени. Области применения ЦСП:

— цифровая фильтрация сигналов,

— оптимальная обработка, вычисление корреляционных функций,

— спектральный анализ сигналов,

— кодирование и декодирование информации,

— распознавание и синтез речи, синтез и обработка музыки,

— компьютерная графика, синтез изображений,

Главной отличительной особенностью ЦСП является большой объем вычислений, выполняемый в реальном времени. Это определяет следующие отличительные особенности ЦСП:

— применение расширенной гарвардской архитектуры – раздельных памяти команд и данных с независимыми шинами, что позволяет за один такт внутренней частоты кристалла осуществлять выборку команд и их исполнение,

— короткие команды, реализуемые в конвейерных устройствах, обуславливают RISC архитектуру ЦСП,

— обязательное наличие параллельного аппаратного умножителя, выполняющего команды умножения за один такт внутренней частоты кристалла,

— наличие специальных команд обработки сигналов. Например, в семействе процессоров TMS320 фирмы Texas Instruments имеется команда dmov, которая добавляет новый отсчет сигнала к выборке, сдвигая остальные отсчеты на один квант времени, команда LTD загружает множимое в регистр умножителя, осуществляет сдвиг отсчетов сигнала и складывает результат предыдущего умножения с содержимым аккумулятора.

За свою историю развития с начала 80-х годов прошлого века сменилось несколько поколений ЦСП, но ряд ЦСП предыдущих поколений в современном исполнении продолжают выпускаться из-за удачной архитектуры. ЦСП первого поколения TMS32010 разработан фирмой Texas Instruments в 1982 году. Это 16-разрядный микропроцессор с производительностью 5 миллионов команд в секунду (MIPS) имел внутреннее ОЗУ 144-256 слов, ПЗУ 1,5 — 4К слов. АЛУ и аккумулятор 32 разрядные, аппаратный умножитель 16х16 – результат 32 разряда, имелись порты ввода – вывода.

ЦСП второго поколения появились в середине 80-х годов. Это TMS32020, КМОП микропроцессор TMS320C25 с производительностью 10 MIPS. Наиболее интересны ЦСП DSP56000 и DSP56001 производительностью 10 и 25 MIPS соответственно. Их разработала фирма Motorola. Это единственные 24-разрядные ЦСП. Модификации ЦСП такой архитектуры до сих пор выпускаются. Архитектура DSP56001 показана на рис. 7.1. Процессор имеет расширенную гарвардскую архитектуру. ОЗУ данных X и Y имеют отдельные шины адреса YA, XA и данных XD, YD. Кроме того, отдельная шина адреса PA применена для адресации ПЗУ загрузки и ОЗУ программ, имеющих и отдельную шину данных PD. Шина данных GD используется для загрузки программ из host-компьютера по синхронному последовательному интерфейсу. Кроме того, GD используется для обслуживания прерываний от программируемого контроллера прерываний. Блоки коммутации могут передавать данные и адреса между этими шинами, а блоки коммутации внешних шин позволяют выводить из кристалла любую из шин. Генератор управляющих сигналов формирует внешние сигналы управления. К тактовому генератору подключается внешний кварц и он тактирует всю схему.

Рис. 7.1. Архитектура DSP56001

В ПЗУ X и Y записаны отсчеты синуса и косинуса, что позволяет проводить квадратурный прием и обработку. В настоящее время такой ЦСП наиболее часто используется при обработке и синтезе звука.

ЦСП третьего поколения появились на рубеже 80 – 90 годов. Это TMS320C30 — TI, DSP96002 – Motorola, DSP32C AT&T Microelectronics. Особенности этих процессоров – они 32 разрядные, в одном АЛУ могут выполнять целочисленные вычисления и с плавающей точкой, имеют расширенную гарвардскую архитектуру, наличие таймеров и портов ввода – вывода. Модификация ЦСП TMS320C30 выпускается и до настоящего времени – это TMS320VC33-120 и -150. Производительность TMS320VC33-150 150 миллионов операций с плавающей точкой в секунду (MFLOPS).

Его основные параметры:

— ОЗУ 34K 32 разрядных слов с двумя параллельными шинами доступа,

— тактовый генератор с возможностью умножения внутренней частоты,

— 32 разрядное ядро плавающей точки,

— 4 строба выборки внешних устройств,

— 8 40-разрядных регистров повышенной точности,

— 2 генератора адреса с 8 индексными регистрами,

— один последовательный порт,

сопроцессор прямого доступа к памяти (ПДП),

— 144 выводный корпус LQFP.

ЦСП четвертого поколения разрабатывались в 90 –е годы. Здесь произошло разделение ЦСП на относительно дешевые 16-разрядные ЦСП с фиксированной точкой и дорогие производительные 32- 40 разрядные ЦСП с плавающей точкой. ЦСП с фиксированной точкой стали использоваться в связной аппаратуре, модемах, звуковых мультимедийных устройствах, обработке сигналов, среди фирм разработчиков таких ЦСП известны семейства фирмы Analog Devices ADSP. ЦСП с плавающей точкой – для обработки широкополосных сигналов, изображений, в компьютерной графике. Типичным представителем ЦСП с плавающей точкой является TMS320C40 – TI. Архитектура этого ЦСП показана на рис. 7.2. Производительность этого процессора 275 MIPS. Главной особенностью его архитектуры является наличие шины ввода – вывода по прямому доступу в память с сопроцессором. Она предназначена для скоростного обмена через коммуникационные порты 0 – 5 с другими процессорами, образующими MIMD архитектуру. Каждый порт имеет 8 бит данных и 4 сопровождающих сигнала с пропускной способностью 20 Мб/с.

Рис. 7.2. Архитектура TMS320C40

На рис. 7.3 показан вариант топологии связей процессоров.

Рис. 7.3. Топология связей ЦСП

ЦСП пятого и шестого поколений разрабатывались в начале 21 века. Здесь следует отметить разработки фирмы TI – процессоры семейств С5000 и С6000. Семейство С5000 представляет собой семейство дешевых ЦСП с фиксированной точкой, высоким быстродействием и пониженным потреблением 0,9 В, а С6000 – ЦСП с фиксированной и плавающей точкой с производительностью до 1200 MFLOPS.. Некоторые параметры семейства TMS320C55x:

— потребление 0,05 мВ/MIPS,

— производительность 140 – 800 MIPS, включая операции умножения,

— переменная длина команд 8 – 48 бит,

— 2 умножителя, 2 АЛУ, 4 аккумулятора,

— 4 регистра данных,

— выборка команд – по 32 разряда.

В настоящее время ЦСП применяются совместно с программируемой логикой. Средства отладки аппаратуры на основе ЦСП и программируемой логики подразделяются на две категории:

— программная поддержка для формирования и отладки машинного кода обработки сигналов в ЦСП (средства генерации кода),

— программно-аппаратная поддержка для интеграции ЦСП с целевой аппаратурой разрабатываемого устройства и средства отладки программы обработки с аппаратной частью в реальном времени.

Эти два вида отладки обычно выполняются разными разработчиками с перекрытием по времени, что ускоряет процесс проектирования и изготовления аппаратуры. На рис. 7.4 приведена структура процесса отладки аппаратуры с ЦСП и программируемой логикой.

Рис. 7.4. Процесс разработки аппаратуры на ЦСП и ПЛИС

В процессе отладки программы ЦСП происходят возвраты и исправление программы, но также точно происходят возвраты и для изменения логики, заложенной в программируемой логике аппаратной части. Таким образом, процесс отладки при применении ЦСП и ПЛИС оказывается существенно более гибким и позволяет менять как программную, так и аппаратную часть.

Каковы особенности развития аппаратуры на основе ЦСП и программируемой логики?

1. Развитие различных параллельных архитектур обработки как в ЦСП, так и в программируемой логике.

2. Развитие соответствующих отладочных средств на основе эмуляторов, симуляторов и интерфейсов тестирования, подобных JTAG.

3. Комбинирование внутри одного кристалла ЦСП и программируемой логики, например в TMS320C54x.

4. Развитие эффективности оптимизирующих компиляторов языков высокого уровня типа С до уровня, чтобы не требовалось ассемблерных вставок в программы.

5. Развитие гетерогенных аппаратных систем на одном кристалле, включающих в себя различные типы микропроцессоров, включая и ЦСП, и оснащение их параллельными многопроцессорными операционными системами реального времени.

Список литературы

1. Супер ЭВМ. Аппаратная и программная организация/ Под ред. С. Фернбаха: Пер. с англ. – М.: Радио и связь, 1991.

2. Хокни Р., Джессоуп К. Параллельные ЭВМ. Архитектура, программирование и алгоритмы: Пер. с англ.-М.: Радио и связь, 1986.

3. Коуги П.М. Архитектура конвейерных ЭВМ: Пер. с англ.-М.: Радио и связь, 1985.

4. Параллельные вычисления/ Под ред. Г.Родрига: Пер. с англ.-М.: Наука, 1986.

5. Пухальский Г.И., Новосельцева Т.Я. Проектирование дискретных устройств на интегральных микросхемах: Справочник. – М.: Радио и связь, 1990.

6. Стешенко В.Б. ПЛИС фирмы ALTERA: проектирование устройств обработки сигналов. — М: ДОДЭКА, 2000.

7. КнышевД.А. ПЛИС фирмы “XILINX”: описание структуры основных семейств. — М: ДОДЭКА-XXI, 2001.

8. Сикарев А.А., Лебедев О.Н. Микроэлектронные устройства формирования и обработки сложных сигналов. — М.: Радио и связь, 1983.

Требования, предъявляемые к цифровым процессорам обработки сигналов

Наиболее важная операция в цифровой обработке сигналов представлена на рис. 17.3: суммирование результатов умножения (операция, отмеченная точкой на диаграммах). Данная операция одинаково важна для цифровых фильтров, БПФ и для множества других алгоритмов цифровой обработки сигналов. Цифровой сигнальный процессор (DSP) оптимизирован для осуществления повторяющихся математических операций, таких как умножение с накоплением. Пять основных требований предъявляется к DSP, чтобы оптимизировать производительность процессора: быстрое выполнение арифметических операций, повышенная точность представления операндов, возможность одновременной выборки двух операндов, поддержка циклических буферов, организация циклов с автоматической проверкой условия завершения цикла.

Быстрое выполнение арифметических операций

Быстрое выполнение арифметических действий – наиболее простое для понимания требование. Так как возможность реализации цифровой обработки сигналов в реальном масштабе времени зависит от производительности процессора, быстрота выполнения операций умножения с накоплением является главным требованием; большая скорость выполнения данной операции означает возможность обработки большей полосы частот. Но необходимо помнить, что эффективность DSP определяется не только временем выполнения операции умножения с накоплением. Этот часто забываемый факт приводит к неадекватному подходу в оценке производительности процессора, когда скорость работы процессора оценивается количеством операций, выполняемых процессором за единицу времени (в MIPS – миллионах операций в секунду). Так как большинство DSP и других процессоров, имеющих сходную архитектуру, могут выполнять за один машинный цикл команду MAC (умножение с накоплением), для большинства процессоров при оценке производительности в MIPS подразумевается производительность процессора при выполнении команды умножения с накоплением (MAC). Эта величина не учитывает другие свойства процессора, которые на практике могут повлиять на его общую производительность. Если остальные четыре критерия производительности окажутся неудовлетворительными, то высокая производительность процессора при выполнении MAC мало что даст.

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

Повышенная точность

Одновременная выборка двух операндов

Независимо от типа используемого микропроцессора, ограничения в его работе в основном связаны с пропускной способностью шины. В случае микропроцессоров общего назначения или микроконтроллеров, программа в основном состоит из команд, подразумевающих однократное обращение к памяти, обычно адресуемых при помощи сдвига относительно базового адреса. Это заставляет разработчиков микропроцессоров так проектировать систему команд, чтобы фиксированные данные встраивались в код, поскольку такой тип получения операндов является быстрым и эффективным с точки зрения использования памяти. С другой стороны, в DSP преобладают команды, требующие двух независимых обращений к памяти. Данное требование вытекает из самой сути операции свертки (перемножение с суммированием) Σh(i)·x(i). Целью быстрой одновременной выборки двух операндов является необходимость непрерывной загрузки накапливающего умножителя (МАС). При описании МАС мы видели, что быстродействие DSP в основном определяется скоростью МАС. Если мы считаем, что МАС выполняется за приемлемое время, то очевидно, что для каждой операции требуется с той же скоростью подавать на МАС два операнда. Увеличение времени выборки операндов из памяти соответствующим образом отразится на скорости работы МАС. В идеале обращение происходит одновременно с выполнением операции в МАС в одном и том же машинном цикле.

Одновременная выборка двух операндов в DSP осуществляется по двум независимым шинам: шине данных памяти программ и шине данных памяти данных. Кроме того, имеются отдельные шина адреса памяти программ и шина адреса памяти данных. Таким образом, МАС может получать входные данные по каждой шине данных одновременно. Такая архитектура обычно называется гарвардской.

Циклические буферы

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

При последовательных вычислениях произведений коэффициентов КИХ фильтра на отсчеты сигнала доступ к N коэффициентам фильтра осуществляется последовательно от h(0) до h(N-1). Набор отсчетов входного сигнала циркулирует в памяти следующим образом: новый отсчет входного сигнала сохраняется в памяти вместо старого отсчета всякий раз, когда вычисляется выходное значение фильтра. Для такого циркулирующего буфера может использоваться фиксированная область в ОЗУ. Самое раннее значение в памяти заменяется новым после каждого вычисления операции свертки. При этом информация об N последних отсчетах сохраняется в ОЗУ.

В виде буфера в ОЗУ DSP-процессора может быть реализована задержка, если новые значения записываются в память на место старых. Для упрощения адресации памяти старые значения считываются из памяти, начиная со значения, расположенного сразу после того, которое было только что записано. Например, в КИХ-фильтре с четырьмя коэффициентами новый отсчет x(4) записывается в ячейку памяти с адресом 0. Далее чтение данных осуществляется из ячеек с адресами 1,2,3 и 0 в указанном порядке. Этот способ применяется при любом числе звеньев фильтра. При такой адресации ячеек памяти генератор адреса должен выдавать лишь последовательные значения адресов, вне зависимости от того, какая операция с памятью – чтение или запись – осуществляется в настоящий момент. Буфер такого типа называется циклическим, потому что когда при записи достигается последняя ячейка, указатель памяти устанавливается на начало буфера.

Выборка коэффициентов из памяти осуществляется одновременно с выборкой данных. При рассмотренной схеме адресации самые старые отсчеты извлекаются из памяти первыми. Поэтому последний из коэффициентов должен выбираться из памяти первым. Коэффициенты могут заноситься в памяти в обратном порядке: h(N-1) – в первую ячейку, а h(0) – в последнюю, и генератор адреса в этом случае должен генерировать последовательно возрастающие адреса. И наоборот, коэффициенты могут быть записаны в памяти в нормальном порядке, но доступ к ним при этом должен осуществляться, начиная с конца буфера, а генератор адреса должен генерировать последовательно убывающие адреса.

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

Организация циклов с автоматической проверкой условия

Выводы

Любой процессор может выполнить любой алгоритм при наличии достаточного времени. Однако DSP процессоры оптимизированы под конкретные вычисления, связанные с обработкой реальных сигналов в реальном масштабе времени. Традиционные компьютеры больше подходят для вычислительных задач, не связанных с реальным временем. В следующем разделе мы исследуем архитектуру 16-разрядного цифрового сигнального процессора с фиксированной точкой семейства ADSP-21xx компании Analog Devices.

Классификация микропроцессорных систем 5 Универсальные процессоры 8

Название Классификация микропроцессорных систем 5 Универсальные процессоры 8
страница 27/32
Дата конвертации 27.05.2013
Размер 1.53 Mb.
Тип Реферат

Требования, предъявляемые к цифровым сигнальным процессорам

Наиболее важная операция в цифровой обработке сигналов представлена на рис. 17.3: суммирование результатов умножения (операция, отмеченная точкой на диаграммах). Данная операция одинаково важна для цифровых фильтров, БПФ и для множества других алгоритмов цифровой обработки сигналов. Цифровой сигнальный процессор (DSP) оптимизирован для осуществления повторяющихся математических операций, таких как умножение с накоплением. Пять основных требований предъявляется к DSP, чтобы оптимизировать производительность процессора: быстрое выполнение арифметических операций, повышенная точность представления операндов, возможность одновременной выборки двух операндов, поддержка циклических буферов, организация циклов с автоматической проверкой условия завершения цикла.

Быстрое выполнение арифметических операций

Быстрое выполнение арифметических действий – наиболее простое для понимания требование. Так как возможность реализации цифровой обработки сигналов в реальном масштабе времени зависит от производительности процессора, быстрота выполнения операций умножения с накоплением является главным требованием; большая скорость выполнения данной операции означает возможность обработки большей полосы частот. Но необходимо помнить, что эффективность DSP определяется не только временем выполнения операции умножения с накоплением. Этот часто забываемый факт приводит к неадекватному подходу в оценке производительности процессора, когда скорость работы процессора оценивается количеством операций, выполняемых процессором за единицу времени (в MIPS – миллионах операций в секунду). Так как большинство DSP и других процессоров, имеющих сходную архитектуру, могут выполнять за один машинный цикл команду MAC (умножение с накоплением), для большинства процессоров при оценке производительности в MIPS подразумевается производительность процессора при выполнении команды умножения с накоплением (MAC). Эта величина не учитывает другие свойства процессора, которые на практике могут повлиять на его общую производительность. Если остальные четыре критерия производительности окажутся неудовлетворительными, то высокая производительность процессора при выполнении MAC мало что даст.

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

Повышенная точность

Одновременная выборка двух операндов

Независимо от типа используемого микропроцессора, ограничения в его работе в основном связаны с пропускной способностью шины. В случае микропроцессоров общего назначения или микроконтроллеров, программа в основном состоит из команд, подразумевающих однократное обращение к памяти, обычно адресуемых при помощи сдвига относительно базового адреса. Это заставляет разработчиков микропроцессоров так проектировать систему команд, чтобы фиксированные данные встраивались в код, поскольку такой тип получения операндов является быстрым и эффективным с точки зрения использования памяти. С другой стороны, в DSP преобладают команды, требующие двух независимых обращений к памяти. Данное требование вытекает из самой сути операции свертки (перемножение с суммированием) Σh(i)·x(i). Целью быстрой одновременной выборки двух операндов является необходимость непрерывной загрузки накапливающего умножителя (МАС). При описании МАС мы видели, что быстродействие DSP в основном определяется скоростью МАС. Если мы считаем, что МАС выполняется за приемлемое время, то очевидно, что для каждой операции требуется с той же скоростью подавать на МАС два операнда. Увеличение времени выборки операндов из памяти соответствующим образом отразится на скорости работы МАС. В идеале обращение происходит одновременно с выполнением операции в МАС в одном и том же машинном цикле.

Каждый электрик должен знать:  Передача и распределение электроэнергии

Одновременная выборка двух операндов в DSP осуществляется по двум независимым шинам: шине данных памяти программ и шине данных памяти данных. Кроме того, имеются отдельные шина адреса памяти программ и шина адреса памяти данных. Таким образом, МАС может получать входные данные по каждой шине данных одновременно. Такая архитектура обычно называется гарвардской.

Циклические буферы

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

При последовательных вычислениях произведений коэффициентов КИХ фильтра на отсчеты сигнала доступ к N коэффициентам фильтра осуществляется последовательно от h(0) до h(N-1). Набор отсчетов входного сигнала циркулирует в памяти следующим образом: новый отсчет входного сигнала сохраняется в памяти вместо старого отсчета всякий раз, когда вычисляется выходное значение фильтра. Для такого циркулирующего буфера может использоваться фиксированная область в ОЗУ. Самое раннее значение в памяти заменяется новым после каждого вычисления операции свертки. При этом информация об N последних отсчетах сохраняется в ОЗУ.

В виде буфера в ОЗУ DSP-процессора может быть реализована задержка, если новые значения записываются в память на место старых. Для упрощения адресации памяти старые значения считываются из памяти, начиная со значения, расположенного сразу после того, которое было только что записано. Например, в КИХ-фильтре с четырьмя коэффициентами новый отсчет x(4) записывается в ячейку памяти с адресом 0. Далее чтение данных осуществляется из ячеек с адресами 1,2,3 и 0 в указанном порядке. Этот способ применяется при любом числе звеньев фильтра. При такой адресации ячеек памяти генератор адреса должен выдавать лишь последовательные значения адресов, вне зависимости от того, какая операция с памятью – чтение или запись – осуществляется в настоящий момент. Буфер такого типа называется циклическим, потому что когда при записи достигается последняя ячейка, указатель памяти устанавливается на начало буфера.

Выборка коэффициентов из памяти осуществляется одновременно с выборкой данных. При рассмотренной схеме адресации самые старые отсчеты извлекаются из памяти первыми. Поэтому последний из коэффициентов должен выбираться из памяти первым. Коэффициенты могут заноситься в памяти в обратном порядке: h(N-1) – в первую ячейку, а h(0) – в последнюю, и генератор адреса в этом случае должен генерировать последовательно возрастающие адреса. И наоборот, коэффициенты могут быть записаны в памяти в нормальном порядке, но доступ к ним при этом должен осуществляться, начиная с конца буфера, а генератор адреса должен генерировать последовательно убывающие адреса.

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

Курсовая работа: Цифровая обработка сигналов

Цифровая обработка сигналов

Глава 1. Характеристика сигналов в системах цифровой обработки

Глава 2. Специализированный процессор цифровой обработки сигналов СПФ СМ

2.1 Области применения

2.2 Структура и основные характеристики

2.3 Алгоритмы и программное обеспечение

2.4 Разработчики и промышленная история

Глава 3. Применение цифровой обработки сигналов


3.1 Шумоподавление для звука

3.3 Антиалиасинг изображений

3.4 Псевдотонирование изображений

3.5 Выравнивание освещенности изображений

3.6 Другие применения

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

Безусловно, данная обработка может быть выполнена с помощью обычных вычислительных средств. Например, на современном персональном компьютере с процессором типа Pentium IV обработка не представляет никаких трудностей. Однако именно специфика последовательности предоставляет дополнительные возможности для достижения высокой эффективности при жестких ограничениях систем реального времени.

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

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

В статье представлены две разработки отечественных вычислительных систем цифровой обработки, выполненные инженерами и учеными в 70–80 годах прошлого века. Спецпроцессор преобразования Фурье СПФ СМ для семейства управляющих ЭВМ линии СМ3 – СМ4 был создан в 1983 году для обработки изображений поверхности планеты Венера в рамках выполнения соответствующей программы. Разработка проводилась Институтом электронных управляющих машин (ИНЭУМ) совместно с Институтом радиоэлектроники Академии наук СССР – ИРЕ АН.

Цифровые вычислительные системы «Напев» и «Айлама» предназначались для обработки гидроакустического сигнала и были предложены ЦНИИ «Агат» в 1978-1979 годах по техническому заданию Военно-морского флота (ВМФ) СССР.

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

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

Процессоры цифровой обработки сигналов, как добрые гномы или мифические демоны Максвелла, перерабатывают в «недрах» компьютера цифровую информационную руду: без устали фильтруют, анализируют, распознают, модулируют/демодулируют, уплотняют и разуплотняют, кодируют/декодируют – всего не перечислишь.

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

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

Наиболее жесткие требования к аппаратной части цифровой обработки предъявляют радиолокационные системы. Основным содержанием цифровой обработки здесь является фильтрация входных сигналов антенны, частоты сигналов от 10 МГц до 10 ГГц. Размеры преобразований могут достигать до 2 14 комплексных точек, требования по быстродействию составляют 10 9 умножений в секунду.

При обработке цифровых сигналов радиолокатора используются алгоритмы цифровой фильтрации и спектрального анализа (вычисление дискретного и быстрого преобразования Фурье – ДПФ и БПФ), алгоритмы корреляционного анализа, обратной свертки, специальные алгоритмы линейного предсказания. В системах обработки звука цифровые процессоры обработки сигнала решают задачи анализа, распознавания и синтеза речи, сжатия речи в системах телекоммуникации. Для систем обработки изображений типовыми задачами являются улучшение изображений, сжатие информации для передачи и хранения, распознавание образов. При обработке цифровых звуковых сигналов используются алгоритмы цифровой фильтрации и спектрального анализа (вычисление ДПФ и БПФ), алгоритмы корреляционного анализа, обратной свертки, специальные алгоритмы линейного предсказания. В большинстве случаев удовлетворительные результаты обеспечивает формат данных с фиксированной запятой, длина слова 16 бит, частоты сигналов от 4 до 20 кГц (до 40 кГц в случае обработки музыки), требуемая производительность – до 10×10 6 операций в секунду – 10 MIPS по компьютерной терминологии.

Характерным для систем обработки изображений является восстановление и улучшение изображений с помощью инверсной свертки, обработка массивов отсчетов с помощью алгоритмов быстрого преобразования Фурье. При восстановлении трехмерной структуры объектов, получаемых методами проникающего излучения в дефектоскопии и медицинской интраскопии, применяются методы пространственно-частотной фильтрации. Другой класс алгоритмов – преобразование контрастности, выделение контуров, статистическая обработка изображений. Для сжатия информации наиболее эффективны ортогональные преобразования Фурье, Адамара и Уолша. Требуемая производительность оценивается величинами 100–1000 MIPS, массивы данных – 10 5 –10 6 отсчетов.

Таблица 1 Характеристики сигналов в системах цифровой обработки

Название: Цифровая обработка сигналов
Раздел: Рефераты по коммуникации и связи
Тип: курсовая работа Добавлен 17:40:47 06 декабря 2010 Похожие работы
Просмотров: 3978 Комментариев: 13 Оценило: 2 человек Средний балл: 5 Оценка: неизвестно Скачать
Назначение Характеристика Диапазон частот, размерность Требуемое быстродействие Пример, разработчик
Радиолокационные системы Фильтрация сигналов антенны 10 МГц – 10 ГГц, до 214 точек 109 умножений в секунду
Обработка звуковых сигналов Анализ и синтез речи, сжатие и распознавание 20 кГц (40 кГц), 16 бит 10 MIPS «Напев», ЦНИИ «Агат»
Системы обработки изображений Восстановление и улучшение изображений 105–106 отсчетов 100-1000 MIPS СПФ СМ, ИНЕУМ, ИРЕ АН СССР

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

Специализированный процессор Фурье – СПФ СМ – предназначен для выполнения алгоритмов быстрого преобразования Фурье и других специфических операций цифровой обработки сигналов. Процессор был разработан Институтом электронных управляющих машин (ИНЭУМ) совместно с Институтом радиоэлектроники АН СССР в 1983 году.

Специализированный процессор представлял собой высокопроизводительное аппаратное средство расширения возможностей управляющих компьютеров линии СМ ЭВМ.

2.1 Области применения

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

Краткий перечень областей эффективного применения СПФ СМ с указанием выполняемых алгоритмов приведен ниже.

Радио- и гидролокация – обнаружение и измерение координат, профилирование, построение радиоизображения, полоса сигнала 100 кГц – 1 МГц. Применяются следующие алгоритмы:

· согласованная фильтрация, база сигнала 10 2 –10 4 ;

· спектральный анализ, разрешение 10 -4 ;

· двумерное ДПФ, двумерная фильтрация;

· фазирование сигналов, ограничение выбросов в сигналах.

Радиосвязь – обеспечение надежности систем наземной и космической связи за счет оптимизации алгоритмов выделения, кодирования для сжатия и увеличения помехозащищенности, подавление помех, полоса сигнала до 100 кГц. Применяемые алгоритмы и операции: спектральный анализ, одномерное и двумерное дискретное преобразование Фурье, взаимная корреляция и согласованная фильтрация.

Радиоастрономия – спектры линий, радиоинтерферометрия со сверхбольшими базами для разрешения радиоисточников, полоса сигнала 1–10 МГц. Применяемые алгоритмы:

· спектральный анализ, разрешение 10 –4 ;

Обработка изображений – улучшение качества снимков – резкости и контрастности, подавление помех, сжатие и восстановление после сжатия, восстановление изображений из оцифрованных голограмм, размер изображений 10 3 x10 3 . При обработке изображений применяется двумерное ДПФ и двумерная фильтрация.

Геофизика – анализ естественных сейсмосигналов для контроля и предсказания землетрясений, обработки результатов сейсморазведки для описания геологической структуры под поверхностью. Применяемые алгоритмы:

· взаимная корреляция и автокорреляция;

· восстановление из свертки в частотной области;

· двумерное ДПФ для восстановления распределения отражений из проекций, размер 10 3 x10 3 .

Обработка речевых и звуковых сигналов в полосе сигнала 50 кГц – анализ и синтез речи, улучшение качества звукозаписи, акустики помещений и систем.

Медицина, биология – анализ кардиограмм и энцефалограмм, томографические исследования, анализ звуков животных, полоса сигнала до 400 кГц.

Анализ вибраций для контроля качества двигателей и механических систем, полоса сигнала 100 кГц – 1 МГц.

Моделирование физических явлений и цифровых систем – проверка гипотез, подбор параметров при проектировании.

2.2 Структура и основные характеристики

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

Основной узел – блок выполнения ДПФ, алгоритм БПФ по основанию 2, аппаратурная задержка приблизительно равна размеру преобразуемого массива.

Обмен данными между оперативным запоминающим устройством и спецпроцессором обеспечивается блоком сопряжения прямого доступа. Скорость обмена – 400 тыс. 32-разрядных слов в секунду.

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

Конструктивно СПФ СМ был выполнен в одной стойке СМ ЭВМ с габаритами 947x600x1800 мм. Потребляемая мощность – 2 кВт.

2.3 Алгоритмы и программное обеспечение

С помощью СПФ СМ выполняются следующие алгоритмы:

Прямое преобразование комплексного массива. Размер массива N = 2 n (n = 1, 2, …, 12).

Прямое ДПФ с получением энергетического спектра с вышеуказанными параметрами.

Прямое ДПФ с предварительным взвешиванием преобразуемого массива. При выполнении предварительного взвешивания время увеличивается на 30%.

Операции масштабирования массивов: а)увеличение отсчета массива в 2 a раз и выявление числа переполнений, числа значащих битов максимального по абсолютной величине числа (мнимые и действительные части рассматриваются как независимые числа, при переполнении производится ограничение); б)управление делением в 2 раза после каждого этапа БПФ в блоке БПФ; в)уменьшение значений энергетического спектра в 4 b раза.

Основное назначение операций a) и б) состоит в минимизации погрешности ДПФ, а операции в) – в уменьшении разрядности результата и экономии ОЗУ за счет укороченного формата мощности. Кроме того, операция а) позволяет ограничить массив сигнала и выявить статистику его амплитуды.

Дополнительные операции над массивами:

а) поэлементное перемножение двух комплексных массивов;

б) вычисление суммы произведений элементов двух комплексных массивов.

Размещение массивов в ОЗУ. Действительные и мнимые части данных располагаются последовательно. Шаг размещения массива произвольный, что позволяет исключать лишние пересылки при совместном анализе нескольких сигналов или при обработке двумерных массивов.

Управление спецпроцессором со стороны операционной системы СМ3 или СМ4 осуществляется программой-драйвером, выполняющей за одно обращение следующие команды:

· прямое и обратное БПФ;

· БПФ и вычисление энергетического спектра;

· ОБПФ и вычисление массива из квадратов модулей значений результата;

· умножение на массив весовых коэффициентов и БПФ;

· умножение на массив весовых коэффициентов и ОБПФ;

· умножение на массив весовых коэффициентов, БПФ и вычисление энергетического спектра;

· умножение на массив весовых коэффициентов, ОБПФ и вычисление массива из квадратов модуля значений результата;

· скалярное произведение двух массивов;

· вычисление квадрата модуля скалярного произведения двух массивов;

· вычисление массива квадратов модулей поэлементного произведения.

Наборы макрокоманд и модулей системной библиотеки позволяют спецпроцессору выполнять следующие операции ДПФ: свертку двух действительных массивов, двумерное ДПФ массива, расположенного на магнитном носителе, ДПФ массива большого размера, находящегося на магнитном носителе; взвешивание преобразуемого массива.

2.4 Разработчики и промышленная история

Разработка спецпроцессора СПФ СМ осуществлялась в Институте электронных управляющих машин, в отделе возглавлявшемся к. т. н. Фельманом Борисом Яковлевичем. Разработка выполнялась совместно с ИРЭ АН СССР. Спецпроцессор СПФ СМ выпускался малой серией. Общее количество выпущенных силами предприятий-разработчиков экземпляров – 30-40.

Интересным примером применения спецпроцессора СПФ СМ явилась обработка радиолокационных сигналов зондирования поверхности планеты Венера, которое проводилось со спутника.

3.1 Шумоподавление для звука

Звуковой сигнал, записываемый в реальных акустических условиях, часто содержит нежелательные шумы, которые могут порождаться окружающей средой или звукозаписывающей аппаратурой. Один из классов шумов — аддитивные стационарные шумы .

Аддитивность означает, что шум суммируется с «чистым» сигналом и не зависит от него.

Стационарность означает, что свойства шума (мощность, спектральный состав) не меняются во времени.

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

Для подавления аддитивных стационарных шумов существует алгоритм спектрального вычитания . Он состоит из следующих стадий:

1. Разложение сигнала с помощью кратковременного преобразования Фурье (STFT) или другого преобразования, компактно локализующего энергию сигнала.

2. Оценка спектра шума.

3. «Вычитание» амплитудного спектра шума из амплитудного спектра сигнала.

4. Обратное преобразование STFT — синтез результирующего сигнала.

В качестве банка фильтров рекомендуется использовать STFT с окном Ханна длиной порядка 50 мс и степенью перекрытия 75%. Амплитуду весового окна надо отмасштабировать так, чтобы при выбранной степени перекрытия окон банк фильтров не менял общую амплитуду сигнала в отсутствие обработки.

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

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

Для подавления этого артефакта можно применять следующие методы:

• Завышение оценки шумового порога (увеличение k ). Приводит к подавлению слабых компонент полезного сигнала, звук становится глуше.

• Неполное подавление шума (ограничение снизу константой, отличной от нуля). Часть шума остается в сигнале и отчасти маскирует «музыкальный шум».

• Сглаживание по времени оценок спектра. Приводит к размытию или подавлению транзиентов (резких всплесков в сигнале: ударов, атак музыкальных инструментов).

• Адаптивное сглаживание оценок спектра по времени и частоте. Наиболее качественный, но и трудоемкий метод.

Наиболее распространенный способ подавления «музыкального шума» – использует сглаживание спектра по времени. Для этого к STFT-коэффициентам исходного сигнала применяется рекурсивная фильтрация по времени. Более качественного подавления можно достичь, применяя к спектрограмме адаптивные двумерные алгоритмы фильтрации, такие как билатеральный фильтр или алгоритм нелокального усреднения, используемые в шумоподавлении для изображений.

3.2 Передискретизация

Ресамплинг (передискретизация, resampling ) – это изменение частоты дискретизации цифрового сигнала. Применительно к цифровым изображениям ресамплинг означает изменение размеров изображения. Существует множество различных алгоритмов ресамплинга изображений. Например, для увеличения изображения в 2 раза можно просто продублировать каждую из его строк и каждый из его столбцов (а для уменьшения – выкинуть). Такой метод называется методом ближайшего соседа (nearest neighbor ). Можно промежуточные столбцы и строки получить линейной интерполяцией значений соседних столбцов и строк. Такой метод называется билинейной интерполяцией (bilinear interpolation ). Можно каждую точку нового изображения получить как взвешенную сумму большего числа точек исходного изображения (бикубическая и другие виды интерполяции).

Наиболее качественный ресамплинг получается при использовании алгоритмов, учитывающих необходимость работы не только с временной, но и с частотной областью изображения. Сейчас мы рассмотрим алгоритм ресамплинга, который основан на идее максимального сохранения частотной информации изображения. Алгоритм построен по принципу интерполяция / фильтрация / прореживание (interpolation / filtering / decimation ).

Работу алгоритма будем рассматривать на одномерных сигналах, так как двумерное изображение можно сначала растянуть или сжать по горизонтали (по строкам) а потом – по вертикали (по столбцам). Таким образом, ресамплинг двумерного изображения сводится к ресамплингу одномерного сигнала.

Пусть нам нужно «растянуть» одномерный сигнал от длины n точек до длины m точек, т.е. в nm раз. Для выполнения этой операции необходимо выполнить 3 шага. Первый шаг – интерполяция нулями, увеличивающая длину сигнала в m раз. Нужно умножить все отсчеты исходного сигнала на m , а потом после каждого отсчета сигнала нужно вставить m -1 нулевое значение. При этом спектр сигнала изменяется следующим образом. Та часть спектра, которая изначально содержалась в цифровом сигнале, остается без изменения (именно этого мы добиваемся). Но выше старой половины частоты дискретизации возникают помехи (отраженные копии спектра), от которых необходимо избавиться с помощью фильтрации.

Второй шаг – это отфильтровывание этих помех с помощью НЧ-фильтра. Теперь мы получили сигнал, который в m раз длиннее исходного, но сохранил его частотную информацию и не приобрел посторонней частотной информации (ее мы отфильтровали). Если бы нашей задачей было удлинение сигнала в m раз, то на этом шаге можно было бы остановиться. Но наша задача требует теперь уменьшить длину сигнала в n раз. Для этого нужно выполнить 2 шага. Первый шаг – это антиалиасинговая фильтрация. Так как частота дискретизации уменьшается в n раз, то из спектра сигнала, согласно теореме Котельникова, удастся сохранить только его низкочастотную часть. Все частоты выше половины будущей частоты дискретизации нужно удалить с помощью антиалиасингового фильтра с частотой среза равной n 1 от текущей половины частоты дискретизации. Второй шаг – это прореживание полученного сигнала в n раз. Для этого достаточно выбрать из сигнала каждый n -й отсчет, а остальные – отбросить. Этот алгоритм очень схож с работой АЦП, который тоже сначала отфильтровывает ненужные частоты из сигнала, а потом замеряет Заметим, что две НЧ-фильтрации, применяемые в этом алгоритме друг за другом, можно (и нужно) заменить одной. Для этого частоту среза единого НЧ -фильтра нужно выбрать равной минимуму из частот среза двух отдельных НЧ-фильтров. Еще одно существенное улучшение алгоритма – это поиск общих делителей у чисел m и n . Например, очевидно, что для того, чтобы сигнал из 300 точек сжать до 200 точек, достаточно положить в алгоритме m =2 и n =3.

Заметим, что приведенный алгоритм требует очень большого объема вычислений, т.к. промежуточный размер одномерного сигнала при ресамплинге может быть порядка сотен тысяч. Существует способ существенно повысить быстродействие алгоритма и сократить расход памяти. Этот способ называется многофазной фильтрацией (polyphase filtering ). Он основан на том, что в длинном промежуточном сигнале совсем необязательно вычислять все точки. Ведь большая часть из них все равно будет отброшена при прореживании. Многофазная фильтрация позволяет непосредственно выразить отсчеты результирующего сигнала через отсчеты исходного сигнала и антиалиасингового фильтра.

Отметим, что здесь мы не рассматриваем такие детали алгоритма, как коррекция границ изображения, выбор фазы сигнала при интерполяции и прореживании и построение хорошего антиалиасингового фильтра. Отметим только, что для ресамплинга изображений требуется уделить особое внимание как частотной, так и пространственной характеристике фильтра. Если оптимизировать фильтр только в частотной области, то это приведет к большим пульсациям в ядре фильтра. А при ресамплинге изображений пульсации в ядре фильтра приводят к пульсациям яркости вблизи резких перепадов яркости в изображении (эффект Гиббса , Gibbs phenomenon )

3.3 Антиалиасинг изображений

Избежать алиасинга при генерации изображений – важная задача компьютерной графики. Алиасинг в изображениях приводит к зубчатости краев фигур, муару, плохой читаемости текста и графиков. Одним из основных способов предотвращения алиасинга является так называемый суперсамплинг (super-sampling ). Этот прием заключается в генерации изображения с большим разрешением и ресамплингу этого изображения до нужного размера. Рассмотрим пример. Пусть нам нужно сгенерировать трехмерное изображение шахматной доски с разрешением 200×150 пикселей. Если сделать это непосредственно (например, трассировкой лучей через каждую точку экрана), то результат может быть существенно искажен алиасингом (рис. 13). Применим метод суперсамплинга. Сгенерируем нужное нам изображение с четырехкратным размером 800×600 пикселей, а затем уменьшим его до размера 200×150. Заметим, что качество получаемого таким образом изображения существенно лучше и зависит от качества алгоритма ресамплинга и от степени суперсамплинга (во сколько раз большее изображение мы сгенерировали). Желательно применять алгоритм ресамплинга, обеспечивающий хороший антиалиасинг.

Рис. 13. Изображение, сгенерированное без антиалиасигна и с антиалиасингом.

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

3.4 Псевдотонирование изображений

Псевдотонирование (half-toning ) – это создание иллюзии полноцветности изображения с помощью небольшого реального числа цветов. Пример псевдотонирования – фотографии в газетах, где любые оттенки серого передаются с помощью чередования мелких черных и белых точек.

Мы рассмотрим вариант псевдотонирования для черно-белых изображений. Нашей задачей будет представить изображение с оттенками серого в виде монохромного (двухцветного) изображения.

Пусть мы имеем изображение в оттенках серого, интенсивность точек которого может принимать произвольные значения от 0 до 1. Рассмотрим некоторые алгоритмы приведения такого изображения к монохромному, яркость точек которого может принимать 2 значения: 0 или 1.

Первый самый простой алгоритм – это усечение (порог). Все пиксели с яркостью больше 0.5 получают яркость 1, все остальные – яркость 0. Такой алгоритм обычно дает наихудшие результаты (рис. 15).

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

Один из таких методов – упорядоченное псевдотонирование . В этом методе исходное изображение разбивается на небольшие блоки одинакового размера (например, 3×3). Затем в каждом блоке находится средняя яркость изображения. В соответствии с этой средней яркостью выбирается количество белых пикселей в соответствующем блоке получаемого монохромного изображения. Обычно эти белые пиксели упорядочиваются в соответствии с некоторым регулярным шаблоном (рис. 15).

Существуют другие алгоритмы достижения нужной концентрации белых пикселей в получаемом монохромном изображении. Например, существует класс алгоритмов, которые достигают этого в 2 стадии. Сначала к изображению добавляется случайный шум необходимой амплитуды, а затем применяется порог. Такие алгоритмы называют диттерингом (dithering ).

Шум представляет собой некий достаточно случайный сигнал, не зависящий от изображения. Например, белый шум – это просто последовательность случайных чисел с математическим ожиданием 0. Спектр такого шума приблизительно равен константе на всех частотах (в пределах половины частоты дискретизации). Последовательные отсчеты такого шума не коррелируют между собой.

Существуют другие виды шума. Например, у розового шума энергия обратно пропорциональна частоте (в определенном рассматриваемом диапазоне частот). Другими словами, амплитуда его гармоник падает на 3 дБ при удвоении частоты. У голубого шума энергия наоборот растет с частотой. Существуют и другие виды шума, однако определения для них могут быть различны в разных областях.

Будем называть ошибкой квантования изображение, равное разности исходного и псевдотонированного изображений.

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

Нетрудно видеть, что просто диттеринг голубым шумом не приводит к желаемому результату, т.к. ошибка квантования при этом имеет спектр, содержащий значительное количество низкочастотных и среднечастотных компонент. Для избавления от них нужно применить рекурсивный фильтр. Этот метод псевдотонирования называется диффузией ошибки (error diffusion ). Его идея в том, что ошибка квантования, возникшая при квантовании данного пикселя, распространяется с обратным знаком на соседние пиксели и таким образом как бы компенсируется.

Часто некоторые участки на изображении бывают слишком темными, чтобы на них можно было что-то разглядеть.

Если прибавить яркости ко всему изображению, то изначально светлые участки могут оказаться совсем засвеченными. Чтобы улучшить вид изображения в таких случаях, применяется метод выравнивания освещенности.

Этот метод не является линейным, т.е. не реализуется линейной системой. Действительно, рассмотрим модель типичную освещенности для фотографии. Фотографируемый пейзаж обычно освещен по-разному в разных точках. Причем обычно освещенность меняется в пространстве достаточно медленно.

Мы хотим, чтобы все детали на фотографии были освещены более однородно, но при этом оставались достаточно контрастными друг относительно друга.

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

Поскольку освещенность меняется в пространстве достаточно медленно, то можно считать ее низкочастотным сигналом. Само же изображение можно считать в среднем более высокочастотным сигналом. Если бы в процессе фотографии эти сигналы складывались , то их можно было бы разделить с помощью обычного фильтра.

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

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

Логарифм от произведения равен сумме логарифмов сомножителей. Если учесть, что логарифм от НЧ-сигнала остается НЧ-сигналом, а логарифм от ВЧ-сигнала остается ВЧ-сигналом, то мы свели задачу разделения произведения сигналов к задаче разделения суммы НЧ- и ВЧ-сигналов. Очевидно, эту задачу можно решить с помощью ВЧ-фильтра, который удалит из суммы сигналов низкие частоты. После этого останется только взять от полученного сигнала экспоненту, чтобы вернуть его к исходному масштабу амплитуд.

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

Наилучший радиус размытия зависит от конкретного изображения. Можно начать эксперименты с радиуса порядка десяти пикселей.

Обычно для размытия изображения применяется двумерный гауссовский фильтр.

Непосредственное вычисление двумерной свертки с таким ядром потребует огромных вычислений даже при сравнительно небольшом размере ядра. Однако приведенное гауссово ядро обладает свойством сеперабельности .

Это означает, что эквивалентного эффекта можно достичь, отфильтровав сначала все строки изображения одномерным гауссианом, а затем отфильтровав все столбцы полученного изображения таким же одномерным гауссианом.

Полученный от выравнивания освещенности эффект может оказаться слишком сильным (темные области станут по яркости такими же, как и светлые). Чтобы уменьшить эффект, можно просто смешать обработанное изображение с исходным в определенной пропорции.

3.6 Другие применения

Улучшение изображений и художественные эффекты

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

Поиск фрагментов в изображениях

Для поиска фрагментов в изображениях применяется двумерная корреляция. Сигналом для поиска является изображение, а искомым сигналом – искомый фрагмент изображения. Эффективное вычисление корреляции стало возможным благодаря двумерному БПФ.

Методы цифровой обработки сигналов позволяют достаточно эффективно сжимать изображения в частотной области. Например, алгоритм JPEG действует следующим образом (упрощенно). Изображение разбивается на фрагменты размером 8×8 пикселей, и каждый фрагмент переводится в частотную область. После этого в каждом фрагменте те высокочастотные составляющие, амплитуда которых мала, выкидываются, а все остальные – кодируются. Ясно, что для тех областей изображения, где яркость изменяется, не очень быстро (а таких большинство), высокочастотных компонент почти нет. Таким образом, удается выкинуть из спектра существенную часть не очень важной информации. В JPG-файле кодируются оставшиеся «существенные» амплитуды.

В алгоритме JPEG применяется модификация ДПФ: дискретное косинусное преобразование (ДКП). ДКП от двумерного сигнала можно вычислить, отразив четным образом сигнал относительно нулевой точки и вычислив двумерное ДПФ полученного сигнала с двукратными размерами. В полученном спектре будут содержаться только «косинусные» коэффициенты.

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

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

Работая над данным обзором, по долгу службы что называется, мне пришлось посетить ряд отечественных фирм, специализирующихся на создании аппаратных и программных средств обработки цифровых сигналов. Впечатления – самые приятные. Уровень разработок – мировой, общее ощущение от фирм – как во вложениях хорошего хозяина: прочность, ухоженность и стабильность, настроение – рабочее, никакого нытья и уныния!

Иными словами, цифровая обработка – это одна из перспективных областей высоких наукоемких технологий – high tech – привлекательная для приложения сил. В исторической ретроспективе, лет этак через 20, в «Российской компьютерной энциклопедии – 2020» может быть напишут: «В конце ХХ века, с падением «железного занавеса» и началом перехода к рыночным отношениям, компьютерная промышленность России пережила глубокий кризис. Однако после известных событий августа 1998 года начался бурный рост прикладных направлений, связанных с разработкой промышленных контроллеров, цифровых средств связи и мультимедийных устройств для персональных компьютеров».

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

Вспомните еще раз историю вычислительной техники. У истоков персональных вычислений стояли два молодых (чуть больше 20 лет) человека – Стив Джобс и Стив Возняк, которые, если верить компьютерной мифологии, сделали свой первый персональный компьютер – прототип Apple-I – в гараже, а потом захватили значительную часть мирового рынка продаж персональных компьютеров.

А деньги где взяли? Автомобильчик – тот самый, что в гараже стоял, – продали. А папаша Билл Гейтс, стабильно занимающий одно из первых мест в списке богатейших людей Америки? А изобретатель мыши Дуглас Энгельбарт? А разработчик звуковых карт? В общем – список бесконечен.

А мы чем хуже? Гараж есть, автомобильчик есть, образование – на зависть Биллу и Стиву. Опять ничего не понимаю. Климат, что ли, у нас не тот? Но ничего, будем надеяться, что старшие товарищи – генералы компьютерной индустрии меня публично высекут и поправят. Кто поднимет перчатку? Или в своей стране мы никогда не дождемся ответа на неправильные вопросы и никогда не выйдем из состояния «неграждан»?

1. Специализированный процессор для выполнения быстрого преобразования Фурье и обработки сигналов СПФ СМ. Рекламные материалы. М.: ИНЭУМ, 1984.

2. Корнеев В. В., Киселев А. В. Современные микропроцессоры. М.: НОЛИДЖ, 1998. 240 с.

3. Цифровые процессоры обработки сигналов. Справочник. Остапенко А. Г., Лавлинский С. И., Сушков А. В. и др. Под ред. А. Г. Остапенко. М.: Радио и связь, 1994. 264 с.

4. Клингман Э. Проектирование специализированных микропроцессорных систем. Пер. с англ. М.: Мир, 1985. 363 с.

5. Белоус А. И. и др. Микропроцессорный комплект БИС серии К1815 для цифровой обработки сигналов. Справочник. Белоус А. И., Поддубный О. Б., Журба В. М. Под ред. А. И. Сузопарова. М.: Радио и связь, 1992. 256 с.

6. Лапа В. Г. Математические основы кибернетики. Киев, Высшая школа, 1974. 452 с.

Курс лекций «Основы цифровой обработки сигналов»

Часто ко мне обращаются люди с вопросами по задачам из области цифровой обработки сигналов (ЦОС). Я подробно рассказываю нюансы, подсказываю нужные источники информации. Но всем слушателям, как показало время, не хватает практических задач и примеров в процессе познания этой области. В связи с этим я решил написать краткий интерактивный курс по цифровой обработке сигналов и выложить его в открытый доступ.

Большая часть обучающего материала для наглядного и интерактивного представления реализована с использованием Jupyter Notebook. Предполагается, что читатель имеет базовые знания из области высшей математики, а также немного владеет языком программирования Python.

Список лекций

Этот курс содержит материалы в виде законченных лекций по разным тематикам из области цифровой обработки сигналов. Материалы представлены с использованием библиотек на языке Python (пакеты numpy, scipy, matplotlib, и т.д.). Основная информация для этого курса взята из моих лекций, которые я, будучи аспирантом, читал студентам Московского Энергетического Института (НИУ МЭИ). Частично информация из этих лекций была использована на обучающих семинарах в Центре Современной Электроники, где я выступал в качестве лектора. Кроме того, в этот материал входит перевод различных научных статей, компиляция информации из достоверных источников и литературы по тематике цифровой обработки сигналов, а также официальная документация по прикладным пакетам и встроенным функциям библиотек scipy и numpy языка Python.

Для пользователей MATLAB (GNU Octave) освоение материала с точки зрения программного кода не составит труда, поскольку основные функции и их атрибуты во многом идентичны и схожи с методами из Python-библиотек.

Все материалы сгруппированы по основным тематикам цифровой обработки сигналов:

  1. Сигналы: аналоговые, дискретные, цифровые. Z-преобразование,
  2. Преобразование Фурье: амплитудный и фазовый сигнала, ДПФ и БПФ,
  3. Свертка и корреляция. Линейная и циклическая свертка. Быстрая свёртка
  4. Случайные процессы. Белый шум. Функция плотности вероятностей
  5. Детерминированные сигналы. Модуляция: АМ, ЧМ, ФМ, ЛЧМ. Манипуляция
  6. Фильтрация сигналов: БИХ, КИХ фильтры
  7. Оконные функции в задачах фильтрации. Детектирование слабых сигналов.
  8. Ресемплинг: децимация и интерполяция. CIC-фильтры, фильтры скользящего среднего

Список лекций — достаточный но, разумеется, неполный для вводного знакомства с областью ЦОС. При наличии свободного времени я планирую поддерживать и развивать этот проект.

Где найти?

Все материалы — абсолютно бесплатны и доступны в виде открытого репозитория на моем гитхабе как opensource проект. Материалы представлены в двух форматах — в виде тетрадок Jupyter Notebook для интерактивной работы, изучения и редактирования, и в виде скомпилированных из этих тетрадок HTML-файлов (после скачивания с гитхаба имеют вполне пригодный формат для чтения и для печати).

Ниже приводится очень краткое описание разделов курса с небольшими пояснениями, терминами и определениями. Основная информация доступна в исходных лекциях, здесь представлен лишь краткий обзор!

Сигналы. Z-преобразование

Вводный раздел, в котором содержится основная информация по типам сигналов. Вводится понятие дискретной последовательности, дельта-функции и функции Хевисайда (единичный скачок).

Все сигналы по способу представления на множестве можно разделить на четыре группы:

  • аналоговые — описываются непрерывными во времени функциями,
  • дискретные — прерываются во времени с шагом заданным дискретизации,
  • квантованные — имеют набор конечных уровней (как правило, по амплитуде),
  • цифровые — комбинация свойств дискретных и квантованных сигналов.

Для правильного восстановления аналогового сигнала из цифрового без искажений и потерь используется теорема отсчетов, известная как Теорема Котельникова (Найквиста-Шеннона).

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

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

Также в этом разделе описывается Z-преобразование и его свойства, показывается представление дискретных последовательностей в Z-форме.

Пример конечной дискретной последовательности:
.
Пример этой же последовательности в Z-форме:

X(z) = 2 + z -1 — 2z -2 + 2z -4 + 3z -5 + 1z -6

Преобразование Фурье. Свойства. ДПФ и БПФ

В этом разделе описывается понятие временной и частотной области сигнала. Вводится определение дискретного преобразования Фурье (ДПФ). Рассмотрены прямое и обратное ДПФ, их основные свойства. Показан переход от ДПФ к алгоритму быстрого преобразования Фурье (БПФ) по основанию 2 (алгоритмы децимации по частоте и по времени). Отражена эффективность БПФ в сравнении с ДПФ.

В частности, в этом разделе описывается Python пакет scipy.ffpack для вычисления различных преобразований Фурье (синусное, косинусное, прямое, обратное, многомерное, вещественное).

Преобразование Фурье позволяет представить любую функцию в виде набора гармонических сигналов! Преобразование Фурье лежит в основе методов свертки и проектировании цифровых корреляторов, активно применяется при спектральном анализе, используется при работе с длинными числами.

Особенности спектров дискретных сигналов:
1. Спектральная плотность дискретного сигнала – периодическая функция с периодом, равным частоте дискретизации.
2. Если дискретная последовательность вещественная, то модуль спектральной плотности такой последовательности есть четная функция, а аргумент – нечетная функция частоты.

Спектр гармонического сигнала:

Сравнение эффективности ДПФ и БПФ

Эффективность алгоритма БПФ и количество выполняемых операций линейно зависит от длины последовательности N:

N ДПФ БПФ Отношение числа комплексных сложений Отношение числа комплексных умножений
Число операций умножения Число операций сложения Число операций умножения Число операций сложения
2 4 2 1 2 4 1
4 16 12 4 8 4 1.5
8 64 56 12 24 5.3 2.3
16 256 240 32 64 8 3.75
32 1024 992 80 160 12.8 6.2
64 4096 4032 192 384 21.3 10.5
128 16384 16256 448 896 36.6 18.1
. . . . . . .
4096 16777216 16773120 24576 49152 683 341
8192 67108864 67100672 53248 106496 1260 630

Как видно, чем больше длина преобразования, тем больше экономия вычислительных ресурсов (по скорости обработки или количеству аппаратных блоков)!

Любой сигнал произвольной формы можно представить в виде набора гармонических сигналов разных частот. Иными словами, сигнал сложной формы во временной области имеет набор комплексных отсчетов в частотной области, которые называются *гармоники*. Эти отсчеты выражают амплитуду и фазу гармонического воздействия на определенной частоте. Чем больше набор гармоник в частотной области, тем точнее представляется сигнал сложной формы.

Свертка и корреляция

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

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

Свертка описывает взаимодействие сигналов между собой. Если один из сигналов — импульсная характеристика фильтра, то свертка входной последовательности с импульсной характеристикой есть ни что иное, как реакция цепи на входное воздействие. Иными словами, результирующий сигнал отражает прохождение сигнала через фильтр.

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

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

Как видно, для длин БПФ до 64, быстрая свёртка проигрывает у прямого метода. Однако, при увеличении длины БПФ результаты меняются в обратную сторону — быстрая свертка начинает выигрывать у прямого метода. Очевидно, чем больше длина БПФ, тем лучше выигрыш частотного метода.

N Свертка Быстрая свертка Отношение
8 64 448 0.14
16 256 1088 0.24
32 1024 2560 0.4
64 4096 5888 0.7
128 16K 13312 1.23
. . .. .
2048 4M 311296 13.5

Случайные сигналы и шум

В этом разделе вводится понятие случайных сигналов, плотности распределения вероятностей, закона распределения случайной величины. Рассматриваются математические моменты — среднее (математическое ожидание) и дисперсия (или корень этой величины — среднеквадратическое отклонение). Также в этом разделе рассматривается нормальное распределение и связанное с ним понятие белого шума, как основного источника шумов (помех) при обработке сигналов.

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

  • закон распределения (относительное время пребывания значения сигнала в определенном интервале),
  • спектральное распределение мощности сигнала.

В задачах ЦОС случайные сигналы делятся на два класса:

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

С помощью случайных величин можно моделировать воздействие реальной среды на прохождение сигнала от источника к приёмнику данных. При прохождении сигнала через какое-то шумящее звено, к сигналу добавляется так называемый белый шум. Как правило, спектральная плотность такого шума равномерно (одинаково) распределена на всех частотах, а значения шума во временной области распределены нормально (Гауссовский закон распределения). Поскольку белый шум физически добавляется к амплитудам сигнала в выбранные отсчеты времени, он называется аддитивный белый гауссовский шум (AWGN — Additive white Gaussian noise).

Сигналы, модуляция и манипуляция

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

Для удобства на языке Python создан набор функций, осуществляющих перечисленные виды модуляции. Пример реализации ЛЧМ-сигнала:

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

Цифровые фильтры — БИХ и КИХ

Достаточно большой раздел, посвященный вопросам цифровой фильтрации дискретных последовательностей. В задачах цифровой обработки сигналов данные проходят через цепи, которые называются фильтрами. Цифровые фильтры, как и аналоговые, обладают различными характеристиками — частотные: АЧХ, ФЧХ, временная: импульсная характеристика, а также передаточная характеристика фильтра. Цифровые фильтры используются в основном для улучшения качества сигнала — для выделения сигнала из последовательности данных, либо для ухудшения нежелательных сигналов — для подавления определенных сигналов в приходящих последовательностях отсчетов.

В разделе перечислены основные преимущества и недостатки цифровых фильтров (в сравнении с аналоговыми). Вводится понятие импульсной и передаточной характеристик фильтра. Рассматривается два класса фильтров — с бесконечной импульсной характеристикой (БИХ) и конечной импульсной характеристикой (КИХ). Показан способ проектирования фильтров по канонической и прямой форме. Для КИХ фильтров рассматривается вопрос о способе перехода к рекурсивной форме.

Для КИХ фильтров показан процесс проектирования фильтра от стадии разработки технического задания (с указанием основных параметров), до программной и аппаратной реализации — поиска коэффициентов фильтра (с учетом формы представления числа, разрядности данных и т.д.). Вводятся определения симметричных КИХ фильтров, линейной ФЧХ и её связи с понятием групповой задержки.

Оконные функции в задачах фильтрации

Чем сильнее подавление боковых лепестков спектра, тем шире главный лепесток спектра и наоборот.

Одно из применений оконных функций: обнаружение слабых сигналов на фоне более сильных путём подавления уровня боковых лепестков. Основные оконные функции в задачах ЦОС — **треугольное, синусоидальное, окно Ланцоша, Ханна, Хэмминга, Блэкмана, Харриса, Блэкмана-Харриса, окно с плоской вершиной, окно Наталла, Гаусса, Кайзера** и множество других. Большая часть из них выражена через конечный ряд путём суммирования гармонических сигналов с определенными весовыми коэффициентами. Такие сигналы отлично реализуются на практике на любых аппаратных устройствах (программируемые логические схемы или сигнальные процессоры).

Ресемплинг. Децимация и интерполяция

В этом разделе рассматриваются вопросы многоскоростной обработки сигналов — изменения частоты дискретизации. Многоскоростная обработка сигналов (multirate processing) предполагает, что в процессе линейного преобразования цифровых сигналов возможно изменение частоты дискретизации в сторону уменьшения или увеличения, либо в дробное число раз. Это приводит к более эффективной обработке сигналов, так как открывается возможность использования минимально допустимых частот дискретизации и, как следствие, значительного уменьшения требуемой вычислительной производительности проектируемой цифровой системы.

Децимация (прореживание) – понижение частоты дискретизации. Интерполяция – повышение частоты дискретизации.

Также в разделе рассматривается класс однородных КИХ фильтров, которые называются интегрально-гребенчатыми фильтрами (CIC, Cascaded integrator–comb). Показана реализация, основные свойства и особенности CIC фильтров. В силу линейности математических операций, происходящих в CIC фильтре возможно каскадное соединение нескольких фильтров подряд, что дает пропорциональное уменьшение уровня боковых лепестков, но также увеличивает «завал» главного лепестка амплитудно-частотной характеристики.

График АЧХ фильтра в зависимости от коэффициента децимации:

Также в этом разделе обсуждается вопрос увеличения разрядности данных на выходе CIC фильтра в зависимости от его параметров. Это особенно важно в задачах программной реализации, в частности на ПЛИС.

Для практической реализации CIC фильтров на Python разработан отдельный класс CicFilter, реализующий методы децимации и интерполяции. Также показаны примеры изменения частоты дискретизации с помощью встроенных методов из scipy пакета Python.

Наконец, в этом разделе приведен особый класс фильтров — скользящего среднего. Показано три способа реализации: через свертку сигналов, с помощью КИХ-фильтра и БИХ-фильтра.

Заключение

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

Дополнительно к этому материалу я поддерживаю и развиваю свой проект по основным модулям ЦОС (на языке Python). Он содержит пакет генерации различных сигналов, класс CIC фильтров для задач децимации и интерполяции, алгоритм расчета коэффициентов корректирующего КИХ-фильтра, фильтр скользящего среднего, алгоритм вычисления сверх-длинного БПФ через методы двумерного преобразования (последнее очень пригодилось в работе при аппаратной реализации на ПЛИС).

Добавить комментарий