exponenta event banner

Диаграммы рассеяния и диаграммы созвездия

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

Чтобы создать график рассеяния из сигнала, используйте scatterplot или используйте comm.ConstellationDiagram object™ системы. График рассеяния или диаграмма созвездия могут быть полезны при сравнении производительности системы с опубликованным стандартом, таким как 3GPP или DVB.

Вы создаете comm.ConstellationDiagram с объектом по умолчанию или путем определения пар имя-значение.

Просмотр сигналов с помощью диаграмм созвездия

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

Создайте модулятор QPSK.

qpsk = comm.QPSKModulator;

Создание восходящего косинусного фильтра передачи с выборками на символ, sps, равное 16.

sps = 16;
txfilter = comm.RaisedCosineTransmitFilter('Shape','Normal', ...
    'RolloffFactor',0.22, ...
    'FilterSpanInSymbols',20, ...
    'OutputSamplesPerSymbol',sps);

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

data = randi([0 3],200,1);
modData = qpsk(data);
txSig = txfilter(modData);

Можно отобразить диаграмму созвездия передаваемого сигнала с помощью scatterplot. Поскольку сигнал избыточно дискретизирован на выходе фильтра, нужно прореживать по количеству выборок на символ, чтобы график рассеяния не показывал путь перехода между точками созвездия. Если сигнал имеет временной сдвиг, можно указать его в качестве входного параметра для отображения сигнальной совокупности с откорректированным временным смещением.

scatterplot(txSig,sps)

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

Создайте диаграмму созвездия и установите SamplesPerSymbol свойство к коэффициенту избыточной дискретизации сигнала. Задайте диаграмму созвездия так, чтобы она отображала только последние 100 выборок. Это скрывает нулевые значения, выводимые фильтром RRC для первого FilterSpanInSymbols образцы.

constDiagram = comm.ConstellationDiagram('SamplesPerSymbol',sps, ...
    'SymbolsToDisplaySource','Property','SymbolsToDisplay',100);

Отображение диаграммы созвездия передаваемого сигнала.

constDiagram(txSig)

Чтобы сопоставить сигнал с его опорной совокупностью, нормализуйте фильтр, установив его коэффициент усиления в квадратный корень OutputSamplesPerSymbol собственность. Ранее это было указано как sps. Усиление фильтра не настраивается, поэтому объект должен быть освобожден до изменения этого значения.

release(txfilter)
txfilter.Gain = sqrt(sps);

Пропустить модулированный сигнал через нормализованный фильтр.

txSig = txfilter(modData);

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

constDiagram(txSig)

Для более четкого просмотра передаваемого сигнала скройте опорную совокупность путем установки ShowReferenceConstellation свойство для false.

constDiagram.ShowReferenceConstellation = false;

Создание шумного сигнала путем передачи txSig через канал AWGN.

rxSig = awgn(txSig,20,'measured');

Отображение опорной совокупности и построение графика полученной сигнальной совокупности.

constDiagram.ShowReferenceConstellation = true;
constDiagram(rxSig)

Также можно использовать scatterplot для просмотра этого шумного сигнала, но нет встроенной опции для добавления опорной совокупности с помощью scatterplot.

scatterplot(rxSig,sps)

См. также