Преобразуйте коэффициент компенсатора в амплитуду и разбаланс фазы
Использование iqcoef2imbal
для оценки амплитуды и разбаланса фазы для данного комплексного коэффициента. Коэффициенты являются выходом от step
функция IQImbalanceCompensator
.
Создайте фильтр передачи приподнятого косинуса, чтобы сгенерировать сигнал 64-QAM.
M = 64; txFilt = comm.RaisedCosineTransmitFilter;
Модулируйте и фильтруйте случайные 64-арные символы.
data = randi([0 M-1],100000,1); dataMod = qammod(data,M); txSig = step(txFilt,dataMod);
Задайте амплитуду и разбаланс фазы.
ampImb = 2; % dB phImb = 15; % degrees
Примените указанный разбаланс I/Q.
gainI = 10.^(0.5*ampImb/20); gainQ = 10.^(-0.5*ampImb/20); imbI = real(txSig)*gainI*exp(-0.5i*phImb*pi/180); imbQ = imag(txSig)*gainQ*exp(1i*(pi/2 + 0.5*phImb*pi/180)); rxSig = imbI + imbQ;
Нормализуйте степень принимаемого сигнала
rxSig = rxSig/std(rxSig);
Удалите разбаланс I/Q с помощью comm.IQImbalanceCompensator
Системный объект. Установите объект компенсатора таким образом, чтобы комплексные коэффициенты были доступны в качестве выходного аргумента.
hIQComp = comm.IQImbalanceCompensator('CoefficientOutputPort',true);
[compSig,coef] = step(hIQComp,rxSig);
Оцените дисбаланс от последнего значения коэффициента компенсатора.
[ampImbEst,phImbEst] = iqcoef2imbal(coef(end));
Сравните оцененные значения дисбаланса с заданными таковыми. Заметьте, что есть хорошее согласие.
[ampImb phImb; ampImbEst phImbEst]
ans = 2×2
2.0000 15.0000
2.0178 14.5740
C
- Коэффициент компенсатораКоэффициент, используемый для компенсации разбаланса I/Q, заданный как комплексный вектор.
Пример: 0.4+0.6i
Пример: [0.1+0.2i; 0.3+0.5i]
Типы данных: single
| double
A
- Амплитудный дисбалансАмплитудный дисбаланс в дБ, возвращаемый как действительный вектор с такими же размерностями, как C
.
P
- Фазовый дисбалансРазбаланс фазы в степенях, возвращаемый как действительный вектор с такими же размерностями, как C
.
Функция iqcoef2imbal
является вспомогательной функцией для comm.IQImbalanceCompensator
Системные object™.
Учитывая коэффициент масштабирования и вращения, G, коэффициент компенсатора, C и принятый сигнал, x, компенсированный сигнал, y, имеет вид
В матричной форме это может быть переписано как
где X является вектором 2 на 1, представляющим дисбаланс сигнала [XI, XQ], а Y является вектором 2 на 1, представляющим выход компенсатора [YI, YQ].
Матрица R выражена как
Чтобы компенсатор идеально удалил разбаланс I/Q, R = K-1 потому что , где K является матрицей 2 на 2, значения которой определяются амплитудой и разбалансом фазы, а S является идеальным сигналом. Задайте матрицу M с формой
И M, и M-1 может рассматриваться как матрицы масштабирования и поворота, которые соответствуют факторной G. Потому что K = R-1, продукт M-1 R K M является матрицей тождеств, где M-1 R представляет выход компенсатора, а K M представляет разбаланс I/Q. Коэффициент α выбран таким, что
где L является константой. Из этой формы мы можем получить Igain, Qgain, θI и θQ. Для заданного разбаланса фазы ΦImb синфазный и квадратурный углы могут быть выражены как
Следовательно, cos (θQ) = sin (θI) и sin (θQ) = cos (θI) так, что
Этот разбаланс I/Q может быть выражена как
Поэтому,
Уравнение может быть записано как квадратичное уравнение, чтобы решить для переменной α, то есть D1α2 + D2α + D3 = 0, где
Когда |<reservedrangesplaceholder0>| ≤ 1, квадратичное уравнение имеет следующее решение:
В противном случае, когда |<reservedrangesplaceholder0>| > 1, решение имеет следующую форму:
Наконец, получаются амплитудный дисбаланс, AImb и разбаланс фазы, ΦImb.
Примечание
Если C реально и |<reservedrangesplaceholder2>| ≤ 1, разбалансы фазы 0, и амплитудный дисбаланс составляет 20log10 ((1- C )/( 1 + C))
Если C реально и |<reservedrangesplaceholder2>| > 1, дисбаланс фаз составляет 180 °, и амплитудный дисбаланс равен 20log10 ((C + 1 )/( C − 1)).
Если C мнимый, AImb = 0.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.