目录
- 1.前言
- 2.IEEE802.11a中的同步
- 3.分组检测
- 4.分组检测常用算法
微信公众号获取更多FPGA相关源码:
1.前言
最近有其他很多事情要做,接收机这部分本身内容也更难,涉及很多理论知识,本来之前对于随机信号和假设检验就没怎么学习透彻。所以要理清这部分内容,更花时间,有时间会接着做,不过可能会出的比较慢。今天就先来对接收机部分的设计开一个头吧,内容参考《基于XILINX FPGA的OFDM通信系统基带设计》。
首先,同步对于任何数字通信系统来说都是一个根本的任务。没有精确的同步很难对传输的数据进行可靠的恢复。因此,同步在数字基带的设计中起着至关重要的作用。
2.IEEE802.11a中的同步
由于IEEE802.11aMAC协议本质上是随机访问网络的,且多普勒频移及发射接收机本振频率偏差容易造成载波频率偏差,因此基于IEEE802.11a协议的OFDM接收机中的同步主要包括定时同步、载波频率同步和采样时钟同步三个部分。
- 定时同步主要包括帧(分组)同步和符号同步两种,其中帧(分组)同步用于确定数据分组的起始位置,而符号同步的目的在于正确地定出OFDM符号数据部分的开始位置,以进行正确的FFT操作。
- 载波频率同步首先是要检测出频率偏移,然后加以补偿。频偏检测按精度要求可分为粗同步和细同步两个部分。
- 采样时钟同步的目的在于消除接收端A/D采样的频率、相位与发送端的D/A时钟频率,以及相位的偏差对系统性能造成的影响。
3.分组检测
分组检测是找寻数据分组起始的近似估算,是接收机工作的第一-步。其主要目的是判断接收数据的大概起始点,确定是否有新数据到达,其算法的好坏直接影响着接收机的后续工作。
一般情况下分组检测可描述为二进制的假设检测,一个是空假设 H 0 H_0 H0,一个是二选一的
假设 H 1 H_1 H1,如下:
H 0 H_0 H0:没有出现分组
H 1 H_1 H1:出现分组
实际检测中通常将判决变量 m n m_n mn与预定阈值 T h T_h Th比较后判断分组检测情况:
H 0 : m n < T h H_0:m_n < T_h H0:mn<Th 没有出现分组
H 1 : m n ≥ T h H_1:m_n ≥ T_h H1:mn≥Th 出现分组
通常用检测概率 P D P_D PD和虚警概率 P F A P_{FA} PFA来衡量分组检测算法的性能,其中 P D P_D PD是正确检测到分组出现的概率, P F A P_{FA} PFA是错误判断分组出现而实际却没出现的概率,因此 P D P_D PD值要尽量地高,而 P F A P_{FA} PFA要尽可能地小。但一般情况下 P D P_D PD随着 P F A P_{FA} PFA的增加而增加,随着 P F A P_{FA} PFA的减小而减小,因此设计上必须要解决算法在这两个参数的优化中进行折中。假设检验算是比较复杂的一门学科,如果想要深入学习建议去自学相关书籍,一般在统计学以及随机信号处理或者通信原理里面都会有详细讲解。
相对于漏警(实际出现分组却未检测到)而言,虚警是较轻微的差错,这是因为如果发生虚警,虽然接收机会试图对并不存在的分组进行同步,但是一-旦进行数据完整性的检查便会发现差错;而如果一旦出现漏警,将会导致数据丢失。此外,在虚警的情况下,实际的数据分组如果在接收机还没有检测到本身错误期间就开始发送时,接收机将不能捕捉到分组,这时虚警差错也会导致数据的丢失,该情况发生概率取决于网络的负载及接收机检测到差错所需的时间。因此,为了确保好的 P D P_D PD,稍微高一些的 P F A P_{FA} PFA是可以容忍的。
4.分组检测常用算法
常用的分组检测算法包括能量检测算法、双滑动窗口能量检测算法、以及利用训练序列的同步算法等。
- 能量检测算法:基于接收信号能量值的变化来实现分组检测,当有用数据分组信号到达时,检测到的能量会有明显的跳变。
- 双滑动窗口能量检测算法:采用两个滑动窗口来比较接收信号能量的变化,通过比较两个窗口内的能量差异来判断数据分组的起始点。
- 利用训练序列的同步算法:利用训练序列的周期性与相关性,通过计算当前数据与延时数据的相关性来判断是否有数据到达。IEEE802.11a通信协议中使用的Schmidl&Cox算法就是基于训练序列的同步算法。
微信公众号获取更多FPGA相关源码: