CN103268308B - 支持混合基dft的计算装置及方法 - Google Patents
支持混合基dft的计算装置及方法 Download PDFInfo
- Publication number
- CN103268308B CN103268308B CN201310222726.5A CN201310222726A CN103268308B CN 103268308 B CN103268308 B CN 103268308B CN 201310222726 A CN201310222726 A CN 201310222726A CN 103268308 B CN103268308 B CN 103268308B
- Authority
- CN
- China
- Prior art keywords
- data sequence
- data
- fft
- sampling
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明提供一种支持变长DFT的计算装置,包括重采样单元、FFT运算单元、数据抽取单元、控制单元。其中,重采样单元基于由控制单元所确定的滤波系数对待变换的原始数据序列进行重采样滤波,使得经重采样后的数据序列长度变为适合FFT运算单元进行运算的长度;FFT运算单元对来自重采样单元的数据序列进行FFT变换;数据抽取单元从来自FFT运算单元的数据序列抽取出与原始数据序列对应的频域数据序列。该装置可以支持具有不同长度、不同质因子的DFT变换的计算,而FFT运算单元只需要支持某一种或者某一类基的FFT,降低了FFT运算单元设计的难度,并提高了FFT运算单元的灵活性,以及在保证足够的数据精度的同时还大大节省硬件资源。
Description
技术领域
本发明属于数字信号处理领域,尤其涉及离散傅里叶变换(DiscreteFourierTransform,DFT)的简易计算装置和方法。
背景技术
离散傅里叶变换(DiscreteFourierTransform,DFT)及其逆变换(InverseDiscreteFourierTransform,IDFT)是数字信号处理中的重要工具。它是将数字信号的时域和频域联系起来的桥梁。对于一个数据长度为N的实数序列,每计算一个数据需要N次乘法和(N-1)次加法,因此整个数据序列的DFT变换需要N2次乘法和N(N-1)次加法。如果数据为复数,那么运算的复杂度更大,因此DFT的实用性受到了限制。随着DFT的各种快速傅里叶变换算法FFT(FastFourierTransform)的出现,DFT逐渐被运用到了实践中来。
FFT算法能够将DFT算法的复杂度从O(N2)下降到O(NlogN),因而受到了广泛的关注。特别在数字信号处理和现代通信技术领域,FFT已经得到了广泛的应用。例如,在正交频分复用系统(OrthogonalFrequencyDivisionMultiplexing,OFDM)中,可以根据多载波的特性利用IFFT或FFT变换进行多载波调制或解调。基于IFFT/FFT的多载波调制技术已被大大扩展到不同类型的通信系统中,如数字音频广播、数字视频广播、无线局域网等。
FFT算法的基本思想是利用分治的方法将长序列的变换转化为许多短序列的变换。在转化的过程中,由于较长序列的计算可以重复利用较短序列计算的结果,因此可以大大减少乘法和加法的次数。对于一个数据序列来说,数据的长度N可以分解为:
其中,N1,N2,…,Nn代表因数分解后的不同的因数,ik(k=1…n)代表原序列长度可以分解的因数为Nk的个数。一般地,N1,N2,…,Nn是数据长度N的质因数;特别地,N1,N2,…,Nn可以是某几个质因数的乘积,或者是某一个质因数的幂次等组合。这些分解的因数即称为FFT的基。如果一个待进行DFT变换的序列长度可以被分为多个质因数相乘,则利用FFT对其进行快速计算就必须支持多种基。这在算法来说没有多大的难度,却增加了硬件实现的复杂性。例如,一个待变换的序列长度为60,它可以被分解为60=22×3×5。如果利用FFT来直接计算DFT,那么系统就必须支持基2、基3和基5(当然也可以是基3、基4、基5等其它组合)。如果系统需要计算变长的DFT,那么在硬件设计时还需要考虑硬件的通用性,从而加大了硬件设计的难度。例如,在3GPP(3rdGenerationPartnershipProject,第三代合作伙伴组织)组织提出的LTE(LongTermEvolution,长期演进)项目中,其上行链路采用的SC-FDMA(Single-CarrierFrequencyDivisionMultipleAccess,单载波频分多址)方案就需要计算变长的DFT。根据不同的配置,待变换的数据长度N共有35种情况,这就对硬件的设计提出了更高的要求。
针对这一类需要计算不同长度的混合基DFT的系统,目前所采用的方法主要有两种:一种是直接利用FFT来计算变长的DFT。这样FFT运算单元就必须支持DFT的所有质因子。硬件设计的复杂度和硬件资源的使用率都不能达到一个较好的情况。而且,一旦系统需要支持另外的基,那么之前设计的硬件可能就不能适用于新的系统。另一种方法是对数据进行补零并进行固定基底的FFT变换后再插值到所需的数据长度。这种方法具有简单和容易实现的优点,但是插值的精度不能够得到保证。
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种支持混合基DFT的计算装置,可以利用固定基FFT来计算不同长度甚至具有不同质因数的DFT并保证变换结果具有较好的数据精度,从而降低硬件设计的复杂度并提高系统的灵活性。
本发明的目的是通过以下技术方案实现的:
一方面,本发明提供了一种支持变长DFT的计算装置,所述装置包括重采样单元、FFT运算单元、数据抽取单元以及对上述各单元进行控制的控制单元;其中,重采样单元包括多相滤波器,所述多相滤波器基于由控制单元所确定的滤波系数对待变换的原始数据序列进行重采样滤波,使得经重采样后的数据序列长度变为适合FFT运算单元进行运算的长度;FFT运算单元,用于对来自重采样单元的数据序列进行FFT变换;数据抽取单元,用于从来自FFT运算单元的数据序列抽取出与原始数据序列对应的频域数据序列;控制单元,还用于确定对待变换的原始数据序列进行重采样滤波的滤波系数。
在上述装置中,所述重采样单元还包括数据预处理单元,所述数据预处理单元用于:
将原始数据序列尾部的ntap/2个数据补充到原始数据序列头部之前,其中ntap是预先确定的多相滤波器中子滤波系数的阶数,以及
将原始数据序列头部的ntap/2个数据补充到原始数据序列尾部之后。
在上述装置中,所述数据抽取单元从来自FFT运算单元的数据序列的头部抽取出N/2个频域数据并且从其尾部抽取出N/2个频域数据,然后将所抽取的两个长度都为N/2的频域数据组合成一个长度为N的频域数据序列,其中N等于原始数据序列的长度。
在上述装置中,所述控制单元用于:
根据待变换的原始数据序列的长度N和FFT运算单元所支持的FFT的基来确定重采样后的数据序列长度Nd;其中Nd为大于N且最接近N的整数,且满足 为FFT运算单元所支持的m个指定的FFT的基,jk代表Nd可分解的第k个基的数目,k=1…m;
根据重采样前后的数据序列长度确定重采样率,其中重采样率fs=I/D,其中I和D都为整数,且满足D·Nd=I·N;
根据预先确定的多相滤波器中子滤波系数的阶数确定滤波系数的阶数;其中,滤波系数的阶数Ntap=I·ntap,其中ntap为所述子滤波系数的阶数;以及
根据所述重采样率和滤波系数的阶数设置滤波系数。
在上述装置中,所述控制单元根据归一化通带边沿频率ωp、归一化阻带边沿频率ωs、通带波动δp和阻带波动δs来设置滤波系数,其中,ωp和ωs应满足,且δp根据所述数据运算精度确定,阻带波动δs根据ωp、ωs、δp和滤波系数的阶数Ntap来确定。
在上述装置中,所述控制单元在所确定的滤波系数总阶数Ntap超过了所述装置中用于存储滤波系数的存储单元大小时,通过多次滤波来降低滤波系数的阶数。
在上述装置中,所述控制单元控制重采样单元将当前重采样滤波的输出作为下一次重采样滤波的输入,直到最后一次滤波,以及待多次滤波结束后,控制单元再启动FFT运算单元并将最后一次滤波的数据序列送入FFT运算单元中进行FFT变换。
又一方面,本发明还提供了一种LTE上行链路信号产生设备,该设备包括:调制单元,用于对待发送的数据进行调制;
上述的支持变长DFT的计算装置,其对经调制得到的各种长度的数据进行DFT变换,得到相应的频域数据;
映射装置,用于将长度为Nd的频域数据映射到M个子载波上,其中M为2的幂次,且满足M>Nd;
IFFT计算装置,其对所得到的长度为M的频域数据进行IFFT变换,以获得与待发送数据对应的上行链路基带信号。
又一方面,本发明提供了一种支持变长DFT的计算方法,包括:
步骤1)对待变换的原始数据序列进行重采样滤波,使得经重采样后的数据序列长度变为能支持指定基的FFT变换;
步骤2)对经重采样后得到的数据序列进行该指定基的FFT变换;
步骤3)从经FFT变换后的数据序列中抽取出与原始数据序列对应的频域数据序列。
上述方法中,所述步骤1)可包括:
步骤11)根据待变换的原始数据序列的长度N和FFT运算单元所支持的FFT的基来确定重采样后的数据序列长度Nd;其中Nd为大于N且最接近N的整数,且满足 为FFT运算单元所支持的m个指定的FFT的基,jk代表Nd可分解的第k个基的数目,k=1…m;
步骤12)根据重采样前后的数据序列长度确定重采样率,其中重采样率fs=I/D,其中I和D都为整数,且满足D·Nd=I·N;
步骤13)根据预先确定的子滤波系数的阶数确定滤波系数的阶数;其中,滤波系数的阶数Ntap=I·ntap,其中ntap为所述子滤波系数的阶数;
步骤14)根据所述重采样率和滤波系数的阶数设置滤波系数;
步骤15)基于所设置的滤波系数对待变换的原始数据序列进行重采样滤波,得到长度为Nd的数据序列。
上述方法中,所述步骤15)之前还可包括对原始数据序列进行下列预处理操作:
将原始数据序列尾部的ntap/2个数据补充到原始数据序列头部之前,其中ntap是预先确定的子滤波系数的阶数,以及
将原始数据序列头部的ntap/2个数据补充到原始数据序列尾部之后。
上述方法中,所述步骤3)可包括:
步骤31)从经FFT变换后的数据序列中的头部抽取出N/2个频域数据;
步骤32)从经FFT变换后的数据序列中的尾部抽取出N/2个频域数据;
步骤33)将所抽取的两个长度都为N/2的频域数据组合成一个长度为N的频域数据序列,其中N等于原始数据序列的长度。
又一方面,本发明还提供一种LTE上行链路信号产生方法,该方法包括:
步骤1)对待发送的数据进行调制;
步骤2)采用上述的支持变长DFT的计算方法对经调制得到的各种长度的数据进行DFT变换,得到相应的长度为Nd频域数据;
步骤3)将长度为Nd的频域数据映射到M个子载波上,其中M为2的幂次,且满足M>Nd;
步骤4)对所得到的长度为M的频域数据进行IFFT变换,以获得与待发送数据对应的上行链路基带信号。
与现有技术相比,本发明的优点在于:
本发明提供的DFT计算装置可以支持具有不同长度、不同质因子的DFT变换的计算,而不用对硬件进行任何修改。唯一需要做的就是重新设计多相滤波器的系数并将其存放入滤波系数存储单元中,同时配置控制单元的相应参数。因此,该装置具有灵活性和可扩展性的优点。
在本发明提供的DFT计算装置中,对FFT运算单元的设计非常简单,FFT运算单元只需要支持某一种或者某一类基的FFT,从而降低FFT运算单元设计的难度,并提高FFT运算单元的灵活性。与对原数据序列直接做DFT的设计方法相比,在保证足够的数据精度的同时还大大节省硬件资源,并降低了硬件设计的复杂度。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1为根据本发明实施例的支持变长DFT的计算装置的结构示意图;
图2为根据本发明实施例的重采样单元的组成示意图;
图3为根据本发明实施例的多相滤波器的结构示意图;
图4为根据本发明实施例的确定滤波系数的过程示意图;
图5为根据本发明实施例的支持变长DFT的计算方法的流程图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示出了根据本发明实施例的支持变长DFT的计算装置的流程图。如图1所示,该装置包括重采样单元、FFT运算单元、数据抽取单元和控制单元。数据从重采样单元中输入接着传递到FFT运算单元,并从数据抽取单元中输出。控制单元为这三个单元提供相应的控制信号。其中,重采样单元用于对待变换的原始数据序列进行重采样,使得重采样后的数据序列长度能支持FTT运算单元的指定基的FFT变换。FFT运算单元对来自重采样单元的经重采样后得到的数据序列进行FFT变换,将经变换后得到的数据序列输出到数据抽取单元。数据抽取单元从FFT运算单元输出的数据序列中抽取出与原始数据序列对应的频域数据序列,从而得到对原始数据序列直接做DFT变换的频域数据序列。控制单元还用于确定对待变换的原始数据序列进行重采样所需要的各项参数。下面将对上述各个单元进行更详细的介绍。
(1)控制单元
控制单元主要用于确定对待变换的原始数据序列进行重采样所需要的各项参数,以及用于为其他几个单元提供相应的控制信号。在对待变换的原始数据序列进行重采样滤波之前,需要由控制单元确定的参数包括:重采样后的数据序列长度、重采样率以及滤波系数。
首先,可以根据待变换的数据序列的长度和FFT运算单元所支持的FFT的基来确定重采样后的数据序列长度。如上文公式(1)所示,待变换的数据序列的长度N可以分解为而经过重采样后的数据序列长度Nd可以表示为且必须满足Nd>N,可以取Nd为最接近N的整数,其中r1,r2,…rm为FFT运算单元所支持的m个指定的FFT的基,jk(k=1…m)代表重采样后的数据长度Nd可以分解的第k个基的数目。特别地,如果FFT运算单元仅支持某一种基,则经过重采样的数据序列长度可以表示为
接着,可根据重采样前后的数据序列长度确定重采样率。对于重采样前后的数据序列长度N和Nd,必有关系式D·Nd=I·N,其中I和D都为整数,则重采样率为
fs=I/D公式(2)
然后,设置滤波系数。重采样滤波实质上是一个低通滤波。因此在设计低通滤波器的滤波系数之前需要首先确定该低通滤波器的几个关键指标:归一化通带边沿频率ωp、归一化阻带边沿频率ωs、通带波动δp(δp为绝对指标,也可以表示为相对指标为Ap,其中绝对指标与相对指标的关系为Ap=10log10(δp 2))和阻带波动δs(相对指标表示为As,并有关系式根据采样原理容易理解:ωp的设计必须使原序列的所有频率采样点都在滤波器的通带内,这样采样后的数据精度才能够得到保证;ωs必须设置在原序列负频率分量的边沿,这样才能够保证采样中的混叠不会对原序列的频率采样点造成影响。因此,有
一般来讲,在数字信号处理的具体实现中,都采用定点数据来进行运算。定点数据与浮点数据运算的精度差在-70dB左右。为了保证不影响数据运算精度的瓶颈,定义通带波动的相对指标为Ap=-80dB,因此绝对指标为δp=0.0001。根据前述三个参数以及滤波系数的阶数Ntap(滤波系数的阶数也即滤波系数的长度,后面将详细阐述滤波系数的阶数的确定方法),确定阻带波动δs。需要注意的是:不同的滤波器设计方法对应的阻带波动的公式也有所不同,例如,如果采用等波纹有限冲击响应(FIR)滤波器设计,其对应的阻带波动可以由公式(5)确定:
如果阻带波动As小于-70dB,说明由上述参数确定的滤波系数对原序列进行滤波后不会成为影响数据精度的瓶颈;反之,则需要调整重采样后的数据长度Nd,一种可行的方法是使最简单的基(例如基2)的数目从j增加为(j+1)),并从重新开始设计各项参数。
鉴于目前已经有很多成熟的滤波器系数设计方法,因此本发明并不限定滤波器系数的设计方法,只要是符合精度设计要求的方法都能够被采用。工程技术人员也可以借助目前很多成熟的工具来设计滤波系数。例如,可以利用MATLAB软件的fdatool工具箱来进行滤波系数的设计。
在确定了滤波系数之后,控制单元可以将该滤波系数分成若干组子滤波系数保存到该装置的用于存储滤波系数的存储单元中,例如,该装置的存储器中,或者如下文所述的重采样单元中的滤波系数存储单元。根据多相滤波的原则,子滤波系数的阶数ntap与滤波系数的阶数Ntap(即滤波系数的长度),具有如下的关系:
Ntap=I·ntap公式(6)
可见,子滤波系数的总组数实际上与重采样率fs的分子I相同。子滤波系数的阶数ntap是在硬件设计时预先确定的。一般地,如果子滤波系数阶数越大,那么滤波后的数据精度也就越好;然而,子滤波系数阶数越大,也意味着需要更多的硬件资源。因此,子滤波系数的阶数需要综合考虑滤波后的数据精度和硬件资源的消耗情况来选择。不同的应用场景对数据精度和硬件资源消耗的要求有所不同。一些经验结果表明:子滤波系数阶数的设定在10阶到30阶之间是合适的。
从上文所述可以看出,对于DFT的计算装置,子滤波系数的阶数是预先设定的。因此,在又一个实施例中,控制单元在确定滤波系数之后,可以根据该装置预先确定的子滤波系数的阶数来判断该滤波系数的阶数Ntap是否能够被该装置所接受。因为,滤波系数最终是被保存在该装置的存储器中。一般地,存储器的面积占据了硬件系统的大部分面积。虽然面对不同的应用场合所设计的DFT计算装置拥有的存储器大小有所不同,但是都应有一个上限。一旦滤波系数占用的存储器大小超过了目标应用定义的上限,就必须通过某些方法降低滤波系数的阶数,从而符合该定义的上限。也就是说,如果所确定的滤波系数总阶数Ntap超过了该DFT计算装置的用于存储滤波系数的存储单元大小,则可通过多次滤波来降低该滤波系数的阶数。例如,假设重采样率可以划分为fs=I/D=(I1I2)/(D1D2)=(I1/D1)×(I2/D2),则通过将原来的一次滤波变成两次滤波减少了总的滤波系数的阶数。这是因为Ntap(old)=I×ntap≧(I1+I2)×ntap=Ntap(new)。具体来说,多次滤波在实现的时候可以完全复用DFT计算装置的重采样单元,唯一有所区别的是控制单元的控制信号。控制单元需要控制重采样单元的输出,即将当前重采样滤波的输出作为下一次重采样滤波的输入,直到最后一次滤波。待多次滤波结束后,控制单元再启动FFT运算单元并将最后一次滤波的数据序列送入其中进行FFT变换。
(2)重采样单元
重采样单元包括多相滤波器(下文也可简称为滤波器),所述多相滤波器用于基于所确定的滤波系数对输入的待变换数据序列进行分数倍重采样滤波,使重采样后的数据序列长度变为适合FFT运算单元进行运算的长度,然后将重采样得到的数据序列输出到FFT运算单元进行固定基的FFT运算。FFT运算单元可支持一种或几种基,在硬件设计完成后就不再改变FFT运算单元所能支持的基。
在确定了重采样后的数据序列长度、重采样率以及滤波系数之后,就可以通过多相滤波器对待变换的数据序列进行重采样滤波,以得到长度为Nd的数据序列。由公式(2)重采样率容易得出,重采样滤波的过程可以分为两个步骤:首先对原序列进行I倍的上采样;再对上采样后的序列进行D倍的下采样。特别地,当D等于1时重采样变成一个整数倍的I倍上采样。由采样原理可知:在上采样的过程中,首先需要在原序列中每个数据点的后面补上(I-1)个零,再送入滤波器进行滤波;在下采样的过程中,需要从滤波后的数据序列中每D个数据保留一个,并抛弃其余数据。其中,在序列中补零后再进行滤波意味着部分滤波系数并未参与实际运算;而滤波后再抛弃部分数据意味着这些数据没有必要进行滤波后输出。因此,采用多相滤波器的结构可以省去这些冗余的运算。通过采用多相滤波器,直接对原序列进行滤波便可以得到重采样后的数据序列。
图2给出了根据本发明一个实施例的多相滤波器的结构示意图。如图2所示多相滤波器可以包括输入控制开关201、滤波单元202、滤波系数存储单元203和滤波系数选择单元204。
输入控制开关201用于控制输入数据使其根据多相滤波原理送入滤波单元102,其打开和关闭受到控制单元的控制。
滤波单元202对输入的数据进行滤波。它由若干延时单元202.1、乘法单元202.2和一个加法单元202.3构成,其中延时单元202.1和乘法单元202.2的数量由子滤波系数的阶数ntap来决定。子滤波系数阶数越大,滤波单元202中的延时单元202.1、乘法单元202.2也就越多,加法单元202.3也就越复杂。如上文所述,对于DFT的计算装置,子滤波系数阶数是在硬件设计时预先确定的。滤波单元202每获得一个输入,就将延时单元中的数据与从滤波系数存储单元203中读出的一组子滤波系数相乘,并对所有乘法单元的输出结果进行累加作为一个滤波输出。
滤波系数存储单元203存储若干组子滤波系数,每组子滤波系数可以被同时读出,并用于前述滤波输出的计算。
滤波系数选择单元204需要在控制单元的控制下选中相应的子滤波系数组并送入滤波单元202进行运算。其中,滤波系数是控制单元根据上文所述的确定滤波系数的方法产生并提前存放在滤波系数存储单元203中。应理解上述多相滤波器结构仅是起举例说明的作用,本领域技术人员也可以采用其他多相滤波器结构,只要所采用的是根据上述方法设计的滤波系统即可。滤波系数存储单元可以是各种已知的存储器类型,可以位于多相滤波器中、可以是与多相滤波器分开的单独存储器、也可以是该DFT计算装置的存储器的一部分。
此外,在对一组数据序列进行滤波时,在滤波的开始和结束会有一个启动和收尾的阶段。随着滤波器阶数的增大,该阶段变得越发明显。在这两个阶段中,滤波后的数据精度也会受到一定的影响。
图3给出了根据本发明一个优选实施例的重采样单元的组成示意图。在该实施例中,除了上述的多相滤波器之外,重采样单元还包括数据预处理单元。数据预处理单元对待变换的原始数据序列进行预处理并将处理后的数据序列输出到多相滤波器。多相滤波器基于所确定的滤波系数采用经预处理后的数据序列进行分数倍的重采样滤波并输出到FFT运算单元中进行固定基的FFT运算。其中在进行分数倍重采样滤波之前,数据预处理单元先对待变换的数据序列进行数据预处理,所述数据预处理操作主要包括:
1)将原序列尾部的ntap/2个数据补充到原序列头部之前,其中ntap是多相滤波器中子滤波系数的阶数。
2)将原序列头部的ntap/2个数据补充到原序列尾部之后。
这样,原本滤波中的线性卷积过程变成了循环卷积,通过利用循环卷积来代替线性卷积,提高了数据在滤波启动和收尾阶段的精度。接着,可以对经预处理后的数据序列进行分数倍重采样,得到长度为Nd的数据序列。可见,上述的数据预处理操作可解决滤波开始和滤波结束时因启动和收尾带来的多余运算并可提高数据在滤波后的精度。
可见,重采样单元基于所确定的重采样率和滤波系数对数据进行分数倍重采样滤波,得到了适合后续进行固定基底的FFT运算的长度为Nd的数据序列,并保证数据保持较高的定点数据精度。
(3)FFT运算单元
现继续参考图1,其中FFT运算单元对来自重采样单元的数据序列进行FFT变换,将经变换后得到的数据序列输出到数据抽取单元。在本发明的实施例中,对FFT运算单元的设计非常简单,该FFT运算单元只需要支持基于某一种固定基或某一类基的可配置长度的FFT变换,因此降低该装置整体的硬件复杂度并提高对变长DFT的支持灵活性。例如,该FFT运算单元可以支持FFT变换长度为2n的数据序列并可采用基2或者基2/基4来设计。目前已有多种FFT运算单元的设计方案可满足本发明的需求,在此不再赘述。
(3)数据抽取单元
数据抽取单元将所需频域数据序列从FFT运算单元输出的数据序列中抽取出来,从而得到对原始数据序列直接做DFT变换后得到的频域数据序列。
例如,该数据抽取单元首先判断与待变换的数据序列对应的数据序列在经FFT变换后的数据序列中的位置,并将其从经FFT变换后的数据序列中抽取出来,即可得到对原始的待变换的数据序列直接做DFT变换的频域数据序列。由重采样的原理可知,在采样的过程中数据的频率分量并未发生变化。在数字上采样的过程中,原数据序列的频率分量仍然保持在经FFT变换后的频域数据序列的头部和尾部(FFT是单位元上的变换,因此频域序列的头部和尾部对应于低频分量,序列的中部对应于高频分量),而频域数据序列的中部是无用数据。因此数据抽取可按如下步骤进行:
a)从经FFT变换后的频域数据序列的头部抽取出N/2个频域数据。
b)从经FFT变换后的频域数据序列的尾部抽取出N/2个频域数据。
c)将步骤a)和步骤b)中抽取的两个长度都为N/2的数据组合成一个长度为N的序列即得到原序列的DFT变换序列。
上述的数据在各个模块之间的交互、启动或停止某个模块单元、为各个模块提供控制信号等等都由控制单元来控制。控制单元对各个模块单元的控制主要包括两个方面:第一个方面是控制原数据序列按照多相滤波的原理送入滤波单元进行滤波;第二个方面是按照多相滤波的原则选择正确的一组子滤波系数用于初始化滤波抽头系数。
在本发明的又一个实施例中,可以对上述DFT计算装置可以进行灵活配置,以适应不同长度的DFT变换需求。图4给出了可以根据装置实际硬件状况来灵活地设置滤波系数的过程示意图。该过程主要包括下列步骤:
步骤402,确定重采样后的数据序列长度Nd。
步骤403,确定重采样率fs=I/D。
步骤404,利用确定的重采样率和在该DFT计算装置中预先确定的子滤波系数阶数ntap,得到滤波系数的阶数Ntap,即Ntap=I·ntap。
步骤405,判断滤波系数的阶数Ntap是否能够被接受。
步骤406,如果步骤404中得到的滤波系数的阶数Ntap超过了该DFT计算装置用于保存滤波系数的存储单元大小,则可通过多次滤波来降低(具体可参见上文)。多次滤波在实现的时候可以完全复用上文所述DFT计算装置的重采样单元,由控制单元控制重采样单元当前重采样滤波的输出作为下一次重采样滤波的输入,直到最后一次滤波。待多次滤波结束后,控制单元再启动FFT运算单元并将最后一次滤波的数据序列送入其中进行FFT变换。
步骤407,利用上文所述方法确定滤波系数。特别地,当需要进行多次滤波时,需要根据步骤404中确定的滤波系数阶数Ntap确定划分的滤波次数,并利用上文所述的方法确定每一次滤波中需要用到的滤波系数。
步骤408,将步骤407)中设置的滤波系数初始化到滤波系数存储单元并配置DFT计算装置的相关参数如采样率fs=I/D、滤波后的数据长度Nd等信息。
通过上述具体实施例可以看出,本发明提供的DFT计算装置可以支持具有不同长度、不同质因子的DFT变换的计算,而不用对硬件进行任何修改。唯一需要做的就是重新设计多相滤波器的系数并将其存放入该装置中用于存储滤波系数的存储单元中,同时配置控制单元的相应参数。因此,该DFT计算装置具有灵活性和可扩展性的优点。
而且在本发明提供的DFT计算装置中,对FFT运算单元的设计非常简单,FFT运算单元只需要支持某一种或者某一类基的FFT,从而降低FFT运算单元设计的难度,并提高FFT运算单元的灵活性。因此,该DFT计算装置既能保证足够的数据精度又还能大大节省硬件资源,而且降低了硬件设计的复杂度。
在本发明的又一个实施例中,还提供了一种DFT简易计算方法。其流程图如图5所示。该方法主要包括下列步骤:步骤1)对待变换的数据序列进行重采样滤波,使得重采样后的数据序列长度能支持指定基的FFT变换(图5中步骤503);步骤2)对经重采样后得到的数据序列进行固定基的FFT变换(图5中步骤505);步骤3)从经FFT变换后的数据序列中抽取出所需的数据序列(图5中步骤507)。
更具体地,步骤1)对待变换的数据序列进行重采样滤波,使得重采样后的数据序列长度能进行支持指定基的FFT变换,包括以下步骤:
步骤11)确定重采样后的数据序列长度。
例如,可以根据待变换的数据序列的长度和指定的FFT的基来确定重采样后的数据序列长度。待变换的数据长度为N,而经过重采样后的数据序列长度Nd可以表示为且必须满足Nd>N,取Nd为最接近N的数,其中r1,r2,…rm为m个指定的FFT的基,jk(k=1…m)代表重采样后的数据长度Nd可以分解的第k个基的数目。特别地,如果仅为待进行的FFT变换指定了某一种基,则经过重采样的数据序列长度可以表示为
步骤12)根据重采样前后的数据序列长度确定重采样率。对于重采样前后的数据序列长度N和Nd,必有关系式D·Nd=I·N,其中I和D都为整数,则重采样率为:
fs=I/D
步骤13)根据上文所述的确定滤波系数的方法来确定滤波系数。
步骤14)基于所确定的滤波系数对待变换的数据序列进行分倍数重采样滤波,得到长度为Nd的数据序列。
在又一个实施例中,在步骤14)之前还可以包括对待变换的数据进行数据预处理的步骤(如图5中的步骤501),所述数据预处理步骤包括:1)将原序列尾部的ntap/2个数据补充到原序列头部之前,其中ntap是多相滤波器中单个子滤波系数组的阶数。
2)将原序列头部的ntap/2个数据补充到原序列尾部之后。
在步骤2),对经重采样后得到的数据序列进行FFT变换。
例如,对长度为Nd的重采样数据序列进行FFT变换,得到频域上的长度为Nd的数据序列。有现有的多种FFT运算方案可满足本发明的需求,在此不再赘述。
在步骤3)从经FFT变换后的数据序列中抽取出所需的数据序列,也就是取出与最初的待变换的数据序列对应的数据序列。主要包括以下步骤:
步骤31)从经FFT变换后的频域数据序列的头部抽取出N/2个频域数据。
步骤32)从经FFT变换后的频域数据序列的尾部抽取出N/2个频域数据。
步骤33)将步骤31)和步骤32)中抽取的两个长度都为N/2的数据组合成一个长度为N的序列即得到原序列的DFT变换序列。
下面给出了采用上述方法对数据序列长度为48的DFT进行变换的一个具体示例。
在本示例中,假定指定的FFT运算单元可以支持基2/基4的FFT变换,也即FFT运算单元可以支持变换长度为L=2n的数据序列。假定在本示例中,DFT计算装置的子滤波系数为16,那么延时单元202.1的数目为15,乘法单元202.2的数量以及滤波系数存储单元203中每组子滤波系数的长度为16。
由于原数据序列的长度满足如下关系式:
25=32<48<26=64
则重采样后的数据序列长度可以确定为Nd=64。
由原数据序列为N=48,重采样后的数据序列为Nd=64,可以确定重采样率为fs=Nd/N=4/3,即I=4,D=3。
利用子滤波系数组的阶数ntap和重采样率fs可以确定滤波系数的总阶数:
Ntap=I×ntap=4×16=64
滤波系数的总阶数为64,也就是说滤波系数存储单元203只需要存储4组共64个数据,而不会对系统的存储空间造成过大的压力。因此也就不需要通过多次滤波的方式来降低多相滤波器的阶数。
在本发明的又一个实施例中,提供了一种LTE上行链路信号产生方法,该方法包括:步骤1)对待发送的数据进行调制;
步骤2)采用上文所述的支持变长DFT计算的方法对经调制得到的各种长度的数据进行DFT变换,得到相应的长度为Nd频域数据;
步骤3)将长度为Nd的频域数据映射到M个子载波上,其中M为2的幂次,且满足M>Nd;
步骤4)对所得到的长度为M的频域数据进行IFFT变换,以获得与待发送数据对应的上行链路基带信号。
在本发明的又一个实施例中,提供了一种LTE上行链路信号产生设备,该设备包括:调制单元,用于对待发送的数据进行调制;
上文所述的支持变长DFT的计算装置,其对经调制得到的各种长度的数据进行DFT变换,得到相应的长度为Nd频域数据;
映射装置,用于将长度为Nd的频域数据映射到M个子载波上,其中M为2的幂次,且满足M>Nd;
IFFT计算装置,其对所得到的长度为M的频域数据进行IFFT变换,以获得与待发送数据对应的上行链路基带信号。
从上文所述可知,该设备可以对经调制得到的各种长度的数据进行DFT变换,并产生相应的上行链路基带信号,而不用对硬件进行任何修改,降低了硬件设计的复杂度。而且在保证足够的数据精度的同时还能大大节省硬件资源,具有很好的灵活性和可扩展性。
虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所作出的各种改变以及变化。
Claims (11)
1.一种支持变长DFT的计算装置,所述装置包括重采样单元、FFT运算单元、数据抽取单元以及对上述各单元进行控制的控制单元;
其中,重采样单元包括多相滤波器,所述多相滤波器基于由控制单元所确定的滤波系数对待变换的原始数据序列进行重采样滤波,使得经重采样后的数据序列长度变为适合FFT运算单元进行运算的长度;
FFT运算单元,用于对来自重采样单元的数据序列进行FFT变换;
数据抽取单元,用于从来自FFT运算单元的数据序列抽取出与原始数据序列对应的频域数据序列;
其中所述控制单元用于:
根据待变换的原始数据序列的长度N和FFT运算单元所支持的FFT的基来确定重采样后的数据序列长度Nd;其中Nd为大于N且最接近N的整数,且满足r1,r2,…rm为FFT运算单元所支持的m个指定的FFT的基,jk代表Nd可分解的第k个基的数目,k=1…m;
根据重采样前后的数据序列长度确定重采样率,其中重采样率fs=I/D,其中I和D都为整数,且满足D·Nd=I·N;
根据预先确定的多相滤波器中子滤波系数的阶数确定滤波系数的阶数;其中,滤波系数的阶数Ntap=I·ntap,其中ntap为所述子滤波系数的阶数;以及
根据所述重采样率和滤波系数的阶数确定对待变换的原始数据序列进行重采样滤波的滤波系数。
2.根据权利要求1所述的装置,所述重采样单元还包括数据预处理单元,所述数据预处理单元用于:
将原始数据序列尾部的ntap/2个数据补充到原始数据序列头部之前,其中ntap是预先确定的多相滤波器中子滤波系数的阶数,以及
将原始数据序列头部的ntap/2个数据补充到原始数据序列尾部之后。
3.根据权利要求1或2所述的装置,所述数据抽取单元从来自FFT运算单元的数据序列的头部抽取出N/2个频域数据并且从其尾部抽取出N/2个频域数据,然后将所抽取的两个长度都为N/2的频域数据组合成一个长度为N的频域数据序列,其中N等于原始数据序列的长度。
4.根据权利要求1所述的装置,其中,所述控制单元根据归一化通带边沿频率ωp、归一化阻带边沿频率ωs、通带波动δp和阻带波动δs来设置滤波系数,其中,ωp和ωs应满足且δp根据所述数据运算精度确定,阻带波动δs根据ωp、ωs、δp和滤波系数的阶数Ntap来确定。
5.根据权利要求1所述的装置,所述控制单元在所确定的滤波系数总阶数Ntap超过了所述装置中用于存储滤波系数的存储单元大小时,通过多次滤波来降低滤波系数的阶数。
6.根据权利要求5所述的装置,所述控制单元控制重采样单元将当前重采样滤波的输出作为下一次重采样滤波的输入,直到最后一次滤波,以及待多次滤波结束后,控制单元再启动FFT运算单元并将最后一次滤波的数据序列送入FFT运算单元中进行FFT变换。
7.一种LTE上行链路信号产生设备,该设备包括:
调制单元,用于对待发送的数据进行调制;
如权利要求1-6之一所述的装置,其对经调制得到的各种长度的数据进行DFT变换,得到相应的频域数据;
映射装置,用于将长度为Nd的频域数据映射到M个子载波上,其中M为2的幂次,且满足M>Nd;
IFFT计算装置,其对所得到的长度为M的频域数据进行IFFT变换,以获得与待发送数据对应的上行链路基带信号。
8.一种支持变长DFT的计算方法,所述方法包括:
步骤1)对待变换的原始数据序列进行重采样滤波,使得经重采样后的数据序列长度变为能支持指定基的FFT变换;
步骤2)对经重采样后得到的数据序列进行该指定基的FFT变换;
步骤3)从经FFT变换后的数据序列中抽取出与原始数据序列对应的频域数据序列;
其中,所述步骤1)包括:
步骤11)根据待变换的原始数据序列的长度N和FFT运算单元所支持的FFT的基来确定重采样后的数据序列长度Nd;其中Nd为大于N且最接近N的整数,且满足r1,r2,…rm为FFT运算单元所支持的m个指定的FFT的基,jk代表Nd可分解的第k个基的数目,k=1…m;
步骤12)根据重采样前后的数据序列长度确定重采样率,其中重采样率fs=I/D,其中I和D都为整数,且满足D·Nd=I·N;
步骤13)根据预先确定的子滤波系数的阶数确定滤波系数的阶数;其中,滤波系数的阶数Ntap=I·ntap,其中ntap为所述子滤波系数的阶数;
步骤14)根据所述重采样率和滤波系数的阶数设置滤波系数;
步骤15)基于所设置的滤波系数对待变换的原始数据序列进行重采样滤波,得到长度为Nd的数据序列。
9.根据权利要求8所述的方法,所述步骤15)之前还包括对原始数据序列进行下列预处理操作:
将原始数据序列尾部的ntap/2个数据补充到原始数据序列头部之前,其中ntap是预先确定的子滤波系数的阶数,以及
将原始数据序列头部的ntap/2个数据补充到原始数据序列尾部之后。
10.根据权利要求8所述的方法,所述步骤3)包括:
步骤31)从经FFT变换后的数据序列中的头部抽取出N/2个频域数据;
步骤32)从经FFT变换后的数据序列中的尾部抽取出N/2个频域数据;
步骤33)将所抽取的两个长度都为N/2的频域数据组合成一个长度为N的频域数据序列,其中N等于原始数据序列的长度。
11.一种LTE上行链路信号产生方法,该方法包括:
步骤1)对待发送的数据进行调制;
步骤2)采用如上述权利要求8-10之一所述的方法对经调制得到的各种长度的数据进行DFT变换,得到相应的长度为Nd频域数据;
步骤3)将长度为Nd的频域数据映射到M个子载波上,其中M为2的幂次,且满足M>Nd;
步骤4)对所得到的长度为M的频域数据进行IFFT变换,以获得与待发送数据对应的上行链路基带信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310222726.5A CN103268308B (zh) | 2013-06-06 | 2013-06-06 | 支持混合基dft的计算装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310222726.5A CN103268308B (zh) | 2013-06-06 | 2013-06-06 | 支持混合基dft的计算装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103268308A CN103268308A (zh) | 2013-08-28 |
CN103268308B true CN103268308B (zh) | 2016-06-01 |
Family
ID=49011939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310222726.5A Active CN103268308B (zh) | 2013-06-06 | 2013-06-06 | 支持混合基dft的计算装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103268308B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699515B (zh) * | 2013-12-27 | 2017-01-18 | 中国科学院计算技术研究所 | 一种fft并行处理装置和方法 |
CN106656891B (zh) * | 2015-07-21 | 2019-09-20 | 苏州简约纳电子有限公司 | Lte系统中的数据处理装置 |
CN106227698B (zh) * | 2016-07-26 | 2018-11-27 | 中国科学院自动化研究所 | 混合基dft/idft蝶形因子存储及读取方法和系统 |
CN108627575B (zh) * | 2017-03-23 | 2021-06-22 | 深圳开立生物医疗科技股份有限公司 | 分数倍抽选滤波方法和分数倍抽选滤波装置 |
CN107748354B (zh) * | 2017-08-08 | 2021-11-30 | 中国电子科技集团公司第三十八研究所 | 基于分析与综合的宽带数字波束形成装置 |
CN109242091B (zh) * | 2018-09-03 | 2022-03-22 | 郑州云海信息技术有限公司 | 图像识别方法、装置、设备及可读存储介质 |
CN112732339B (zh) * | 2021-01-20 | 2022-09-13 | 上海微波设备研究所(中国电子科技集团公司第五十一研究所) | 一种分时复用时间抽取fft实现方法、系统及介质 |
CN116660612A (zh) * | 2023-07-31 | 2023-08-29 | 青岛鼎信通讯科技有限公司 | 一种特征电流检测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101540749A (zh) * | 2009-04-22 | 2009-09-23 | 吕正德 | 可配置变换长度dft的前处理单元的实现方法及装置 |
CN101601031A (zh) * | 2006-12-22 | 2009-12-09 | 迈克纳斯公司 | 使用2n点FFT计算非2n点DFT的处理装置、方法和系统 |
CN101751375A (zh) * | 2008-12-12 | 2010-06-23 | 普天信息技术研究院有限公司 | 一种dft/idft的快速计算方法和装置 |
CN102778690A (zh) * | 2011-05-13 | 2012-11-14 | 中国石油化工股份有限公司 | 一种基于混合基离散傅氏变换的波动方程叠前偏移性能优化方法 |
-
2013
- 2013-06-06 CN CN201310222726.5A patent/CN103268308B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101601031A (zh) * | 2006-12-22 | 2009-12-09 | 迈克纳斯公司 | 使用2n点FFT计算非2n点DFT的处理装置、方法和系统 |
CN101751375A (zh) * | 2008-12-12 | 2010-06-23 | 普天信息技术研究院有限公司 | 一种dft/idft的快速计算方法和装置 |
CN101540749A (zh) * | 2009-04-22 | 2009-09-23 | 吕正德 | 可配置变换长度dft的前处理单元的实现方法及装置 |
CN102778690A (zh) * | 2011-05-13 | 2012-11-14 | 中国石油化工股份有限公司 | 一种基于混合基离散傅氏变换的波动方程叠前偏移性能优化方法 |
Non-Patent Citations (3)
Title |
---|
基于FFT变换的空间重采样宽带Root-Music算法;赵春晖等;《应用科技》;20070331;第34卷(第3期);39-43 * |
基于FPGA的高速FFT处理器的设计与实现;满峰等;《科学技术与工程》;20060930;第6卷(第17期);2657-2660,2672 * |
流水线结构FFT/IFFT处理器的设计与实现;何星等;《微电子学与计算机》;20071231;第24卷(第4期);141-143,147 * |
Also Published As
Publication number | Publication date |
---|---|
CN103268308A (zh) | 2013-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103268308B (zh) | 支持混合基dft的计算装置及方法 | |
CN105681241B (zh) | 降低fbmc-oqam信号峰均功率比的方法及装置 | |
CN107241107B (zh) | 一种数字信道化滤波器组实现方法 | |
CN101820301B (zh) | 一种长期演进系统中随机接入前导低复杂度生成方法 | |
CN102611656A (zh) | 增强的适合lte系统上行的信道估计方法及装置 | |
CN103491045B (zh) | 多载波削峰处理方法与装置 | |
CN101567701B (zh) | 一种高效多路数字下变频器系统 | |
CN102299737B (zh) | 一种多路快跳频信号处理方法 | |
CN104730478A (zh) | 正交频分复用的磁共振相控阵接收方法 | |
Varga et al. | Low complexity FBMC transceiver for FPGA implementation | |
CN103685099B (zh) | 一种对信号进行变频调整的方法和设备 | |
CN101540749B (zh) | 可配置变换长度dft的前处理单元的实现方法及装置 | |
CN102035764A (zh) | 非理想同步单载波频分多址系统的信道估计装置及方法 | |
US20200235972A1 (en) | Method and apparatus for signal processing | |
CN102158451A (zh) | 高速多载波多相内插滤波方法和装置 | |
JP7267424B2 (ja) | 信号処理方法、信号処理装置、信号処理デバイスおよびコンピュータ記憶媒体 | |
CN105791197B (zh) | 一种偏移正交多载波系统的脉冲成形滤波器 | |
US20160321212A1 (en) | Generation of High-Rate Sinusoidal Sequences | |
CN106713203B (zh) | Fbmc发送信号生成方法及装置 | |
CN115242219B (zh) | 一种基于wola结构滤波器组的并行匹配滤波方法 | |
Soni et al. | An optimized transmultiplexer using combinational window functions | |
CN103188192B (zh) | 应用于视频传感器的基带处理装置 | |
CN113252957A (zh) | 一种数字下变频的实现方法和数字示波器 | |
CN102339273B (zh) | 一种基于上采样技术的fft/ifft近似计算方法和装置 | |
CN109660266B (zh) | 一种信号处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190311 Address after: 100190 No. 10 South Road, Zhongguancun Academy of Sciences, Haidian District, Beijing Patentee after: Beijing Zhongke Polytron Technologies Inc Address before: 100190 South Road, Zhongguancun Science Academy, Haidian District, Beijing 6 Patentee before: Institute of Computing Technology, Chinese Academy of Sciences |