exponenta event banner

коммуникация. CPMModulator

Модулировать с помощью метода CPM

Описание

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

Для модуляции сигнала с использованием непрерывной фазовой модуляции:

  1. Определите и настройте объект модулятора CPM. См. раздел Строительство.

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

Примечание

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

Строительство

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

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

H = comm.CPMModulator(M,Name,Value) создает объект модулятора CPM, H, с ModulationOrder свойство имеет значение M и другие указанные свойства имеют указанные значения.

Свойства

ModulationOrder

Размер алфавита символа

Укажите размер алфавита символа. Значение этого свойства должно быть степенью двух действительных целых скаляров. Значение по умолчанию: 4.

BitInput

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

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

При установке для этого свойства значения false, step для ввода метода требуется вектор столбца с двойной точностью или целочисленным типом данных со знаком. Этот вектор должен содержать нечетные целочисленные значения между - (ModulationOrder-1) и ModulationOrder–1.

При установке для этого свойства значения true, step для ввода метода требуется вектор столбца битовых слов длиной P, где P = log2 (ModulationOrder). Входные данные должны иметь двойную точность или логический тип данных. Объект отображает каждое битовое слово в целое число K между 0 и ModulationOrder-1, используя сопоставление, указанное в SymbolMapping собственность. Затем объект отображает целое число K в промежуточное значение 2K- (ModulationOrder-1) и выполняется, как в случае, когда BitInput имеет значение false.

SymbolMapping

Кодировка символов

Укажите отображение битовых входов как один из Binary | Gray. Значение по умолчанию: Binary. Это свойство определяет способ отображения объектом каждого входного битового слова длиной P, где P = log2 (ModulationOrder), целому числу от 0 до ModulationOrder–1.

При установке для этого свойства значения Binaryобъект использует естественный двоично-кодированный порядок.

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

Это свойство применяется при установке BitInput свойство имеет значение true.

ModulationIndex

Индекс модуляции

Укажите индекс модуляции. Значение по умолчанию: 0.5. Значением этого свойства может быть скаляр, h или вектор столбца, [h0, h1,.... hH-1]

где H-1 представляет длину вектора столбца. Фазовый сдвиг по символу равен λ × h.

Когда hi изменяется от интервала к интервалу, объект работает в несколько часов. Когда объект работает в несколько часов, hi должен быть рациональным числом.

FrequencyPulse

Форма частотного импульса

Укажите тип формирования импульсов, который модулятор использует для сглаживания фазовых переходов модулированного сигнала. Выберите из Rectangular | Raised Cosine | Spectral Raised Cosine | Gaussian | Tamed FM. Значение по умолчанию: Rectangular.

MainLobeDuration

Длительность основной доли спектрального приподнятого косинусного импульса

Укажите в количестве символьных интервалов длительность наибольшего лепестка спектрального приподнятого косинусного импульса. Значение по умолчанию: 1. Для этого свойства требуется действительный, положительный, целочисленный скаляр. Это свойство применяется при установке FrequencyPulse свойство для Spectral Raised Cosine.

RolloffFactor

Коэффициент отката спектрального приподнятого косинусного импульса

Укажите коэффициент отката спектрального приподнятого косинусного импульса. Значение по умолчанию: 0.2. Для этого свойства требуется действительный скаляр между 0 и 1. Это свойство применяется при установке FrequencyPulse свойство для Spectral Raised Cosine.

BandwidthTimeProduct

Произведение полосы пропускания и символьного времени гауссова импульса

Укажите произведение полосы пропускания и времени символа для формы гауссова импульса. Значение по умолчанию: 0.3. Для этого свойства требуется действительный положительный скаляр. Это свойство применяется при установке FrequencyPulse свойство для Gaussian.

PulseLength

Длина импульса

Укажите длину формы частотного импульса в символьных интервалах. Для значения этого свойства требуется действительное положительное целое число. Значение по умолчанию: 1.

SymbolPrehistory

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

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

InitialPhaseOffset

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

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

SamplesPerSymbol

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

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

OutputDataType

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

Укажите тип выходных данных как один из double | single. Значение по умолчанию: double.

Методы

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

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

reset

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

Примеры

свернуть все

% Create a CPM modulator, an AWGN channel, and a CPM demodulator.
    hMod = comm.CPMModulator(8, 'BitInput', true, ...
                            'SymbolMapping', 'Gray');
    hAWGN = comm.AWGNChannel('NoiseMethod', ...
                            'Signal to noise ratio (SNR)','SNR',0);
    hDemod = comm.CPMDemodulator(8, 'BitOutput', true, ...
                            'SymbolMapping', 'Gray');
% Create an error rate calculator, account for the delay caused by the Viterbi algorithm.
    delay = log2(hDemod.ModulationOrder)*hDemod.TracebackDepth;
    hError = comm.ErrorRate('ReceiveDelay', delay);
    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.004006
Number of errors = 120

Использование comm.CPMModulator и comm.CPMDemodulator Системные объекты применяют модуляцию GFSK и демодуляцию к случайным битовым данным.

Создайте пару модулятора GFSK и объекта демодулятора.

gfskMod = comm.CPMModulator('ModulationOrder', 2, 'FrequencyPulse', 'Gaussian', ... 
               'BandwidthTimeProduct', 0.5, 'ModulationIndex', 1, ...
               'BitInput', true);
gfskDemod = comm.CPMDemodulator('ModulationOrder', 2, 'FrequencyPulse', 'Gaussian', ... 
               'BandwidthTimeProduct', 0.5, 'ModulationIndex', 1, ...
               'BitOutput', true);

Генерировать случайные битовые данные и применять модуляцию GFSK. Используйте график рассеяния для просмотра созвездия.

numSym = 100;
x = randi([0 1],numSym*gfskMod.SamplesPerSymbol,1);
y = gfskMod(x);
eyediagram(y,16)

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.

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

z = gfskDemod(y);
delay = finddelay(x,z);
isequal(x(1:end-delay),z(delay+1:end))
ans = logical
   1

Алгоритмы

Этот объект реализует алгоритм, входы и выходы, описанные на справочной странице блока основной полосы частот модулятора CPM. Свойства объекта соответствуют параметрам блока. Для CPM фазовым сдвигом на символ является λ × h, где h - индекс модуляции.

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

.
Представлен в R2012a