如何使用Python对CSI相位进行矫正,并进行相位图像调整

一、前言

我记得我是最早将《MatLab对CSI的相位进行矫正》代码上传至网上的,后面陆续有人进行抄袭,不得已把一些细节和代码进行隐藏。今天整理之前Python代码的时候,发现一些不规范的问题,所以写了这篇博客。

二、使用Python对CSI相位矫正

这部分代码参考之前的文章,因为我两套代码都是类似的,只是分别用MATLAB和Python写了一遍而已。如果你对CSI相位不了解的话,建议将我往期的文章都看一遍。

如何使用MatLab对CSI的相位进行矫正_csi相位解卷绕_数产小黑娃的博客-CSDN博客

[final_phase,unwrap_phase] = phase_correction(raw_phase)

矫正之后的k与b取值(截取了部分数据)

k: -0.2813, b: -9.6485
k: -0.2973, b: -5.6541
k: -0.3149, b: -7.7716
k: -0.2844, b: -9.9642
k: -0.3001, b: -5.6084
k: -0.3186, b: -7.7602
k: -0.2872, b: -9.8381
k: -0.3049, b: -5.6557
k: -0.2736, b: -7.6461
k: -0.2906, b: -9.7018
k: -0.3094, b: -11.5847
k: -0.2774, b: -7.5641
k: -0.2956, b: -9.6131
k: -0.3136, b: -11.9447

三、CSI相位矫正可视化

plt.figure(figsize=(12, 6))

plt.subplot(131)
plt.plot(raw_phase.iloc[0, :])
plt.title('原始相位')
plt.xlabel('子载波')
plt.ylabel('相位')

plt.subplot(132)
plt.plot(Unwrapped_phase.iloc[0, :])
plt.title('解包缠相位')
plt.xlabel('子载波')
plt.ylabel('相位')

plt.subplot(133)
plt.plot(final_phase.iloc[0, :])
plt.title('最终相位')
plt.xlabel('子载波')
plt.ylabel('相位')

我们发现上面的图片画的很难看,首先图标都挤一块去了,其次刻度都朝外面。如何画的更好看呢?

1、为了让图标更加美观,我们只需要加一句代码即可,当然如果要加点的样式等等,可以根据自己的需求来弄!

plt.tight_layout()

2、如何让刻度朝内呢?也只需一行代码即可!

plt.tick_params(axis='both', which='both', direction='in')

3、如果要对x轴进行划分呢?

ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.spines['bottom'].set_position('zero')
ax.spines['left'].set_position('zero')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.tick_params(axis='both', which='both', direction='in', pad=10,labelrotation=45)

4、最后的画图效果,怎么样?是不是好看多了。

博主的每篇博文都是用心去写的,喜欢的可以多多支持和收藏,创作不易,未经作者允许,请勿转载或者抄袭。因为抄袭风气盛行,故一些细节或者代码没有展示,敬请谅解,如有疑问,可以加入我们的室内定位大家庭!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值