百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

带频偏校准的GMSK解调器设计与实现

moboyou 2025-05-13 22:12 34 浏览

郑婧怡1,高绍全1,姜汉钧1,张 春1,王志华1,2,贾 雯2

(1.清华大学微电子所,北京100084;2.深圳清华大学研究院,广东 深圳518055)

摘 要:提出了一种在零中频低功耗蓝牙接收机中使用的GMSK解调器。GMSK是一种恒包络调制方式,针对其解调最重要的判决依据是相位变化,而接收机的本振频率与发射机的载波频率误差会对相位产生干扰。因此提出了一种频偏校准算法来解决频偏对解调性能的影响。该算法由改进的一比特差分解调与CORDIC(COordinate Rotation Digital Computer)算法结合实现,与传统的频偏校准算法相比复杂度大大降低。在150 kHz以内的频偏条件下,要达到10-3误码率要求,需要的信噪比与无频偏时相比差距在1 dB以内。该解调器通过Verilog实现,并用FPGA进行验证。

中图分类号:TN4

文献标识码:A

DOI:10.16157/j.issn.0258-7998.2016.06.028

中文引用格式:郑婧怡,高绍全,姜汉钧,等. 带频偏校准的GMSK解调器设计与实现[J].电子技术应用,2016,42(6):101-104.

英文引用格式:Zheng Jingyi,Gao Shaoquan,Jiang Hanjun,et al. A GMSK demodulator with frequency offset estimation and calibration[J].Application of Electronic Technique,2016,42(6):101-104.

0 引言

在通信系统中,接收机下变频时本振的不稳定性以及传输时的多普勒效应往往会给接收机系统引入频偏误差。这个频偏误差随时间累积,会对解调性能产生严重的影响。

传统的解决方式是通过PLL来完成载波同步,从根本上消除频偏的存在,但是这种方式复杂度极高,不便于实现。现在大多数方法是从接收到的信号中估计频偏信息,并进行校准。这种估计频偏的算法分为基于数据辅助(data-aided)和非数据辅助(non-data-aided)两大类。

非数据辅助算法不依赖于提前知道接收到的数据信息[1-3],但具有估算精度较低的缺点。与非数据辅助算法相比,基于数据辅助的频偏估计算法在估算精度、范围以及复杂度方面都有更好的性能[4-6]

图1是低功耗蓝牙BLE(Bluetooth low energy)协议定义的包格式。其中前导码为8 bit,接入地址(Access Address)为32 bit,在解调时这40 bit的内容都是已知的。因此,这里提出了一种基于数据辅助的频偏估计和补偿算法。该算法结构简单且精度高,解决了现有频偏校准算法中复杂度高、系统延迟大以及存在残余频偏等缺点。

本文提出了一种应用在零中频低功耗蓝牙接收机中的GMSK解调器的结构,重点研究了频偏校准算法。

1 频偏校准算法

众所周知,相干解调的性能优于非相干解调,但是复杂度较高,在面积和功耗方面的代价较大。由于BLE协议的首要目标是低功耗,因此这里选择了非相干解调的方式。考虑到GMSK是一种恒包络调制方式,GMSK解调器可以通过差分解调来实现。

考虑到频偏和相偏的影响,GMSK基带信号可以由式(1)表示:

该式与相邻码元的相位差成正比,因为GMSK的相位路径在每个码元区间内是单调上升或者单调下降的,因此通过判断OBsin的正负就可以得到解调结果。可以看到,在差分运算的过程中,相偏被消除,但是频偏的影响依然存在,并且会对判决结果产生影响。

为了进行频偏估计,对传统的一比特差分运算进行改进,增加一条余弦支路:

式(6)在坐标系中,代表了角度为ΔωT的一条直线,为了从中提取出ΔωT的值,使用了CORDIC算法。CORDIC是一种逐次迭代算法,它通过多次角度旋转和象限判定使这条线逼近x轴,记录下旋转轨迹即可计算出原始角度[7]

CORDIC算法每次旋转的角度是一系列特殊的值,符合式(7)的关系。

