DSP

基于AR预测模型的来电显示2FSK解调算法仿真

2019-07-13 16:19发布

data/attach/1907/gmw7tfn9ggi3t2ex1xm1raeclcpviqpl.jpg (一)  背景 来电显示服务为接听方提供来电者的信息,包括来电时间、日期以及来电者的名字等。这些信息在发送端用ACSII码表示,最终的二进制数据通过数字调制后嵌入在在第一次响铃和第二次响铃之间进行传输。 来电显示采用的调制标准是Bell 202 modem标准:
  • 2FSK调制(二电平频移键控)
  • 符号率(比特率):1200bit/s
  • 逻辑0(“space”):2200Hz
  • 逻辑1(“mark”):1200Hz
(二)  来电显示的消息格式
  • 分为三个信息部分:
1.      信道占用信号:由一组连续交替的“0”和“1”组成,其中第一个比特为“0”,第二个比特为“1”,持续时间长度为250ms;
2.      标志信号:有一组连续的“1”组成,持续时间长度为150ms,用来区分开信道占用部分和消息块部分;
3.      消息块:大概的持续时间为350ms,传输来电者的信息。消息块可以分为很多10bite长度的帧,每一帧由开始比特0、8比特的信息位和结束比特1组成。8比特信息由LSB开始 (解码时需要注意!) 。消息块字节按照如下规则顺序组成:
a.      消息格式,长度1字节:0x80代表MDMF(多数据消息格式);0x04代表SDMF(单数据消息格式)。
b.     全部消息块的长度(以字节为单位),长度1字节,也将消息块最后的校验字节计算在内。
c.      数据类型,长度1字节:
      • 0x01->日期和时间
      • 0x02->电话号码
      • 0x04->无来电号码
      • 0x07->来电者名字
      • 0x08->无来电者名字
d.     c中数据的长度,1字节。
e.     数据字节(信息),长度由d中信息决定。
f.       重复c、d、e,直到包含完所有的来电显示信息。
g.      校验字节。
(三)  整体框图 一个完整的来电显示的发送接收端框图如下所示(来自网络):
(四)  2FSK解调 1)       硬件解调 常用的2FSK硬件解调方法有包络检波法和过零检测法,都属于非相干解调,解调所需要的硬件部件包括:包络检波器、限流器、微分器和整流器。 2)       软件解调 常用的2FSK软件解调方法有IQ正交解调和DFT解调等,两者属于相干解调,需要在解调前先完成同步,同时对采样率的要求比较高,例如在低采样点下做DFT,频域的峰值不明显,原因是低采样率带来的频域分辨率太低。 3)       AR模型预测解调 对于来电显示中的2FSK解调,由于比特率是1200bit/s,采样率是9600Hz(也有可能是19200Hz),那么每个比特对应的样点数是8,这样的情况下利用传统的频谱分析(DFT/Goertzel)达不到解调精度。《一种新型FSK解调算法在来电显示中的应用》一文中提出了一种基于最小均方差准则的线性预测算法,该算法利用正弦波自身的线性相关性计算预测误差,从而完成解调。 但是,这篇文章对这种新型的解调算法的介绍就到此为止,直接给出了公式和解调方法。为了找出算法背后的原理,我从参考文献入手,参阅了《High-resolution frequency analysis with small data》,功夫不负有心人,终于找到了算法的关键字——AR模型。 来自维基百科的解释: In statistics and signalprocessing, an autoregressive (AR) model is arepresentation of a type of random process; as such, it describes certaintime-varying processes in nature, economics, etc. The autoregressivemodel specifies that the output variable depends linearly on its ownprevious values. It is a special case of the more general ARMA modelof time series. Ok!退化的ARMA模型,但是好像还是看不懂和2FSK解调有什么联系。那么继续找资料,在某大学的研究生教材教案中发现了AR模型和纯正弦波过程之间的关系。 A.       公式推导 利用和差化积公式:
(1) 可以研究下面的三角恒等式:
                                                                                                                                                            (2) 假设样点值有如下的对应关系:                                                                                                                                                                                                                                     (3) 那么等式(2)可以表示为:                                                                                                                                                                                                   (4) 这属于理想状态下的情况,三个样点之间有(4)所示的约束关系。实际的传输过程中会引入噪声,那么等式(4)则有预测误差。 在某个比特0对应的采样点样本空间里,设误差为:
                                                                                                                                                                                           (5) 在某个比特1对应的采样点样本空间里,设误差为:
                                                                                                                                                                                            (6) B.       解调算法分析 根据判定可以得到如下解调思路:                                                                                                                                                                                                                  (7) 即认为预测误差小的为解调的目标比特。 针对来电显示的2FSK解调,因为每个比特包含的样本点为8,那么给出如下的预测误差计算公式:
                                                                                                                                                     (8)
                                                                                                                                                                                                              (9) 然后进行判定。 其中x(n)为采样点的值,在码元比特相位对齐后,每8个样点一组进入解调过程,完成误差计算和判定,完成一个比特的解调。 4)       来电显示解调仿真 从cnx的参考文章中下载得到wav文件的CallerID2.wav,里面包含了一个完整的来电显示的音频样本,采样率是9600bit/s。对齐进行解调和CID解码,结果为:
图1 原始数据
图2 原始数据Zoom In(2FSK信号部分)
图3 解调出的比特 根据解调出的数据,对来电显示的数据进行解码,如下表所示: 0x80 0x27   MDMF格式 数据的总长度为39字节   0x02 0x0A 解码出的电话号码 电话号码 长度为10字节 8128771511 0x07 0x0F 解码出的来电者姓名 来电者姓名 长度为15字节 ROSE HULMAN INS Google可知ROSE HULMANINS是美国的一所学校,它的电话号码就是8128771511,说明来电显示解码成功。   参考资料: (1) 一种新型FSK解调算法在来电显示中的应用 (2) High-resolutionfrequency analysis with small data (3) 桂林电子科技大学:研究生《现代数字信号处理》教案,韩传久编著