comm.PSKModulator

Модулируйте сигнал с помощью метода M-PSK

Описание

PSKModulator Система object™ модулирует использование M-арного сдвига фазы, включающего (M-PSK) метод. Выход представляет собой репрезентацию модулированного сигнала.

Модулировать сигнал при помощи метода M-PSK:

  1. Создайте comm.PSKModulator объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?.

Создание

Описание

пример

mpskmod = comm.PSKModulator создает Системный объект модулятора mpskmod, это модулирует входной сигнал с помощью M-арного сдвига фазы, включающего (M-PSK) метод.

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

mpskmod = comm.PSKModulator(M,phase,Name,Value) создает объект mpskmod модулятора M-PSK использование порядка модуляции задано в M. PhaseOffset объекта свойство установлено в phase, и другие заданные свойства установлены в заданные значения.

Свойства

развернуть все

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

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.

Число точек в сигнальном созвездии в виде положительного, целочисленного скаляра.

Фаза нулевой точки созвездия в радианах в виде конечного скаляра с действительным знаком.

Опция, чтобы обеспечить вход в битах в виде числового или логического 0 ложь) или 1 TRUE).

  • Если вы устанавливаете это свойство на 0 ложь), входные значения должны быть целочисленными представлениями двухбитовых входных сегментов и области значений между от 0 до 3.

  • Если вы устанавливаете это свойство на 1 TRUE), вход должен быть бинарным вектором из даже длины. Пары элемента являются бинарными представлениями целых чисел.

Типы данных: логический | char

Побитовое отображение сигнального созвездия в виде 'Gray'двоичный файл, или 'Custom'.

  • 'Gray' — Используйте это значение, чтобы задать серо-закодированное отображение сигнального созвездия.

  • 'Binary' — Целочисленный m должен быть в области значений [0, ModulationOrder – 1] и сопоставить с комплексным числом exp (j (PhaseOffset + 2πm/ModulationOrder))

  • 'Custom' — Используйте это значение, чтобы задать отображение сигнального созвездия при помощи свойства CustomSymbolMapping.

Типы данных: char | double

Пользовательское кодирование созвездия в виде вектора-строки или вектор-столбца значений в области значений [0, ModulationOrder – 1]. Длина этого вектора должна быть равна значению свойства ModulationOrder. Первый элемент этого вектора соответствует точке созвездия под углом PhaseOffset с последующими элементами, запускающимися против часовой стрелки. Последний элемент соответствует точке созвездия под углом – 2π/ModulationOrder + PhaseOffset.

Зависимости

Чтобы включить это свойство, установите свойство SymbolMapping на 'Custom'.

Типы данных: double

Выходные данные вводят в виде любого 'double'единственный или 'Custom'.

Свойства фиксированной точки

Тип данных с фиксированной точкой выходного сигнала в виде numerictype объект с его Signedness набор свойств к Auto. Чтобы создать этот тип объекта, используйте numerictype (Fixed-Point Designer) функция.

Зависимости

Чтобы включить это свойство, установите свойство OutputDataType на 'Custom'.

Использование

Описание

mpsksignal = mpskmod(insignal) модулирует входной сигнал при помощи метода M-PSK. Выход является модулируемым сгенерированным модулированным сигналом M-PSK.

Входные параметры

развернуть все

Входной сигнал в виде вектор-столбца целых чисел или битов. Вектор должен иметь длину N S, где N S является количеством выборок.

Установка свойства BitInput определяет интерпретацию входного вектора.

Типы данных: double

Выходные аргументы

развернуть все

M-PSK модулировал сгенерированный модулированный сигнал, возвращенный как вектор.

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

constellationВычислите или постройте идеальное сигнальное созвездие
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

свернуть все

Модулируйте сигнал 8-PSK, добавьте белый Гауссов шум и постройте сигнал визуализировать эффекты шума.

Создайте Систему модулятора M-PSK object™. Порядок модуляции по умолчанию для объекта равняется 8.

pskModulator = comm.PSKModulator;

Модулируйте сигнал.

modData = pskModulator(randi([0 7],2000,1));

Добавьте белый Гауссов шум в модулируемый сигнал путем передачи сигнала через канал аддитивного белого Гауссова шума (AWGN).

channel = comm.AWGNChannel('EbNo',20,'BitsPerSymbol',3);

Передайте сигнал через канал AWGN.

channelOutput = channel(modData);

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

scatterplot(modData)

