8 u/ @" ^4 g5 _/ v' @ s1 l. A
* d5 \: p$ Z. H) X
4. 1 调制部分的软件设计 ; [7 {' Z3 y! s D# B/ J8 d; c 3 z& o3 V: a& q& y 此程序作为子程序被调用之前,要发送的数据已经被装入数据存储器,并将数据区的首地址及长度作为入口参数传递给子程序。程序执行时,首先清发送存储器,然后配置AD9708的采样速率,之后允许串行口发送中断产生,使中断服务程序自动依次读取发送存储器中的内容,送入AD9708变换成模拟信号。之后程序从数据存储器读取一帧数据,经编码,并行放入IFFT工作区的相应位置,插入导频符号并将不用的点补零。随后进行IFFT,IFFT算法采用常用的时域抽点算法DIT,蝶形运算所需的WN可查N=512字的定点三角函数表得到。由于TMS320VC5402的数值计算为16位字长定点运算方式,所以IFFT采用成组定点法,既提高了运算精度又保证了运算速度。然后对IFFT变换后的结果扩展加窗,并将本帧信号的前扩展部分同上帧信号的后扩展部分相加,加窗所需窗函数可查表得到。窗函数存放在窗函数表中,是事先利用C语言浮点运算并将结果转换为定点数存放在表中的。7 O& o4 J8 L. T. F: R/ v
' g, b3 C) n) ?
经实测,从读取串行数据到加窗工作完成最多占用75个抽样周期(75×125μs)的时间,而发送一帧信号需512+32=544个抽样周期(544×125μs)。这说明C5402的运算速度足够满足需要。 7 Y( k( ^1 |4 G5 ~5 p ]% O% A: e9 M8 h$ P: ]: o5 K+ s, d
当上一帧信号发送完毕,程序立即将以处理好的本帧信号送入发送存储器继续发送,并通过入口参数判断数据是否发送完毕。/ B" A, ^( D' A% h$ V" C4 f- n5 i6 Y
/ B' Q8 p! S$ i" d+ f4. 2 解调部分的软件设计1 m1 Z$ G4 i6 L+ d$ s
% Y: W9 M$ U6 ]5 y2 X+ m9 O% J9 w 用TMS320VC5402实现的流程分同步捕捉及解调两个阶段。同步捕捉阶段执行时,首先清接收存储器,配置AD9057的采样速率,然后开串行口接收中断,使接收中断服务程序接收来自AD9057的采样数据并依次自动存入接收存储器。 " t- E0 m1 l h/ N 4 X$ ]1 ~# z/ b. Y1 h6 ^7 s 每得到一个新的样点,程序先用DFT的递推算法解调出25路导频符号,并对导频均衡。之后分别同参考导频符号矢量600h+j600h进行点积,这里用导频符号矢量的实部与虚部的和代替点积,即可反映相关函数的规律,以简化运算。求得25路导频与参考导频的相关值后暂时保存,并分别与前一个样点所保存的各导频相关值比较(相减),用一个字节保存比较结果的正负号(每路导频占1bit)。在处理前一个样点的过程中,也用一个字节保存它同其前一样点的导频相关值比较的正负号。对这两个字节进行简单的逻辑运算,即可判断出各导频是否在前一个样点处出现峰值。倘若25路导频中有20个以上的导频同时出现峰值,则认为该样点以前的N=512个样点即为捕捉到的一帧信号,程序进入解调阶段;否则等待接收新的采样点继续进行同步捕捉。% A, o, K3 U, ?/ X9 T0 u
" s5 T$ d' \8 X+ R 解调阶段首先对捕捉到的帧信号进行实信号的FFT变换,仍然采用成组定点法,之后进行均衡。然后利用导频算出本地抽样时钟的延迟τ,在计算中应尽量避免出现除法,可将常数分母取倒数后提前算出,作为乘法的系数。为了保证其后二维AGC的精度,计算中τ精确到O.1μs。接下来根据τ调整抽样时钟,程序将调整量通知串行口发送中断服务程序后,继续执行二维AGC,而由中断服务程序在每次中断响应时间发布命令,每次可以调整下一采样时刻提前(或落后)1μs。 5 p. V7 b" a( G/ C9 e& ]+ ~! c% e9 V ) s* H% K s$ f2 _& e 二维AGC分两步进行。首先根据τ对均衡后的调制矢量进行相位校正,这里需要利用FFT变换所使用的512字的三角函数表,用一个指针指向三角函数表的表头,根据τ及三角函数表角度间隔算出多少路子信道才需要将指针下移一格,通过这种查表的方法可以简洁地确定各子信道的校正量。经相位校正后,即可利用导频进行幅度校正。8 t) k6 ^* i$ C8 ~4 j
% H/ P. ^; x; u: m8 R+ j
接下来经判决,并/串变换及解码即可解调出本帧数据。然后对均衡器的权值采用LMS算法进行调节。程序通过对这部分信号进行简单的幅值门限分析,很容易判断出是否收到了信号。若有则继续接收;否则结束返回。 * x8 n* h8 o2 z( e5 r2 x7 Q3 m' S W! j+ w- s! B% s& L1 c" ~" Y8 @. |- Z. i- ]5 v9 q1 }
结语 9 r2 S) t9 v8 |+ q- [ D+ W0 g- T$ A {; M9 ^" S- l9 y+ K) D8 Q% n
本文介绍了OFDM技术的基本原理,叙述了基于OFDM技术的电力线数传通信设备的软硬件设计,给出了此设计的具体参数。% f3 h0 l# Q1 Q& T' k3 o8 B/ b x