CN101834581A - 滤波装置、滤波方法、程序和环绕处理器 - Google Patents

滤波装置、滤波方法、程序和环绕处理器 Download PDF

Info

Publication number
CN101834581A
CN101834581A CN201010129061A CN201010129061A CN101834581A CN 101834581 A CN101834581 A CN 101834581A CN 201010129061 A CN201010129061 A CN 201010129061A CN 201010129061 A CN201010129061 A CN 201010129061A CN 101834581 A CN101834581 A CN 101834581A
Authority
CN
China
Prior art keywords
unit
fast fourier
zero padding
discrete
length
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.)
Granted
Application number
CN201010129061A
Other languages
English (en)
Other versions
CN101834581B (zh
Inventor
山本优树
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of CN101834581A publication Critical patent/CN101834581A/zh
Application granted granted Critical
Publication of CN101834581B publication Critical patent/CN101834581B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0211Frequency selective networks using specific transformation algorithms, e.g. WALSH functions, Fermat transforms, Mersenne transforms, polynomial transforms, Hilbert transforms
    • H03H17/0213Frequency domain filters using Fourier transforms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S3/00Systems employing more than two channels, e.g. quadraphonic
    • H04S3/008Systems employing more than two channels, e.g. quadraphonic in which the audio signals are in digital form, i.e. employing more than two discrete digital channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S2400/00Details of stereophonic systems covered by H04S but not provided for in its groups
    • H04S2400/01Multi-channel, i.e. more than two input channels, sound reproduction with two speakers wherein the multi-channel information is substantially preserved

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Signal Processing (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Complex Calculations (AREA)

Abstract

本发明提供了滤波装置、滤波方法、程序和环绕处理器。一种滤波装置用于在将长度为N(N为整数)的离散时间信号输入到具有长度为M(M为整数,N≥M-1)的滤波器系数的FIR滤波器的情况下获取输出,其包括:用于分割离散时间信号的分割单元;用于在离散时间信号之后填充零的第一零填充单元;用于对零填充数据执行FFT的第一快速傅立叶变换单元;用于在滤波器系数之后填充零的第二零填充单元;用于对零填充数据执行FFT的第二快速傅立叶变换单元;用于将频域数据与频域数据相乘的乘法单元;用于对乘法结果执行IFFT的反向快速傅立叶变换单元;以及用于将离散时间信号相加的加法器单元。

Description

滤波装置、滤波方法、程序和环绕处理器
技术领域
本发明涉及滤波装置、滤波方法、程序和环绕处理器(surroundprocessor)。具体讲,本发明涉及如下滤波装置等:在该滤波装置中,通过使用快速傅立叶变换、通过频域中的乘法来执行离散时间信号和滤波器系数的卷积计算。
背景技术
将考虑在如下情况获取输出的方法:长度为N(N为整数)的离散时间信号被输入到具有长度为M(M为整数)的滤波器系数的FIR(有限冲激响应)滤波器。FIR滤波器是这样的滤波器,其冲激响应的持续时间是有限的。长度为N的离散时间信号被设置为x[n](n=0,1,2,...,N-1),长度为M的滤波器系数被设置为h[m](m=0,1,2,...,M-1),并且输出被设置为y[n](n=0,1,2,...,N-1)。这里,x[n]和h[m]是实数,并且满足N≥M-1。
在离散时间信号x[n]被输入到具有滤波器系数h[m]的FIR滤波器的情况下的输出y[n]可以通过时域中的卷积计算、由如下表达式(1)获得。在下文中,时域中的卷积计算被称为“方法A”。
y [ n ] = Σ m = 0 M - 1 h [ m ] * × [ n - m ] . . . ( 1 )
除了“方法A”之外,还提出了如下方法作为“方法A”的等同物:获得x[n]和h[m]的DFT(离散傅立叶变换),将它们相乘,并且执行IDFT(反向离散傅立叶变换)。
x[n]和h[m]在N个点上的DFT分别被设置为X[k]和H[k],其中k=n=0,1,2,...,N-1。获得x[n]和h[m]在N个点上的DFT并且执行乘法的结果被设置为Y′[k]。在此情况下,Y′[k]由表达式(2)表示。
Y′[k]=X[k]*H[k]  …(2)
其中,当Y′[k]在N个点上的IDFT被设置为y′[n]时,基于循环卷积理论,y′[n]由表达式(3)表示。
y ′ [ n ] = Σ m = 0 M - 1 h [ m ] * × [ n - m ] N . . . ( 3 )
其中,通过将x[n]向右循环移位m位获得x[n-m]。就是说,虽然x[n]和h[m]通过使用DFT在频域相乘,但是反向DFT是通过将x[n]在时域向右循环移位m位获得的信号与h[m]的卷积计算,因此y[n]和y′[n]不具有等同性。
鉴于此,提出一种方法来实现时域中的卷积计算结果y[n]和结果y′[n]之间的等同性,其中结果y′[n]是通过在x[n]之后填充(M-1)个零、在频域中执行乘法、并且执行IDFT而获得的(例如,参见Alan V.Oppenheim、Ronald W.Schafer的文章“DISCRETE-TIME SIGNAL PROCESSING”,PRENTICLE HALL,548-560页)。就是说,通过执行这样的零填充处理,时域中的卷积计算可以被频域中的乘法所取代。
这里,为了减小计算成本,使用FFT(快速傅立叶变换)来代替DFT。在此情况下,在FFT处理之前,数据长度被设置为2的倍数。就是说,在使用FFT来通过频域中的乘法实现时域中的卷积计算的等同计算的情况下,在考虑到循环卷积理论的限制和执行FFT的限制的同时,计算是以如下方式执行的:在x[n]之后填充至少(M-1)个零,并且设置长度(变换长度)为2的倍数。
执行这种处理并使用FFT来通过频域中的乘法实现卷积的方法被称为“方法B”。在N和M较大时,“方法B”在计算量方面比“方法A”更先进。
图13示出滤波装置200的配置示例,其中,在变换长度被设置为L(L是2的倍数)的情况下,通过“方法B”执行x[n]和h[m]的卷积计算。滤波装置200包括零填充单元201、快速傅立叶变换单元202、零填充单元203、快速傅立叶变换单元204、乘法单元205和反向快速傅立叶变换单元206。
零填充单元201通过在长度为N的离散时间信号x[n](0≤n≤N-1)之后填充(L-N)个零来获得零填充数据x′[n](0≤n≤L-1)。快速傅立叶变换单元202对零填充单元201所获得的零填充数据x′[n]执行FFT(快速傅立叶变换)以获得频域数据X[k](0≤k≤L-1)。
零填充单元203通过在长度为M的滤波器系数h[m](0≤m≤M-1)之后填充(L-M)个零来获得零填充数据h′[n](0≤n≤L-1)。快速傅立叶变换单元204对零填充单元203所获得的零填充数据h′[n]执行FFT(快速傅立叶变换)以获得频域数据H[k](0≤k≤L-1)。
乘法单元205将快速傅立叶变换单元202获得的频域数据X[k]与快速傅立叶变换单元204获得的频域数据H[k]相乘,以获得乘法结果Y[k](0≤k≤L-1)。然后,反向快速傅立叶变换单元206对乘法单元205所获得的乘法结果Y[k]执行IFFT(反向快速傅立叶变换)以获得输出离散时间信号y[n](0≤n≤L-1)。
将描述图13的滤波装置200的操作。长度为N的滤波目标离散时间信号x[n]被提供给零填充单元201。在零填充单元201中,(L-N)个零被填充在长度为N的离散时间信号x[n]之后,并且获得长度(变换长度)为L的零填充数据x′[n]。零填充数据x′[n]被提供到快速傅立叶变换单元202。在快速傅立叶变换单元202中,对零填充数据x′[n]执行FFT(快速傅立叶变换),以获得频域数据X[k](0≤k≤L-1)。
而且,长度为M的滤波器系数h[m]被提供到零填充单元203。在零填充单元203中,(L-M)个零被填充在长度为M的滤波器系数h[m]之后,并且获得长度(变换长度)为L的零填充数据h′[n]。零填充数据h′[n]被提供到快速傅立叶变换单元204。在快速傅立叶变换单元204中,对零填充数据h′[n]执行FFT(快速傅立叶变换),以获得频域数据H[k]。
由快速傅立叶变换单元202获得的频域数据X[k]与由快速傅立叶变换单元204获得的频域数据H[k]被提供到乘法单元205。在乘法单元205中,频域数据X[k]与频域数据H[k]相乘,并且获得乘法结果Y[k]。乘法结果Y[k]被提供到反向快速傅立叶变换单元206。在反向快速傅立叶变换单元206中,对乘法结果Y[k]执行IFFT(反向快速傅立叶变换),并且获得输出离散时间信号y[n]。
发明内容
如上所述,根据“方法B”,为了执行与时域中的卷积计算等同的计算,以在长度为N的离散时间信号x[n]之后填充至少(M-1)个零的方式来执行计算,此外,为了执行FFT,长度(变换长度)被设置为具有2的倍数。
这里,等于或大于N的最小的2的倍数被设置为P。图14A示出(N+M-1)的值稍小于P的情况。而且,图14B示出(N+M-1)的值稍大于P的情况。以这种方式,在(N+M-1)的值稍大于P的情况下,与(N+M-1)的值稍小于P的情况相比,变换长度相差P,并且计算量和存储器使用量也增大了大约两倍。
希望能够减小在利用快速傅立叶变换、通过频域中的乘法来执行离散时间信号与滤波器系数的卷积计算的情况下的计算量和存储器使用量。
本发明实施例的概念涉及一种滤波装置,该滤波装置被配置用于在将长度为N(N为整数)的离散时间信号输入到具有长度为M(M为整数,N≥M-1)的滤波器系数的FIR滤波器的情况下获取输出,所述滤波装置包括:
分割单元,该分割单元被配置用于将所述长度为N的离散时间信号分割成多个信号并获得多个离散时间信号;
第一零填充单元,该第一零填充单元被配置用于在通过所述分割单元获得的各个离散时间信号之后填充适当数目的零,并且获得多个长度为2的倍数的零填充数据;
第一快速傅立叶变换单元,该第一快速傅立叶变换单元被配置用于对通过所述第一零填充单元获得的各个零填充数据执行快速傅立叶变换,并且获得多个频域数据;
第二零填充单元,该第二零填充单元被配置用于在所述长度为M的滤波器系数之后填充零,并且获得多个零填充数据,这些零填充数据的长度与通过所述第一零填充单元获得的各个零填充数据的长度相对应;
第二快速傅立叶变换单元,该第二快速傅立叶变换单元被配置用于对通过所述第二零填充单元获得的各个零填充数据执行快速傅立叶变换,并且获得多个频域数据;
乘法单元,该乘法单元被配置用于将通过所述第一快速傅立叶变换单元获得的各个频域数据与通过所述第二快速傅立叶变换单元获得的各个频域数据相乘,并且获得多个乘法结果;
反向快速傅立叶变换单元,该反向快速傅立叶变换单元被配置用于对通过所述乘法单元获得的各个乘法结果执行反向快速傅立叶变换,并且获得多个离散时间信号;以及
加法器单元,该加法器单元被配置用于将通过所述反向快速傅立叶变换单元获得的各个离散时间信号相加,并且获得输出离散时间信号。
根据本发明的实施例,长度为N的离散时间信号被分成多个信号,并且获得多个离散时间信号。然后,通过频域中的乘法、利用快速傅立叶变换来执行各个离散时间信号和滤波器系数的卷积计算。
例如,在分割单元中,长度为N的离散时间信号被一分为二,并且获得两个离散时间信号。然后,在第一零填充单元中,当等于或大于N(N+M-1)的最小的2的倍数被设置为L时,获得长度为L/2的零填充数据和长度等于或小于L/2的零填充数据。
而且,例如,当等于或大于N的最小的2的倍数被设置为P时,N和M满足M-1≤(P-N)/2,并且在分割单元中,长度为N的离散时间信号被分割成长度为(P/2-(M-1))的离散时间信号和长度为(N-P/2+(M-1))的离散时间信号。而且,例如,当等于或大于N的最小的2的倍数被设置为P时,N和M满足P-N<M-1≤P-N/2,并且在分割单元中,长度为N的离散时间信号被分割成长度为(P-(M-1))的离散时间信号和长度为(N-P+(M-1))的离散时间信号。
当在将长度为N(N为整数)的离散时间信号输入到具有长度为M(M为整数,N≥M-1)的滤波器系数的FIR滤波器的情况下获取输出时,如上所述,长度为N的离散时间信号被分成多个离散时间信号以进行处理。因此,与现有技术的方法相比,可以减小计算量和存储器使用量。
根据本发明的实施例,当在将长度为N(N为整数)的离散时间信号输入到具有长度为M(M为整数,N≥M-1)的滤波器系数的FIR滤波器的情况下获取输出时,与现有技术的方法相比,可以减小计算量和存储器使用量。
附图说明
图1是根据本发明实施例的环绕处理器的配置示例的框图;
图2是构成环绕处理器的滤波单元的配置示例的框图(在基于N+M-1≤P执行二路分割的情况下);
图3A到3C是用于描述长度为N的离散时间信号被分割成两个离散时间信号并且执行滤波处理的状态的示意图;
图4是构成环绕处理器的滤波单元的另一配置示例的框图(在基于N+M-1>P执行二路分割的情况下);
图5A到5C是用于描述长度为N的离散时间信号x[n]被分割成两个离散时间信号并且执行滤波处理的状态的示意图;
图6是示出在M-1从1改变到N(N=1472)的情况下,关于“方法A”(A_METHOD)、“方法B”(B_METHOD)和“建议方法”(PROPOSAL_METHOD)中的加法次数的比较的图形表示;
图7是示出在M-1从1改变到N(N=1472)的情况下,关于“方法A”(A_METHOD)、“方法B”(B_METHOD)和“建议方法”(PROPOSAL_METHOD)中的乘法次数的比较的图形表示;
图8是构成环绕处理器的另一滤波单元的配置示例的框图(在基于N+M-1≤P执行三路分割的情况下);
图9A到9C是用于描述长度为N的离散时间信号x[n]被分割成三个离散时间信号并且执行滤波处理的状态的示意图;
图10是构成环绕处理器的另一滤波单元的配置示例的框图(在基于N+M-1>P执行三路分割的情况下);
图11A到11C是用于描述长度为N的离散时间信号x[n]被分割成三个离散时间信号并且执行滤波处理的状态的示意图;
图12是一计算机装置的配置示例的框图,在该计算机装置中,通过软件来执行滤波处理(离散时间信号和滤波器系数的卷积计算);
图13是现有技术中的滤波装置的配置示例的框图;以及
图14A-14B是用于描述在通过频域中的乘法、使用快速傅立叶变换来执行离散时间信号和滤波器系数的卷积计算的情况下的变换长度的示意图。
具体实施方式
在下文中,将描述用于实施本发明的实施例(以下将称为“实施例”)。
应该注意,描述按以下顺序进行:
1.实施例
2.修改示例
<1.实施例>
[环绕处理器的配置示例]
图1示出根据本发明实施例的环绕处理器10的配置示例。环绕处理器10将5.1声道的多声道音频下混频成2声道的立体声音频。
环绕处理器10包括被配置用于获取左音频信号分量的滤波单元11-1到11-6、被配置用于获取右音频信号分量的滤波单元12-1到12-6、加法器单元13和加法器单元14。
5.1声道的多声道音频信号由左前信号Sig_L、右前信号Sig_R、前信号Sig_C、低音输出信号Sig_LFE、左后信号Sig_RL和右后信号Sig_RR构成。而且,2声道的立体声音频信号由左音频信号Sig_L′和右音频信号Sig_R′构成。
滤波单元11-1(Filter_L_L)从左前信号Sig_L提取左音频信号分量。滤波单元11-2(Filter_L_R)从右前信号Sig_R提取左音频信号分量。滤波单元11-3(Filter_L_C)从前信号Sig_C提取左音频信号分量。
滤波单元11-4(Filter_L_LFE)从低音输出信号Sig_LFE提取左音频信号分量。滤波单元11-5(Filter_L_RL)从左后信号Sig_RL提取左音频信号分量。滤波单元11-6(Filter_L_RR)从右后信号Sig_RR提取左音频信号分量。然后,加法器单元13将滤波单元11-1到11-6提取的各个左音频信号分量相加,以获得左音频信号Sig_L′。
而且,滤波单元12-1(Filter_R_L)从左前信号Sig_L提取右音频信号分量。滤波单元12-2(Filter_R_R)从右前信号Sig_R提取右音频信号分量。滤波单元12-3(Filter_R_C)从前信号Sig_C提取右音频信号分量。
滤波单元12-4(Filter_R_LFE)从低音输出信号Sig_LFE提取右音频信号分量。滤波单元12-5(Filter_R_RL)从左后信号Sig_RL提取右音频信号分量。滤波单元12-6(Filter_R_RR)从右后信号Sig_RR提取右音频信号分量。然后,加法器单元14将滤波单元12-1到12-6提取的各个右音频信号分量相加,以获得右音频信号Sig_R′。
[滤波单元的配置示例]
图2和4示出用作上述滤波单元11-1到11-6和12-1到12-6的滤波单元100A和100B的配置示例。滤波单元100A和100B在如下情况获得输出:长度为N(N为整数)的离散时间信号x[n](离散时间音频信号)(0≤n≤N-1)被输入到具有长度为M(M为整数)的滤波器系数h[m](0≤m≤M-1)的FIR滤波器。滤波单元100A和100B通过频域中的乘法、使用快速傅立叶变换来执行离散时间信号x[n]和滤波器系数h[m]的卷积计算。这里,x[n]和h[m]是实数,并且满足N≥M-1。
在图2的滤波单元100A中,当等于或大于N的最小的2的倍数被设置为P时,N和M被配置为满足M-1≤(P-N)/2。在滤波单元100A中,长度为N的离散时间信号x[n]被分割成长度为(P/2-(M-1))的离散时间信号x1[n]和长度为(N-P/2+(M-1))的离散时间信号x2[n]以进行处理。在图2的滤波单元100A中,如上所述,长度为N的离散时间信号x[n]被分割成两个离散时间信号x1[n]和x2[n]以进行处理,因此,与现有技术的“方法B”相比,可以减小计算量和存储器使用量。该原因将在下文描述。
而且,在图4的滤波单元100B中,当等于或大于N的最小的2的倍数被设置为P时,N和M被配置为满足P-N<M-1≤P-N/2。在滤波单元100B中,长度为N的离散时间信号x[n]被分割成长度为(P-(M-1))的离散时间信号x1[n]和长度为(N-P+(M-1))的离散时间信号x2[n]以进行处理。在图4的滤波单元100B中,如上所述,长度为N的离散时间信号x[n]被分割成两个离散时间信号x1[n]和x2[n]以进行处理,因此,与现有技术的“方法B”相比,可以减小计算量和存储器使用量。该原因将在下文描述。
首先,将描述图2的滤波单元100A。图2的滤波单元100A是在N+M-1≤P的情况下,当等于或大于N的最小的2的倍数被设置为P(如图3A所示)时被应用的。在此情况下,由于等于或大于N+M-1的最小的2的倍数被是P,因此在根据“方法B”执行处理时的变换长度为P。
滤波单元100A包括二路分割单元101A、零填充单元102A、快速傅立叶变换单元103A、零填充单元104A和快速傅立叶变换单元105A。而且,滤波单元100A具有零填充单元106A、快速傅立叶变换单元107A、零填充单元108A和快速傅立叶变换单元109A。此外,滤波单元100A具有乘法单元110A、反向快速傅立叶变换单元111A、乘法单元112A、反向快速傅立叶变换单元113A和加法器单元114A。
二路分割单元101A将长度为N的离散时间信号x[n](0≤n≤N-1)一分为二,并获得两个离散时间信号x1[n](0≤n≤N1-1)和x2[n](0≤n≤N2-1)。这里,离散时间信号x1[n]的长度N1被设置为P/2-(M-1),如图3B所示。而且,离散时间信号x2[n]的长度N2被设置为N-P/2+(M-1),如图3A所示。
零填充单元102A在长度为N1的离散时间信号x1[n]之后填充(P/2-N1)个(即(M-1)个)零,以获得长度为P/2的零填充数据x1′[n](0≤n≤P/2-1)。快速傅立叶变换单元103A对零填充单元102A获得的零填充数据x1′[n]执行FFT(快速傅立叶变换),以获得频域数据X1[k](0≤k≤P/2-1)。
零填充单元104A在长度为N2的离散时间信号x2[n]之后填充(Q-N2)个(即(Q-(N-P/2+(M-1)))个)零,以获得长度为Q的零填充数据x2′[n](0≤n≤Q-1)。这里,Q是等于或大于N2+M-1的最小的2的倍数。快速傅立叶变换单元105A对零填充单元104A获得的零填充数据x2′[n]执行FFT(快速傅立叶变换),以获得频域数据X2[k](0≤k≤Q-1)。
零填充单元106A在长度为M的滤波器系数h[m](0≤m≤M-1)之后填充(P/2-M)个零,以获得长度与上述零填充数据x1′[n](0≤n≤P/2-1)相对应的零填充数据h1′[n](0≤n≤P/2-1)。快速傅立叶变换单元107A对零填充单元106A获得的零填充数据h1′[n]执行FFT(快速傅立叶变换),以获得频域数据H1[k](0≤k≤P/2-1)。
零填充单元108A在长度为M的滤波器系数h[m](0≤m≤M-1)之后填充(Q-M)个零,以获得长度与上述零填充数据x2′[n](0≤n≤Q-1)相对应的零填充数据h2′[n](0≤n≤Q-1)。快速傅立叶变换单元109A对零填充单元108A获得的零填充数据h2′[n]执行FFT(快速傅立叶变换),以获得频域数据H2[k](0≤k≤Q-1)。
乘法单元110A将快速傅立叶变换单元103A获得的频域数据X1[k]与快速傅立叶变换单元107A获得的频域数据H1[k]相乘,以获得乘法结果Y1[k](0≤k≤P/2-1)。然后,反向快速傅立叶变换单元111A对乘法单元110A获得的乘法结果Y1[k]执行IFFT(反向快速傅立叶变换),以获得离散时间信号y1[n](0≤k≤P/2-1)。
乘法单元112A将快速傅立叶变换单元105A获得的频域数据X2[k]与快速傅立叶变换单元109A获得的频域数据H2[k]相乘,以获得乘法结果Y2[k](0≤k≤Q-1)。然后,反向快速傅立叶变换单元113A对乘法单元112A获得的乘法结果Y2[k]执行IFFT(反向快速傅立叶变换),以获得离散时间信号y2[n](0≤k≤Q-1)。
加法器单元114A将反向快速傅立叶变换单元111A获得的离散时间信号y1[n]与反向快速傅立叶变换单元113A获得的离散时间信号y2[n]相加,以获得输出离散时间信号y[n]。该输出离散时间信号y[n]成为离散时间信号x[n]和滤波器系数h[m]的卷积计算结果。应该注意,加法器单元114A通过重叠相加方法(参见上述文献“DISCRETE-TIME SIGNALPROCESSING”)获得离散时间信号y[n],以确保与不进行分割而执行离散时间信号x[n]和滤波器系数h[m]的卷积计算的情况之间的一致性。
将描述图2的滤波单元100A的操作。长度为N的滤波目标离散时间信号x[n](离散时间音频信号)被提供到二路分割单元101A。在二路分割单元101A中,长度为N的离散时间信号x[n](0≤n≤N-1)被一分为二。然后,从二路分割单元101A获得长度为N1=P/2-(M-1)的离散时间信号x1[n](0≤n≤N1-1)。而且,从二路分割单元101A还获得长度为N2=N-P/2+(M-1)的离散时间信号x2[n](0≤n≤N2-1)。
由二路分割单元101A获得的离散时间信号x1[n]被提供到零填充单元102A。在零填充单元102A中,(M-1)个零被填充到长度为N1的离散时间信号x1[n]之后,并且获得长度(变换长度)为P/2的零填充数据x1′[n]。零填充数据x1′[n]被提供到快速傅立叶变换单元103A。在快速傅立叶变换单元103A中,对零填充数据x1′[n]执行FFT(快速傅立叶变换),并且获得频域数据X1[k](0≤k≤P/2-1)。
而且,由二路分割单元101A获得的离散时间信号x2[n]被提供到零填充单元104A。在零填充单元104A中,Q-(N-P/2+(M-1))个零被填充到长度为N2的离散时间信号x2[n]之后,并且获得长度(变换长度)为Q的零填充数据x2′[n]。零填充数据x2′[n]被提供到快速傅立叶变换单元105A。在快速傅立叶变换单元105A中,对零填充数据x2′[n]执行FFT(快速傅立叶变换),并且获得频域数据X2[k](0≤k≤Q-1)。
而且,长度为M的滤波器系数h[m]被提供到零填充单元106A。在零填充单元106A中,(P/2-M)个零被填充到度为M的滤波器系数h[m]之后,并且获得长度(变换长度)为P/2的零填充数据h1′[n]。零填充数据h1′[n]被提供到快速傅立叶变换单元107A。在快速傅立叶变换单元107A中,对零填充数据h1′[n]执行FFT(快速傅立叶变换),并且获得频域数据H1[k]。
而且,长度为M的滤波器系数h[m]被提供到零填充单元108A。在零填充单元108A中,(Q-M)个零被填充到度为M的滤波器系数h[m]之后,并且获得长度(变换长度)为Q的零填充数据h2′[n]。零填充数据h2′[n]被提供到快速傅立叶变换单元109A。在快速傅立叶变换单元109A中,对零填充数据h2′[n]执行FFT(快速傅立叶变换),并且获得频域数据H2[k]。
由快速傅立叶变换单元103A获得的频域数据X1[k]和由快速傅立叶变换单元107A获得的频域数据H1[k]被提供到乘法单元110A。在乘法单元110A中,频域数据X1[k]与频域数据H1[k]相乘,并且获得乘法结果Y1[k]。乘法结果Y1[k]被提供到反向快速傅立叶变换单元111A。在反向快速傅立叶变换单元111A中,对乘法结果Y1[k]执行IFFT(反向快速傅立叶变换),并且获得离散时间信号y1[n]。
而且,由快速傅立叶变换单元105A获得的频域数据X2[k]和由快速傅立叶变换单元109A获得的频域数据H2[k]被提供到乘法单元112A。在乘法单元112A中,频域数据X2[k]与频域数据H2[k]相乘,并且获得乘法结果Y2[k]。乘法结果Y2[k]被提供到反向快速傅立叶变换单元113A。在反向快速傅立叶变换单元113A中,对乘法结果Y2[k]执行IFFT(反向快速傅立叶变换),并且获得离散时间信号y2[n]。
由反向快速傅立叶变换单元111A获得的离散时间信号y1[n]和由反向快速傅立叶变换单元113A获得的离散时间信号y2[n]被提供到加法器单元114A。在加法器单元114A中,通过重叠相加方法,离散时间信号y1[n]和y2[n]被相加,并且获得输出离散时间信号y[n]。
接下来,将描述图4的滤波单元100B。图4的滤波单元100B是在N+M-1>P的情况下,当等于或大于N的最小的2的倍数被设置为P(如图5A所示)时被应用的。在此情况下,由于等于或大于N+M-1的最小的2的倍数是2P,因此在根据“方法B”执行处理时的变换长度为2P。
滤波单元100B包括二路分割单元101B、零填充单元102B、快速傅立叶变换单元103B、零填充单元104B和快速傅立叶变换单元105B。而且,滤波单元100B包括零填充单元106B、快速傅立叶变换单元107B、零填充单元108B和快速傅立叶变换单元109B。此外,滤波单元100B包括乘法单元110B、反向快速傅立叶变换单元111B、乘法单元112B、反向快速傅立叶变换单元113B和加法器单元114B。
二路分割单元101B将长度为N的离散时间信号x[n](0≤n≤N-1)一分为二,并获得两个离散时间信号x1[n](0≤n≤N1-1)和x2[n](0≤n≤N2-1)。这里,离散时间信号x1[n]的长度N1被设置为P-(M-1),如图5B所示。而且,离散时间信号x2[n]的长度N2被设置为N-P+(M-1),如图5C所示。
零填充单元102B在长度为N1的离散时间信号x1[n]之后填充(P-N1)个(即(M-1)个)零,以获得长度为P的零填充数据x1′[n](0≤n≤P-1)。快速傅立叶变换单元103B对零填充单元102B获得的零填充数据x1′[n]执行FFT(快速傅立叶变换),以获得频域数据X1[k](0≤k≤P-1)。
零填充单元104B在长度为N2的离散时间信号x2[n]之后填充(R-N2)个(即(R-(N-P+(M-1)))个)零,以获得长度为R的零填充数据x2′[n](0≤n≤R-1)。这里,R是等于或大于N2+M-1的最小的2的倍数。快速傅立叶变换单元105B对零填充单元104B获得的零填充数据x2′[n]执行FFT(快速傅立叶变换),以获得频域数据X2[k](0≤k≤R-1)。
零填充单元106B在长度为M的滤波器系数h[m](0≤m≤M-1)之后填充(P-M)个零,以获得长度与上述零填充数据x1′[n](0≤n≤P-1)相对应的零填充数据h1′[n](0≤n≤P-1)。快速傅立叶变换单元107B对零填充单元106B获得的零填充数据h1′[n]执行FFT(快速傅立叶变换),以获得频域数据H1[k](0≤k≤P-1)。
零填充单元108B在长度为M的滤波器系数h[m](0≤m≤M-1)之后填充(R-M)个零,以获得长度与上述零填充数据x2′[n](0≤n≤R-1)相对应的零填充数据h2′[n](0≤n≤R-1)。快速傅立叶变换单元109B对零填充单元108B获得的零填充数据h2′[n]执行FFT(快速傅立叶变换),以获得频域数据H2[k](0≤k≤R-1)。
乘法单元110B将快速傅立叶变换单元103B获得的频域数据X1[k]与快速傅立叶变换单元107B获得的频域数据H1[k]相乘,以获得乘法结果Y1[k](0≤k≤P-1)。然后,反向快速傅立叶变换单元111B对乘法单元110B获得的乘法结果Y1[k]执行IFFT(反向快速傅立叶变换),以获得离散时间信号y1[n](0≤k≤P-1)。
乘法单元112B将快速傅立叶变换单元105B获得的频域数据X2[k]与快速傅立叶变换单元109B获得的频域数据H2[k]相乘,以获得乘法结果Y2[k](0≤k≤R-1)。然后,反向快速傅立叶变换单元113B对乘法单元112B获得的乘法结果Y2[k]执行IFFT(反向快速傅立叶变换),以获得离散时间信号y2[n](0≤k≤P-1)。
加法器单元114B将反向快速傅立叶变换单元111B获得的离散时间信号y1[n]与反向快速傅立叶变换单元113B获得的离散时间信号y2[n]相加,以获得输出离散时间信号y[n]。该输出离散时间信号y[n]成为离散时间信号x[n]和滤波器系数h[m]的卷积计算结果。应该注意,加法器单元114B通过重叠相加方法(参见上述文献“DISCRETE-TIME SIGNALPROCESSING”)获得离散时间信号y[n],以确保与不进行分割而执行离散时间信号x[n]和滤波器系数h[m]的卷积计算的情况之间的一致性。
将描述图4的滤波单元100B的操作。长度为N的滤波目标离散时间信号x[n](离散时间音频信号)被提供到二路分割单元101B。在二路分剖单元101B中,长度为N的离散时间信号x[n](0≤n≤N-1)被一分为二。然后,从二路分割单元101B获得长度为N1=P-(M-1)的离散时间信号x1[n](0≤n≤N1-1)。而且,从二路分割单元101B还获得长度为N2=N-P+(M-1)的离散时间信号x2[n](0≤n≤N2-1)。
由二路分割单元101B获得的离散时间信号x1[n]被提供到零填充单元102B。在零填充单元102B中,(M-1)个零被填充到长度为N1的离散时间信号x1[n]之后,并且获得长度(变换长度)为P的零填充数据x1′[n]。零填充数据x1′[n]被提供到快速傅立叶变换单元103B。在快速傅立叶变换单元103B中,对零填充数据x1′[n]执行FFT(快速傅立叶变换),并且获得频域数据X1[k](0≤k≤P-1)。
而且,由二路分割单元101B获得的离散时间信号x2[n]被提供到零填充单元104B。在零填充单元104B中,R-(N-P+(M-1))个零被填充到长度为N2的离散时间信号x2[n]之后,并且获得长度(变换长度)为R的零填充数据x2′[n]。零填充数据x2′[n]被提供到快速傅立叶变换单元105B。在快速傅立叶变换单元105B中,对零填充数据x2′[n]执行FFT(快速傅立叶变换),并且获得频域数据X2[k](0≤k≤P-1)。
而且,长度为M的滤波器系数h[m]被提供到零填充单元106B。在零填充单元106B中,(P-M)个零被填充到度为M的滤波器系数h[m]之后,并且获得长度(变换长度)为P的零填充数据h1′[n]。零填充数据h1′[n]被提供到快速傅立叶变换单元107B。在快速傅立叶变换单元107B中,对零填充数据h1′[n]执行FFT(快速傅立叶变换),并且获得频域数据H1[k]。
而且,长度为M的滤波器系数h[m]被提供到零填充单元108B。在零填充单元108B中,(R-M)个零被填充到度为M的滤波器系数h[m]之后,并且获得长度(变换长度)为R的零填充数据h2′[n]。零填充数据h2′[n]被提供到快速傅立叶变换单元109B。在快速傅立叶变换单元109B中,对零填充数据h2′[n]执行FFT(快速傅立叶变换),并且获得频域数据H2[k]。
由快速傅立叶变换单元103B获得的频域数据X1[k]和由快速傅立叶变换单元107B获得的频域数据H1[k]被提供到乘法单元110B。在乘法单元110B中,频域数据X1[k]与频域数据H1[k]相乘,并且获得乘法结果Y1[k]。乘法结果Y1[k]被提供到反向快速傅立叶变换单元111B。在反向快速傅立叶变换单元111B中,对乘法结果Y1[k]执行IFFT(反向快速傅立叶变换),并且获得离散时间信号y1[n]。
而且,由快速傅立叶变换单元105B获得的频域数据X2[k]和由快速傅立叶变换单元109B获得的频域数据H2[k]被提供到乘法单元112B。在乘法单元112B中,频域数据X2[k]与频域数据H2[k]相乘,并且获得乘法结果Y2[k]。乘法结果Y2[k]被提供到反向快速傅立叶变换单元113B。在反向快速傅立叶变换单元113B中,对乘法结果Y2[k]执行IFFT(反向快速傅立叶变换),并且获得离散时间信号y2[n]。
由反向快速傅立叶变换单元111B获得的离散时间信号y1[n]和由反向快速傅立叶变换单元113B获得的离散时间信号y2[n]被提供到加法器单元114B。在加法器单元114B中,通过重叠相加方法,离散时间信号y1[n]和y2[n]被相加,并且获得输出离散时间信号y[n]。
[减小计算量和存储器使用量的原因]
将描述在图2和4的滤波单元100A和100B中减小了计算量和存储器使用量的原因。
图2的滤波单元100A是在如图3A所示满足N+M-1≤P的情况下被应用的。然后,如图3B和3C所示,长度为N的离散时间信号x[n]被分成两个信号以进行处理,包括长度为N1=P/2-(M-1)的离散时间信号x1[n]和长度为N2=N-P/2+(M-1)的离散时间信号x2[n]。这里,在N1≥N2的情况下,即,当M-1≤(P-N)/2成立时,x2[n]的变换长度(2的倍数)等于或小于x1[n]的变换长度P/2。
在图2的滤波单元100A中,如上所述,N和M被配置为满足M-1≤P-N。因此,x2[n]的变换长度(2的倍数)等于或小于x1[n]的变换长度P/2。与根据“方法B”执行处理的情况相比,可以减小计算量和存储器使用量,因为在“方法B”中,长度为N的离散时间信号x[n]没有被分割,并且变换长度为P。
应该注意,在N和M不满足M-1≤(P-N)/2但是N和M满足(P-N)/2<M-1≤P-N的情况下,x2[n]的变换长度Q没有被设置为等于或小于x1[n]的变换长度P/2,并且Q=P成立。在此情况下,与根据“方法B”执行处理的情况相比,在计算量和存储器使用量方面较差。
而且,图4的滤波单元100B是在如图5A所示满足N+M-1>P的情况下被应用的。然后,如图5B和5C所示,长度为N的离散时间信号x[n]被分成两个信号以进行处理,包括长度为N1=P-(M-1)的离散时间信号x1[n]和长度为N2=N-P+(M-1)的离散时间信号x2[n]。这里,在N1≥N2的情况下,即,当P-N<M-1≤P-N/2成立时,x2[n]的变换长度R(2的倍数)等于或小于x1[n]的变换长度P。
在图4的滤波单元100B中,如上所述,N和M被配置为满足P-N<M-1≤P-N/2。因此,x2[n]的变换长度R(2的倍数)等于或小于x1[n]的变换长度P。与根据“方法B”执行处理的情况相比,可以减小计算量和存储器使用量,因为在“方法B”中,长度为N的离散时间信号x[n]没有被分割,并且变换长度为P。
应该注意,在N和M不满足P-N<M-1≤P-N/2但是N和M满足P-N/2<M-1≤N的情况下,x2[n]的变换长度R没有被设置为等于或小于x1[n]的变换长度P,并且R=2P成立。在此情况下,与根据“方法B”执行处理的情况相比,在计算量和存储器使用量方面较差。
[在计算量和存储器使用量方面的比较]
这里,在“方法A”、“方法B”和如图2和4所示的分割x[n]的方法(下文中将称之为“建议方法”)之间比较计算量和存储器使用量。
“计算量的比较”
<比较条件>
在该比较中,简单地比较加法和乘法的次数。
对于在时域中进行卷积计算的“方法A”,仅仅关于循环中的乘积加和(product-sum)运算部分的加法和乘法的次数进行评估。
对于FFT的计算量,蝶式计算(butterfly computation)单元的复指数函数(参见表达式(4))的余弦值和正弦值被保存为数据,并且仅仅关于蝶式计算单元的加法和加法结果的乘法与该复指数函数来评估加法和乘法的次数。
W N K = eqp ( - j 2 &pi;k N ) = cos ( 2 &pi;k N ) - j sin ( 2 &pi;k N ) . . . ( 4 )
应该注意,P、Q和R可以通过以下表达式来计算。
P=2**int(log2(N*2-1))
Q=2**int(log2((N+2*M-2-P/2)*2-1)
R=2**int(log2((N+2*M-2-P)*2-1)
但是,应该注意,int(x)表示去掉了分数部分的整数x,并且log2(x)表示以2为底的对数。
<计算量的计算结果>
关于“方法A”、“方法B”和“建议方法”的计算结果被示出如下。
“方法A”
在M-1≤N的整个范围内,以下表达式(5)和(6)表示结果。
加法:N*M...(5)
乘法:N*M...(6)
“方法B”
在M-1≤P-N的情况下,以下表达式(7)和(8)表示结果。
加法:12*P*log2(P)+2*P...(7)
乘法:6*P*log2(P)+4*P...(8)
在P-N<M-1≤N的情况下,以下表达式(9)和(10)表示结果。
加法:24*P*log2(P)+28*P...(9)
乘法:12*P*log2(P)+20*P...(10)
“建议方法”
A.在满足M-1≤(P-N)/2并且x[n]被一分为二的情况下(图2的滤波单元100A的情况下),以下表达式(11)和(12)表示结果。
加法:6*P*log2(P)-5*P+12*Q*log2(Q)+2*Q+M-1...(11)
乘法:3*P*log2(P)-P+6*Q*log2(Q)+4*Q...(12)
B.在满足P-N<M-1≤P-N/2并且x[n]被一分为二的情况下(图4的滤波单元100B的情况下),以下表达式(13)和(14)表示结果。
加法:12*P*log2(P)+2*P+12*R*log2(R)+2*R+M-1...(13)
乘法:6*P*log2(P)+4*P+6*R*log2(R)+4*R...(14)
<方法B和建议方法的计算量之差>
A.在满足M-1≤(P-N)/2的情况下(图2的滤波单元100A的情况下),当设置Q=P/2时,通过从根据方法B的计算量减去根据建议方法的计算量而得到的最小值由以下表达式(15)和(16)表示。
加法:12*P-M+1...(15)
乘法:6*P...(16)
因此,在此情况下,该差值在加法和乘法两方面都是正值,并且可以理解,建议方法在计算量方面比方法B更优越。
B.在P-N<M-1≤P-N/2的情况下(图4的滤波单元100B的情况下),当设置R=P时,通过从根据方法B的计算量减去根据建议方法的计算量而得到的最小值由以下表达式(17)和(18)表示。
加法:24*P-M+1...(17)
乘法:12*P...(18)
因此,在此情况下,该差值在加法和乘法两方面部是正值,并且可以理解,建议方法在计算量方面比方法B更优越。
图6和7的图形表示示出:当N=1472时,在M-1从1改变到N的情况下,将根据“方法A”(A_METHOD)、“方法B”(B_METHOD)和“建议方法”(PROPOSAL_METHOD)的加法次数和乘法次数相比较。但是,应该注意,图中对应于PROPOSAL_METHOD的直线对应于在除了M-1≤(P-N)/2和P-N<M-1≤P-N/2之外的范围内、根据方法B的计算量。
从图6和7的图形表示可以理解,在M-1≤(P-N)/2和P-N<M-1≤P-N/2的范围内,根据建议方法(PROPOSAL_METHOD)的加法次数和乘法次数两者都小于方法B(B_METHOD)的情况。因此,根据建议方法,可以按照比方法B更小的计算量来进行计算。
<使用存储器的比较>
由于根据方法B和建议方法存在FFT处理值以复数形式保存、执行诸如零填充之类的处理等限制,因此存储器使用量比方法A要大。在方法B和建议方法的比较中,当用于方法B的存储器量被设置为1时,用于建议方法的存储器量如下所述。
A.在M-1≤(P-N)/2的情况下(图2的滤波单元100A的情况下),建议方法所使用的存储器量由以下表达式(19)表示。
(P+2*Q)/2*P...(19)
根据这一定义,当Q≤P/2成立时,用于建议方法的存储器量与用于方法B的存储器量相比没有增大。这里,P和Q是与上面定义相同的变量。
B.在P-N<M-1≤P-N/2的情况下(图4的滤波单元100B的情况下),建议方法所使用的存储器量由以下表达式(20)表示。
(P+R)/2*P...(20)
根据这一定义,当R≤P成立时,用于建议方法的存储器量与用于方法B的存储器量相比没有增大。这里,P和Q是与上面定义相同的变量。
如上所述,在图1所示的环绕处理器10中,各个滤波单元被配置为图2所示的滤波单元100A或图4所示的滤波单元100B。出于这个原因,与被配置用于执行根据现有技术的方法B的计算处理的滤波单元相比,可以减小计算量和存储器使用量。
在图1所示的环绕处理器10中,当各个滤波单元例如具有N=1472并且M=700时,根据“方法A”、“方法B”和“建议方法”的计算量如下。因此,通过使用建议方法,与现有技术的方法相比,可以执行具有更小计算量的卷积计算。
“方法A”
·加法:12364800
·乘法:12364800
“方法B”
·加法:7176192
·乘法:3735552
“建议方法”
·加法:4800708
·乘法:2506752
应该注意,根据上述实施例,图1所示的环绕处理器10的各个滤波单元被配置为图2所示的滤波单元100A或图4所示的滤波单元100B。
<2.修改示例>
图2所示的滤波单元100A是如下情况的示例:如上所述,当等于或大于N的最小的2的倍数被设置为P,满足N+M-1≤P并且M-1≤(P-N)/2成立时。但是,即使在(P-N)/2<M-1≤P-N的情况下,通过将长度为N的离散时间信号x[n](参见图3A)分成三份以进行处理,在某些情况下,与方法B相比,可以减小计算量。该原因下面将描述。
图8示出在上述情况下的滤波单元100C的配置示例。滤波单元100C包括三路分割单元101C、零填充单元102C、快速傅立叶变换单元103C、零填充单元104C、快速傅立叶变换单元105C、零填充单元106C和快速傅立叶变换单元107C。而且,滤波单元100C包括零填充单元108C、快速傅立叶变换单元109C、零填充单元110C和快速傅立叶变换单元111C。此外,滤波单元100C包括乘法单元112C、反向快速傅立叶变换单元113C、乘法单元114C、反向快速傅立叶变换单元115C、乘法单元116C、反向快速傅立叶变换单元117C和加法器单元118C。
三路分割单元101C将长度为N的离散时间信号x[n](0≤n≤N-1)一分为三,以获得三个离散时间信号x1[n]、x2[n]和x3[n]。这里,x1[n]的长度N1被设置为P/2-(M-1),如图9A所示。而且,类似于x1[n]的长度N1,x2[n]的长度N2也被设置为P/2-(M-1),如图9B所示。而且,x3[n]的长度N3被设置为N-P+2(M-1),如图9C所示。
零填充单元102C在长度为N1的离散时间信号x1[n]之后填充(P/2-N1)(即M-1)个零,以获得长度为P/2的零填充数据x1′[n](0≤n≤P/2-1)。快速傅立叶变换单元103C对零填充单元102C获得的零填充数据x1′[n]执行FFT(快速傅立叶变换),以获得频域数据X1[k](0≤k≤P/2-1)。
零填充单元104C在长度为N2的离散时间信号x2[n]之后填充(P/2-N2)(即M-1)个零,以获得长度为P/2的零填充数据x2′[n](0≤n≤P/2-1)。快速傅立叶变换单元105C对零填充单元104C获得的零填充数据x2′[n]执行FFT(快速傅立叶变换),以获得频域数据X2[k](0≤k≤P/2-1)。
零填充单元106C在长度为N3的离散时间信号x3[n]之后填充(S-N3)(即S-(N-P+2(M-1))个零,以获得长度为S的零填充数据x3′[n](0≤n≤S-1)。这里,S是等于或大于N3+M-1的最小的2的倍数。快速傅立叶变换单元107C对零填充单元106C获得的零填充数据x3′[n]执行FFT(快速傅立叶变换),以获得频域数据X3[k](0≤k≤S-1)。
零填充单元108C在长度为M的滤波器系数h[m](0≤m≤M-1)之后填充(P/2-M)个零,以获得长度与上述零填充数据x1′[n]和x2′[n]相对应的零填充数据h12′[n](0≤n≤P/2-1)。快速傅立叶变换单元109C对零填充单元108C获得的零填充数据h12′[n]执行FFT(快速傅立叶变换),以获得频域数据H12[k](0≤k≤P/2-1)。
零填充单元110C在长度为M的滤波器系数h[m](0≤m≤M-1)之后填充(S-M)个零,以获得长度与上述零填充数据x3′[n]相对应的零填充数据h3′[n](0≤n≤S-1)。快速傅立叶变换单元111C对零填充单元110C获得的零填充数据h3′[n]执行FFT(快速傅立叶变换),以获得频域数据H3[k](0≤k≤S-1)。
乘法单元112C将快速傅立叶变换单元103C获得的频域数据X1[k]与快速傅立叶变换单元109C获得的频域数据H12[k]相乘,以获得乘法结果Y1[k](0≤k≤P/2-1)。然后,反向快速傅立叶变换单元113C对乘法单元112C获得的乘法结果Y1[k]执行IFFT(反向快速傅立叶变换)以获得离散时间信号y1[n](0≤n≤P/2-1)。
乘法单元114C将快速傅立叶变换单元105C获得的频域数据X2[k]与快速傅立叶变换单元109C获得的频域数据H12[k]相乘,以获得乘法结果Y2[k](0≤k≤P/2-1)。然后,反向快速傅立叶变换单元115C对乘法单元114C获得的乘法结果Y2[k]执行IFFT(反向快速傅立叶变换)以获得离散时间信号y2[n](0≤n≤P/2-1)。
乘法单元116C将快速傅立叶变换单元107C获得的频域数据X3[k]与快速傅立叶变换单元111C获得的频域数据H3[k]相乘,以获得乘法结果Y3[k](0≤k≤S-1)。然后,反向快速傅立叶变换单元117C对乘法单元116C获得的乘法结果Y3[k]执行IFFT(反向快速傅立叶变换)以获得离散时间信号y3[n](0≤n≤S-1)。
加法器单元118C将由反向快速傅立叶变换单元113C、115C和117C获得的离散时间信号y1[n]、y2[n]和y3[n]相加,以获得输出离散时间信号y[n]。输出离散时间信号y[n]成为离散时间信号x[n]和滤波器系数h[m]的卷积计算结果。应该注意,加法器单元118C通过重叠相加方法(参见上述文献“DISCRETE-TIME SIGNAL PROCESSING”)获得离散时间信号y[n],以确保与不进行分割而执行离散时间信号x[n]和滤波器系数h[m]的卷积计算的情况之间的一致性。
将描述图8的滤波单元100C的操作。长度为N的滤波目标离散时间信号(离散时间音频信号)x[n]被提供到三路分割单元101C。在三路分割单元101C中,长度为N的离散时间信号x[n](0≤n≤N-1)被一分为三。然后,从三路分割单元101C获得长度为N1=P/2-(M-1)的离散时间信号x1[n](0≤n≤N1-1)。而且,从三路分割单元101C获得长度为N2=P/2-(M-1)的离散时间信号x2[n](0≤n≤N2-1)。而且,从三路分割单元101C获得长度为N3=N-P+2(M-1)的离散时间信号x3[n](0≤n≤N3-1)。
由三路分割单元101C获得的离散时间信号x1[n]被提供到零填充单元102C。在零填充单元102C中,(M-1)个零被填充到长度为N1的离散时间信号x1[n]之后,并且获得长度(变换长度)为P/2的零填充数据x1′[n]。零填充数据x1′[n]被提供到快速傅立叶变换单元103C。在快速傅立叶变换单元103C中,对零填充数据x1′[n]执行FFT(快速傅立叶变换),并且获得频域数据X1[k](0≤k≤P/2-1)。
而且,由三路分割单元101C获得的离散时间信号x2[n]被提供到零填充单元104C。在零填充单元104C中,(M-1)个零被填充到长度为N2的离散时间信号x2[n]之后,并且获得长度(变换长度)为P/2的零填充数据x2′[n]。零填充数据x2′[n]被提供到快速傅立叶变换单元105C。在快速傅立叶变换单元105C中,对零填充数据x2′[n]执行FFT(快速傅立叶变换),并且获得频域数据X2[k](0≤k≤P/2-1)。
而且,由三路分割单元101C获得的离散时间信号x3[n]被提供到零填充单元106C。在零填充单元106C中,S-(N-P+2(M-1))个零被填充到长度为N3的离散时间信号x3[n]之后,并且获得长度(变换长度)为S的零填充数据x3′[n]。零填充数据x3′[n]被提供到快速傅立叶变换单元107C。在快速傅立叶变换单元107C中,对零填充数据x3′[n]执行FFT(快速傅立叶变换),并且获得频域数据X3[k](0≤k≤S-1)。
而且,长度为M的滤波器系数h[m]被提供到零填充单元108C。在零填充单元108C中,(P/2-M)个零被填充到长度为M的滤波器系数h[m]之后,并且获得长度(变换长度)为P/2的零填充数据h12′[n]。零填充数据h12′[n]被提供到快速傅立叶变换单元109C。在快速傅立叶变换单元109C中,对零填充数据h12′[n]执行FFT(快速傅立叶变换),并且获得频域数据H12[k]。
而且,长度为M的滤波器系数h[m]被提供到零填充单元110C。在零填充单元110C中,(S-M)个零被填充到长度为M的滤波器系数h[m]之后,并且获得长度(变换长度)为S的零填充数据h3′[n]。零填充数据h3′[n]被提供到快速傅立叶变换单元111C。在快速傅立叶变换单元111C中,对零填充数据h3′[n]执行FFT(快速傅立叶变换),并且获得频域数据H3[k]。
由快速傅立叶变换单元103C获得的频域数据X1[k]和由快速傅立叶变换单元109C获得的频域数据H12[k]被提供到乘法单元112C。在乘法单元112C中,频域数据X1[k]被与频域数据H12[k]相乘,并且获得乘法结果Y1[k]。乘法结果Y1[k]被提供到反向快速傅立叶变换单元113C。在反向快速傅立叶变换单元113C中,对乘法结果Y1[k]执行IFFT(反向快速傅立叶变换),并获得离散时间信号y1[n]。
而且,由快速傅立叶变换单元105C获得的频域数据X2[k]和由快速傅立叶变换单元109C获得的频域数据H12[k]被提供到乘法单元114C。在乘法单元114C中,频域数据X2[k]被与频域数据H12[k]相乘,并且获得乘法结果Y2[k]。乘法结果Y2[k]被提供到反向快速傅立叶变换单元115C。在反向快速傅立叶变换单元115C中,对乘法结果Y2[k]执行IFFT(反向快速傅立叶变换),并获得离散时间信号y2[n]。
而且,由快速傅立叶变换单元107C获得的频域数据X3[k]和由快速傅立叶变换单元111C获得的频域数据H3[k]被提供到乘法单元116C。在乘法单元116C中,频域数据X3[k]被与频域数据H3[k]相乘,并且获得乘法结果Y3[k]。乘法结果Y3[k]被提供到反向快速傅立叶变换单元117C。在反向快速傅立叶变换单元117C中,对乘法结果Y3[k]执行IFFT(反向快速傅立叶变换),并获得离散时间信号y3[n]。
由反向快速傅立叶变换单元113C获得的离散时间信号y1[n]、由反向快速傅立叶变换单元115C获得的离散时间信号y2[n]和由反向快速傅立叶变换单元117C获得的离散时间信号y3[n]被提供到加法器单元118C。在加法器单元118C中,通过重叠相加方法,离散时间信号y1[n]、y2[n]和y3[n]被相加,并且获得输出离散时间信号y[n]。
图4所示的滤波单元100B是如下情况的示例:如上所述,当等于或大于N的最小的2的倍数被设置为P,满足N+M-1>P并且P-N<M-1≤P-N/2成立时。但是,即使在P-N/2<M-1≤N的情况下,通过将长度为N的离散时间信号x[n](参见图5A)分成三份以进行处理,在某些情况下,与方法B相比,也可以减小计算量。该原因下面将描述。
图10示出在上述情况下的滤波单元100D的配置示例。滤波单元100D包括三路分割单元101D、零填充单元102D、快速傅立叶变换单元103D、零填充单元104D、快速傅立叶变换单元105D、零填充单元106D和快速傅立叶变换单元107D。而且,滤波单元100D包括零填充单元108D、快速傅立叶变换单元109D、零填充单元110D和快速傅立叶变换单元111D。此外,滤波单元100D包括乘法单元112D、反向快速傅立叶变换单元113D、乘法单元114D、反向快速傅立叶变换单元115D、乘法单元116D、反向快速傅立叶变换单元117D和加法器单元118D。
三路分割单元101D将长度为N的离散时间信号x[n](0≤n≤N-1)一分为三,以获得三个离散时间信号x1[n]、x2[n]和x3[n]。这里,x1[n]的长度N1被设置为P-(M-1),如图11A所示。而且,类似于x1[n]的长度N1,x2[n]的长度N2也被设置为P-(M-1),如图11B所示。而且,x3[n]的长度N3被设置为N-2P+2(M-1),如图11C所示。
零填充单元102D在长度为N1的离散时间信号x1[n]之后填充(P-N1)(即M-1)个零,以获得长度为P的零填充数据x1′[n](0≤n≤P-1)。快速傅立叶变换单元103D对零填充单元102C获得的零填充数据x1′[n]执行FFT(快速傅立叶变换),以获得频域数据X1[k](0≤k≤P-1)。
零填充单元104D在长度为N2的离散时间信号x2[n]之后填充(P-N2)(即M-1)个零,以获得长度为P的零填充数据x2′[n](0≤n≤P-1)。快速傅立叶变换单元105D对零填充单元104D获得的零填充数据x2′[n]执行FFT(快速傅立叶变换),以获得频域数据X2[k](0≤k≤P-1)。
零填充单元106D在长度为N3的离散时间信号x3[n]之后填充(T-N3)(即T-(N-2P+2(M-1))个零,以获得长度为T的零填充数据x3′[n](0≤n≤T-1)。这里,T是等于或大于N3+M-1的最小的2的倍数。快速傅立叶变换单元107D对零填充单元106D获得的零填充数据x3′[n]执行FFT(快速傅立叶变换),以获得频域数据X3[k](0≤k≤T-1)。
零填充单元108D在长度为M的滤波器系数h[m](0≤m≤M-1)之后填充(P-M)个零,以获得长度与上述零填充数据x1′[n]和x2′[n]相对应的零填充数据h12′[n](0≤n≤P-1)。快速傅立叶变换单元109D对零填充单元108D获得的零填充数据h12′[n]执行FFT(快速傅立叶变换),以获得频域数据H12[k](0≤k≤P-1)。
零填充单元110D在长度为M的滤波器系数h[m](0≤m≤M-1)之后填充(T-M)个零,以获得长度与上述零填充数据x3′[n]相对应的零填充数据h3′[n](0≤n≤T-1)。快速傅立叶变换单元111D对零填充单元110D获得的零填充数据h3′[n]执行FFT(快速傅立叶变换),以获得频域数据H3[k](0≤k≤T-1)。
乘法单元112D将快速傅立叶变换单元103D获得的频域数据X1[k]与快速傅立叶变换单元109D获得的频域数据H12[k]相乘,以获得乘法结果Y1[k](0≤k≤P-1)。然后,反向快速傅立叶变换单元113D对乘法单元112D获得的乘法结果Y1[k]执行IFFT(反向快速傅立叶变换)以获得离散时间信号y1[n](0≤n≤P-1)。
乘法单元114D将快速傅立叶变换单元105D获得的频域数据X2[k]与快速傅立叶变换单元109D获得的频域数据H12[k]相乘,以获得乘法结果Y2[k](0≤k≤P-1)。然后,反向快速傅立叶变换单元115D对乘法单元114D获得的乘法结果Y2[k]执行IFFT(反向快速傅立叶变换)以获得离散时间信号y2[n](0≤n≤P-1)。
乘法单元116D将快速傅立叶变换单元107D获得的频域数据X3[k]与快速傅立叶变换单元111D获得的频域数据H3[k]相乘,以获得乘法结果Y3[k](0≤k≤T-1)。然后,反向快速傅立叶变换单元117D对乘法单元116D获得的乘法结果Y3[k]执行IFFT(反向快速傅立叶变换)以获得离散时间信号y3[n](0≤n≤T-1)。
加法器单元118D将由反向快速傅立叶变换单元113D、115D和117D获得的离散时间信号y1[n]、y2[n]和y3[n]相加,以获得输出离散时间信号y[n]。输出离散时间信号y[n]成为离散时间信号x[n]和滤波器系数h[m]的卷积计算结果。应该注意,加法器单元118D通过重叠相加方法(参见上述文献“DISCRETE-TIME SIGNAL PROCESSING”)获得离散时间信号y[n],以确保与不进行分割而执行离散时间信号x[n]和滤波器系数h[m]的卷积计算的情况之间的一致性。
将描述图10的滤波单元100D的操作。长度为N的滤波目标离散时间信号(离散时间音频信号)x[n]被提供到三路分割单元101D。在三路分割单元101D中,长度为N的离散时间信号x[n](0≤n≤N-1)被一分为三。然后,从三路分割单元101D获得长度为N1=P-(M-1)的离散时间信号x1[n](0≤n≤N1-1)。而且,从三路分割单元101D获得长度为N2=P-(M-1)的离散时间信号x2[n](0≤n≤N2-1)。而且,从三路分割单元101D获得长度为N3=N-2P+2(M-1)的离散时间信号x3[n](0≤n≤N3-1)。
由三路分割单元101D获得的离散时间信号x1[n]被提供到零填充单元102D。在零填充单元102D中,(M-1)个零被填充到长度为N1的离散时间信号x1[n]之后,并且获得长度(变换长度)为P的零填充数据x1′[n]。零填充数据x1′[n]被提供到快速傅立叶变换单元103D。在快速傅立叶变换单元103D中,对零填充数据x1′[n]执行FFT(快速傅立叶变换),并且获得频域数据X1[k](0≤k≤P-1)。
而且,由三路分割单元101D获得的离散时间信号x2[n]被提供到零填充单元104D。在零填充单元104D中,(M-1)个零被填充到长度为N2的离散时间信号x2[n]之后,并且获得长度(变换长度)为P的零填充数据x2′[n]。零填充数据x2′[n]被提供到快速傅立叶变换单元105D。在快速傅立叶变换单元105D中,对零填充数据x2′[n]执行FFT(快速傅立叶变换),并且获得频域数据X2[k](0≤k≤P-1)。
而且,由三路分割单元101D获得的离散时间信号x3[n]被提供到零填充单元106D。在零填充单元106D中,T-(N-2P+2(M-1))个零被填充到长度为N3的离散时间信号x3[n]之后,并且获得长度(变换长度)为T的零填充数据x3′[n]。零填充数据x3′[n]被提供到快速傅立叶变换单元107D。在快速傅立叶变换单元107D中,对零填充数据x3′[n]执行FFT(快速傅立叶变换),并且获得频域数据X3[k](0≤k≤T-1)。
而且,长度为M的滤波器系数h[m]被提供到零填充单元108D。在零填充单元108D中,(P-M)个零被填充到长度为M的滤波器系数h[m]之后,并且获得长度(变换长度)为P的零填充数据h12′[n]。零填充数据h12′[n]被提供到快速傅立叶变换单元109D。在快速傅立叶变换单元109D中,对零填充数据h12′[n]执行FFT(快速傅立叶变换),并且获得频域数据H12[k]。
而且,长度为M的滤波器系数h[m]被提供到零填充单元110D。在零填充单元110D中,(T-M)个零被填充到长度为M的滤波器系数h[m]之后,并且获得长度(变换长度)为T的零填充数据h3′[n]。零填充数据h3′[n]被提供到快速傅立叶变换单元111D。在快速傅立叶变换单元111D中,对零填充数据h3′[n]执行FFT(快速傅立叶变换),并且获得频域数据H3[k]。
由快速傅立叶变换单元103D获得的频域数据X1[k]和由快速傅立叶变换单元109D获得的频域数据H12[k]被提供到乘法单元112D。在乘法单元112D中,频域数据X1[k]被与频域数据H12[k]相乘,并且获得乘法结果Y1[k]。乘法结果Y1[k]被提供到反向快速傅立叶变换单元113D。在反向快速傅立叶变换单元113D中,对乘法结果Y1[k]执行IFFT(反向快速傅立叶变换),并获得离散时间信号y1[n]。
而且,由快速傅立叶变换单元105D获得的频域数据X2[k]和由快速傅立叶变换单元109C获得的频域数据H12[k]被提供到乘法单元114D。在乘法单元114D中,频域数据X2[k]被与频域数据H12[k]相乘,并且获得乘法结果Y2[k]。乘法结果Y2[k]被提供到反向快速傅立叶变换单元115D。在反向快速傅立叶变换单元115D中,对乘法结果Y2[k]执行IFFT(反向快速傅立叶变换),并获得离散时间信号y2[n]。
而且,由快速傅立叶变换单元107D获得的频域数据X3[k]和由快速傅立叶变换单元111D获得的频域数据H3[k]被提供到乘法单元116D。在乘法单元116D中,频域数据X3[k]被与频域数据H3[k]相乘,并且获得乘法结果Y3[k]。乘法结果Y3[k]被提供到反向快速傅立叶变换单元117D。在反向快速傅立叶变换单元117D中,对乘法结果Y3[k]执行IFFT(反向快速傅立叶变换),并获得离散时间信号y3[n]。
由反向快速傅立叶变换单元113D获得的离散时间信号y1[n]、由反向快速傅立叶变换单元115D获得的离散时间信号y2[n]和由反向快速傅立叶变换单元117D获得的离散时间信号y3[n]被提供到加法器单元118D。在加法器单元118D中,通过重叠相加方法,离散时间信号y1[n]、y2[n]和y3[n]被相加,并且获得输出离散时间信号y[n]。
[可以减小计算量的情况]
将描述在图8和10的滤波单元100C和100D中与方法B相比可以减小计算量的情况。
这里,将比较“方法B”与如图8和10所示分割x[n]的方法(在下文中称为“建议方法”)的计算量。
“计算量的比较”
<比较条件>
在该比较中,仅比较加法和乘法的次数。
对于FFT的计算量,蝶式计算单元的复指数函数(参见表达式(21))的余弦值和正弦值被保存为数据,并且仅仅关于蝶式计算单元的加法和加法结果的乘法与复指数函数来评估加法和乘法的次数。
W N K = eqp ( - j 2 &pi;k N ) = cos ( 2 &pi;k N ) - j sin ( 2 &pi;k N ) . . . ( 21 )
应该注意,P、S和T可以通过以下表达式来计算。
P=2**int(log2(N*2-1))
S=2**int(log2((N+3*M-3-P)*2-1)
T=2**int(log2((N+3*M-3-2*P)*2-1)
但是,应该注意,int(x)表示去掉了分数部分的整数x,并且log2(x)表示以2为底的对数。
<计算量的计算结果>
根据“方法B”和“建议方法”的计算量的计算结果如下所示。应该注意,代表根据“方法B”的计算量的计算结果的表达式(22)到(25)与上述表达式(7)到(10)相同,但是为了帮助比较依然被示出。
在M-1≤P-N的情况下,以下表达式(22)和(23)表示结果。
加法:12*P*log2(P)+2*P...(22)
乘法:6*P*log2(P)+4*P...(23)
在P-N<M-1≤N的情况下,以下表达式(24)和(25)表示结果。
加法:24*P*log2(P)+28*P...(24)
乘法:12*P*log2(P)+20*P...(25)
“建议方法”
A.在x[n]根据(P-N)/2<M-1≤P-N被一分为三的情况下(图8的滤波单元100C的情况下),以下表达式(26)和(27)表示结果。
加法:10*P*log2(P)-8*P+12*S*log2(S)+2*S+2*(M-1)...(26)
乘法:5*P*log2(P)-P+6*S*log2(S)+4*S...(27)
B.在x[n]根据P-N/2<M-1≤N被一分为三的情况下(图10的滤波单元100D的情况下),以下表达式(28)和(29)表示结果。
加法:20*P*log2(P)+4*P+12*T*log2(T)+2*T+2*(M-1)...(28)
乘法:10*P*log2(P)+8*P+6*T*log2(T)+4*T...(29)
<方法B和建议方法的计算量之差>
A.在(P-N)/2<M-1≤P-N的情况下(图8的滤波单元100C的情况下),通过从根据方法B的计算量减去根据建议方法的计算量而分别得到的最小值由以下表达式(30)和(31)表示。
加法:2*P*log2(P)+10*P-12*S*log2(S)-2*S-2*(M-1)...(30)
乘法:P*log2(P)+5*P-6*S*log2(S)-4*S...(31)
因此,在此情况下,当表达式(30)和(31)的值取决于N和M的值是正值时,建议方法在计算量方面比方法B更优越。
B.在P-N/2<M-1≤N的情况下(图10的滤波单元100D的情况下),通过从根据方法B的计算量减去根据建议方法的计算量而分别得到的最小值由以下表达式(32)和(33)表示。
加法:4*P*log2(P)+24*P-12*T*log2(T)-2*T-2*(M-1)...(32)
乘法:2*P*log2(P)+12*P-6*T*log2(T)-4*T...(33)
因此,当表达式(32)和(33)的值取决于N和M的值是正值时,建议方法在计算量方面比方法B更优越。
应该注意,在上述图2、4、8和10的滤波单元中,长度为N(N为整数)的离散时间信号x[n]被一分为二或一分为三以进行处理。但是,根据本发明的实施例,分割的数目和分割的方式并不局限于这些分割示例。详细讲,本发明的实施例的要点在于:当在长度为N(N为整数)的离散时间信号被输入到具有长度为M(M是整数,N≥M-1)的滤波器系数的FIR滤波器的情况下获得输出时,长度为N的离散时间信号x[n]被分割成多个离散时间信号以进行处理。利用这种配置,与现有技术的方法相比,计算量等可以被减小。
而且,上述滤波单元100A到100D被配置为通过硬件执行处理,但是类似的处理也可以通过软件来执行。图12示出被配置用于通过软件执行处理的计算机装置100E的配置示例。计算机装置100E由CPU(中央处理单元)181、ROM(只读存储器)182、RAM(随机访问存储器)183以及数据输入和输出单元(数据I/O)184构成。
ROM 182存储用于CPU 181的处理程序。RAM 183充当CPU 181的工作区域。CPU 181在偶然事件发生时读出存储在ROM 182中的处理程序,将读取的处理程序传输到RAM 183以被展开,读出展开的处理程序,并执行滤波处理。
在计算机装置100E中,长度为N的离散时间信号x[n]和长度为M的滤波器系数h[m]经由数据I/O 184输入,以累积到RAM 183中。CPU 181对累积在RAM 183中的离散时间信号x[n]和滤波器系数h[m]执行上述图2、4、8和10的滤波单元以类似过程执行的卷积计算处理,即,滤波处理。处理之后的输出离散时间信号y[n]被从RAM 183经由数据I/O 184输出到外部。
而且,根据上述实施例,本发明的实施例被应用到环绕处理器10的各个滤波单元。但是,本发明的实施例当然可以被类似地应用到被配置用于通过频域的乘法、通过使用快速傅立叶变换来执行离散时间信号和滤波器系数的卷积计算的另一滤波装置。
本申请包含与2009年3月13日递交到日本特许厅的日本在先专利申请JP 2009-060442中所公开的内容相关的主题,该在先申请的全部内容通过引用被结合于此。
本领域技术人员应该理解,取决于设计需求和其他因素,可能发生各种修改、组合、子组合和替换,只要它们落在权利要求书或其等同物的范围内即可。

Claims (7)

1.一种滤波装置,该滤波装置被配置用于在将长度为N的离散时间信号输入到具有长度为M的滤波器系数的FIR滤波器的情况下获取输出,其中N和M为整数且N≥M-1,所述滤波装置包括:
分割单元,该分割单元被配置用于将所述长度为N的离散时间信号分割成多个信号并获得多个离散时间信号;
第一零填充单元,该第一零填充单元被配置用于在通过所述分割单元获得的各个离散时间信号之后填充适当数目的零,并且获得多个长度为2的倍数的零填充数据;
第一快速傅立叶变换单元,该第一快速傅立叶变换单元被配置用于对通过所述第一零填充单元获得的各个零填充数据执行快速傅立叶变换,并且获得多个频域数据;
第二零填充单元,该第二零填充单元被配置用于在所述长度为M的滤波器系数之后填充零,并且获得多个零填充数据,这些零填充数据的长度与通过所述第一零填充单元获得的各个零填充数据的长度相对应;
第二快速傅立叶变换单元,该第二快速傅立叶变换单元被配置用于对通过所述第二零填充单元获得的各个零填充数据执行快速傅立叶变换,并且获得多个频域数据;
乘法单元,该乘法单元被配置用于将通过所述第一快速傅立叶变换单元获得的各个频域数据与通过所述第二快速傅立叶变换单元获得的各个频域数据相乘,并且获得多个乘法结果;
反向快速傅立叶变换单元,该反向快速傅立叶变换单元被配置用于对通过所述乘法单元获得的各个乘法结果执行反向快速傅立叶变换,并且获得多个离散时间信号;以及
加法器单元,该加法器单元被配置用于将通过所述反向快速傅立叶变换单元获得的各个离散时间信号相加,并且获得输出离散时间信号。
2.如权利要求1所述的滤波装置,
其中所述分割单元将所述长度为N的离散时间信号一分为二,并且获得两个离散时间信号,并且
其中当等于或大于(N+M-1)的2的倍数的长度被设置为L时,所述第一零填充单元获得长度为L/2的零填充数据和长度等于或小于L/2的零填充数据。
3.如权利要求2所述的滤波装置,
其中当等于或大于N的最小的2的倍数被设置为P时,N和M满足M-1≤(P-N)/2,并且
其中所述分割单元将所述长度为N的离散时间信号分割成长度为(P/2-(M-1))的离散时间信号和长度为(N-P/2+(M-1))的离散时间信号。
4.如权利要求2所述的滤波装置,
其中当等于或大于N的最小的2的倍数被设置为P时,N和M满足P-N<M-1≤P-N/2,并且
其中所述分割单元将所述长度为N的离散时间信号分割成长度为(P-(M-1))的离散时间信号和长度为(N-P+(M-1))的离散时间信号。
5.一种滤波方法,用于在将长度为N的离散时间信号输入到具有长度为M的滤波器系数的FIR滤波器的情况下获取输出,其中N和M为整数且N≥M-1,所述滤波方法包括以下步骤:
将所述长度为N的离散时间信号分割成多个信号并获得多个离散时间信号;
在分割步骤中获得的各个离散时间信号之后进行第一零填充以填充至少(M-1)个零,并且获得多个长度为2的倍数的零填充数据;
对在第一零填充步骤中获得的各个零填充数据执行第一快速傅立叶变换,并且获得多个频域数据;
在所述长度为M的滤波器系数之后进行第二零填充以填充零,并且获得多个零填充数据,这些零填充数据的长度与在第一零填充步骤中获得的各个零填充数据的长度相对应;
对在第二零填充步骤中获得的各个零填充数据执行第二快速傅立叶变换,并且获得多个频域数据;
将在第一快速傅立叶变换步骤中获得的各个频域数据与在第二快速傅立叶变换步骤中获得的各个频域数据相乘,并且获得多个乘法结果;
对在乘法步骤中获得的各个乘法结果执行反向快速傅立叶变换,并且获得多个离散时间信号;以及
将在反向快速傅立叶变换步骤中获得的各个离散时间信号相加,并且获得输出离散时间信号。
6.一种程序,用于在将长度为N的离散时间信号输入到具有长度为M的滤波器系数的FIR滤波器的情况下获取输出,其中N和M为整数且N≥M-1,所述程序指导计算机充当:
分割装置,该分割装置被配置用于将所述长度为N的离散时间信号分割成多个信号并获得多个离散时间信号;
第一零填充装置,该第一零填充装置被配置用于在通过所述分割装置获得的各个离散时间信号之后填充至少(M-1)个零,并且获得多个长度为2的倍数的零填充数据;
第一快速傅立叶变换装置,该第一快速傅立叶变换装置被配置用于对通过所述第一零填充装置获得的各个零填充数据执行快速傅立叶变换,并且获得多个频域数据;
第二零填充装置,该第二零填充装置被配置用于在所述长度为M的滤波器系数之后填充零,并且获得多个零填充数据,这些零填充数据的长度与通过所述第一零填充装置获得的各个零填充数据的长度相对应;
第二快速傅立叶变换装置,该第二快速傅立叶变换装置被配置用于对通过所述第二零填充装置获得的各个零填充数据执行快速傅立叶变换,并且获得多个频域数据;
乘法装置,该乘法装置被配置用于将通过所述第一快速傅立叶变换装置获得的各个频域数据与通过所述第二快速傅立叶变换装置获得的各个频域数据相乘,并且获得多个乘法结果;
反向快速傅立叶变换装置,该反向快速傅立叶变换装置被配置用于对通过所述乘法装置获得的各个乘法结果执行反向快速傅立叶变换,并且获得多个离散时间信号;以及
加法器装置,该加法器装置被配置用于将通过所述反向快速傅立叶变换装置获得的各个离散时间信号相加,并且获得输出离散时间信号。
7.一种具有多个滤波单元的环绕处理器,被配置用于在将长度为N的离散时间信号输入到具有长度为M的滤波器系数的FIR滤波器的情况下获取输出,并被配置用于从具有至少三个声道的离散时间音频信号生成双声道离散时间音频信号,其中N和M为整数且N≥M-1,
所述滤波单元包括:
分割单元,该分割单元被配置用于将所述长度为N的离散时间音频信号分割成多个信号并获得多个离散时间音频信号;
第一零填充单元,该第一零填充单元被配置用于在通过所述分割单元获得的各个离散时间音频信号之后填充至少(M-1)个零,并且获得多个长度为2的倍数的零填充数据;
第一快速傅立叶变换单元,该第一快速傅立叶变换单元被配置用于对通过所述第一零填充单元获得的各个零填充数据执行快速傅立叶变换,并且获得多个频域数据;
第二零填充单元,该第二零填充单元被配置用于在所述长度为M的滤波器系数之后填充零,并且获得多个零填充数据,这些零填充数据的长度与通过所述第一零填充单元获得的各个零填充数据的长度相对应;
第二快速傅立叶变换单元,该第二快速傅立叶变换单元被配置用于对通过所述第二零填充单元获得的各个零填充数据执行快速傅立叶变换,并且获得多个频域数据;
乘法单元,该乘法单元被配置用于将通过所述第一快速傅立叶变换单元获得的各个频域数据与通过所述第二快速傅立叶变换单元获得的各个频域数据相乘,并且获得多个乘法结果;
反向快速傅立叶变换单元,该反向快速傅立叶变换单元被配置用于对通过所述乘法单元获得的各个乘法结果执行反向快速傅立叶变换,并且获得多个离散时间音频信号;以及
加法器单元,该加法器单元被配置用于将通过所述反向快速傅立叶变换单元获得的各个离散时间音频信号相加,并且获得输出离散时间信号。
CN201010129061XA 2009-03-13 2010-03-08 滤波装置、滤波方法、程序和环绕处理器 Expired - Fee Related CN101834581B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009060442A JP2010219582A (ja) 2009-03-13 2009-03-13 フィルタリング装置、フィルタリング方法、プログラムおよびサラウンドプロセッサ
JP2009-060442 2009-03-13

Publications (2)

Publication Number Publication Date
CN101834581A true CN101834581A (zh) 2010-09-15
CN101834581B CN101834581B (zh) 2013-06-05

Family

ID=42718538

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010129061XA Expired - Fee Related CN101834581B (zh) 2009-03-13 2010-03-08 滤波装置、滤波方法、程序和环绕处理器

Country Status (3)

Country Link
US (1) US8433738B2 (zh)
JP (1) JP2010219582A (zh)
CN (1) CN101834581B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104333348A (zh) * 2014-11-27 2015-02-04 中国电子科技集团公司第二十九研究所 一种高阶数字滤波系统及方法
CN107589406A (zh) * 2016-07-07 2018-01-16 英飞凌科技股份有限公司 雷达系统及其方法
CN108713312B (zh) * 2016-03-11 2021-09-28 奥兰治 用于传输与业务相对应的数据的方法和设备

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8335857B1 (en) * 2009-05-21 2012-12-18 Sprint Communications Company L.P. System and methods of data transmission to devices
CN102545834B (zh) * 2010-12-21 2015-02-18 普天信息技术研究院有限公司 一种基于dsp高速采样信号实时滤波的方法和装置
JP2012137945A (ja) * 2010-12-27 2012-07-19 Shimizu Corp 畳み込み演算システム及び畳み込み演算プログラム
US8943117B1 (en) * 2011-04-18 2015-01-27 Arthur Torosyan Method and apparatus for hybrid digital filtering
JP6070572B2 (ja) * 2011-12-20 2017-02-01 日本電気株式会社 ディジタルフィルタ回路およびディジタルフィルタ処理方法
WO2013125173A1 (ja) * 2012-02-20 2013-08-29 日本電気株式会社 ディジタルフィルタ回路、ディジタルフィルタ処理方法及びディジタルフィルタ処理プログラム記憶媒体
US9280964B2 (en) * 2013-03-14 2016-03-08 Fishman Transducers, Inc. Device and method for processing signals associated with sound
WO2014145150A1 (en) * 2013-03-15 2014-09-18 Beats Electronics, Llc Memory management techniques for block-based convolution
CN104967428B (zh) * 2015-07-28 2018-03-13 南京信息工程大学 用于fpga的高速高阶fir滤波器的频域实现方法
FR3049131B1 (fr) 2016-03-18 2018-04-06 Thales Procede de filtrage d'un signal d'entree numerique et filtre associe
US10565285B2 (en) 2017-12-18 2020-02-18 International Business Machines Corporation Processor and memory transparent convolutional lowering and auto zero padding for deep neural network implementations

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1798338A (zh) * 2004-12-30 2006-07-05 中兴通讯股份有限公司 一种视频序列中运动物体的分割方法
CN101044734A (zh) * 2004-08-20 2007-09-26 高通股份有限公司 用于多载波和单载波波形的统一脉冲整形
CN101087413A (zh) * 2006-06-07 2007-12-12 中兴通讯股份有限公司 视频序列中运动物体的分割方法
CN101339652A (zh) * 2007-12-28 2009-01-07 中国人民解放军海军航空工程学院 一种固体发动机ct图像的分割方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2139511C (en) * 1992-07-07 2004-09-07 David Stanley Mcgrath Digital filter having high accuracy and efficiency
US5809069A (en) * 1996-07-19 1998-09-15 Texas Instruments Incorporated Frequency-domain carrierless AM-PM demodulator
SE517525C2 (sv) * 1999-09-07 2002-06-18 Ericsson Telefon Ab L M Förfarande och anordning för konstruktion av digitala filter
AU2001288963A1 (en) * 2000-09-18 2002-04-02 Skybitz, Inc System and method for fast code phase and carrier frequency acquisition in gps receiver
CA2390253A1 (en) * 2001-06-11 2002-12-11 Unique Broadband Systems, Inc. Ofdm multiple sub-channel communication system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101044734A (zh) * 2004-08-20 2007-09-26 高通股份有限公司 用于多载波和单载波波形的统一脉冲整形
CN1798338A (zh) * 2004-12-30 2006-07-05 中兴通讯股份有限公司 一种视频序列中运动物体的分割方法
CN101087413A (zh) * 2006-06-07 2007-12-12 中兴通讯股份有限公司 视频序列中运动物体的分割方法
CN101339652A (zh) * 2007-12-28 2009-01-07 中国人民解放军海军航空工程学院 一种固体发动机ct图像的分割方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104333348A (zh) * 2014-11-27 2015-02-04 中国电子科技集团公司第二十九研究所 一种高阶数字滤波系统及方法
CN104333348B (zh) * 2014-11-27 2017-02-22 中国电子科技集团公司第二十九研究所 一种高阶数字滤波系统及方法
CN108713312B (zh) * 2016-03-11 2021-09-28 奥兰治 用于传输与业务相对应的数据的方法和设备
CN107589406A (zh) * 2016-07-07 2018-01-16 英飞凌科技股份有限公司 雷达系统及其方法

Also Published As

Publication number Publication date
US20100235419A1 (en) 2010-09-16
US8433738B2 (en) 2013-04-30
CN101834581B (zh) 2013-06-05
JP2010219582A (ja) 2010-09-30

Similar Documents

Publication Publication Date Title
CN101834581B (zh) 滤波装置、滤波方法、程序和环绕处理器
CN101682446B (zh) 用于改进ofdm或ordma通信系统中的papr的方法和装置
US20040015530A1 (en) Fast fourier transform apparatus
JP2009535678A (ja) パイプラインfftのアーキテクチャおよび方法
JPWO2007007673A1 (ja) 信号生成装置及び方法
CN103268308B (zh) 支持混合基dft的计算装置及方法
EP2817882B1 (en) Low delay real-to-complex conversion in overlapping filter banks for partially complex processing
CN101149730B (zh) 使用主要因素算法的最佳离散傅利叶转换方法及装置
CN101361121B (zh) 处理媒体信号的方法和装置
US20120166508A1 (en) Fast fourier transformer
KR20090127462A (ko) Fft/ifft 연산코어
JPH08320857A (ja) フーリエ変換演算装置および方法
CN112446330A (zh) 基于多通道fft算法的太阳射电频谱分析方法及系统
KR100836624B1 (ko) 가변 고속 푸리에 변환 장치 및 그 방법
Abbas et al. An FPGA implementation and performance analysis between Radix-2 and Radix-4 of 4096 point FFT
US20090135928A1 (en) Device, apparatus, and method for low-power fast fourier transform
CN102810087A (zh) 一种傅立叶变换的实现装置
US8484273B1 (en) Processing system and method for transform
JP2525420B2 (ja) 多段送信機−アンテナ結合方法および装置
CN102073620A (zh) 快速傅立叶转换器与反快速傅立叶转换器及其方法
CN101277283B (zh) 快速傅立叶变换蝶型装置
TW201227351A (en) Recursive modified discrete cosine transform and inverse discrete cosine transform system with a computing kernel of RDFT
US20080307026A1 (en) Memory Address Generating Method and Twiddle Factor Generator Using the Same
CN102339273B (zh) 一种基于上采样技术的fft/ifft近似计算方法和装置
CN101266594A (zh) 利用cooley-tukey演算法以完成n点离散傅立叶转换的装置

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130605

Termination date: 20150308

EXPY Termination of patent right or utility model