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

В этом примере показано, как визуализировать поведение сигнала с помощью глазковых диаграмм и графиков рассеивания. Пример использует сигнал QPSK, который передается через повышенный косинус квадратного корня (RRC) фильтр.

График поля точек

Установите фильтр RRC, схему модуляции и параметры графического вывода.

span = 10;          % Filter span
rolloff = 0.2;      % Rolloff factor
sps = 8;            % Samples per symbol
M = 4;              % Modulation alphabet size
k = log2(M);        % Bits/symbol
phOffset = pi/4;    % Phase offset (radians)
n = 1;              % Plot every nth value of the signal
offset = 0;         % Plot every nth value of the signal, starting from offset+1

Создайте коэффициенты фильтра с помощью rcosdesign функция.

filtCoeff = rcosdesign(rolloff,span,sps);

Сгенерируйте случайные символы для размера алфавита M.

rng default
data = randi([0 M-1],5000,1);

Примените модуляцию QPSK.

dataMod = pskmod(data,M,phOffset);

Отфильтруйте модулируемые данные.

txSig = upfirdn(dataMod,filtCoeff,sps);

Вычислите ОСШ для сверхдискретизированного сигнала QPSK.

EbNo = 20;
snr = EbNo + 10*log10(k) - 10*log10(sps);

Добавьте AWGN в переданный сигнал.

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

Применяйтесь RRC получают фильтр.

rxSigFilt = upfirdn(rxSig, filtCoeff,1,sps);

Демодулируйте отфильтрованный сигнал.

dataOut = pskdemod(rxSigFilt,M,phOffset,'gray');

Используйте scatterplot функционируйте, чтобы показать графики рассеивания сигнала до и после фильтрации. Вы видите, что получить фильтр улучшает производительность, когда созвездие более тесно совпадает с идеальными значениями. Первый span символы и последний span символы представляют совокупную задержку двух операций фильтрации и удалены из двух отфильтрованных сигналов прежде, чем сгенерировать графики рассеивания.

h = scatterplot(sqrt(sps)*txSig(sps*span+1:end-sps*span),sps,offset);
hold on
scatterplot(rxSigFilt(span+1:end-span),n,offset,'bx',h)
scatterplot(dataMod,n,offset,'r+',h)
legend('Transmit Signal','Received Signal','Ideal','location','best')

Figure Scatter Plot contains an axes object. The axes object with title Scatter plot contains 3 objects of type line. These objects represent Transmit Signal, Received Signal, Ideal.

Глазковая диаграмма

Отобразите 1 000 точек переданной глазковой диаграммы сигнала более чем два символьных периода.

eyediagram(txSig(sps*span+1:sps*span+1000),2*sps)

Figure Eye Diagram contains 2 axes objects. Axes object 1 with title Eye Diagram for In-Phase Signal contains an object of type line. This object represents In-phase. Axes object 2 with title Eye Diagram for Quadrature Signal contains an object of type line. This object represents Quadrature.

Отобразите 1 000 точек полученной глазковой диаграммы сигнала.

eyediagram(rxSig(sps*span+1:sps*span+1000),2*sps)

Figure Eye Diagram contains 2 axes objects. Axes object 1 with title Eye Diagram for In-Phase Signal contains an object of type line. This object represents In-phase. Axes object 2 with title Eye Diagram for Quadrature Signal contains an object of type line. This object represents Quadrature.

Заметьте, что полученная глазковая диаграмма начинает закрываться из-за присутствия AWGN. Кроме того, фильтр имеет конечную длину, которая также способствует неидеальному поведению.

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

|

Похожие темы