MATLAB.Exponenta
–Û·Ë͇ Matlab&Toolboxes

Обработка сигналов и изображений\Communications Toolbox

Новая версия - Communications Toolbox 3.0

В комплект поставки новой версии (Release 14) продуктов семейства MATLAB входит и новая, третья версия пакета расширения Communications Toolbox (в комплект R13/MATLAB 6.5 входила версия 2.1). Изменение старшего номера версии предполагает существенную модификацию продукта, и количество появившихся новшеств полностью оправдывает эти ожидания. Ниже кратко рассматриваются новые возможности, появившиеся в Communications Toolbox 3.0.

Анализ помехоустойчивости систем связи

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

Среда BERTool рассчитывает и строит графики BER для заданного набора отношений сигнал/шум на бит, при этом возможно использование трех методов расчета:

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

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

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

Помимо собственно среды BERTool, в пакете Communications Toolbox 3.0 появился целый ряд функций, реализующих соответствующие расчеты:

  • berawgn - вероятность битовой ошибки для некодированной модуляции и канала с аддитивным белым гауссовым шумом

  • bercoding - вероятность битовой ошибки для кодированной модуляции и канала с аддитивным белым гауссовым шумом

  • berconfint - расчет оценки и доверительного интервала для вероятности битовой ошибки по результатам статистического моделирования

  • berfading - вероятность битовой ошибки для канала с рэлеевскими замираниями

  • berfit - подгонка аналитической функции к экспериментальным данным о вероятности битовой ошибки

  • bersync - вероятность битовой ошибки при неточной временной синхронизации

  • distspec - расчет спектра сверточного кода

  • noisebw - расчет эквивалентной шумовой полосы дискретного фильтра нижних частот

  • semianalytic - расчет вероятности битовой ошибки полуаналитическим методом

Кодирование источника

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

  • huffmandict - генерирование словаря для кода Хаффмана по заданной распределении вероятности символов источника

  • huffmanenco - кодирование сообщения методом Хаффмана

  • huffmandeco - декодирование сообщения, закодированного с использованием кода Хаффмана

Помехоустойчивое кодирование и декодирование

В этом разделе изменения по сравнению с предыдущей версией невелики, и коснулись они в основном кодов БЧХ. Так, функции bchenco, bchdeco и bchpoly превратились соответственно в bchenc, bchdec и bchgenpoly, при этом несколько изменился их внешний интерфейс.

Перемежение/Деперемежение

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

Набор появившихся функций перемежения/деперемежения полностью повторяет номенклатуру блоков аналогичного назначения, уже давно имеющихся в наборе блоков Communications Blockset:

Функция пакета Communications Toolbox

Выполняемая операция

Соответствующий блок Communications Blockset

 

Блоковое перемежение/деперемежение

 

algintrlv

Алгебраическое блоковое перемежение

Algebraic Interleaver

algdeintrlv

Алгебраическое блоковое деперемежение

Algebraic Deinterleaver

intrlv

Табличное блоковое перемежение

General Block Interleaver

deintrlv

Табличное блоковое деперемежение

General Block Deinterleaver

helscanintrlv

Блоковое перемежение со спиральным сканированием

Matrix Helical Scan Interleaver

helscandeintrlv

Блоковое деперемежение со спиральным сканированием

Matrix Helical Scan Deinterleaver

matintrlv

Матричное блоковое перемежение

Matrix Interleaver

matdeintrlv

Матричное блоковое деперемежение

Matrix Deinterleaver

randintrlv

Случайное блоковое перемежение

Random Interleaver

randdeintrlv

Случайное блоковое деперемежение

Random Deinterleaver

 

Сверточное перемежение/деперемежение

 

convintrlv

Сверточное перемежение с линейным изменением задержки

Convolutional Interleaver

convdeintrlv

Сверточное деперемежение с линейным изменением задержки

Convolutional Deinterleaver

helintrlv

Сверточное перемежение со спиральным сканированием

Helical Interleaver

heldeintrlv

Сверточное деперемежение со спиральным сканированием

Helical Deinterleaver

muxintrlv

Табличное сверточное перемежение

General Multiplexed Interleaver

muxdeintrlv

Табличное сверточное деперемежение

General Multiplexed Deinterleaver

Модуляция и демодуляция

В этой части пакет подвергся существенной реорганизации. Все существовавшие ранее функции модуляции/демодуляции объявлены устаревшими, а взамен них выпущено большое количество новых. При этом изменился подход к построению функций: если раньше существовало небольшое количество всеобъемлющих функций (amod, ademod, amodce, ademodce, dmod, ddemod, dmodce, ddemodce), а конкретный вид модуляции указывался при вызове функции в качестве одного из ее параметров, то теперь для каждого вида модуляции имеется своя пара функций модуляции/демодуляции:

Аналоговая модуляция/демодуляция

  • ammod, amdemod - амплитудная модуляция (AM)

  • fmmod, fmdemod - частотная модуляция (FM)

  • pmmod, pmdemod - фазовая модуляция (PM)

  • ssbmod, ssbdemod - однополосная амплитудная модуляция (SSB)

