BLE解调前奏
如果不太了解IQ、FSK、GFSK的话,可以看上一篇,有一些关于这些内容的东西,写的应该还算好理解点吧,给出了自己学习时候的参考,具体的看他们写的。
调频与调相之间的关系
IQ调制中,调频是表现在调相中的,是相位变换表现为频率变化,看这篇
https://blog.csdn.net/baowxz/article/details/111180209?ydreferer=aHR0cHM6Ly93d3cuYmFpZHUuY29tL2xpbms%2FdXJsPW5ZLVRkV3l3bUU3ZmZ2ZzRmYy1sanhwaFNnOFhTY2VYSmNzSnBsVzlhZXJhRVgwSWNzV3Vtb3otZTVEUldfMXdIenVVV1g0U1IzUGdIWndjVzNGZU5xJndkPSZlcWlkPWUyYzE5MTc2MDAyMzMxODMwMDAwMDAwMjY0NjM4ZTQ2
BLE解调详细过程
参考来源多篇BLE基带调制解调的硕士论文,知网里一搜就知道,就那几篇。
上面的图虽然不一样,其实大致过程其实都是一样的,某些图屏蔽了一些细节而已,还有一个差别就是,IQ是否直接下变频到基带信号。其过程依次是:
- IQ下变频至基带信号
- 低通滤波器
- IQ到相位的转化(鉴频鉴相)
- 相位到数字信号(0,1)的转换(相位差分)
- 帧同步(确定AA开始)
- 然后再白化等其他接出来所有数据
对于那个频偏补偿,就有点意思了,我还没完全搞懂,有的是在IQ下变频到基带信号是就进行的,有的是在相位差分的时候进行的,好像是不同的频偏补偿算法。
IQ到基带信号
这个就是那个IQ调制解调了,三角函数变换
IQ到数字01(GFSK解调)
有多种方法
- 过零点检测法
- 锁相环鉴频法
- 差分检测法
- 互关联检测
- 包络检测
- 直接鉴频鉴相
matlab APP仿真
matlab2023A有一个BT的盒子,可以直接的仿真BLE的调制与解调,叫做BLE waveform generator。
matlab代码模拟解调
忘了,哪个网站了
gnuradio+hackrf 接收
直接运行这个,反正gnuradio3.10下可以运行的。
https://github.com/migraine-sudo/BTLE-R
hackrf直接接收的
https://github.com/JiaoXianjun/BTLE
这个