Используйте повышенную фильтрацию косинуса, чтобы уменьшать интерференцию межсимвола (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)
