comm.GMSKModulator

Модулируйте с использованием GMSK метода

Описание

GMSKModulator объект модулирует использование Гауссова минимального метода манипулирования сдвига. Выход представляет собой репрезентацию модулированного сигнала.

Модулировать сигнал с помощью Гауссова минимального манипулирования сдвига:

  1. Задайте и настройте свой объект модулятора GMSK. Смотрите Конструкцию.

  2. Вызовите step модулировать сигнал согласно свойствам comm.GMSKModulator. Поведение step характерно для каждого объекта в тулбоксе.

Примечание

Запуск в R2016b, вместо того, чтобы использовать step метод, чтобы выполнить операцию, заданную Системой object™, можно вызвать объект с аргументами, как будто это была функция. Например, y = step(obj,x) и y = obj(x) выполните эквивалентные операции.

Конструкция

H = comm.GMSKModulator создает Системный объект модулятора, H. Этот объект модулирует входной сигнал с помощью метода модуляции Гауссова минимального манипулирования сдвига (GMSK).

H = comm.GMSKModulator(Name,Value) создает объект модулятора GMSK, H. Этот объект каждый задал набор свойств к заданному значению. Можно задать дополнительные аргументы пары "имя-значение" в любом порядке как (Name1, Value1..., NameN, ValueN).

Свойства

BitInput

Примите, что вход является битами

Задайте, является ли вход битами или целыми числами. Значением по умолчанию является false.

Когда вы устанавливаете BitInput свойство к false, step вход метода требует вектор-столбца типа данных или целого числа со знаком с двойной точностью со значениями -1 или 1.

Когда вы устанавливаете BitInput свойство к истинному, вход метода шага требует вектор-столбца или логического типа данных с двойной точностью 0s и 1 с.

BandwidthTimeProduct

Продукт пропускной способности и время символа Гауссова импульса

Задайте продукт пропускной способности и время символа для Гауссовой импульсной формы как действительное, значение положительной скалярной величины. Значением по умолчанию является 0.3.

PulseLength

Импульсная длина

Задайте длину Гауссовой импульсной формы в интервалах символа как действительное, положительное целое число. Значением по умолчанию является 4.

SymbolPrehistory

Предыстория символа

Задайте символы данных использование модулятора до первого вызова step метод в противоположном хронологическом порядке. Значением по умолчанию является 1. Это свойство требует скаляра или вектора с элементами, равными -1 или 1. Если значение является вектором, то его длина должна быть той меньше, чем значение в PulseLength свойство.

InitialPhaseOffset

Начальная фаза возмещена

Задайте начальную фазу модулируемой формы волны в радианах как действительное значение числового скаляра. Значением по умолчанию является 0.

SamplesPerSymbol

Количество выборок на выходной символ

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

OutputDataType

Тип данных выхода

Задайте тип выходных данных как один из double | single. Значением по умолчанию является double.

Методы

шагМодулируйте с использованием GMSK метода
Характерный для всех системных объектов
release

Позвольте изменения значения свойства Системного объекта

reset

Сбросьте внутренние состояния Системного объекта

Примеры

свернуть все

% Create a GMSK modulator, an AWGN channel, and a GMSK demodulator. Use a phase offset of pi/4.
    hMod = comm.GMSKModulator('BitInput', true, 'InitialPhaseOffset', pi/4);
    hAWGN = comm.AWGNChannel('NoiseMethod', ...
                    'Signal to noise ratio (SNR)','SNR',0);
    hDemod = comm.GMSKDemodulator('BitOutput', true, ...
                    'InitialPhaseOffset', pi/4);
% Create an error rate calculator, account for the delay caused by the Viterbi algorithm
    hError = comm.ErrorRate('ReceiveDelay', hDemod.TracebackDepth);
    for counter = 1:100
      % Transmit 100 3-bit words
      data = randi([0 1],300,1);
      modSignal = step(hMod, data);
      noisySignal = step(hAWGN, modSignal);
      receivedData = step(hDemod, noisySignal);
      errorStats = step(hError, data, receivedData);
    end
    fprintf('Error rate = %f\nNumber of errors = %d\n', ...
      errorStats(1), errorStats(2))
Error rate = 0.000133
Number of errors = 4

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

Создайте модулятор GMSK, который принимает двоичные входы. Задайте импульсную длину и выборки на символ, чтобы быть 1.

gmsk = comm.GMSKModulator('BitInput',true,'PulseLength',1,'SamplesPerSymbol',1);

Создайте входную последовательность всех нулей. Модулируйте последовательность.

