Источники и раковины

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

Источники данных

Используйте функции и блоки, перечисленные в Sources and Sinks, чтобы сгенерировать случайные данные для симуляции источника сигнала.

Случайные символы

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

Например, команда ниже генерирует матрицу 5 на 4, записи которой случайны, независимо выбраны и равномерно распределены в наборе {1,3,5}.

a = randsrc(5,4,[1,3,5])
a = 5×4

     5     1     1     1
     5     1     5     3
     1     3     5     5
     5     5     3     5
     3     5     5     5

Чтобы наклонить распределение так, чтобы 1 было в два раза чаще, чем 3 или 5, используйте команду ниже. Третий входной параметр имеет две строки, одна из которых указывает возможные значения b а другой указывает вероятность каждого значения.

b = randsrc(5,4,[1,3,5; .5,.25,.25])
b = 5×4

     3     5     3     5
     1     3     1     3
     5     1     1     1
     5     3     1     5
     3     1     1     1

Случайные целые числа

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

Например, команда ниже генерирует матрицу 5 на 4, содержащую случайные целые числа от 2 до 10.

c = randi([2,10],5,4)
c = 5×4

     5     6     4     6
     5     6     8    10
     8     7     7     5
     9     8     3     7
     3     8     3     4

Если желаемую область значений значений [0,10] вместо [2,10], можно использовать любую из приведенных ниже команд. Они дают различные числовые результаты, но используют одно и то же распределение.

d = randi([0,10],5,4);
e = randi([0 10],5,4);

В Simulink ® генератор случайных целых чисел и генератор Пуассона генерируют векторы, содержащие случайные неотрицательные целые числа. Блок Генератора Случайных Целых Чисел использует равномерное распределение в ограниченной области значений, которое вы задаете в маске блока. Блок Генератора Целого числа Пуассона использует распределение Пуассона, чтобы определить его выходом. В частности, выход может включать любое неотрицательное целое число.

Шаблоны случайных битовых ошибок

В MATLAB randerr функция генерирует матрицы, значения которых равны 0 или 1. Однако его варианты отличаются от опций randi, потому что randerr предназначен для проверки кодирования управления ошибками. Например, команда ниже генерирует двоичную матрицу 5 на 4, где каждая строка содержит в точности один 1.

f = randerr(5,4)
f = 5×4

     0     0     0     1
     1     0     0     0
     1     0     0     0
     0     0     1     0
     0     0     0     1

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

С другой стороны, чтобы возмущать каждое кодовое слово путем введения одной ошибки с вероятностью 0,4 и двух ошибок с вероятностью 0,6, используйте команду ниже. Каждая строка имеет один '1' с вероятностью 0,4, в противном случае два '1' s

g = randerr(5,4,[1,2; 0.4,0.6])
g = 5×4

     1     0     1     0
     0     1     0     1
     0     0     0     1
     1     0     0     1
     0     0     1     0

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

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

binarymatrix1 = randsrc(100,1,[0 1]); % Possible values are 0,1
binarymatrix2 = randi([0 1],100,1); % Two possible values
binarymatrix3 = randerr(100,1,[0 1; 0.5 0.5]); % No 1s, or one 1

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

Источники шума

Создайте блоки генератора шума в Simulink® для моделирования ссылок связи.

Генераторы случайных шумов

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

РаспределениеБлокФункция
Гауссовский MATLAB Function (Simulink) wgn
Рэлей MATLAB Function (Simulink)randn
Rician MATLAB Function (Simulink)randn
Равномерность на ограниченном интервале MATLAB Function (Simulink)rand

Пример создания распределенного шума Релея и Райса см. в Simulink.

Генератор Гауссова шума

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

Для примера команда ниже генерирует вектор-столбец длины 50, содержащую настоящий белый Гауссов шум, степень которого равна 2 дБВ. По умолчанию тип степени в дБВ и импедансе нагрузки составляет 1 Ом.

y1 = wgn(50,1,2);

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

y2 = wgn(50,1,2,60,'complex','linear');
y3 = wgn(50,1,2,60,'linear','complex');

Чтобы передать сигнал через аддитивный канал белого Гауссова шума, используйте awgn функция. Для получения дополнительной информации см. раздел «Канал AWGN».

Генераторы последовательности

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

Псевдослучайные последовательности

Можно сгенерировать псевдослучайные или псевдослучайные (PN) последовательности, используя эти системные объекты в MATLAB® и эти блоки в Simulink. Применения этих последовательностей варьируются от систем связи с расширенным спектром с множественным доступом до диапазона, синхронизации и скремблирования данных.

Последовательность Системные object™ Блок
Последовательности Голда comm.GoldSequenceGold Sequence Generator
Последовательности Касами comm.KasamiSequenceKasami Sequence Generator
Псевдошумовые последовательности comm.PNSequencePN Sequence Generator

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

Все регистры r в генераторе обновляют свои значения на каждом временном шаге в соответствии со значением входящей стрелы к регистру сдвига. Сумматоры выполняют сложение по модулю 2. Регистр сдвига может быть описан двоичным полиномом в z, g r zr + gr-1 zr-1 +... + <reservedrangesplaceholder1> 0. Коэффициент i g 1, если есть связь, или 0, если нет связи, от i-го регистра сдвига до сумматора.

