comm.MSKModulator

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

Описание

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

Чтобы модулировать сигнал с помощью минимальной манипуляции сдвигом:

  1. Определите и настройте объект модулятора MSK. См. «Конструкция».

  2. Функции step модулировать сигнал в соответствии со свойствами comm.MSKModulator. Поведение step характерен для каждого объекта в тулбоксе.

Примечание

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

Конструкция

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

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

Свойства

BitInput

Предположим, что битовые входы

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

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

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

InitialPhaseOffset

Смещение начальной фазы

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

SamplesPerSymbol

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

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

OutputDataType

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

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

Методы

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

Разрешить изменение значения свойства системного объекта

reset

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

Примеры

свернуть все

% Create an MSK modulator, an AWGN channel, and an MSK demodulator.  Use a
% phase offset of pi/4.
 hMod = comm.MSKModulator('BitInput', true, ...
                    'InitialPhaseOffset', pi/4);
    hAWGN = comm.AWGNChannel('NoiseMethod', ...
                    'Signal to noise ratio (SNR)','SNR',0);
    hDemod = comm.MSKDemodulator('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.000000
Number of errors = 0

Этот пример иллюстрирует отображение двоичных последовательностей нулей и таковых на выход модулятора 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);

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

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. Поскольку свойство nontunable, объект должен быть освобожден первым.

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 Phase Tree.

Алгоритмы

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

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

.
Введенный в R2012a