Figure Scatter Plot contains an axes. The axes with title Scatter plot contains an object of type line. This object represents Channel 1.

scatterplot(channelOutput)

Figure Scatter Plot contains an axes. The axes with title Scatter plot contains an object of type line. This object represents Channel 1.

Измените EbNo свойство к 10 дБ, чтобы увеличить шум.

channel.EbNo = 10;

Передайте модулируемые данные через канал AWGN.

channelOutput = channel(modData);

Постройте канал выход. Вы видите эффекты увеличенного шума.

scatterplot(channelOutput)

Figure Scatter Plot contains an axes. The axes with title Scatter plot contains an object of type line. This object represents Channel 1.

Создайте модулятор с 16 PSK и Систему демодулятора objects™, которые используют пользовательское отображение символа. Оцените, что BER в AWGN образовывает канал и сравнивает эффективность с теоретической серо-закодированной системой PSK.

Создайте пользовательское отображение символа для схемы модуляции с 16 PSK. 16 целочисленных символов должны иметь значения, которые падают между 0 и 15.

custMap = [0 2 4 6 8 10 12 14 15 13 11 9 7 5 3 1];

Создайте модулятор с 16 PSK и пару демодулятора, задающую пользовательский символ, сопоставляющий массивом, custMap.

pskModulator = comm.PSKModulator(16,'BitInput',true, ...
    'SymbolMapping','Custom','CustomSymbolMapping',custMap);
pskDemodulator = comm.PSKDemodulator(16,'BitOutput',true, ...
    'SymbolMapping','Custom','CustomSymbolMapping',custMap);

Отобразите созвездие модулятора.

constellation(pskModulator)

Figure contains an axes. The axes with title Constellation: 16-PSK,Custom Mapping,PhaseOffset=0.3927rad contains 19 objects of type line, text.

Создайте Системный объект канала AWGN для использования с 16-ary данными.

awgnChannel = comm.AWGNChannel('BitsPerSymbol',log2(16));

Создайте объект коэффициента ошибок отследить статистику BER.

errorRate = comm.ErrorRate;

Инициализируйте векторы симуляции. Eb/N0 варьируется от 6 до 18 дБ на шагах на 1 дБ.

ebnoVec = 6:18;
ber = zeros(size(ebnoVec));

Оцените BER путем модуляции двоичных данных, передачи его через канал AWGN, демодуляции полученного сигнала и собирания ошибочных статистических данных.

for k = 1:length(ebnoVec)
    
    % Reset the error counter for each Eb/No value
    reset(errorRate)
    % Reset the array used to collect the error statistics
    errVec = [0 0 0];
    % Set the channel Eb/No
    awgnChannel.EbNo = ebnoVec(k);
    
    while errVec(2) < 200 && errVec(3) < 1e7
        % Generate a 1000-symbol frame
        data = randi([0 1],4000,1);
        % Modulate the binary data
        modData = pskModulator(data);
        % Pass the modulated data through the AWGN channel
        rxSig = awgnChannel(modData);
        % Demodulate the received signal
        rxData = pskDemodulator(rxSig);
        % Collect the error statistics
        errVec = errorRate(data,rxData);
    end
    
    % Save the BER data
    ber(k) = errVec(1);
end

Сгенерируйте теоретические данные о BER для канала AWGN с помощью berawgn функция.

berTheory = berawgn(ebnoVec,'psk',16,'nondiff');

Постройте симулированные и теоретические результаты. Эффективность BER модуляции с 16 PSK симулированного пользовательского отображения символа не так хороша как теоретическая кривая предсказания для Кодов Грея.

figure
semilogy(ebnoVec,[ber; berTheory])
xlabel('Eb/No (dB)')
ylabel('BER')
grid
legend('Simulation','Theory','location','ne')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Simulation, Theory.

Алгоритмы

Блок выводит сгенерированный модулированный сигнал путем отображения входных битов или целых чисел, чтобы объединить символы согласно следующему:

sn(t)=exp(jπ(2n+1M));n{0,1,,M1}.

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

Входной параметрВывод
0 0 (000)
1 1 (001)
2 3 (011)
3 2 (010)
4 6 (110)
5 7 (111)
6 5 (101)
7 4 (100)

Соответствующая схема созвездия следует.

Когда входной сигнал состоит из битов, блок принимает входные параметры с бинарным знаком, которые представляют целые числа. Блок собирает сигналы с бинарным знаком в группы log2 (M) биты.

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

Смотрите также

Объекты

Функции

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