Коэффициент m i равен 1, если есть задержка, или 0, если нет задержки, от i-го регистра сдвига до сумматора, предшествующего выходу. Если сдвиг равен нулю, m 0 переключатель закрывается, в то время как все другие переключатели m k открыты.

Генераторы Касами и псевдошумовая последовательность используют это полиномиальное описание для своего полинома генератора. Генератор последовательности Голда использует это полиномиальное описание для предпочтительных первой и второй полиномиальных псевдошумовые последовательности генератора.

Моделируйте генерацию Псевдошумовой последовательности с линейным регистром сдвига обратной связи

Этот пример показывает, что последовательности выходят из PN Sequence Generator может быть смоделирован с помощью линейного регистра сдвига с обратной связью (LFSR), созданного с помощью примитивных блоков Simulink ®.

Для выбранного полинома генератора, p (z) = z ^ 6 + z + 1, модель генерирует псевдошумовую последовательность периодов 63, используя PN Sequence Generator блок и путем моделирования LFSR с использованием примитивных блоков Simulink. Два параметра, Initial states и Output mask vector (or scalar shift value), интерпретируются в схеме модели LFSR. The PreLoadFcn функция обратного вызова используется для инициализации параметров во время выполнения. Чтобы просмотреть функции обратного вызова, перейдите к MODELING> SETUP> Model Settings> Model Properties, и выберите Callbacks вкладка.

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

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

Коды синхронизации

Используйте comm.BarkerCode Системный объект и Barker Code Generator блок для генерации кодов Баркера для выполнения синхронизации. Коды штриха являются подмножествами псевдошумовых последовательностей. Они являются короткими кодами с длиной самое большее 13, которые являются боковыми телами с низкой корреляцией. Корреляционный боковой elobe является корреляцией кодового слова с измененной во времени версией самого себя.

Ортогональные коды

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

Код Системный объект Блок
Коды Адамара comm.HadamardCodeHadamard Code Generator
Коды OVSF comm.OVSFCodeOVSF Code Generator
Коды Уолша comm.WalshCodeWalsh Code Generator

Возможности

Библиотека блоков Comm Sinks содержит возможности для просмотра трех типов сигнальных графиков:

В следующей таблице перечислены блоки и графики, которые они генерируют.

Имя блокаГрафики
Eye Diagram Scope Глазковая диаграмма сигнала
Constellation Diagram Сигнальная схема и траектория сигнала

Глазковые диаграммы

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

Блок Eye Diagram Scope создает глазковые диаграммы. Этот блок обрабатывает сигналы в дискретном времени и периодически рисует линию, чтобы указать решение, согласно параметру маски.

Примеры появляются в View a Sinusoid и View a Moduled Signal.

Графики поля точек

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

Блок Constellation Diagram производит сигнальное созвездие из сигналов дискретного времени. Пример появляется в View a Sinusoid.

Траектории сигналов

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

Блок Constellation Diagram производит траектории сигналов. Блок Constellation Diagram производит траектории сигналов, когда ShowTrajectory для свойства задано значение true. Траектория сигнала соединяет все точки входного сигнала, независимо от заданного коэффициента десятикратного уменьшения (Samples per symbol)

Просмотр синусоида

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

Чтобы открыть модель, введите doc_eyediagram в командной строке MATLAB. Чтобы создать модель, соберите и сконфигурируйте эти блоки:

  • Sine Wave, в библиотеке Sources DSP System Toolbox™ (не блок Sine Wave в библиотеке Simulink Sources)

    • Установите Frequency значение .502.

    • Установите Output complexity значение Complex.

    • Установите Sample time значение 1/16.

  • Constellation Diagram, в библиотеке Comm Sinks

    • На панели Constellation Properties установите Samples per symbol равным 16.

  • Eye Diagram Scope, в библиотеке Comm Sinks

    • На панели Plotting Properties установите Samples per symbol равным 16.

    • На панели Figure Properties установите Scope position равным figposition([42.5 55 35 35]);.

Соедините блоки как показано на предыдущем рисунке. В Simulate разделе установите Stop time равным 250. Раздел Simulate появляется на нескольких вкладках. Выполнение модели создает следующий график схемы рассеяния.

Точки графика поля точек лежат на окружности радиуса 1. Обратите внимание, что точки исчезают, когда время проходит. Это связано с тем, что флажок рядом с Color fading установлен под Rendering Properties, что заставляет возможности визуализировать точки более туго, чем больше времени проходит после построения графика. Если вы очистите это поле, вы увидите полный круг точек.

Блок «Схема созвездия» отображает круговую траекторию.

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

Просмотр модулированного сигнала

Этот многолучевой пример создает глазковую диаграмму, график поля точек и график траектории сигнала для модулированного сигнала. Он исследует графики один за другим в следующих разделах:

Глазковая диаграмма модулированного сигнала

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

