Уменьшайте ISI Используя повышенную фильтрацию косинуса

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