Используйте фильтрацию с увеличенным косинусом для уменьшения межсимвольных помех (ISI), которые являются результатом нелинейного усилителя.
Инициализация переменной моделирования для порядка модуляции.
M = 16; % Modulation orderСоздание объектов косинусного фильтра с квадратным корнем.
txfilter = comm.RaisedCosineTransmitFilter; rxfilter = comm.RaisedCosineReceiveFilter;
Создание нелинейного объекта системы без памяти для введения нелинейного поведения в модулированный сигнал. Используя пары имя-значение, установите Method свойство для Saleh model для эмуляции усилителя высокой мощности.
hpa = comm.MemorylessNonlinearity('Method','Saleh model', ... 'InputScaling',-10,'OutputScaling',0);
Генерировать случайные целые числа и применять 16-QAM модуляцию.
x = randi([0 M-1],1000,1);
modSig = qammod(x,M,'UnitAveragePower',true);Постройте график модулированного сигнала. В момент времени 0 имеется три отдельных «глаза» для модуляции 16-QAM.
eyediagram(modSig,2)

Усиление модулированного сигнала с помощью hpa.
txSigNoFilt = hpa(modSig);
Постройте график усиления сигнала без фильтрации RRC. В момент времени 0 имеется несколько глаз. Это является результатом межсимвольных помех от нелинейного усилителя.
eyediagram(txSigNoFilt,2)

Фильтрация модулированного сигнала с помощью фильтра передачи RRC.
filteredSig = txfilter(modSig);
Выпуск hpa и усиливают отфильтрованный сигнал. release функция необходима, поскольку размеры входного сигнала изменяются вследствие интерполяции фильтра.
release(hpa) txSig = hpa(filteredSig);
Фильтр txSig с использованием согласованного фильтра приема RRC.
rxSig = rxfilter(txSig);
Постройте график сигнала после применения фильтра приема. Есть еще три отдельных глаза, когда соответствующие фильтры RRC уменьшают ISI.
eyediagram(rxSig,2)