x = zeros(5,1);
y = gmsk(x)
y = 5×1 complex

   1.0000 + 0.0000i
  -0.0000 - 1.0000i
  -1.0000 + 0.0000i
   0.0000 + 1.0000i
   1.0000 - 0.0000i

Определите угол фазы для каждой точки. Используйте unwrap функционируйте, чтобы лучше показать тренд.

theta = unwrap(angle(y))
theta = 5×1

         0
   -1.5708
   -3.1416
   -4.7124
   -6.2832

Последовательность нулей заставляет фазу переключать-π/2 между выборками.

Сбросьте модулятор. Модулируйте входную последовательность из всех единиц.

reset(gmsk)
x = ones(5,1);
y = gmsk(x)
y = 5×1 complex

   1.0000 + 0.0000i
  -0.0000 + 1.0000i
  -1.0000 - 0.0000i
   0.0000 - 1.0000i
   1.0000 + 0.0000i

Определите угол фазы для каждой точки. Используйте unwrap функционируйте, чтобы лучше показать тренд.

theta = unwrap(angle(y))
theta = 5×1

         0
    1.5708
    3.1416
    4.7124
    6.2832

Последовательность из единиц заставляет фазу переключать + π/2 между выборками.

Сравните схемы модуляции Гауссова минимального манипулирования сдвига (GMSK) и минимального манипулирования сдвига (MSK) путем графического вывода глазковой диаграммы для GMSK с различными импульсными длинами и для MSK.

Установите выборки на переменную символа.

sps = 8;

Сгенерируйте случайные двоичные данные.

data = randi([0 1],1000,1);

Создайте GMSK и модуляторы MSK, которые принимают двоичные входы. Установите PulseLength свойство модулятора GMSK к 1.

gmskMod = comm.GMSKModulator('BitInput',true,'PulseLength',1, ...
    'SamplesPerSymbol',sps);
mskMod = comm.MSKModulator('BitInput',true,'SamplesPerSymbol',sps);

Модулируйте данные с помощью модуляторов MSK и GMSK.

modSigGMSK = gmskMod(data);
modSigMSK = mskMod(data);

Передайте модулируемые сигналы через канал AWGN, имеющий ОСШ 30 дБ.

rxSigGMSK = awgn(modSigGMSK,30);
rxSigMSK = awgn(modSigMSK,30);

Используйте eyediagram функционируйте, чтобы построить глазковые диаграммы для сигналов с шумом. С набором длины импульса GMSK к 1, глазковые диаграммы почти идентичны.

eyediagram(rxSigGMSK,sps,1,sps/2)

Figure Eye Diagram contains 2 axes. Axes 1 with title Eye Diagram for In-Phase Signal contains an object of type line. This object represents In-phase. Axes 2 with title Eye Diagram for Quadrature Signal contains an object of type line. This object represents Quadrature.

eyediagram(rxSigMSK,sps,1,sps/2)

Figure Eye Diagram contains 2 axes. Axes 1 with title Eye Diagram for In-Phase Signal contains an object of type line. This object represents In-phase. Axes 2 with title Eye Diagram for Quadrature Signal contains an object of type line. This object represents Quadrature.

Установите PulseLength свойство для модулятора GMSK возражает против 3. Поскольку свойство является ненастраиваемым, объект должен быть выпущен сначала.

release(gmskMod)
gmskMod.PulseLength = 3;

Сгенерируйте модулируемый сигнал с помощью обновленного объекта модулятора GMSK и передайте его через канал AWGN.

modSigGMSK = gmskMod(data);
rxSigGMSK = awgn(modSigGMSK,30);

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

eyediagram(rxSigGMSK,sps,1,sps/2)

Figure Eye Diagram contains 2 axes. Axes 1 with title Eye Diagram for In-Phase Signal contains an object of type line. This object represents In-phase. Axes 2 with title Eye Diagram for Quadrature Signal contains an object of type line. This object represents Quadrature.

Эксперимент путем изменения PulseLength параметр модулятора GMSK возражает против других значений. Если вы устанавливаете свойство на четное число, необходимо установить gmskMod.InitialPhaseOffset к pi/4 и обновите аргумент смещения eyediagram функция от sps/2 к 0 для лучшего представления модулируемого сигнала. Для того, чтобы более ясно просмотреть Гауссову импульсную форму, необходимо использовать осциллографы, которые отображают фазу сигнала, как описано в примере Дерева Фазы CPM.

Алгоритмы

Этот объект реализует алгоритм, входные параметры и выходные параметры, описанные на странице с описанием блока GMSK Modulator Baseband. Свойства объектов соответствуют параметрам блоков. Для GMSK сдвиг фазы на символ является π/2, который является индексом модуляции 0,5.

Расширенные возможности

Представленный в R2012a