如图2所示,在坐标系中,顺时针旋转一个角度αi,可以表示为:

联立式(7)、式(8),整理后可得到:

这样,CORDIC算法把实现起来困难的角度旋转变成了简单的坐标加减运算,大大降低了硬件实现的复杂度。

频偏校准的结构图如图3所示。这里选择了9级CORDIC迭代,频偏估计和频偏补偿通过2个CORDIC分别实现。第一个CORDIC用来进行频偏估计,记录下频偏角旋转的路径,第二个CORDIC通过对OBcos+i·OBsin进行相同方向的旋转完成频偏补偿。

2 GMSK解调器

图4是GMSK解调器的整体结构图。其中改进的一比特差分解调和频偏校准算法在第1节中已经详细描述,下面主要介绍其他模块的功能和实现方法。

2.1 参考电平计算

本文设计的GMSK解调器应用在零中频接收机系统中,零中频接收机引入的直流失调会严重影响到解调器性能。参考电平的计算就是为了消除直流失调的影响。这里使用2 048个采样点的均值作为直流失调的估算值。

2.2 匹配滤波器

在GMSK调制时,经过了一个高斯成型滤波器,目的是减小发射信号的带宽,但同时在时域上引入了交叠,产生了码间串扰。匹配滤波的作用就是减小码间串扰对解调的影响,这里选择的匹配滤波器是与成型滤波器相对应的一个高斯滤波器。

2.3 幅度归一化

中频ADC的输出幅度受到信号强度的干扰,会在一定的范围内变化,而信号幅度的变化会影响到同步相关运算的结果。为了使同步的相关阈值更好选取,提高同步的概率,需要对接收到的信号幅度进行归一化。

传统的归一化方式需要存储大量的数据,且具有很大的延迟,利用GMSK信号I/Q两路的相关特性,提出了一种新的归一化方式,如式(11)所示:

这种归一化方式对I/Q支路的相位信息没有改变,不会影响解调的结果。除法和开方通过查找表实现,运算可以在一个时钟周期内完成,优化了延迟。

2.4 定时和同步

ADC的采样频率是8 MHz,BLE规定的码元速率是1 Mb/s,因此对应每个码元有8个采样点。定时就是为了从中找到最佳的采样点进行降采样。

GMSK信号的相位路径在一个码元周期中是单调上升或者单调下降的,因此根据式(2),一比特差分运算的正弦支路OBsin在一个码元周期内也是单调变化的。因此可以找到一个采样点,使得在一段长度内累积OBsin的绝对值之和达到最大值,此时OBsin离判决门限最远,减少了误判的概率,即把该点作为最佳采样点[8]

同步的目的是在接收到的序列中找到包头的位置,这里通过滑动相关来实现。首先把接收到的40 bit数据与图1中的前导码以及接入地址做相关运算,如果相关结果小于阈值,则数据向后滑动一个码元,重复相关运算,直到相关结果超过阈值实现数据的同步。

2.5 判决和解调

考虑到GMSK的码间串扰特性,采用了判决反馈算法来完成解调[9]

正如在第2小节讨论的,第n位的相邻码元相位差会受到第n+1位和第n-1位的影响。因为解调是顺序进行的,在解调x[n]时,x[n-1]是已知的,因此可以根据x[n-1]的值对x[n]的判决条件进行修正,进而减小码间串扰的影响。

3 仿真结果及讨论

根据BLE协议的规定,在一个数据包内,频偏最大不超过±150 kHz。针对各种不同的频偏情况,本文仿真了GMSK解调器的误码率曲线。这里使用的GMSK信号BT参数为0.5,每一个数据包长度为376 bit,每个点的误码率通过3 000包数据仿真得到,且假设信号在加性高斯白噪声信道传输。

图5是有无频偏校准情况下对比的误码率曲线图。其中三角标记的为理想没有频偏情况下的误码率曲线,圆形标记的为50 kHz频偏且没有做频偏校准情况下的误码率曲线,而方形标记的为50 kHz频偏且做了频偏校准情况下的误码率曲线。可以看出频偏校准对解调器的性能有很大的影响,在10-2误码率条件下,解调器性能改善了约6 dB。

