发明内容
本发明的目的在于为电子侦察接收机提供一种高精度、高实时性的基于FPGA实现的信道化接收机子信道实时频谱合成方法。
本发明的目的是这样实现的:由FPGA程序单元构成流水线,包括如下步骤:
(1)高速AD采集的960M采样数字输入信号经LVDS串并转换单元转换为16抽取60M采样的16路并行数据;
(2)16路并行数据经16路均匀信道化单元输出16路IQ信号,采用基于DFT调制的无混叠、无盲区的信道划分方法进行16路均匀信道化;
(3)cordic单元计算16路IQ信号的幅度和相位;
(4)延时单元对16路IQ数据延时,使16路IQ数据与16选3信号选择单元使用的IQ数据同步;
(5)16选3信号选择单元根据相位求得的信号瞬时频率,根据信号的幅度比较获得信号时间起始阶段所在信道及相邻两个信道,设为第Q路,相邻的信道分别设为第Q-1和第Q+1路;
(6)16选3信号选择单元输出的三路IQ信号经过时域加窗单元进行时域加窗处理;
(7)时域加窗处理后的三路IQ信号经短时快速傅里叶变换单元进行短时快速傅里叶变换单元处理;
(8)经短时快速傅里叶变换处理后的IQ信号由频谱合成单元采用基于相邻子信道频谱拼接技术对三路信号频谱进行合成。
对三路信号频谱进行合成包括,利用FPGA的FFT IP核分别对三路信号进行流水线式的64点短时快速傅里叶变换运算,本时间段64点短时快速傅里叶变换谱与上一时间段的频谱幅值采取逐点比较的方式,取幅值大的值替换此频率对应的小幅值,使用子信道有效的32点频谱部分计算信号的频谱宽度,完成最后一段64点频谱计算后,将相邻三子信道合成96点频谱,完成频谱合成。
本发明的有益效果在于:采用基于短时快速傅里叶变换(STFFT)处理的FPGA流水线处理方式,可保证在脉冲信号下降沿5us后识别出宽带信号的3dB带宽等时频信息,测频精度为1MHz,提高了信号识别的实时性。采用瞬时频率与幅度比较方法确定信号起始段所在子信道Q,进而对第Q、Q-1和Q+1路相邻3路IQ信号进行STFFT计算,通过相邻时间段对应频率点频谱取大的方法合成每路频谱,最后完成相邻三个子信道频谱合成;解决了采用均匀信道化接收机跨信道宽带信号的带宽信息识别信号和实时频谱测量问题。
具体实施方式
本发明是采用FPGA实现的,保证信号处理的实时性,它包括LVDS串并转换单元、16路均匀信道化单元、cordic单元、延时单元、16选3信号选择单元、时域加窗单元、STFFT单元以及频谱合成八个单元构成。
基于本发明的实现方法为:输入信号经串并转换后,经过16路均匀信道化处理,输出的16路信号分别利用cordic算法计算出幅度和相位,信道化输出的16路IQ数据经过延时单元并通过16选3单元对信号进行选择,输出该路及相邻两个信道信号的IQ分量,对该三路信号进行加窗处理后进行STFFT,最后进行频谱合成。其中延时单元主要是保证16选3单元输出的信号同步,即16选3单元输出的是三个相邻信道的IQ分量,而IQ分量在信道化已经输出,中间经过了cordic算法和信道判决,因此为保证信号同步,须将16路IQ分量延迟保持信号同步。
本发明的特点主要有以下3点:
1、信号的信道化处理过程,采用多相滤波器实现的无混叠、无盲区的均匀信道化高效结构。
信号x(t)经高速A/D变换器转换成离散信号x[n],传输物理协议采用LVDS进入到FPGA。设K=FM,其中K为系统划分的子信道数,M为每个信道的抽取倍数。K个带通滤波器都是由同一个原型滤波器调制生成的,每个滤波器覆盖一个信道带宽,每个滤波器即为均匀滤波器组的多相滤波分量。
本设计采用把M倍抽取前移,这样整个信道化过程是在1/M的信号输入速率下进行的,降低了信号输入速率。由抽取和内插原理可知,中间过程相当于在原来每个支路的多相滤波器各值之间插一个0,同时采用IFFT形式,得到最终的基于多相滤波的高效信道化结构。IFFT输出的
和
为实数,其他信道输出为复数,并且
与
(1≤l≤K/2-1)互为共轭形式,即所有信道输出有一半是独立的,所以只考虑前K/2个信道即可,这也是本设计采用的结构。
为确保整个覆盖带宽内无盲区,这里选择相邻信道50%交叠的滤波器组。针对滤波器过渡带引起的模糊问题可采用相邻信道输出的幅度特性,采用瞬时测频的方法判断信号所在的真实信道。
在计算信号的相位和幅度时采用了cordic算法。即用一系列角度较小的基本旋转,通过迭代不断逼近所要旋转的角度。采用cordic算法,可完成极坐标与直角坐标的变换。
2、子信道采用基于STFFT的频谱综合方法
为保证系统的实时性和精度要求,实际中选用了STFFT代替FFT计算信号的频谱。这里采用的是50%交叠的信道划分方式,所以由信号的IQ分量得到信号的复数频谱只有一半是属于当前信道的记为有效部分,其余部分是由滤波器的过渡带引起的位于相邻信道记为无效部分,而在计算信号的频谱宽度时只能使用有效部分。频谱有效部分在两边,需将频谱调整后再作为信道的频谱输出使用。STFFT的频谱采用无交叠方式进行步进计算,即下一时刻的STFFT谱与上一时刻的频谱采取逐点比较的方式比较该频率的幅值大小,取幅值大的值替换此频率对应的较小的幅值。为防止计算频谱时出现频率泄露,要对数据采用加窗处理,这里采用汉明窗加权。
3、相邻子信道频谱拼接技术
采用宽带均匀的数字信道化接收机,一般其划分的子带带宽刚好与处理信号的带宽相匹配,或略大于处理信号的带宽。但实际情况是由于信道是均匀划分的,则对于宽带信号(如LFM)经常会落入到相邻的两个信道中,这就为基于一个子信道的信号频谱分析带来困难,因此采用基于相邻子信道频谱拼接技术解决该问题,也就是同时处理相邻三个子信道频谱,再将此三个子信道频谱进行拼接。这里同时处理三个相邻信道的原因是,在信号的起始部分无法确定信号的后续部分是落入相邻两个信道的哪个信道。
下面结合附图和实例对本发明做更详细地描述:以fs=960M采样,B=480M带宽(中频720M),子带带宽为30M,16路均匀信道化宽带数字接收机为例。
结合图1,本发明的基于FPGA实现的信道化接收机子信道实时频谱合成方法由LVDS串并转换单元、16路均匀信道化单元、cordic单元、延时单元、16选3信号选择单元、时域加窗单元、STFFT单元以及频谱合成八个单元构成。八个单元构成的“信道化接收机子信道实时频谱合成”均适用于FPGA实现。FPGA芯片可选用Altera公司的EP3SL200F1152芯片。整个系统FPGA时钟采用60M时钟,延时单元延迟了35个时钟。系统保证在脉冲下降沿后5us可得到信号3dB带宽估计结果。
图2,给出了信道化的结构图,是采用多相滤波器实现的。信号x(t)经高速A/D变换器转换成离散信号x[n],设K=FM,其中K为系统划分的信道数,M为每个信道的抽取倍数。原型滤波器h
0[n]的多相滤波结构为:
其中,
(P取比N/K大的下一个整数)。其中原型滤波器h
0[n]按实数滤波器设计,截止频率取15M,阻带起始频率为30M,过渡带宽ΔF=15M。
和
为实数,其他信道输出为复数,并且
与
(1≤l≤K/2-1)互为共轭形式,即所有信道输出有一半是独立的,所以只考虑前K/2个信道即可。
由此结构得信道化后,信号的处理带宽为60M。
图3是利用cordic算法求取相位和幅度,其基本思想是用一系列角度较小的基本旋转,通过迭代不断逼近所要旋转的角度。cordic算法可以归结为以下方程组:
对i作递推,当i趋近于无穷大时,得到cordic算法收敛的结果。
图4给出了相邻信道重叠50%的均匀信道化滤波器组的设计,为确保整个覆盖带宽内无盲区,这里选择相邻信道50%交叠的滤波器组。针对滤波器过渡带引起的模糊问题可采用信道输出的幅度特性,并采用瞬时测频的方法判断信号所在的真实信道。即根据如下公式判断该信号出现的真实信道。
A
k[n]为第k路子信道经cordic算法求出的幅度,V
th为阈值,
为根据相位法计算出的的第k路子信道信号频率,f
c=60M。
图5是频谱位置合并示意图,由于采用的是50%交叠的信道划分方式,所以由信号的IQ分量得到信号的复数频谱只有一半是属于当前信道的记为有效部分,其余部分是由滤波器的过渡带引起的位于相邻信道记为无效部分,而在计算信号的频谱宽度时只能使用有效部分。阴影部分为该信道的频谱有效部分,有效部分在频谱两边,需将频谱调整后再作为信道的频谱输出使用,给出三路信道合并后,各个有效部分在总频谱中的位置。
图6是输入信号,设置为线性调频信号,调制带宽B=20MHz,脉冲宽度PW=19.2us,起始频率CF=710MHz,信号位于一个信道内。
图7是信号经过信道化后合成的64点STFFT频谱。计算信号带宽需知道FFT计算频谱的最大值及频谱幅度降低3dB时信号的频谱宽度。为保证系统的实时性和精度要求,实际中选用了64点STFFT代替FFT计算信号的频谱。若只记录滑动64点的最大值,会丢失最大值附近的高于3dB频谱幅度的频点,缩小了计算的信号带宽,引起较大的误差。为了减小因STFFT计算带来的误差,可将64点结果中所有频点频谱幅度都记录下来,再与3dB频谱幅度比较得到频谱宽度。
根据该结构复数频谱的特点是有效部分在两边,需将频谱调整后再作为信道的频谱输出使用。然后根据信道的频率大小关系将三个信道的频谱合并起来,得到信号的真实频谱,最后求出信号的3dB频谱宽度。实现过程如下:
1、分配3个32点频率对应频谱幅度最大值的存储空间。
2、以1.067us为STFFT的采样间隔,相邻的Q、Q-1和Q+1信道输出的IQ分量各采样64点。
3、得到三路信号的64点采样值加海明窗后,分别进行64点FFT。
4、三个信道分别对串行输出的64点FFT结果求频谱幅度,并记录64点数据中的频谱幅度最大值max_amplitude_n、max_amplitude_n-1、max_amplitude_n+1。
5、三个信道同时将有效频点对应的频谱幅度最大值记录到对应的存储空间。
6、重复2—5,直到脉冲结束。
7、比较三个信道的最大值max_amplitude_n、max_amplitude_n-1、max_amplitude_n+1得到合并频谱的最大值max_amplitude。
8、搜寻三个信道的32点频谱值中,超过1/2最大值(max_amplitude/2)的最大频率点(max_freq_x)和最小频率点(min_freq_x),没有超过1/2最大值(max_amplitude/2)时,最大频率点和最小频率点为0。
9、比较三个信道非零的最大频率点和最小频率点,得到合并频谱的最大频率点(max_freq)和最小频率点(min_freq),根据B3dB=(max_freq-min_freq)×60M/64统计频谱宽度。
图8为在SNR=0时的仿真条件下,输入线性调频信号,信号带宽为20M,起始频率CF=700MHz。此信号起始部分落在第10子信道,后部分信号落在第9子信道,即一部分在675MHz~705MHz的信道上,另一部分在705MHz~735MHz的信道上,只有将两个信道的频谱合并起来才能得到信号正确的3dB带宽。
原因是当信号的频谱宽度未超过一个信道带宽时,一个信道的IQ分量就能完全表示信号的频谱。但信号的频谱宽度超过一个信道带宽或信号在两个信道中时,只用一个信道的IQ分量无法表示信号的完整频谱,在相邻两信道中还会有信号的部分有效频谱。所以要想得到信号的完整频谱需将信道化输出有信号的信道fn及其相邻两信道fn-1和fn+1的频谱进行合并,得到信号的真实频谱。
所以把705MHz~735MHz(第9子信道)的信道当做中间信道,第10子信道(675MHz~705MHz)和第8子信道(735MHz~765MHz)为其相邻信道。对三个子信道分别做STFFT频谱,其中STFFT频谱只对信道频谱中间-15MHz~15MHz的有效部分计算。
图9是把三个信道有效的频率成分合并起来,得到的3个信道有效频谱的总频谱。