Чтобы открыть модель, введите doc_signaldisplays в командной строке MATLAB. Чтобы создать модель, соберите и сконфигурируйте следующие блоки:

  • Random Integer Generator, в поддиапазоне «Случайные источники данных» библиотеки Comm Sources

    • Установите M-ary number значение 4.

    • Установите Sample time значение 0.01.

  • QPSK Modulator Baseband, в PM в поддиапазоне Digital Baseband библиотеки Modulation Communications Toolbox с параметрами по умолчанию

  • AWGN Channel в библиотеке Channels Communications Toolbox со следующими изменениями в настройках параметра по умолчанию:

    • Установите Mode значение Signal-to-noise ratio (SNR).

    • Установите SNR (dB) значение 15.

  • Raised Cosine Transmit Filter, в библиотеке Comm Filters

    • Установите Filter shape значение Normal.

    • Установите Rolloff factor значение 0.5.

    • Установите Filter span in symbols значение 6.

    • Установите Output samples per symbol значение 8.

    • Установите Input processing значение Elements as channels (sample based).

  • Eye Diagram Scope, в библиотеке Comm Sinks

    • Установите Samples per symbol значение 8.

    • Установите Symbols per trace значение 3. Это задает количество символов, которые отображаются в каждой трассировке глазковой диаграммы. Трассировка является любой из отдельных линий в глазковой диаграмме.

    • Установите Traces displayed значение 3.

    • Установите New traces per display значение 1. Это задает количество новых трассировок, которые появляются при каждом обновлении схемы. Количество трассировок, которые остаются в схеме от одного обновления до следующего, Traces displayed минус New traces per display.

    • На панели Rendering Properties установите Markers равным + для указания точек, нанесенных на каждую выборку. Значение по умолчанию Markers является пустым, что указывает на отсутствие маркера.

    • На панели Figure Properties установите Eye diagram to display равным In-phase only.

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

Отображаются три трассировки. Трассировки 2 и 3 замирают, потому что Color fading под Rendering Properties выбран. Это приводит к тому, что следы отображаются менее ярко, чем они старше. На этом рисунке трассировка 1 является самой последней, а трассировка 3 - самой старой. Потому что New traces per display установлено на 1, только трассировка 1 появляется впервые. Трассировки 2 и 3 также появляются на предыдущем отображении.

Потому что Symbols per trace установлено на 3каждая трассировка содержит три символа, и потому что Samples per trace задано значение 8каждый символ содержит восемь выборок. Обратите внимание, что трассировка 1 содержит 24 точки, что является продуктом Symbols per trace и Samples per symbol. Однако трассировки 2 и 3 содержат по 25 точек. Последняя точка трассировки 2, на правой границе возможностей, представляет собой ту же выборку, что и первая точка трассировки 1, на левой границе возможностей. Точно так же последняя точка в трассировке 3 представляет ту же выборку, что и первая точка в трассировке 2. Эти повторяющиеся точки указывают, где будут совпадать трассировки, если они отображались один за другим, как показано на следующем рисунке.

Можно просмотреть более реалистичную глазковую диаграмму, изменив значение Traces displayed на 40 и очистку поля Markers .

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

Схема созвездия модулированного сигнала

Следующая модель создает график поля точек того же сигнала, рассматриваемого в Глазковую диаграмму Модулированного Сигнала.

Чтобы создать модель, следуйте инструкциям в Глазковая Диаграмма of a Moduled Signal, но замените блок Глазковая диаграмма на следующий блок:

  • Constellation Diagram, в библиотеке Communications Toolbox/Comm Sinks

    • Установите Samples per symbol значение 2

    • Установите Offset значение 0. Это задает количество выборок, которые нужно пропустить перед построением графика первой точки.

    • Установите Symbols to display значение 40.

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

График отображает 30 точек. Поскольку Color fading под Rendering Properties выбран, точки отображаются менее ярко, чем они старше.

Траектория сигнала модулированного сигнала

Следующая модель создает график траектории сигнала того же сигнала, рассматриваемого в Глазковая Диаграмма Модулированного Сигнала.

Чтобы создать модель, следуйте инструкциям в Глазковая Диаграмма of a Moduled Signal, но замените блок Глазковая диаграмма на следующий блок:

  • Constellation Diagram , в библиотеке Communications Toolbox/Comm Sinks

    • Установите Samples per symbol значение 8.

    • Установите Symbols to display значение 40. Это определяет количество символов, отображаемых в траектории сигнала. Отображаемое общее число точек является продуктом Samples per symbol и Symbols to display.

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

На графике отображается 40 символов. Поскольку Color fading под Rendering Properties выбран, символы отображаются менее ярко, чем старше.

Смотрите Сигнальное Созвездие Модулированного Сигнала, чтобы сравнить предыдущую сигнальную траекторию с графиком поля точек того же сигнала. Блок Созвездие Program соединяет точки, отображаемые блоком Constellation Diagram, чтобы отобразить траекторию сигнала.

Если вы увеличиваете Symbols to display до 100, модель производит сигнальную траекторию, подобную приведенной ниже. Общее число точек, отображаемых в любой момент, составляет 800, что является продуктом параметров Samples per symbol и Symbols to display.

См. также