Цифровая модуляция/демодуляция

  • dpskmod, dpskdemod - фазоразностная манипуляция (DPSK)

  • fskmod, fskdemod - частотная манипуляция (FSK)

  • genqammod, genqamdemod - квадратурная манипуляция с произвольным созвездием (QASK)

  • mskmod, mskdemod - частотная манипуляция с минимальным сдвигом (MSK)

  • oqpskmod, oqpskdemod - квадратурная фазовая манипуляция со сдвигом (Offset QPSK)

  • pammod, pamdemod - амплитудно-импульсная модуляция (PAM)

  • pskmod, pskdemod - фазовая манипуляция (PSK)

  • qammod, qamdemod - квадратурная манипуляция с квадратным созвездием (QASK)

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

Помимо функций собственно модуляции/демодуляции, появилась еще функция modnorm, осуществляющая расчет коэффициента масштабирования для нормировки PAM- или QASK-сигнала по средней или пиковой мощности.

Формирующие фильтры

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

  • intdump - интегратор со сбросом

  • rectpulse - ступенчатая (кусочно-постоянная) интерполяция сигнала

Модели каналов

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

  • bsc - двоичный симметричный канал

  • rayleighchan - конструктор объекта канала с рэлеевскими замираниями

  • ricianchan - конструктор объекта канала с райсовскими замираниями

  • filter - метод объектов каналов, осуществляющий фильтрацию сигнала

  • reset - метод объектов каналов, осуществляющий сброс объекта в исходное состояние

Эквалайзеры

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

  • lineareq - конструктор объекта линейного эквалайзера

  • dfe - конструктор объекта эквалайзера с обратной связью по решению

  • equalize - компенсация искажений сигнала с помощью объекта эквалайзера

  • reset - метод объектов эквалайзеров, осуществляющий сброс объекта в исходное состояние

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

  • lms - конструктор объекта адаптивного алгоритма LMS

  • signlms - конструктор объекта адаптивного алгоритма LMS, использующего один из вариантов знаковых преобразований

  • normlms - конструктор объекта нормированного варианта адаптивного алгоритма LMS

  • varlms - конструктор объекта адаптивного алгоритма LMS с переменным шагом

  • rls - конструктор объекта адаптивного алгоритма RLS

  • cma - конструктор объекта алгоритма слепого выравнивания для сигналов с постоянной амплитудой (constant modulus algorithm, CMA)

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

  • mlseeq - прием сигнала с межсимвольной интерференцией с помощью алгоритма максимального правдоподобия (алгоритма Витерби)

Утилиты

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

  • qfunc - Q-функция (дополнение гауссовой интегральной функции распределения до единицы)

  • qfuncinv - обратная Q-функция (обратная гауссова интегральная функция распределения с обратным знаком)

Новая версия — Communications Toolbox 2.1

Фирмой The MathWorks, Inc. опубликована новая версия — R13 (MATLAB 6.5). В поставку входит обновленная версия пакета Communications — версия 2.1 (в комплект MATLAB 6.1 входила версия 2.0.1). В новой версии появились следующие возможности:

  • Новые функции arithenco и arithdeco осуществляют соответственно арифметическое кодирование (сжатие) и декодирование двоичных данных.
  • Новые функции rsenc и rsdec производят соответственно кодирование и декодирование с использованием кода Рида—Соломона.
  • Функция rspoly переименована в rsgenpoly.
  • Конечные поля (поля Галуа) теперь поддерживаются с использованием средств объектно-ориентированного программирования MATLAB, в связи с чем в пакете появился целый ряд новых функций. Благодаря объектному подходу осуществлять многие операции над элементами конечных полей теперь можно с использованием операторной (+, –, * и т. д.), а не функциональной (gfplus, gfmul и пр.) нотации.
  • Новая функция gf создает объект массива, элементы которого принадлежат конечному полю.
  • Новая функция gfhelp выводит список операций, которые можно выполнять над элементами конечного поля.
  • Многие функции ядра MATLAB и пакета Signal Processing расширены для поддержки объектов конечных полей. К таким функциям относятся all, any, conv, convmtx, deconv, det, dftmtx, diag, end, fft, filter, ifft, inv, length, log, lu, polyval, rank, reshape, roots, size и др.
  • Функция gfcosets переименована в cosets.
  • Функция gftable создает MAT-файл, позволяющий ускорить вычисления в конечном поле.
  • Функция isprimitive проверяет полином в конечном поле на примитивность.
  • Функция gfminpoly переименована в minpoly.
  • Функции gfprimdf и gfprimfd заменены новой функцией primpoly.
  • Функция gfplus объявлена устаревшей.
  • Новые функции mask2shift и shift2mask предназначены для моделирования регистров сдвига, используемых для генерации псевдослучайных последовательностей.
  • В функции аналоговой модуляции amod исправлена ошибка, не позволявшая использовать указанный в документации способ формирования однополосного сигнала с верхней боковой полосой — параметр вида модуляции 'amssb/up' теперь воспринимается функцией корректно.

     


Поиск по сайту:

Система Orphus

Яндекс.Метрика