IQ不平衡matlab仿真程序

这里写自定义目录标题


clc
clear
close all

%% 产生IQ不平衡的调制数据
data = randi([0 3],1e7,1);
txSig = pskmod(data,4,pi/4,‘gray’);
ampImb = 5; % dB
phImb = 15; % deg
gainI = 10.^(0.5ampImb/20);
gainQ = 10.^(-0.5
ampImb/20);
imbI = real(txSig)gainIexp(-0.5iphImbpi/180);
imbQ = imag(txSig)gainQexp(1i*(pi/2 + 0.5phImbpi/180));
rxSig = imbI + imbQ;

constDiagram = comm.ConstellationDiagram(…
‘SymbolsToDisplaySource’,‘Property’, …
‘SymbolsToDisplay’,100);

constDiagram(rxSig)

%% IQ不平衡补偿
iqImbComp = comm.IQImbalanceCompensator;
compSig = iqImbComp(rxSig);
constDiagram(compSig)

%% IQ不平衡估计
signal = rxSig;

hIQComp = comm.IQImbalanceCompensator(‘CoefficientOutputPort’, true);
% Normalize the power of the signal
normalized_signal = signal./std(signal);
% step processes the input data, normalized_signal, to produce the output for System object, hIQComp.
[compSig,coef] = step(hIQComp,normalized_signal);
% iqcoef2imbal Computes the amplitude imbalance and phase imbalance that a given compensator coefficient will correct.
[ampImbEst,phImbEst] = iqcoef2imbal(coef(end));

release(hIQComp);


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部