扩频信号基于FFT码捕获的计算量分析

手机与无线通信 时间:2012-12-25来源:网络

1.2.1 基本原理
循环相关捕获的示意图如图2所示,它是在时域中表示的,且只给出21个本地码的其中一个。如果用5 MHz对输入信号采样,输入电文长1 ms,含有5 000个数据点。可以认为输入电文与本地电文位于两个圆柱体表面,为了去匹配输入电文,本地码要旋转5 000次。换句话说,一个圆柱体相对于另一个圆柱体旋转5 000次。

c.JPG


在每一步,5 000个输入电文与5 000个本地电文点对点相乘,相乘结果加到一起。包含本地码与输入码所有可能的乘积需要5 000步,乘积中最高幅值被记录下,若大于门限值,就是我们的期望值。
从基本原理上讲,这种方法与滑动相关法是等同的,都是通过滑动码片来寻找最大值。不同的是,循环相关法每一次滑动后不用逐一相乘后相加,而是将时域信号进行快速傅里叶变换(FFT)转换成频域信号,在频域中求循环相关运算,直接求出了5 000次滑动中每一次滑动的相关值。在硬件实现中,可以利用自带的IP核直接进行FFT运算,这大大节约了资源。FFT的运算量分析在后文中将进行介绍。
1.2.2 具体步骤
采用如上所述的基于FFT的循环相关捕获方法,假定捕获的频率搜索范围是±10 kHz,步进1 kHz,总共有21个频率分量。本地码lsi可表示为:
d.JPG
式中:下标s代表卫星编号,下标i=1,2,…,21,Cs是卫星s的C/A码,fi=fc,-10,-9,…,9,10 kHz。这21组数据代表了间隔1 kHz的21个频率。将他们与输入信号进行相关运算,如果本地产生信号的C/A码和频率都正确的话,当C/A码相位对准时,输出达到峰值。
对输入数据进行捕获操作的具体步骤如下:
(1)对1 ms的输人数据x(n)进行FFT变换,将输入数据变换到频域X(k),n=k=0~4 999;
(2)取X(k)的复共轭,值为X*(k);
(3)用式(2)生成21个本地码lsi(n),i=1,2,…,21。每个lsi(n)都有5 000个数据点。
(4)对lsi(n)取FFT,转换为频域中的Lsi(k)。
(5)将Lsi(k)与X*(k)逐点相乘,结果为Rsi(k)。
(6)求Rsi(k)的FFT逆变换,变换到时域rsi(n),求绝对值|rsi(n)|,总共有105 000(5 000×21)个|rsi(n)|。
(7)在输入电文200 ns的时间分辨率和载波频率为1 kHz分辨率的条件下,|rsi(n)|最大值中的第n位和第i个载波频率给出了C/A码的初始点。
图3给出了基于FFT的捕获流程示意图。

e.JPG



2 不同捕获方法的计算量比较
从理论上讲,滑动相关法与基于FFT的循环相关捕获法都是利用数据点进行相关计算并比较求得最大值。其不同之处在于计算量的差距上,采用基于FFT的循环相关法计算量大大的减少,下面对其进行分析。
2.1 传统滑动相关法
使用传统滑动相关法进行捕获,考虑21个多普勒频率分量,由于它们进行相同的操作,只对这21组数据的某一组进行讨论。
输入数据和C/A码各含有5 000个数据点,根据滑动相关法的原理,要将C/A码滑动5 000次,每滑动一次码片都要将C/A码与数据进行5 000点的复乘,这样,在每个频率分量上要进行5 000×5 000次乘法运算,则21个频率分量共进行:
S=5 000×5 000×21=5.25×108 (3)
次运算。由此可见,这种方法在硬件实现中非常浪费资源。
2.2 基于FFT的循环相关法
2.2.1 FFT算法计算量简介
采用快速FFT/IFFT运算,可以显著降低运算的复杂度,在这里简单介绍一下如何计算IFFT的运算量。FFT的运算量与此相同,不做赘述。
对于常用的基2IFFT算法来说,其复数乘法的次数仅为(N/2)log N。随着N的增加,算法复杂度之间的差距越明显,IDFT的计算复杂度会随着N的增加而呈现二次方增长,IFFT的计算复杂度的增加速度只是稍微快于线形变化。
对于计算点数比较多的系统,可以采用基4FFT算法。在4点的IFFT运算中,只存在与{1,-1,j,-j)的相乘运算,因此不需要采用完整的乘法器来实施这种乘法,只需要通过简单地加、减以及交换实部和虚部的运算(当与-j,j相乘时)来实现这种乘法。在基4算法中,IFFT变换可以被分为多个4点的IFFT变换,这样就只需要在两个级别之间执行完整的乘法操作。因此,N点的基4IFFT算法中只需要执行(3/8)·N·(log N-2)次复数乘法或相位旋转,以及N·log N次复数加法。

1 2 3

关键词: 扩频 快逮捕获 FFT 计算量

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章


用户评论

请文明上网,做现代文明人
验证码:
查看电脑版