引言

近期在带师弟师妹尝试电域 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​∝SI​rQ​∝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​=SI​cosθ+SQ​sinθrQ​=SQ​cosθ+SI​sinθ​得到一个相关矩阵,还有一个转换矩阵。


但是算这些东西是干嘛,又怎么得到正交补偿之后的信号呢?这些都没有提及。所以我决定去看看参考文献中有没有原理的讲解和公式的推导。

此外因为这个矩阵的名字叫做转换矩阵 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∗​Skl​Clj​=δ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矩阵。

代码实现

我搜代码的地方(如果您有其他的优秀途径一定要留言教给我呀)

  1. GitHub
  2. pudn
  3. mathworks
  4. google

一顿检索之后,拿到了一堆乱七八糟的东西,大概的读了读,有的在算特征值特征向量,有的在算转换矩阵。虽然他们都符合论文中的讲解,但是和我要实现的东西不打对口,最后没办法,既然嫖不到,就只能自己写了。

公式很简单,就几行代码。注意一下归一化就好了。

至于最开始的那个问题,只有相位失配没有幅度失配的问题。我觉得如果相位纠正了,幅度没有纠正,也就只是个方形星座点变成矩形星座点的问题。

我要写个测试函数验证一下,就先写到这里吧。

IQ不平衡补偿 Lowdin算法相关推荐

  1. No.04 色散补偿 O-FDE算法 交叠频域均衡算法 MATLAB Python 代码实现

    由于长距离通信系统中,截断的信号长度不能太短,否则过大的色散,这么短的信号是没有办法有效补偿的.O-FDE 算法把保护间隔换成了交叠的截断信号.这样既增大了截断的信号长度,又没有降低传输效率. 接收信 ...

  2. No.02 色散补偿 TSM算法 时域离散采样方法 MATLAB Python 代码实现

    一定先看这篇预备知识全网首篇用人话讲清楚:光纤中的色散 对于单模光纤传输系统,色散补偿按照是否与偏振有关分为两部分,色度色散的补偿在第一部分,称这部分为静态均衡(均衡和补偿是同义词). 所谓静态就是对 ...

  3. 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 ...

  4. 接收损伤和补偿(调制解调信号,QAM)

    IQ 信号处理广泛应用于当今的通信接收机中. 所有 IQ 处理接收器结构都因 I 和 Q 分支中的幅度和相位失配而遭受问题. IQ 不平衡在模拟前端电路中很常见,它会导致图像信号在所需信号之上产生干扰 ...

  5. 单载波DSP模块介绍

    相干光通信系统 相干光通信系统是数字系统,接收机后端的数字信号处理十分重要,通过DSP可以对系统的各种信道损伤进行补偿. 对于通信的学生来说,相干光系统很简单,与通信原理所用框图无异,只不过把一个抽象 ...

  6. 【雷达仿真 | FMCW TDMA-MIMO毫米波雷达信号处理仿真(可修改为DDMA-MIMO)】

    本文编辑:调皮哥的小助理 本文引用了CSDN雷达博主@XXXiaojie的文章源码(https://blog.csdn.net/Xiao_Jie1),加以修改和注释,全面地.详细地阐述了FMCW TD ...

  7. 雷达数据处理及应用第三版 pdf_数字阵列雷达:零中频接收机的优缺点

    数字阵列雷达可以实现阵元级的数字收发,为了减少射频前端的复杂性同时降低对高采样率的需求,本文简单介绍正交解调接收机,或者称为零中频接收机,从而每个阵元只需要一个本振就可以了.零中频接收机的一个重要的缺 ...

  8. E波段通信系统参考文献E-band info(整理)

    E波段通信系统参考文献E-band info: E波段微波通信系统中信道估计技术 E波段数字微波通信技术研究 宽带E波段无线传输系统 宽带E波段无线传输系统 E波段高速无线传输系统信道编译码技术 E- ...

  9. 用C/C++实现输入IQ数据,计算时差(IQ数据互相关),完成TDOA定位(Chan算法)

    文末贴源码链接 需求:已知接收机IQ数据,根据IQ数据做互相关,求信号时差,最终通过TDOA(Chan算法)定位发射机坐标.输入输出坐标均为经纬度坐标,而在TDOA计算中,需要笛卡尔坐标系坐标,涉及坐 ...

最新文章

  1. pytorch版本的bert使用笔记
  2. Swift3.0语言教程字符串与URL的数据转换与自由转换
  3. 浅谈redis数据库的键值设计
  4. There was an error running 'go version' command: exec: go: executable file not found in %PATH
  5. 用python输入任意三条边长_如何用python求第三条边边长
  6. C#连接Excel和Access(包括2003和2007版)方法总结
  7. 前端模板引擎artTemplate---高性能JavaScript模板引擎
  8. 关于myeclipise注册机run.bat运行失败的解决方法
  9. redis 分布式锁流程图
  10. Adobe放出P图新研究:就算丢了半个头,也能逼真复原
  11. SpringMVC 统一异常处理
  12. selenium之时间日期控件的处理
  13. socket编程常用函数
  14. 交互设计理论之格式塔理论与四大法则
  15. java实现生日提醒_生日提醒功能-SQL查询语句在Java中肿么运用?
  16. Java编程:通过获取当前时间,判断今天星期几
  17. STAR法则修改简历
  18. SpringBoot项目使用@Value读取配置文件application.yml的值
  19. 大数据系统架构的基本介绍
  20. iOS的三种常见计时器(NStimer、CADisplayLink、dispatch_source_t)的使用

热门文章

  1. ios中获取一个唯一的字符串(利用UUID)
  2. html怎么样做出两列布局页面,HTML+CSS实现两栏和三栏布局
  3. js对象取值的两种方式及区别
  4. protopype 和 __proto__的区别
  5. “10%时间”:优点和缺点——敏捷海滩会议上Elizabeth Pope的报告
  6. mysql主从备份及原理分析
  7. POJ1256 Anagram(回溯法)
  8. python面向对象变成(1):类的基本概念
  9. WAS6.1在JDK1.5环境下JSP无法编译问题
  10. 【Android市场】提交应用的一点经验分享