Графики поля точек или сигнальное созвездие используется, чтобы визуализировать созвездие сигнала с цифровой модуляцией.
Чтобы создать график поля точек из сигнала, используйте 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)