图6是在0 kHz、50 kHz、100 kHz以及150 kHz频偏条件下的误码率曲线。

其中圆形标记的为理想没有频偏情况下的误码率曲线,要达到BLE协议规定的10-3误码率要求,需要12.8 dB的SNR,优于传统的差分解调需要的15 dB信噪比的性能。

方形、三角和米字标记的分别是50 kHz、100 kHz以及150 kHz频偏下的误码率曲线。可以看出,频偏在50 kHz以内时,误码率曲线与理想情况几乎重合。在最大150 kHz频偏条件下,要达到10-3误码率,需要13.7 dB的SNR,与理想情况相比,解调器性能下降在1 dB以内。

该算法同样适用于负频偏的情况,其性能与正频偏时完全相同。

4 结论

本文设计了一款应用在零中频低功耗蓝牙接收机中的GMSK解调器。重点介绍了一种新的频偏校准的算法,通过把改进的一比特差分解调和CORDIC算法结合,可以有效地处理150 kHz以内的频偏干扰;通过CORDIC旋转和对差分运算模块复用降低了硬件开销。设计由Verilog语言实现,并通过FPGA验证,结果表明该解调器误码率性能优良,硬件复杂度低,适合应用于低功耗蓝牙通信系统中。

参考文献

[1] Yao Yingwei,GIANNAKIS G B.Blind carrier frequency offset estimation for OFDMA-based wireless networks[C].IEEE Military Communications 2004:1233-1239.

[2] Zhang Xiupei,RYU H G,JO B G,et al.Analyses and suppression method of frequency offset and timing offseet in FH-OFDM system[C].First International Conference on Advances in Satellite and Space Communications.Colmar,France,2009:123-127.

[3] RAMLALL R.Non-data-aided joint estimation of time and frequency offset in OFDM systems using channel order based regression[C].IEEE Military Communications Conference.San Diego,USA,2013:73-77.

[4] LIN J N,CHEN H Y,WEI T C,et al.Symbol and carrier frequency offset synchronization for IEEE802.16e[C].IEEE International Symposium on Circuit and Systems.Seattle,USA,2008:3082-3085.

[5] FUSCO T,PETRELLA A,TANDA M.Data-aided symbol timing and CFO synchronization for filter bank multicarrier systems[J].IEEE Transactions on Wireless Communications,2009,8(5):2705-2715.

[6] Liu Jingxian,Hao Jinxing,Wang Jintao.A low complexity frequency offset estimation for dual PN TDS-OFDM[C].IEEE International Symposium on Broadband Multimedia Systems and Broadcasting.Ghent,Belgium,2015:1-4.

[7] 杨宏,李国辉,刘立新.基于FPGA的CORDIC算法的实现[J].西安邮电学院学报,2008,13(1):75-77.

[8] 赖文强,赵建业.一种面向DSP实现的GMSK位同步算法[J].无线电工程,2004,3(2):12-14,61.

[9] YONGACOGLU A,MAKRAKIS D,KAMILO F.Differential detection of GMSK using decision feedback[J].IEEE Transactions on Communications,1988,36(6):641-649.

相关推荐

Excel技巧:SHEETSNA函数一键提取所有工作表名称批量生产目录

