【精选】接收机IQ不平衡:估计和纠正 (Rx IQ imbalance: Estimation and Correction) | 您所在的位置:网站首页 › excel行高调节幅度不一致 › 【精选】接收机IQ不平衡:估计和纠正 (Rx IQ imbalance: Estimation and Correction) |
目录 1. Why IQ correction? 2. 数学原理[1] 2.1 I/Q correction model 2.2 I/Q不平衡因子估计 2.3 算法流程 3. 仿真 3.1 仿真模型结构 3.2 接收机射频输入 3.3 接收机下变频处理 3.4 接收机基带I/Q不平衡纠正 1. Why IQ correction?现代通信系统通常采用复调制/解调机制。理论上,复调制/解调系统中的两个基带信号成分(同相分量:in-phase; 正交分量:quadrature)必须保持相互正交。但是,由于I/Q两条支路的器件特性的不完全匹配,比如说,LO的I/Q特性不完全平衡、I/Q支路各自的低通滤波器的频率响应不完全匹配等等,会导致I/Q两相的相位和幅度通常并不完全相同。 本文主要讨论射频接收机的I/Q不平衡(imbalance)(或者说失配,mismatch)的问题。I/Q不平衡问题常见于采用模拟的方式实现正交下变频的射频前端,比如说,零中频或者低中频接收机。 理想的下变频器的功能是进行单纯的频率搬移处理。但是当存在I/Q不平衡问题时,除了对有用信号成分进行了下变频处理外,还会产生镜像干扰。这些镜像干扰如果没有被消除的话,将会给解调性能带来影响,通常会使得解调性能出现一个error-floor. 进一步,尽管由LO所引入的I/Q不平衡通常是在信号带宽内保持恒定的,由基带I/Q支路的放大器以及滤波器等引入的I/Q不平衡则可能随频率变化而变化。这些随频率而变化的I/Q不平衡效应的影响在宽带直接变换接收机中尤为严重。 注意,尽量发射机的I/Q不平衡与接收机的I/Q不平衡的产生机理是基本相同的,但是实际系统中通常是分开来处理的。由于发射机的I/Q不平衡产生的镜像信号除了对接收机的解调产生影响外,还会对空中信道产生影响,更具体一点说是对邻近信道产生干扰,所以发射机的I/Q不平衡需要在发射端解决掉,比如说采用预补偿的处理方式。而接收机的I/Q不平衡不会对空中信道产生影响,只影响自身的解调,所以其处理策略与发射侧是不一样的,接收机的I/Q不平衡通常可以在数字基带中进行估计和补偿。 本文仅限于讨论接收机的I/Q不平衡的估计和补偿。 关于发射机的I/Q不平衡,可以参考博文:发射机IQ失配 的数学模型及其影响https://blog.csdn.net/chenxy_bwave/article/details/118358519 为了简便起见,这里考虑单频(Single-Tone)信号。 假定原始复单音信号为: 式(1) 假定理想的发端处理,并且不考虑信道噪声,则到达接收机输入端的信号为: 式(2) 不失一般性,在这里我们对相位和幅度都进行归一化。这样理想的接收机将输出与发端相同的复单音信号x(t)。但是,由于接收机的非理想特性,通常实际的接收机输出的基带信号可以表示为: 式(3) 这里, I/Q两相各自的直流偏置可以通过分别估计I/Q的均值然后消除,因此在以下的讨论中我们可以假定直流偏置已经被消除(这也意味着在实际的接收机设计中,要将直流偏置估计和补偿处理放在I/Q不平衡的估计和补偿的前面),假定经过直流偏置补偿后的信号为: 式(4) 可以表达为如下的矩阵形式: 式(5) 基于线性方程求解理论以及矩阵求逆运算,我们可以得到: 式(6) 剩下的问题是如何找到幅度不平衡因子 首先,定义信号均值估计如下: 这里, (7) 同理可得: (8) (7)和(8)给出了I/Q不平衡因子的理论估计方法。 2.3 算法流程基于以上讨论可以得出完整的I/Q不平衡估计和补偿的算法流程如下所示: 给接收机灌入一个频率为![]() ![]() 4. 估计幅度不平衡因子: 5. 估计相位不平衡因子正弦值: 6. 估计相位不平衡因子余弦值: 7. 计算纠正矩阵参数: 8. 执行I/Q不平衡补偿如下: 式(9) 3. 仿真以下做一个简单的matlab仿真来验证I/Q不平衡补偿的效果。 3.1 仿真模型结构仿真模型结构示意图如下: 图1 仿真模型结构示意图 3.2 接收机射频输入首先,生成接收机射频输入信号。 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % chenxy @ 2021-10-10 % A simple demonstration of I/Q imbalance correction. % For simplicity, DC offset is not taken into consideration % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear; close all; clc fsc = 1.0e6; % signal frequency fs = 20e6; % sampling frequency fc = 2.5e6; % carrier frequency t = [0:1/fs:0.0001]; % time % IQ imbalance parameters phiDegree = 10; % phase imbalance in degrees alpha = 1.3;% amplitude imbalance % Ideal Transmitter x = exp(j*2*pi*fsc*t); % transmit signal, single tone complex baseband signal cTx = exp(j*2*pi*fc*t); % carrier signal, without IQImb imbalance yTx = real(x.*cTx); % up-conversion figure; subplot(1,2,1); scatter(real(x),imag(x)); subplot(1,2,2); pwelch(x, [],[],[],fs);title('Spectrum at basebend'); figure; pwelch(yTx, [],[],[],fs);title('Spectrum at radio frequency'); 图2 发端复单音信号星座图和频谱 图3 射频信号频谱 3.3 接收机下变频处理 % Receiver cRxNoIQImb = exp(-j*2*pi*fc*t); cRxWithIQImb = alpha*cos(2*pi*fc*t) - j*sin(2*pi*fc*t + phiDegree*pi/180); % with IQImb imbalance % downconversion followed by low-pass filter xHat_NoIQImb = (yTx.*cRxNoIQImb); xHat_WithIQImb = (yTx.*cRxWithIQImb); nTaps = 60; lpfobj = designfilt('lowpassfir', 'FilterOrder', nTaps, ... 'PassbandFrequency', 0.2, ... 'StopbandFrequency', 0.5, 'DesignMethod', ... 'ls'); xHat_NoIQImb = filter(lpfobj,xHat_NoIQImb); xHat_WithIQImb = filter(lpfobj,xHat_WithIQImb); xHat_NoIQImb = xHat_NoIQImb(nTaps:end); % Throw out some samples for scatter-plot. xHat_WithIQImb = xHat_WithIQImb(nTaps:end); % Throw out some samples for scatter-plot. figure; subplot(2,1,1); pwelch(xHat_NoIQImb, [],[],[],fs);title('Spectrum at Rx baseband, no I/Q imbalance'); subplot(2,1,2); pwelch(xHat_WithIQImb, [],[],[],fs);title('Spectrum at Rx baseband, with I/Q imbalance');以上代码中,I/Q imbalance效果体现在用于下变频处理的载波信号中,分别用cRxNoIQImb表示理想的载波信号,和cRxWithIQImb表示有I/Q不平衡效应的载波信号。两种情况下得到的下变频后的复基带信号的频谱如下所示: 图4 有、无接收机I/Q不平衡时的接收端复基带信号的频谱 3.4 接收机基带I/Q不平衡纠正 % Assuming Ideal I/Q imbalance factors estimation. I_before_correction = real(xHat_WithIQImb); Q_before_correction = imag(xHat_WithIQImb); alpha = sqrt(2*mean(I_before_correction.*I_before_correction)); sin_phi = (2/alpha)*mean(I_before_correction.*Q_before_correction); cos_phi = sqrt(1 - sin_phi^2); A = 1/alpha; C = -sin_phi/(alpha*cos_phi); D = 1/cos_phi; I_after_correction = A * I_before_correction/2; Q_after_correction = C * I_before_correction + D * Q_before_correction; % figure; % scatter(I_after_correction,Q_after_correction); grid;title('Constellation at Rx baseband after I/Q correction'); figure; xHat_after_correction = complex(I_after_correction,Q_after_correction); pwelch(xHat_after_correction, [],[],[],fs);title('Spectrum at Rx baseband after I/Q correction'); figure; scatter(real(xHat_NoIQImb),imag(xHat_NoIQImb), 'k*');hold on; scatter(real(xHat_WithIQImb),imag(xHat_WithIQImb),'bo'); scatter(I_after_correction,Q_after_correction,'md'); grid on; legend('No IQ imbalance', 'Before IQ correction', 'After IQ correction'); title('Constellation at Rx baseband');这里假定I/Q不平衡幅度和相位因子均得到了理想的估计值。从纠正后的频谱图以及星座图的对比可以看出以上I/Q纠正算法的确起到了作用。 图5 I/Q不平衡纠正后的复基带信号频谱(与图4对比可以看出镜像小了很多) 图6 三种情况下的星座图对比 由图6可以看出,经过纠正后得到的复基带信号星座图与理想情况下的接收端复基带信号星座图几乎重合,而纠正前的星座图则存在明显的失真(distortion)。 相关博文: 发射机IQ失配的数学模型及其影响https://blog.csdn.net/chenxy_bwave/article/details/118358519 [Reference] [1] S.W. Ellingson, Correcting I-Q Imbalance in Direct Conversion Receivers [2] I/Q Correction [Analog Devices Wiki] |
CopyRight 2018-2019 实验室设备网 版权所有 |