水声通信的信号处理实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
水声通信的信号处理实现
1.工作参数:
采样率:80ksps;
FFT点数:2048;
FFT输入精度:18比特;
FFT输出精度:18比特,加6位精度控制;
输出波束为-60:8:60度,共16个波束;
波束上加30dB的切比雪夫窗用于抑制波束泄漏;
频域积分:500Hz~20kHz输出32或者64个频域区间,频域积分区间可通过软件控制;
时间积分:1、2、4、8个周期平均,可以通过软件控制。
因此:每次上传的数据为2边,每边16个波束,每个波束32个频率区间的时间平均。因此每一次上传采用一个数据包实现。
2.重要组成部分和实现:
水声通信信号的主要包括以下3个部分:
32个通道的2048点FFT处理;
32个通道的FFT由一个FFT的IP核实现,输入为实部为信号,虚部为0,输入是18位定点。输出的实部和虚部为18位,再加一个6比特的精度控制信息,表示数据低位舍去了多少位。
上面是2048FFT IP的实现的一些参数。它完成一次FFT的时间为3096个时钟周期。下面计算一下处理的时间,按照时钟周期计算。处理时钟为40MHz,2048点数据的采样时间为25.6毫秒,因此一个处理的时钟周期为1024000个时钟周期,由于通道数为32个通道,所以平均每个通道的时钟周期为32000个,远大于实际所需的时钟周期。因此采用一个FFT
模块就可以实现。
●频域波束形成;
波束形成完成16个波束的频域乘累加运算。该运算的运算量为2个16个通道16个波束的运算。每个波束要16次的复数运算,一次波束共1024点。因此一次波束形成需要2×16×16×1024次复数乘累加运算。
该运算,频域的补偿值预先存储在ROM中,在运算的过程中调用。
●波束域的频域积分、时间积分;
频域积分在频域波束形成输出时同时完成,完成后的波束积分放在缓存中,用于时间积分时。积分区间考虑做一个表,可以通过外部指令输入,也可以用内部的预先存储的值。
时间积分在频域积分的同时进行,它会把前几个周期的频域积分调出来进行积分运算。
3.系统实现的难点:
目前利用现有平台上实现信号处理的主要问题是RAM资源不足。目前硬件平台上FPGA内部有200KB的缓存和1MB的外部缓存。由于实现频域波束形成,32个通道同时操作,因此把中间数据放在外部缓存,调用时不方便。而内部资源比较有限,只有尽量减少中间结果的存储。
4.其他:
关于原始数据存储,由于该项目时间进度比较紧,建议采用目前的测试软件进行数据存储。目前的测试软件经过测试,不存在着数据丢包的问题。建议采用该软件在工业计算机上进行数据存储。
关于测向等后续算法,暂时还没有考虑。等把波束形成的算法完成后再把这部分功能加上去。
32个通道的频域积分结果缓存32个通道的时间积分结果缓存