首先介绍一下此函数:SHEETSNAME函数用于获取工作表的名称,有三个可选参数。语法:=SHEETSNAME([参照区域],[结果方向],[工作表范围])(参照区域,可选。给出参照,只返回参照单元格...

Excel HOUR函数:“小时”提取器_excel+hour函数提取器怎么用

一、函数概述HOUR函数是Excel中用于提取时间值小时部分的日期时间函数,返回0(12:00AM)到23(11:00PM)之间的整数。该函数在时间数据分析、考勤统计、日程安排等场景中应用广泛。语...

Filter+Search信息管理不再难|多条件|模糊查找|Excel函数应用

原创版权所有介绍一个信息管理系统,要求可以实现:多条件、模糊查找,手动输入的内容能去空格。先看效果,如下图动画演示这样的一个效果要怎样实现呢?本文所用函数有Filter和Search。先用filter...

FILTER函数介绍及经典用法12:FILTER+切片器的应用

EXCEL函数技巧:FILTER经典用法12。FILTER+切片器制作筛选按钮。FILTER的函数的经典用法12是用FILTER的函数和切片器制作一个筛选按钮。像左边的原始数据,右边想要制作一...

office办公应用网站推荐_office办公软件大全

以下是针对Office办公应用(Word/Excel/PPT等)的免费学习网站推荐,涵盖官方教程、综合平台及垂直领域资源,适合不同学习需求:一、官方权威资源1.微软Office官方培训...

WPS/Excel职场办公最常用的60个函数大全(含卡片),效率翻倍!

办公最常用的60个函数大全:从入门到精通,效率翻倍!在职场中,WPS/Excel几乎是每个人都离不开的工具,而函数则是其灵魂。掌握常用的函数,不仅能大幅提升工作效率,还能让你在数据处理、报表分析、自动...

收藏|查找神器Xlookup全集|一篇就够|Excel函数|图解教程

原创版权所有全程图解,方便阅读,内容比较多,请先收藏!Xlookup是Vlookup的升级函数,解决了Vlookup的所有缺点,可以完全取代Vlookup,学完本文后你将可以应对所有的查找难题,内容...

批量查询快递总耗时?用Excel这个公式,自动计算揽收到签收天数

批量查询快递总耗时?用Excel这个公式,自动计算揽收到签收天数在电商运营、物流对账等工作中,经常需要统计快递“揽收到签收”的耗时——比如判断某快递公司是否符合“3天内送达”的服务承...

Excel函数公式教程(490个实例详解)

Excel函数公式教程(490个实例详解)管理层的财务人员为什么那么厉害?就是因为他们精通excel技能!财务人员在日常工作中,经常会用到Excel财务函数公式,比如财务报表分析、工资核算、库存管理等...

Excel(WPS表格)Tocol函数应用技巧案例解读,建议收藏备用!

工作中,经常需要从多个单元格区域中提取唯一值,如体育赛事报名信息中提取唯一的参赛者信息等,此时如果复制粘贴然后去重,效率就会很低。如果能合理利用Tocol函数,将会极大地提高工作效率。一、功能及语法结...

Excel中的SCAN函数公式,把计算过程理清,你就会了

Excel新版本里面,除了出现非常好用的xlookup,Filter公式之外,还更新一批自定义函数,可以像写代码一样写公式其中SCAN函数公式,也非常强大,它是一个循环函数,今天来了解这个函数公式的计...

Excel(WPS表格)中多列去重就用Tocol+Unique组合函数,简单高效

在数据的分析和处理中,“去重”一直是绕不开的话题,如果单列去重,可以使用Unique函数完成,如果多列去重,如下图:从数据信息中可以看到,每位参赛者参加了多项运动,如果想知道去重后的参赛者有多少人,该...

Excel(WPS表格)函数Groupby,聚合统计,快速提高效率!

在前期的内容中,我们讲了很多的统计函数,如Sum系列、Average系列、Count系列、Rank系列等等……但如果用一个函数实现类似数据透视表的功能,就必须用Groupby函数,按指定字段进行聚合汇...

Excel新版本,IFS函数公式,太强大了!

我们举一个工作实例,现在需要计算业务员的奖励数据,右边是公司的奖励标准:在新版本的函数公式出来之前,我们需要使用IF函数公式来解决1、IF函数公式IF函数公式由三个参数组成,IF(判断条件,对的时候返...

Excel不用函数公式数据透视表,1秒完成多列项目汇总统计

如何将这里的多组数据进行汇总统计?每组数据当中一列是不同菜品,另一列就是该菜品的销售数量。如何进行汇总统计得到所有的菜品销售数量的求和、技术、平均、最大、最小值等数据?不用函数公式和数据透视表,一秒就...