Компенсируйте сигнал BSPK

Компенсируйте сигнал BPSK использование линейного эквалайзера с алгоритмом наименьшее количество среднего квадратичного (LMS).

Сгенерируйте случайные двоичные данные и примените модуляцию BPSK.

data = randi([0 1],1000,1);
modData = pskmod(data,2);

Примените 2D касание статическое исчезновение к модулируемому сигналу.

rxSig = conv(modData,[0.5 0.05]);

Создайте адаптивный объект алгоритма LMS с размером шага 0,06.

alg = lms(0.06);

Создайте линейный объект эквалайзера, имеющий 8 касаний с помощью ранее созданного объекта алгоритма. Установите ссылочный индекс касания на 4.

eqlms = lineareq(8,alg);
eqlms.RefTap = 4;

Компенсируйте полученный сигнал, rxSig, при использовании первых 200 битов данных в качестве обучающей последовательности.

trSeq = data(1:200);
[eqSig,~,e] = equalize(eqlms,rxSig,trSeq);

Отфильтруйте и постройте степень полученного (некомпенсируемого) сигнала. Величина сигнала была ослаблена каналом.

rxSigPwr = filter(0.1*ones(10,1),1,abs(rxSig)).^2;
plot(rxSigPwr)
title('Received Signal')
xlabel('Bits')
ylabel('Power (W)')

Постройте компенсируемый сигнал. Сигнал достигает намеченного уровня мощности 1 Вт.

eqSigPwr = filter(0.1*ones(10,1),1,abs(eqSig)).^2;
plot(eqSigPwr)
title('Equalized Signal')
xlabel('Bits')
ylabel('Power (W)')

Постройте величину ошибочной оценки, e. Ошибочные уменьшения, пока это не почти нуль после 400 битов.

plot(abs(e))
title('Error Estimate')
xlabel('Bits')
ylabel('Amplitude (V)')