IQ不平衡补偿 Lowdin算法
引言
近期在带师弟师妹尝试电域 DSP 补偿方向,布置了一个任务下去。给了他 GSOP 算法的程序和测试程序,通过阅读余建军老师的相干光通信神书,尝试将 Lowdin 算法当作 GSOP 的改进,把代码写出来。
谨以此文来记录一下如果是我要怎么去解决这样的代码实现问题,尽可能将工作过程详细的记录下来,希望能对师弟师妹有所帮助。
GSOP 算法存在的问题
既然我的任务是改进算法,我应该先明确现有算法的问题在哪里。然后再去寻找解决方案。
GSOP 算法能够对正交不平衡问题起到很好的补偿效果。假设发送信号为 SI,SQS_I, S_QSI,SQ 代表IQ两路信号。理想情况下接收到的信号应该是
rI∝SIrQ∝SQ\begin{aligned} & r_I\propto S_I \\ & r_Q\propto S_Q \end{aligned} rI∝SIrQ∝SQ
但是因为正交不平衡效应,使得I路信号中混入了Q路的信息,Q路信号中混入了I路的信息。(正比于符号是因为经过信道有衰减之类的东西)
如何量化这种现象呢?GSOP 算法的观点,使用幅度失配和相位失配来量化正交不平衡现象。即,认为接收到的信号是
$$
\begin{aligned}
& r_I\propto S_I \
& r_Q\propto \alpha S_Q\cdot e^{j\theta}
\end{aligned}
也就是说,GSOP 算法认为,我接收到的信号中,I 路信号是正确的,所有的正交不平衡问题都出现在 Q 路上。 Lowdin 算法的改进就是针对这个假设。
GSOP 算法对于幅度失配问题的理论补偿范围在 (−∞,+∞)(-\infty,+\infty)(−∞,+∞),对相位失配的补偿范围为 (−60°,+60°)(-60\degree,+60\degree)(−60°,+60°)
Lowdin 算法是如何改进的
余老师神书上关于 Lowdin 算法的讲解就只有一下这丢丢篇幅。我要从中提取出能解决我问题的信息。
开篇就提出了 GSOP 算法的缺点。并提出了 Lowdin 算法认为的,接收到的信号模型的样子。但是他只提到了相位失配,没有提及幅度失配。 是在这种模型下,不存在幅度失配吗?我的感觉告诉我不应该。正交不平衡是由于器件的不理想导致的,不可能不理想器件只会让信号旋转,有相位上的失配。器件不理想,导致信号幅度有所偏差不是很正常的事情么?
或者说,其实在 Lowdin 模型下,幅度的失配,可以转化为相位的失配。因此才只存在相位失配。稍微一想就不可能,你把一条线给我拉长了,你告诉我其实你是通过把这条线转了个角度做到的,胡扯。
工作才刚刚开始,就已经看不懂了…没事,科研常态。现在我遗留了一个问题 Q1。继续往下看。
Lowdin 算法认为,正交不平衡问题不应该全是 Q 路信号的锅。所以他把相位失配分配到了 IQ 两路信号上。
rI=SIcosθ+SQsinθrQ=SQcosθ+SIsinθ\begin{aligned} & r_I=S_Icos\theta+S_Qsin\theta \\ & r_Q=S_Qcos\theta+S_Isin\theta \end{aligned} rI=SIcosθ+SQsinθrQ=SQcosθ+SIsinθ得到一个相关矩阵,还有一个转换矩阵。
但是算这些东西是干嘛,又怎么得到正交补偿之后的信号呢?这些都没有提及。所以我决定去看看参考文献中有没有原理的讲解和公式的推导。
此外因为这个矩阵的名字叫做转换矩阵 L,所以我猜,可能输入信号 rI,rQr_I,r_QrI,rQ 乘上这个矩阵 L 是不是就得到输出了?
于是我做了如上的验证,果不其然,这个矩阵就是这么用的。而且这个矩阵是个对称矩阵,所以无论是左乘列向量还是右乘行向量得到的结果一样。所以我在还没整明白原理的情况下,先做出了结果。
阅读参考文献
其实到这,这项工作基本已经完成了,剩下的只是代码实现了。但是现在还没有搞明白这些公式是怎么来的,读论文的工作还是要做一下滴~
然后下载这篇参考文献下来看看呗。
点击all 3 version
还不是免费能下。烦…导出一下他的记录。然后sci-hub大法把论文下下来。一般我还喜欢用 SCI 的数据出导出记录,SCI 数据库不提供下载的话,再用 sci-hub 下论文。
把导出的记录和下载的论文放到 EndNote 里管理起来。
不会用数据库,不会用 Google 学术的童鞋,请看0202年了,怎么还这么多人不会搜索
文献检索——Web of Science
拿到论文之后,看到关键词。我觉得这些关键词就已经足够从网上搜到一些代码了,只要能嫖到,坚决不自己写!!(代码的事,下一节再说)
此外也通过这些关键词 google 了一下有没有对个算法的呆瓜式讲解。然后找到了一个两年前也在做我现在这件事的网友如何做Lowdin算法
Lowdin算法原理
Lowdin 正交化算法起源自量子化学中的一个问题。采用这种方法所得的正交化信号,在最小二乘意义上,最接近于原始的信号。
我有一个不正交的集合 {φi}\{\varphi_i\}{φi},它有重叠矩阵(量子力学中的一个概念) S,Sij=<φi∣φj>S_{ij}=\left<\varphi_i|\varphi_j \right>Sij=⟨φi∣φj⟩,就是个很多内积组成的矩阵嘛。
我想找到一个集合 {ψi}\{\psi_i\}{ψi},它里面的元素是正交的。其实对于我们这个背景来说,元素只有两个,I路信号和Q路信号。
因为这两个集合张成的空间相同,所以可以互相线性表出(需要点点矩阵论的基础,没有也没关系,就是为了说明下面这个式子出现的合理性)。ψi=∑kCkiφk\psi_i=\sum_k{C_{ki}\varphi_k}ψi=k∑Ckiφk由于集合{ψi}\{\psi_i\}{ψi}是正交的,所以它的重叠矩阵一定是个单位阵。
然后把上式带进{ψi}\{\psi_i\}{ψi}的重叠矩阵计算中。得到<ψi∣ψj>=∑k,lCkl∗SklClj=δij\left< \psi_i|\psi_j\right>=\sum_{k,l}C_{kl}^*S_{kl}C_{lj}=\delta_{ij}⟨ψi∣ψj⟩=k,l∑Ckl∗SklClj=δij写成矩阵的形式就得到C†SC=IC^\dagger SC=IC†SC=I其中CCC称为展开系数矩阵,C†C^\daggerC†称为CCC的Hermitian adjoint。这个式子被称为正交条件。
所以只要求出了C,那就得到了由不正交集合{φi}\{\varphi_i\}{φi}变为正交集合{ψi}\{\psi_i\}{ψi}的途径。
此外,Lowdin算法还希望{φi}\{\varphi_i\}{φi}与{ψi}\{\psi_i\}{ψi}能在最小二乘意义上,尽可能的接近。也就是说,符合上述正交条件的C不止一个,我要找到差距最小的那一个。
论文中通过一系列看不太懂的数学推导,得到了结论C=S−1/2C=S^{-1/2}C=S−1/2需要保证C是Hermitian矩阵。
Hermitian矩阵:方阵A=A′A=A'A=A′共轭转置,该方阵为Hermitian矩阵。
代码实现
我搜代码的地方(如果您有其他的优秀途径一定要留言教给我呀)
- GitHub
- pudn
- mathworks
一顿检索之后,拿到了一堆乱七八糟的东西,大概的读了读,有的在算特征值特征向量,有的在算转换矩阵。虽然他们都符合论文中的讲解,但是和我要实现的东西不打对口,最后没办法,既然嫖不到,就只能自己写了。
公式很简单,就几行代码。注意一下归一化就好了。
至于最开始的那个问题,只有相位失配没有幅度失配的问题。我觉得如果相位纠正了,幅度没有纠正,也就只是个方形星座点变成矩形星座点的问题。
我要写个测试函数验证一下,就先写到这里吧。
IQ不平衡补偿 Lowdin算法相关推荐
- No.04 色散补偿 O-FDE算法 交叠频域均衡算法 MATLAB Python 代码实现
由于长距离通信系统中,截断的信号长度不能太短,否则过大的色散,这么短的信号是没有办法有效补偿的.O-FDE 算法把保护间隔换成了交叠的截断信号.这样既增大了截断的信号长度,又没有降低传输效率. 接收信 ...
- No.02 色散补偿 TSM算法 时域离散采样方法 MATLAB Python 代码实现
一定先看这篇预备知识全网首篇用人话讲清楚:光纤中的色散 对于单模光纤传输系统,色散补偿按照是否与偏振有关分为两部分,色度色散的补偿在第一部分,称这部分为静态均衡(均衡和补偿是同义词). 所谓静态就是对 ...
- No.03 色散补偿 FSM算法 频域离散采样算法 MATLAB Python 代码实现
色散系统的频域传输方程如下 G ( z , w ) = e D λ 2 z j 4 π c ω 2 G(z,w)=e^{\frac{D\lambda^2z}{j4\pi c}\omega^2} G(z ...
- 接收损伤和补偿(调制解调信号,QAM)
IQ 信号处理广泛应用于当今的通信接收机中. 所有 IQ 处理接收器结构都因 I 和 Q 分支中的幅度和相位失配而遭受问题. IQ 不平衡在模拟前端电路中很常见,它会导致图像信号在所需信号之上产生干扰 ...
- 单载波DSP模块介绍
相干光通信系统 相干光通信系统是数字系统,接收机后端的数字信号处理十分重要,通过DSP可以对系统的各种信道损伤进行补偿. 对于通信的学生来说,相干光系统很简单,与通信原理所用框图无异,只不过把一个抽象 ...
- 【雷达仿真 | FMCW TDMA-MIMO毫米波雷达信号处理仿真(可修改为DDMA-MIMO)】
本文编辑:调皮哥的小助理 本文引用了CSDN雷达博主@XXXiaojie的文章源码(https://blog.csdn.net/Xiao_Jie1),加以修改和注释,全面地.详细地阐述了FMCW TD ...
- 雷达数据处理及应用第三版 pdf_数字阵列雷达:零中频接收机的优缺点
数字阵列雷达可以实现阵元级的数字收发,为了减少射频前端的复杂性同时降低对高采样率的需求,本文简单介绍正交解调接收机,或者称为零中频接收机,从而每个阵元只需要一个本振就可以了.零中频接收机的一个重要的缺 ...
- E波段通信系统参考文献E-band info(整理)
E波段通信系统参考文献E-band info: E波段微波通信系统中信道估计技术 E波段数字微波通信技术研究 宽带E波段无线传输系统 宽带E波段无线传输系统 E波段高速无线传输系统信道编译码技术 E- ...
- 用C/C++实现输入IQ数据,计算时差(IQ数据互相关),完成TDOA定位(Chan算法)
文末贴源码链接 需求:已知接收机IQ数据,根据IQ数据做互相关,求信号时差,最终通过TDOA(Chan算法)定位发射机坐标.输入输出坐标均为经纬度坐标,而在TDOA计算中,需要笛卡尔坐标系坐标,涉及坐 ...
最新文章
- pytorch版本的bert使用笔记
- Swift3.0语言教程字符串与URL的数据转换与自由转换
- 浅谈redis数据库的键值设计
- There was an error running 'go version' command: exec: go: executable file not found in %PATH
- 用python输入任意三条边长_如何用python求第三条边边长
- C#连接Excel和Access(包括2003和2007版)方法总结
- 前端模板引擎artTemplate---高性能JavaScript模板引擎
- 关于myeclipise注册机run.bat运行失败的解决方法
- redis 分布式锁流程图
- Adobe放出P图新研究:就算丢了半个头,也能逼真复原
- SpringMVC 统一异常处理
- selenium之时间日期控件的处理
- socket编程常用函数
- 交互设计理论之格式塔理论与四大法则
- java实现生日提醒_生日提醒功能-SQL查询语句在Java中肿么运用?
- Java编程:通过获取当前时间,判断今天星期几
- STAR法则修改简历
- SpringBoot项目使用@Value读取配置文件application.yml的值
- 大数据系统架构的基本介绍
- iOS的三种常见计时器(NStimer、CADisplayLink、dispatch_source_t)的使用
热门文章
- ios中获取一个唯一的字符串(利用UUID)
- html怎么样做出两列布局页面,HTML+CSS实现两栏和三栏布局
- js对象取值的两种方式及区别
- protopype 和 __proto__的区别
- “10%时间”:优点和缺点——敏捷海滩会议上Elizabeth Pope的报告
- mysql主从备份及原理分析
- POJ1256 Anagram(回溯法)
- python面向对象变成(1):类的基本概念
- WAS6.1在JDK1.5环境下JSP无法编译问题
- 【Android市场】提交应用的一点经验分享