WO2015087495A1 - デジタルフィルタ装置、デジタルフィルタ処理方法及びデジタルフィルタプログラムが記憶された記憶媒体 - Google Patents

デジタルフィルタ装置、デジタルフィルタ処理方法及びデジタルフィルタプログラムが記憶された記憶媒体 Download PDF

Info

Publication number
WO2015087495A1
WO2015087495A1 PCT/JP2014/005802 JP2014005802W WO2015087495A1 WO 2015087495 A1 WO2015087495 A1 WO 2015087495A1 JP 2014005802 W JP2014005802 W JP 2014005802W WO 2015087495 A1 WO2015087495 A1 WO 2015087495A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
data
overlap
time domain
processing
Prior art date
Application number
PCT/JP2014/005802
Other languages
English (en)
French (fr)
Inventor
充文 柴山
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US15/103,112 priority Critical patent/US9880975B2/en
Priority to JP2015552301A priority patent/JP6489021B2/ja
Publication of WO2015087495A1 publication Critical patent/WO2015087495A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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

Definitions

  • the present invention relates to arithmetic processing in digital signal processing, and more particularly to a digital filter device, a digital filter processing method, and a storage medium in which a digital filter program is stored.
  • FFT Fast Fourier Transform
  • FDE frequency domain equalization
  • IFFT inverse fast Fourier transform
  • Patent Document 1 describes “twist multiplication” described later, that is, multiplication using a twist coefficient.
  • Non-Patent Document 1 As an efficient FFT / IFFT processing method, for example, the Cooley-Tukey butterfly operation described in Non-Patent Document 1 is famous. However, since the FFT / IFFT processing method by Cooley-Tukey has a large number of points, a circuit for realizing the processing method becomes complicated. For this reason, for example, the Prime / Factor method described in Non-Patent Document 2 is used to perform decomposition into two small FFT / IFFT, and FFT / IFFT processing is performed.
  • FIG. 7 shows a 64-point FFT data flow 500 that has been decomposed into a two-stage butterfly process with a base 8 using, for example, the Prime-Factor method.
  • the data flow 500 includes a total of 16 radix-8 butterfly computation processing and twist multiplication processing 504 including data rearrangement processing 501 and butterfly computation processing 502 and 503.
  • 8 data parallel when FFT devices that perform FFT processing in parallel on 8 data (hereinafter simply referred to as “8 data parallel”) are created as physical circuits, a total of 8 A 64-point FFT process can be realized by repeating the process once.
  • the eight repeated processes are processes in which partial data flows 505a to 505h performed on eight pieces of data are performed in order, and are specifically performed as follows. That is, the process corresponding to the partial data flow 505a is performed first time, the process corresponding to the partial data flow 505b is performed second time, and the process corresponding to the partial data flow 505c (not shown) is performed third time. Is done. Thereafter, similarly, processing up to the eighth partial data flow 505h is sequentially performed. With the above processing, 64-point FFT processing is realized.
  • Patent Document 2 discloses an FFT apparatus that rearranges data using RAM in butterfly computation.
  • Patent Document 3 discloses a high-speed technology based on parallel processing of butterfly operations.
  • processing block a set of continuous input data (hereinafter referred to as “processing block”) is periodically repeated.
  • processing block a set of continuous input data
  • overlap method can be cited as a technique for solving this problem.
  • adjacent processing blocks are overlapped by a predetermined number of data, and FFT processing is performed.
  • the data after the FFT processing is subjected to filter processing and reconverted into a time domain signal by IFFT processing.
  • the partial data of the both ends in which the calculation distortion produced in the overlapped process block are removed.
  • a portion to be removed is referred to as a “removed portion”
  • a portion that is output without being removed is referred to as an “output portion”.
  • FIG. 8 is a block diagram illustrating a configuration example of a digital filter circuit 700 using an overlap FDE method.
  • the digital filter circuit 700 is a frequency domain filter circuit that performs filter processing in the frequency domain. Specifically, a time domain signal input as input data is converted into frequency domain data by FFT and then subjected to filtering. The filtered signal is reconverted into a time domain signal by IFFT and output as an output signal.
  • the digital filter circuit 700 includes an overlap addition circuit 710, an FFT circuit 711, a filter operation circuit 712, an IFFT circuit 713, and an overlap removal circuit 714.
  • the overlap adding circuit 710 sequentially generates a block composed of N pieces of data (N is a positive integer) from the input data which is an input signal in the time domain, and outputs the block to the FFT circuit 711. At this time, the overlap adding circuit 710 causes each block to overlap the previous block by M data (M is a positive integer).
  • M is a positive integer
  • the number M of the number of data to be overlapped is hereinafter referred to as “overlap amount”.
  • the overlapped portion of each block is referred to as an “overlap portion”.
  • the overlap amount M may be a fixed value determined in advance.
  • an overlap adding circuit 710 and an overlap removing circuit 714 are configured in accordance with the overlap value M.
  • the overlap addition circuit 710 and the overlap removal circuit 714 refer to the set value of the overlap amount M given from a higher-level circuit (not shown) such as a CPU (Central Processing Unit) and set it during operation. Also good.
  • the overlap adding circuit 710 can be configured by a two-port memory, for example.
  • the FFT circuit 711 performs FFT on the time domain input signal output from the overlap adding circuit 710 and overlapped with M data, converts the input signal into a frequency domain signal, and performs a filter operation circuit 712. Output to.
  • the filter operation circuit 712 performs a filtering process on the frequency domain signal converted by the FFT circuit 711 and outputs the filtered signal to the IFFT circuit 713.
  • the filter operation circuit 712 can be configured with a complex multiplier.
  • the IFFT circuit 713 performs IFFT on the filtered frequency domain signal output from the filter arithmetic circuit 712, reconverts it into a time domain signal, and outputs it to the overlap removal circuit 714.
  • the overlap removal circuit 714 removes a total of M data from both ends of each block made up of N data, which is a time domain signal reconverted by the IFFT circuit 713.
  • the portion removed at this time is the aforementioned “removed portion”, and the number of data is equal to the overlap amount M.
  • the overlap removal circuit 714 outputs “output portion” included in the overlap portion and data of the central portion of the non-overlap block as output data.
  • FIG. 9 is an operation diagram showing an example of the operation of the digital filter circuit shown in FIG.
  • the processing steps (1) to (5) correspond to the processing steps (1) to (5) in FIG. 9, respectively.
  • the FFT circuit 711 performs FFT on a block made up of time domain signal data and converts it into a block made up of frequency domain signal data.
  • the filter arithmetic circuit 712 performs filter processing on each frequency domain signal data constituting the block after FFT processing.
  • H (k) represents a filter coefficient.
  • the IFFT circuit 713 performs IFFT on the block composed of frequency domain signal data after the filter processing and reconverts the block composed of time domain signal data.
  • the necessary overlap amount in the filter using the overlap processing is determined based on the impulse response length of the filter processing to be executed. Furthermore, the size of the FFT processing block needs to be larger than the required overlap amount. Therefore, the size of the FFT processing block is determined according to the impulse response length of the filter processing.
  • Patent Document 7 There is also a technique for reducing the amount of hardware of a processing apparatus that performs FFT on a block whose size varies (see, for example, Patent Document 7).
  • the orthogonal transform processor of Patent Document 7 is adapted to the length of the FFT vector (corresponding to “processing block”), determines the memory size, invalidates unnecessary circuit blocks, and operates the hardware in a time-sharing manner. I will let you.
  • JP-A-8-137832 (page 3-5, FIG. 25) Japanese Patent Laid-Open No. 2001-56806 (5th page, FIG. 1) JP 2012-22500 A (page 5, FIG. 1) JP 2006-304192 A (page 4-5, FIG. 4) JP 2010-130355 A (page 3-6, FIG. 6) International Publication No. 2012/086262 (Page 3-4, Figure 1) Special table 2008-506191 (pages 11-12, FIGS. 11, 12)
  • the size of the FFT processing block depends on the impulse response length of the filter processing. Therefore, as the impulse response length increases, the required overlap amount and the FFT processing block also increase. As a result, there is a problem that the circuit scale and power consumption required for processing increase.
  • the orthogonal transform processor of Patent Document 7 determines the memory size, invalidates unnecessary circuit blocks, and operates hardware in a time division manner, but rearrangement processing in the FFT / IFFT processing itself is necessary. .
  • the rearrangement process requires a memory having a capacity sufficient to store all the processing block data. Therefore, when the impulse response length of the filter processing is large and the size of the processing block is large, a large-scale memory is required, and there is a problem that the circuit scale and power consumption required for the processing increase.
  • An object of the present invention is to provide a digital filter device, a digital filter processing method, and a storage medium storing a digital filter program that can reduce power consumption when FFT and frequency domain filter processing are used together. To do.
  • the digital filter device of the present invention includes a first input block including a first input block including continuous (N ⁇ M) time domain input data (N is a positive integer and M is a positive integer smaller than N).
  • An overlap adding means for adding the last continuous data of the second input block including the input data in the N time domain immediately before N as the overlap amount to generate an overlap block;
  • Fourier transform means for transforming each of the overlap block and the second input block into a first frequency domain block and a second frequency domain block in the frequency domain by a fast Fourier transform process; a first frequency domain block; Filter each of the two frequency domain blocks to generate a first post-processing block and a second post-processing block Inverse Fourier transform that converts the filter operation means and each of the first processed block and the second processed block into a first time domain block and a second time domain block in the time domain by inverse fast Fourier transform processing.
  • k at the front end of the time axis of the first time-domain block (k is greater than M)
  • Mk data at the rear end of the time axis of the second time domain block are removed as removal partial data, and overlap removal means for generating output data;
  • the removed partial data of the time domain block is compared with the output partial data other than the removed partial data in the overlapped portion of the second time domain block.
  • Detecting a distortion amount of data included in Rappu portion generates, characterized in that it comprises overlapping error detection means for controlling the amount of overlap on the basis of the distortion amount.
  • the digital filter processing method of the present invention provides a first input block including first (N ⁇ M) time domain input data (N is a positive integer and M is a positive integer smaller than N).
  • An overlap block is generated by adding the last continuous data of the second input block including the continuous N time-domain input data immediately before the block by M as the overlap amount,
  • Each of the second input blocks is converted into a first frequency domain block and a second frequency domain block in the frequency domain by fast Fourier transform processing, and each of the first frequency domain block and the second frequency domain block is converted.
  • Filter processing is performed on the first post-processing block and the second post-processing block to generate the first post-processing block and the second post-processing block.
  • k data (k is a positive integer smaller than M) at the front end of the time axis of the first time domain block and (M at the rear end of the time axis of the second time domain block) -K)
  • the output data is generated by removing the data as the removal part data, and the data other than the removal part data of the removal part data of the first time domain block and the overlap part of the second time domain block Compared with the output part data, the amount of distortion generated by the data contained in the overlap part is detected, and the overlap amount is controlled based on the distortion amount To.
  • the digital filter program stored in the storage medium of the present invention is a computer that includes a digital filter device, and includes (NM) continuous time domain input data (N is a positive integer, M is a positive integer smaller than N) ) Including the input data of the second input block including the input data in the N time regions immediately before the first input block in the first input block including And an overlap adding means for generating an overlap block, and each of the overlap block and the second input block into a first frequency domain block and a second frequency domain block in the frequency domain by fast Fourier transform processing.
  • NM continuous time domain input data
  • Overlap removal means for removing the data as removal partial data to generate output data, removal partial data of the first time domain block, and offset of the second time domain block.
  • Overlap error detection means for detecting the amount of distortion generated by the data included in the overlap portion by comparing with output portion data other than the removal portion data in the burlap portion, and controlling the overlap amount based on the amount of distortion And function as the above.
  • power consumption can be reduced when FFT and filter processing in the frequency domain are used together.
  • FIG. 1 is a block diagram illustrating a configuration example of a digital filter circuit 200 according to an embodiment of the present invention.
  • the digital filter circuit 200 performs filter processing such as FDE by the overlap method.
  • the digital filter circuit 200 includes an overlap addition circuit 210, an FFT circuit 211, a filter operation circuit 212, an IFFT circuit 213, an overlap removal circuit 214, and an overlap error detection unit 215.
  • the overlap adding circuit 210 sequentially generates an input block composed of N pieces of continuous data (N is a positive integer) from the input data which is an input signal in the time domain, and outputs the input block to the FFT circuit 211. At this time, the overlap adding circuit 210 overlaps each input block with the last M pieces of data (M is a positive integer) in the immediately preceding block. “Overlap” means that the predetermined X data at the beginning of each input block (X is a positive integer) is the same data as the last X data of the immediately preceding block, and X is duplicated in two blocks It means that the data of is included.
  • the overlap adding circuit 210 generates an “overlap block” composed of consecutive N pieces of data including M pieces of overlapped data. Note that the overlap adding circuit 210 can be configured by a two-port memory, for example.
  • the FFT circuit 211 performs N-point fast Fourier transform (FFT) on the overlap block output from the overlap adding circuit 210 to convert it into a frequency domain signal. Then, the FFT circuit 211 outputs a “frequency domain block” made up of N frequency domain data to the filter arithmetic circuit 212.
  • FFT N-point fast Fourier transform
  • the filter operation circuit 212 performs filter processing on the frequency domain block output from the FFT circuit 211, and outputs “processed block” to the IFFT circuit 213.
  • the filter operation circuit 212 can be configured by a complex multiplier.
  • the IFFT circuit 213 performs N-point inverse fast Fourier transform (IFFT) on the processed block output from the filter arithmetic circuit 212 and reconverts it into a time domain signal. Then, IFFT circuit 213 outputs a “time domain block” made up of N time domain data to overlap removal circuit 214.
  • IFFT inverse fast Fourier transform
  • the overlap removal circuit 214 removes a total of M “removed partial data” from both ends of the time axis of each time domain block output from the IFFT circuit 213. Then, the overlap removal circuit 214 extracts only the “output portion data” and the non-overlapping center portion of the overlap portion of the time domain block, and outputs them as “output data”.
  • the overlap amount M is set to a predetermined value in advance. As will be described later, the overlap amount M is updated to an appropriate value by the overlap amount determination unit 222.
  • the overlap addition circuit 210 and the overlap removal circuit 214 respectively add or remove overlap according to the overlap amount M at that time.
  • the overlap amount M is smaller than the FFT block size N.
  • the overlap error detection unit 215 compares the values of the removal portion data that is finally removed and the output portion data that is output without being removed, in the overlap portion of two consecutive FFT blocks. Detects the amount of distortion at the lap. The reason why the amount of distortion in the overlap portion is detected by this comparison is that the data in the output portion is a normal value that does not cause distortion, and the data in the removal portion may cause distortion.
  • the overlap amount determination unit 222 increases the overlap amount M when the detected distortion amount is larger than a predetermined specified value.
  • the overlap amount determination unit 222 decreases the overlap amount M when the detected distortion amount is smaller than a predetermined specified value.
  • the overlap amount determination unit 222 outputs a control signal 216 that instructs to increase or decrease the overlap amount to the overlap addition circuit 210 and the overlap removal circuit 214.
  • FIG. 2 is a block diagram showing a configuration example of the FFT circuit 211 in the embodiment of the present invention.
  • the FFT circuit 211 processes the 64-point FFT decomposed into two-stage butterfly processing with a radix of 8 in accordance with the data flow 500 shown in FIG.
  • the FFT circuit 211 performs 64-point FFT processing in parallel with 8 data.
  • the FFT circuit 211 receives time-domain data x (n), generates and outputs a frequency-domain signal X (k) subjected to Fourier transform by FFT processing.
  • a total of 64 pieces of data are input as input data x (n) in the order shown in FIG.
  • the numbers from 0 to 63 shown as the contents of the table of FIG. 3 mean the subscript n of x (n).
  • 8 data of X (0), X (1),..., X (7) constituting the data set P1 are output in the first cycle.
  • 8 data of X (8), X (9),..., X (15) constituting the data set P2 are output.
  • data constituting the data sets P3 to P8 are output from the third cycle to the eighth cycle.
  • the FFT circuit 211 includes a first data rearrangement processing unit 11, a first butterfly calculation processing unit 21, a second data rearrangement processing unit 12, a twist multiplication processing unit 31, a second butterfly calculation processing unit 22, and A third data rearrangement processing unit 13 is provided.
  • the FFT circuit 211 performs a first data rearrangement process, a first butterfly operation process, a second data rearrangement process, a twist multiplication process, a second butterfly operation process, and a third data rearrangement process. Line processing.
  • the first data rearrangement processing unit 11 and the second data rearrangement processing unit 12 are buffer circuits for data rearrangement.
  • the first data rearrangement processing unit 11 and the second data rearrangement processing unit 12 respectively have data dependence on the FFT processing algorithm before and after the first butterfly computation processing unit 21. Based on the data sequence rearrangement.
  • the third data rearrangement processing unit 13 is a buffer circuit for data rearrangement. That is, the third data rearrangement processing unit 13 rearranges the data sequence after the second butterfly calculation processing unit 22 based on the data dependency on the FFT processing algorithm.
  • the first data rearrangement processing unit 11 inputs the “sequential order” shown in FIG. 3, which is the input order of the input data x (n), to the first butterfly calculation processing unit 21.
  • the data is rearranged in the “bit reverse order” shown in FIG.
  • the bit reverse order shown in FIG. 4 corresponds to the input data set to the radix-8 butterfly processing 502 in the first stage in the data flow diagram shown in FIG. Specifically, in the first cycle, 8 data of x (0), x (8),..., X (56) constituting the data set P1 are input. Then, in the second cycle, 8 data of x (1), x (9),..., X (57) constituting the data set P2 are input. Thereafter, data constituting the data sets P3 to P8 is input in the same manner from the third cycle to the eighth cycle.
  • “sequential order” and “bit reverse order” will be specifically described.
  • “Sequential order” refers to the order of the eight data sets P1, P2, P3, P4, P5, P6, P7, and P8 shown in FIG.
  • (i) ps (i) 8 (s-1) + i It is.
  • Each data set is arranged in the order of P1, P2, P3, P4, P5, P6, P7, and P8 corresponding to the progress of the processing cycle. That is, the sequential order is created by creating s data sets in which i ⁇ s pieces of data are arranged i in order of data from the top data, and the data sets are arranged in a cycle order.
  • bit reverse order refers to the order of the eight data sets Q1, Q2, Q3, Q4, Q5, Q6, Q7, and Q8 shown in FIG.
  • Each data set is arranged in the order of Q1, Q2, Q3, Q4, Q5, Q6, Q7, and Q8 corresponding to the progress of the processing cycle.
  • the bit reverse order is a sequence in which i ⁇ s pieces of data input in sequential order are arranged in s order from the top data in order of cycles, and i pieces of data in the same cycle are arranged in order of data as one set. It is.
  • each data set in the bit reverse order is uniquely determined if each sequential order is set.
  • Qs (i) and Pi (s) have a relationship in which the order of the cycle progress and the order of the data position are exchanged for the data constituting each data set. Therefore, when data input in the bit reverse order is rearranged according to the bit reverse order, the sequential order is obtained.
  • Each row ps (i) in FIG. 3 and eight rows qs (i) in FIG. 4 indicate data input to the i-th data in the next stage.
  • Eight numbers included in each data set are identification information for specifying one of the points of the FFT, specifically, the value of the subscript n of x (n).
  • each sequential data set may be created by arranging data in order according to the number of FFT points, the number of cycles, and the number of data to be processed in parallel as described above. Then, as described above, each data set in the bit reverse order may be created by switching the order of the data input in the sequential order with respect to the progress of the cycle and the order of the data position.
  • the first butterfly calculation processing unit 21 is a butterfly circuit that processes the first butterfly calculation process 502 (first butterfly calculation process) of the radix-8 butterfly calculation process performed twice in the data flow 500 of FIG. is there.
  • the second data rearrangement processing unit 12 is shown in FIG. 4 in order to input the data y (n) output from the first butterfly calculation processing unit 21 in sequential order to the second butterfly calculation processing unit 22. Rearrange in bit reverse order.
  • the twist multiplication processing unit 31 is a circuit that processes complex rotation on the complex plane in the FFT operation after the first butterfly operation processing, and corresponds to the twist multiplication processing 504 in the data flow 500 of FIG. In the twist multiplication process, data is not rearranged.
  • the second butterfly computation processing unit 22 is a butterfly circuit that processes the second radix-8 butterfly process 503 in the data flow diagram of FIG.
  • the third data rearrangement processing unit 13 rearranges the data X (k) output by the second butterfly computation processing unit 22 in the bit reverse order in the sequential order shown in FIG.
  • the data rearrangement processing unit temporarily stores the input data, and controls the selection and output of the stored data, so that the sequential order shown in FIG. 2, the bit reverse order shown in FIG. 3, and the sequential order shown in FIG. Data rearrangement processing according to each order is realized. Below, the specific example of a data rearrangement process part is shown.
  • the first data rearrangement processing unit 11, the second data rearrangement processing unit 12, and the third data rearrangement processing unit 13 can be realized by, for example, the data rearrangement processing unit 100 illustrated in FIG. .
  • the data rearrangement processing unit 100 inputs data sets D1 to D8 consisting of eight data input as the input information 103 in the first-in first-out first-in first-out buffer (FIFO buffer). Write and store in storage locations 101a-101h. Specifically, data sets D1 to D8 are stored in the data storage positions 101a to 101h, respectively.
  • FIFO buffer first-in first-out first-in first-out buffer
  • the data rearrangement processing unit 100 outputs the stored data in the first-out order in the FIFO buffer. Specifically, the data rearrangement processing unit 100 reads eight pieces of data from each of the data reading positions 102 a to 102 h to form one data set, and outputs the eight data sets D 1 ′ to D 8 ′ as output information 104. To do. As described above, the data sets D1 'to D8' are obtained by rearranging the data included in the data sets D1 to D8 arranged in the cycle order in the order of the data positions.
  • the FFT circuit 211 performs the sequential order shown in FIG. Three reordering processes according to the bit reverse order shown in FIG. 3 and the sequential order shown in FIG. 4 are required. This is because the FFT circuit 211 performs 64-point FFT processing in parallel with 8 data, so that 8 cycles are required for the FFT processing, and data must be rearranged across the cycles.
  • the IFFT circuit 213 can also be realized with the same configuration as the FFT circuit 211.
  • FIG. 6 is a block diagram illustrating a configuration example of the overlap error detection unit 215 according to the embodiment of the present invention.
  • the overlap error detection unit 215 includes a first error comparison unit 221a, a second error comparison unit 221b, and an overlap amount determination unit 222.
  • the overlap error detection unit 215 compares the removal data and the overlap output data included in each of the two consecutive FFT blocks, the FFT block FB (i) and the FFT block FB (i + 1), and the result The overlap amount M is determined based on the above.
  • the detailed operation of the overlap error detection unit 215 is as follows.
  • the first error comparison unit 221a detects and detects an error in the removed portion data of FB (i) by comparing the value of the removed portion data of FB (i) with the value of the output portion data of FB (i + 1).
  • the error is output to the overlap amount determination unit 222.
  • the second error comparison unit 221b detects an error in the removed partial data of FB (i + 1) by comparing the value of the output partial data of FB (i) and the value of the removed partial data of FB (i + 1). The detected error is output to the overlap amount determination unit 222.
  • the overlap amount determination unit 222 includes the error of the removal portion data of FB (i) input from the first error comparison unit 221a and the removal portion data of FB (i + 1) input from the second error comparison unit 221b. The necessary overlap amount is determined on the basis of the error. Then, the overlap amount determination unit 222 outputs a control signal 216 that instructs to increase or decrease the overlap amount to the overlap addition circuit 210 and the overlap removal circuit 214. (Operation of the embodiment)
  • the overlap error detection unit 215 detects the distortion amount of the overlap portion by comparing the value of the removal portion data and the value of the output portion data in the overlap portion of two consecutive FFT blocks. The reason why the amount of distortion in the overlap portion is detected by this comparison is that the data in the output portion is a normal value that does not cause distortion, and the data in the removal portion may cause distortion.
  • the overlap error detection unit 215 increases the overlap amount M when the detected distortion amount is larger than a predetermined specified value.
  • the overlap amount determination unit 215 decreases the overlap amount M when the detected distortion amount is smaller than a predetermined specified value.
  • the overlap error detection unit 215 outputs a control signal 216 that instructs to increase or decrease the overlap amount to the overlap addition circuit 210 and the overlap removal circuit 214.
  • the overlap addition circuit 210 and the overlap removal circuit 214 decrease the overlap amount M when the control signal 216 output from the overlap amount determination unit 215 instructs to decrease the overlap amount.
  • the overlap addition circuit 210 and the overlap removal circuit 214 increase the overlap amount M when the control signal 216 instructs to increase the overlap amount.
  • the overlap adding circuit 210 and the overlap removing circuit 214 respectively add and remove overlap according to the overlap amount M (effect of the embodiment). In the vicinity of both ends of the overlap portion in the FFT-processed block, data that causes distortion of the signal is included. The amount of distortion is large when the actual overlap amount M is small and small when the overlap amount M is large with respect to the necessary overlap amount. Further, since the total processing amount increases as the overlap amount M increases, the power consumption of the digital filter circuit 200 also increases.
  • the digital filter circuit 200 detects the amount of distortion generated in the overlap portion by comparing the data of the overlap portion between two consecutive FFT blocks.
  • the digital filter circuit 200 increases the overlap amount M when the detected distortion amount is larger than a predetermined specified value, and the overlap amount M when the detected distortion amount is small. Decrease. That is, the digital filter circuit 200 adaptively controls the overlap amount M in accordance with the detected distortion of the overlap portion.
  • the amount of distortion generated by the output data of the digital filter circuit 200 can be maintained at an appropriate amount.
  • the filter processing is performed with the minimum overlap amount necessary to maintain an appropriate amount of distortion, so that the power consumption required for the filter processing can be reduced.
  • the overlap amount determination unit 222 includes two error comparison units in order to detect an error in each of the removed portion data of the block before and after the two consecutive FFT blocks, Determine the amount of overlap.
  • the overlap amount determination unit 222 includes only an error comparison unit that detects an error of the removal portion data of either the previous block or the subsequent block, and the necessary overlap amount is calculated only from the output of the error comparison unit. You may decide.
  • each process such as FFT, IFFT, and filter processing is processed by components such as individual circuits.
  • the processing of each embodiment may be executed by software using a computer provided in a predetermined apparatus, for example, a DSP (Digital Signal Processor). That is, a computer program for performing each process is read and executed by a DSP (not shown).
  • DSP Digital Signal Processor
  • data rearrangement processing may be performed using a program.
  • data rearrangement processing may be performed by using a DSP and a memory to control writing of data to the memory and reading of data from the memory by a program.
  • the FFT processing may be performed using a program.
  • the above processing program is stored in a non-transitory medium such as a ROM (Read Only Memory), a RAM (Random Access Memory), a semiconductor memory device such as a flash memory, an optical disk, a magnetic disk, a magneto-optical disk, or the like. Also good.
  • a non-transitory medium such as a ROM (Read Only Memory), a RAM (Random Access Memory), a semiconductor memory device such as a flash memory, an optical disk, a magnetic disk, a magneto-optical disk, or the like. Also good.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Discrete Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Complex Calculations (AREA)

Abstract

時間領域の入力ブロックに、その直前の入力ブロックの最後のデータをオーバーラップさせ、オーバーラップブロックを生成する。オーバーラップブロック及び直前の入力ブロックのそれぞれを、周波数領域ブロックに変換し、フィルタ処理を行い、第1及び第2の時間領域ブロックに変換する。第1の時間領域ブロックと第2の時間領域ブロックとのオーバーラップ部分のうち、第1の時間領域ブロックの前端のデータ及び第2の時間領域ブロックの時間軸の後端のデータを除去部分データとして除去し、出力データを生成する。第1の時間領域ブロックの除去部分データと、第2の時間領域ブロックのオーバーラップ部分のうちの除去部分データ以外の出力部分データとを比較して求めた歪み量に基づいて、オーバーラップ量を制御する。

Description

デジタルフィルタ装置、デジタルフィルタ処理方法及びデジタルフィルタプログラムが記憶された記憶媒体
 本発明は、デジタル信号処理における演算処理に関し、特にデジタルフィルタ装置、デジタルフィルタ処理方法及びデジタルフィルタプログラムが記憶された記憶媒体に関する。
 デジタル信号処理において重要な処理の1つとして、高速フーリエ変換(Fast Fourier Transform。以降、「FFT」という。)処理がある。そして、無線通信や有線通信における信号伝送中の波形歪みを補償する技術の1つとして、例えば、周波数領域等化(Frequency domain equalization(FDE))技術が知られている。周波数領域等化では、まず高速フーリエ変換により時間領域の信号データが周波数領域のデータに変換され、次に等化のためのフィルタ処理が行われる。そして、フィルタ処理後のデータは、逆高速フーリエ変換(Inverse FFT。以降、「IFFT」という。)により時間領域の信号データに再変換されることによって、元の時間領域の信号の波形歪みが補償される。以降、FFTとIFFTを区別しないときは、「FFT/IFFT」と表記する。
 一般に、FFT/IFFT処理では、「バタフライ演算」が用いられる。バタフライ演算を用いたFFT装置については、例えば特許文献1に記載がある。特許文献1には、後述の「ひねり乗算」、すなわち、ひねり係数を用いた乗算についても記載されている。
 効率的なFFT/IFFT処理方式としては、例えば非特許文献1に記載されたCooley-Tukeyによるバタフライ演算が有名である。しかし、Cooley-TukeyによるFFT/IFFT処理方式はポイント数が大きいので、当該処理方式を実現するための回路が複雑になる。そのため、例えば非特許文献2に記載されたPrime Factor法を用いて2つの小さなFFT/IFFTに分解して、FFT/IFFT処理が行われる。
 図7は、例えばPrime Factor法を利用して基数を8とする2段階のバタフライ処理に分解された、64ポイントFFTのデータフロー500を示す。データフロー500は、データ並べ替え処理501、バタフライ演算処理502、503からなる延べ16回の基数8のバタフライ演算処理、ひねり乗算処理504を含む。
 図7に示すデータフローでは、入力された時間領域のデータx(n)(n=0,1,・・・,63)が、FFT処理により、周波数領域の信号X(k)(k=0,1,・・・,63)にフーリエ変換される。図7に示す例は、一部のデータフローの図示は省略されている。なお、図7に示すデータフローは、IFFT処理を行う場合についても、基本構成は同じである。
 FFTのポイント数が大きい場合、図7に示すデータフローのすべてを回路で実現するためには、膨大な規模の回路を要する。そのため、FFTのポイント数が大きい場合、必要な処理性能に応じて、データフローの一部分の処理を実現する回路を繰り返し使用することで、FFT処理の全体を実現する方法が一般的である。
 例えば、図7に示すデータフローにおいて、8個のデータに対して並列に(以降、単に「8データ並列で」という。)FFT処理を行うFFT装置を物理的な回路として作成した場合、合計8回の繰り返し処理により64ポイントFFT処理を実現することができる。
 8回の繰り返し処理は、8個のデータに対して行われる部分データフロー505a~505hの、それぞれにあたる処理が順に行われるものであり、具体的には、次のように行われる。すなわち、1回目には、部分データフロー505aに相当する処理が、2回目には、部分データフロー505bに相当する処理が、3回目には、部分データフロー505c(図示せず)に相当する処理が行われる。以降同様に、8回目の部分データフロー505hに相当する処理までが順に行われる。以上の処理により、64ポイントFFT処理が実現される。
 バタフライ演算では、逐次的な順序に並べられたデータが、所定の規則に従った順序で読み出され、処理される。そのため、バタフライ演算では、データの並べ替えが必要であり、そのためにはRAM(Random Access Memory)が用いられる。バタフライ演算においてRAMを用いたデータの並べ替えを行うFFT装置については、例えば特許文献2に記載がある。
 また、メモリ使用量を削減したFFT演算装置については、バタフライ演算の並列処理による高速化技術が、例えば特許文献3に記載されている。
 ところで、FFTでは、処理対象である、切り出された入力信号の範囲、すなわち連続する入力データの集合(以降、「処理ブロック」という。)と同じデータが周期的に繰り返されることが仮定されている。ところが、実際の信号は必ずしも周期信号ではないため、FFT後の処理ブロックの両端付近に演算歪みが発生するという問題がある。
 この問題を解消する技術として、例えば、「オーバーラップ方式」を挙げることができる。オーバーラップ方式では、隣接する処理ブロック同士が所定のデータ数だけオーバーラップされ、FFT処理が行われる。FFT処理後のデータはフィルタ処理された上で、IFFT処理により時間領域信号に再変換される。そして、オーバーラップされた処理ブロックにおける、演算歪みが生じた両端の部分データが除去される。以降、処理ブロックのデータのうち、除去される部分を「除去部分」といい、除去されずに出力される部分を「出力部分」という。
 オーバーラップ方式は、FDEにも適用されている(例えば、特許文献4、5参照)。オーバーラップ方式がFDEに適用されたオーバーラップFDE方式について説明する。図8は、オーバーラップFDE方式によるデジタルフィルタ回路700の構成例を示すブロック図である。デジタルフィルタ回路700は、周波数領域でフィルタ処理を行う周波数領域フィルタ回路である。具体的には、入力データとして入力される時間領域の信号は、FFTにより周波数領域のデータに変換された後にフィルタ処理が実施される。そして、フィルタ処理後の信号は、IFFTにより時間領域の信号に再変換されて出力信号として出力される。
 デジタルフィルタ回路700は、オーバーラップ付加回路710と、FFT回路711と、フィルタ演算回路712と、IFFT回路713と、オーバーラップ除去回路714と、を備える。
 オーバーラップ付加回路710は、時間領域の入力信号である入力データから、N個のデータ(Nは正整数)からなるブロックを順次生成し、FFT回路711へ出力する。このとき、オーバーラップ付加回路710は、各ブロックに対して、直前のブロックとM個のデータ(Mは正整数)だけオーバーラップさせる。オーバーラップされるデータ数の個数Mを、以降、「オーバーラップ量」という。そして、各ブロックの、オーバーラップされた部分を「オーバーラップ部分」という。
 オーバーラップ量Mは、予め決定された固定値とされることがある。その場合、オーバーラップ値Mの値に合わせてオーバーラップ付加回路710及びオーバーラップ除去回路714が構成される。あるいは、例えば、CPU(Central Processing Unit)などの上位回路(図示せず)から与えられるオーバーラップ量Mの設定値をオーバーラップ付加回路710及びオーバーラップ除去回路714が参照し、動作時に設定してもよい。なお、オーバーラップ付加回路710は、例えば、2ポートメモリにより構成することができる。
 FFT回路711は、オーバーラップ付加回路710から出力される、M個のデータがオーバーラップされた時間領域の入力信号に対して、FFTを行い、周波数領域の信号に変換して、フィルタ演算回路712へ出力する。
 フィルタ演算回路712は、FFT回路711によって変換された周波数領域の信号に対してフィルタ処理を行い、IFFT回路713へ出力する。例えば、デジタルフィルタ回路700が通信チャネルにおける信号歪みの等化処理を実行する場合、フィルタ演算回路712は、複素数乗算器で構成することができる。
 IFFT回路713は、フィルタ演算回路712から出力されるフィルタ処理後の周波数領域の信号に対して、IFFTを行い、時間領域の信号に再変換して、オーバーラップ除去回路714へ出力する。
 オーバーラップ除去回路714は、IFFT回路713によって再変換された時間領域の信号であるN個のデータからなる各ブロックの両端から合計M個のデータを除去する。
このとき除去される部分が前述の「除去部分」であり、そのデータの個数はオーバーラップ量Mに等しい。そして、オーバーラップ除去回路714は、オーバーラップ部分に含まれる「出力部分」とオーバーラップしていないブロックの中央部分のデータとを出力データとして出力する。
 以下、図8に示すデジタルフィルタ回路700の動作について、図9を参照して説明する。図9は、図8に示すデジタルフィルタ回路の動作の一例を示す動作図である。以下の説明において、処理ステップ(1)~(5)は、図9における処理ステップ(1)~(5)にそれぞれ対応する。
(1)オーバーラップ付加処理
 オーバーラップ付加回路710は、時間領域の入力信号である入力データから、N個のデータ(Nは正整数)からなるブロックを順次生成する。このとき、オーバーラップ付加回路710は、直前のブロックとM個のデータだけ重複(オーバーラップ)させる。
 入力データを
   x(i) (i=0,1,・・・)
としたとき、Nデータのブロックは
   x(j) (j=m(N-M)-N~m(N-M)-1,mは正整数)
で表される。ここで、NはFFTブロックサイズ、Mはオーバーラップ量である。
(2)FFT処理
 FFT回路711は、時間領域の信号データからなるブロックに対して、FFTを行い、周波数領域の信号データからなるブロックに変換する。
 N個の時間領域の信号データからなるブロックをあらためて
   x(n) (n=0,1,・・・,N-1)
とすると、FFT処理後の周波数領域のブロックは
   X(k) (k=0,1,・・・,N-1)
で与えられる。
(3)周波数領域フィルタ処理
 フィルタ演算回路712は、FFT処理後のブロックを構成する周波数領域の各信号データに対して、フィルタ処理を行う。
 フィルタ処理前のブロックX(k)に対するフィルタ処理後のブロックは
   X'(k)=H(k)・X(k) (k=0,1,・・・,N-1)
で与えられる。ここで、H(k)はフィルタ係数を示す。
(4)IFFT処理
 IFFT回路713は、フィルタ処理後の周波数領域の信号データからなるブロックに対して、IFFTを行い、時間領域の信号データからなるブロックに再変換する。
 IFFT処理前のブロックX'(k)に対するIFFT処理後のブロックは、
   y(n) (n=0,1,・・・,N-1)
で与えられる。
(5)オーバーラップ除去処理
 オーバーラップ除去回路714は、IFFT処理後のN個の信号データからなるブロックy(n)から、ブロック先頭及び末端からそれぞれM/2個のオーバーラップ分のデータ、すなわち除去部分のデータを除いた中央部分を切り出す。
 これにより、除去部分のデータが除去され、ブロックy(n)のオーバーラップ部分に含まれる出力部分と、オーバーラップしていない中央部とからなる(N-M)個の信号データ系列
   y'(j) (j=M/2~(N-1)-M/2)
が生成される。
 処理の内容をFDE等には限定しない、一般のフィルタ処理にオーバーラップ処理を用いるデジタルフィルタ回路も存在する(例えば、特許文献6参照)。特許文献6のデジタルフィルタ回路も、オーバーラップ付加処理、FFT処理、周波数領域フィルタ処理、IFFT処理、及びオーバーラップ除去処理を行う。
 ところで、オーバーラップ処理を用いるフィルタにおける必要なオーバーラップ量は、実行されるフィルタ処理のインパルス応答長に基づいて決定される。さらに、FFTの処理ブロックの大きさは、必要なオーバーラップ量よりも大きい必要がある。従って、FFTの処理ブロックの大きさは、フィルタ処理のインパルス応答長に応じて決定される。
 サイズが変動するブロックに対してFFTを行う処理装置の、ハードウェア量を減少させる技術もある(例えば、特許文献7参照)。特許文献7の直交変換プロセッサは、FFTベクトル(「処理ブロック」に相当)の長さに適合して、メモリサイズを決定したり、不要な回路ブロックを無効にしたり、ハードウェアを時分割で動作させたりする。
特開平8-137832号公報 (第3-5頁、図25) 特開2001-56806号公報 (第5頁、図1) 特開2012-22500号公報 (第5頁、図1) 特開2006-304192公報 (第4-5頁、図4) 特開2010-130355公報 (第3-6頁、図6) 国際公開第2012/086262号 (第3-4頁、図1) 特表2008-506191 (第11-12頁、図11、12)
J. W. Cooley, J. W. Tukey, "An Algorithm for the Machine Calculation of Complex Fourier Series," Mathematics of Computation, US, American Mathematical Society, Apr. 1965, Vol.19, No. 90, pp. 297-301 D. P. Kolba, "A Prime Factor FFT Algorithm Using High-Speed Convolution," IEEE Trans. on Acoustics, US, IEEE Signal Processing Society, Aug. 1977, Vol.29, No.4 , pp. 281-294
 上記のように、FFTの処理ブロックの大きさは、フィルタ処理のインパルス応答長に依存する。従って、インパルス応答長が大きくなると、必要なオーバーラップ量、及びFFTの処理ブロックも大きくなする。その結果、処理に必要な回路規模や消費電力が増大するという問題がある。
 このように、一般に、FFTと周波数領域のフィルタ処理とを併用し、さらに、オーバーラップ処理を用いるときには、フィルタのインパルス応答長が長いほど、処理に必要な回路規模や消費電力が大きくなる。従って、フィルタの特性に応じて、動作する回路の規模を最適化し、消費電力を最小限に抑えることが望ましい。
 しかし、特許文献1-3や非特許文献1、2に記載されたFFT装置では、処理ブロックの変更に対応した、動作回路の規模の最適化や消費電力制御等の制御は特に行われない。
 また、特許文献4-6に記載されたオーバーラップを用いるフィルタ方式でも、フィルタのインパルス応答に着目した処理は行われていない。従って、特許文献4-6に記載された方式でも上記の問題を解決することができない。
 特許文献7の直交変換プロセッサは、メモリサイズを決定したり、不要な回路ブロックを無効にしたり、ハードウェアを時分割で動作させたりするものの、FFT/IFFT処理自体における並べ替え処理は必要である。一般に並べ替え処理には、処理ブロックのデータをすべて記憶できるだけの容量をもつメモリが必要である。そのため、フィルタ処理のインパルス応答長が大きく、処理ブロックの大きさが大きいときには大規模のメモリが必要となり、処理に必要な回路規模や消費電力が増大するという問題がある。
(発明の目的)
 本発明は、FFTと周波数領域におけるフィルタ処理を併用する場合に、消費電力を削減することができるデジタルフィルタ装置、デジタルフィルタ処理方法及びデジタルフィルタプログラムが記憶された記憶媒体を提供することを目的とする。
 本発明のデジタルフィルタ装置は、連続する(N-M)個の時間領域の入力データ(Nは正整数、MはNより小さい正整数)を含む第1の入力ブロックに、第1の入力ブロックの直前の連続するN個の時間領域の入力データを含む第2の入力ブロックの最後の連続するデータをオーバーラップ量であるM個だけ付加し、オーバーラップブロックを生成するオーバーラップ付加手段と、オーバーラップブロック及び第2の入力ブロックのそれぞれを、高速フーリエ変換処理により周波数領域の第1の周波数領域ブロック及び第2の周波数領域ブロックに変換するフーリエ変換手段と、第1の周波数領域ブロック及び第2の周波数領域ブロックのそれぞれに対してフィルタ処理を行い、第1の処理後ブロック及び第2の処理後ブロックを生成するフィルタ演算手段と、第1の処理後ブロック及び第2の処理後ブロックのそれぞれを、逆高速フーリエ変換処理により時間領域の第1の時間領域ブロック及び第2の時間領域ブロックに変換する逆フーリエ変換手段と、第1の時間領域ブロック及び第2の時間領域ブロックのそれぞれが時間的にオーバーラップするオーバーラップ部分のうち、第1の時間領域ブロックの時間軸の前端のk個(kはMより小さい正整数)のデータ及び第2の時間領域ブロックの時間軸の後端の(M-k)個のデータを除去部分データとして除去し、出力データを生成するオーバーラップ除去手段と、第1の時間領域ブロックの除去部分データと、第2の時間領域ブロックのオーバーラップ部分のうちの除去部分データ以外の出力部分データとを比較してオーバーラップ部分に含まれるデータが発生させる歪み量を検出し、歪み量に基づいてオーバーラップ量を制御するオーバーラップ誤差検出手段と、を備えることを特徴とする。
 本発明のデジタルフィルタ処理方法は、連続する(N-M)個の時間領域の入力データ(Nは正整数、MはNより小さい正整数)を含む第1の入力ブロックに、第1の入力ブロックの直前の連続するN個の時間領域の入力データを含む第2の入力ブロックの最後の連続するデータをオーバーラップ量であるM個だけ付加してオーバーラップブロックを生成し、オーバーラップブロック及び第2の入力ブロックのそれぞれを、高速フーリエ変換処理により周波数領域の第1の周波数領域ブロック及び第2の周波数領域ブロックに変換し、第1の周波数領域ブロック及び第2の周波数領域ブロックのそれぞれに対してフィルタ処理を行って第1の処理後ブロック及び第2の処理後ブロックを生成し、第1の処理後ブロック及び第2の処理後ブロックのそれぞれを、逆高速フーリエ変換処理により時間領域の第1の時間領域ブロック及び第2の時間領域ブロックに変換し、第1の時間領域ブロック及び第2の時間領域ブロックのそれぞれが時間的にオーバーラップするオーバーラップ部分のうち、第1の時間領域ブロックの時間軸の前端のk個(kはMより小さい正整数)のデータ及び第2の時間領域ブロックの時間軸の後端の(M-k)個のデータを除去部分データとして除去して出力データを生成し、第1の時間領域ブロックの除去部分データと、第2の時間領域ブロックのオーバーラップ部分のうちの除去部分データ以外の出力部分データとを比較してオーバーラップ部分に含まれるデータが発生させる歪み量を検出し、歪み量に基づいてオーバーラップ量を制御することを特徴とする。
 本発明の記憶媒体に記憶されているデジタルフィルタプログラムは、デジタルフィルタ装置が備えるコンピュータを、連続する(N-M)個の時間領域の入力データ(Nは正整数、MはNより小さい正整数)を含む第1の入力ブロックに、第1の入力ブロックの直前の連続するN個の時間領域の入力データを含む第2の入力ブロックの最後の連続するデータをオーバーラップ量であるM個だけ付加し、オーバーラップブロックを生成するオーバーラップ付加手段と、オーバーラップブロック及び第2の入力ブロックのそれぞれを、高速フーリエ変換処理により周波数領域の第1の周波数領域ブロック及び第2の周波数領域ブロックに変換するフーリエ変換手段と、第1の周波数領域ブロック及び第2の周波数領域ブロックのそれぞれに対してフィルタ処理を行い、第1の処理後ブロック及び第2の処理後ブロックを生成するフィルタ演算手段と、第1の処理後ブロック及び第2の処理後ブロックのそれぞれを、逆高速フーリエ変換処理により時間領域の第1の時間領域ブロック及び第2の時間領域ブロックに変換する逆フーリエ変換手段と、第1の時間領域ブロック及び第2の時間領域ブロックのそれぞれが時間的にオーバーラップするオーバーラップ部分のうち、第1の時間領域ブロックの時間軸の前端のk個(kはMより小さい正整数)のデータ及び第2の時間領域ブロックの時間軸の後端の(M-k)個のデータを除去部分データとして除去し、出力データを生成するオーバーラップ除去手段と、第1の時間領域ブロックの除去部分データと、第2の時間領域ブロックのオーバーラップ部分のうちの除去部分データ以外の出力部分データとを比較してオーバーラップ部分に含まれるデータが発生させる歪み量を検出し、歪み量に基づいてオーバーラップ量を制御するオーバーラップ誤差検出手段と、として機能させることを特徴とする。
 本発明によれば、FFTと周波数領域におけるフィルタ処理を併用する場合に、消費電力を削減することができる。
本発明の実施形態におけるデジタルフィルタ回路200の構成を示すブロック図である。 本発明の実施形態におけるFFT回路211の構成を示すブロック図である。 本発明の実施形態における逐次順序に従うデータ組の配列を示す図である。 本発明の実施形態におけるビットリバース順序に従うデータ組の配列を示す図である。 本発明の実施形態におけるデータ並べ替え処理部の構成例100を示すブロック図である。 本発明の実施形態におけるオーバーラップ誤差検出部215の構成を示すブロック図である。 2段階のバタフライ演算を用いる64ポイントFFT処理のデータフロー500を示す図である。 FFT回路700の構成を示すブロック図である。 オーバーラップFDE方式による示すデジタルフィルタ回路の動作の一例を示す動作図である。
(第1の実施形態)
 次に本発明の実施の形態について図面を参照して詳細に説明する。図1は、本発明の実施形態におけるデジタルフィルタ回路200の構成例を示すブロック図である。
 デジタルフィルタ回路200は、オーバーラップ方式により、FDE等のフィルタ処理を行う。デジタルフィルタ回路200は、オーバーラップ付加回路210と、FFT回路211と、フィルタ演算回路212と、IFFT回路213と、オーバーラップ除去回路214と、オーバーラップ誤差検出部215と、を備える。
 オーバーラップ付加回路210は、時間領域の入力信号である入力データから、連続するN個のデータ(Nは正整数)からなる入力ブロックを順次生成し、FFT回路211へ出力する。このとき、オーバーラップ付加回路210は、各入力ブロックに対して、直前のブロックの最後のM個のデータ(Mは正整数)をオーバーラップさせる。「オーバーラップ」とは、各入力ブロックの先頭の所定のX個のデータ(Xは正整数)を、直前のブロックの最後のX個のデータと同一データとし、2つのブロックに重複したX個のデータが含まれるようにすることを意味する。オーバーラップ付加回路210は、オーバーラップされたM個のデータを含む、連続するN個のデータからなる「オーバーラップブロック」を生成する。なお、オーバーラップ付加回路210は、例えば、2ポートメモリにより構成することができる。
 FFT回路211は、オーバーラップ付加回路210から出力されたオーバーラップブロックに対して、Nポイントの高速フーリエ変換(FFT)を行い、周波数領域の信号に変換する。そして、FFT回路211は、N個の周波数領域のデータからなる「周波数領域ブロック」をフィルタ演算回路212へ出力する。
 フィルタ演算回路212は、FFT回路211から出力された周波数領域ブロックに対してフィルタ処理を行い、「処理後ブロック」をIFFT回路213へ出力する。例えば、デジタルフィルタ回路200が通信チャネルにおける信号歪みの等化処理、すなわちFDEを実行する場合であれば、フィルタ演算回路212は、複素数乗算器で構成することができる。
 IFFT回路213は、フィルタ演算回路212から出力された処理後ブロックに対して、Nポイントの逆高速フーリエ変換(IFFT)を行い、時間領域の信号に再変換する。そして、IFFT回路213は、N個の時間領域のデータからなる「時間領域ブロック」をオーバーラップ除去回路214へ出力する。
 オーバーラップ除去回路214は、IFFT回路213から出力された各時間領域ブロックの時間軸の両端から合計M個の「除去部分データ」を除去する。そして、オーバーラップ除去回路214は、時間領域ブロックのオーバーラップ部分の「出力部分データ」及びオーバーラップしていない中央部分のみを取り出し、「出力データ」として出力する。
 オーバーラップ量Mは、予め所定の値に設定される。そして、後述のように、オーバーラップ量Mは、オーバーラップ量決定部222によって適切な値に更新される。オーバーラップ付加回路210、およびオーバーラップ除去回路214は、それぞれ、その時点のオーバーラップ量Mに従って、オーバーラップの付加、または除去を行う。なお、オーバーラップ量Mは、FFTのブロックサイズNよりも小さい。
 オーバーラップ誤差検出部215は、連続する2つのFFTブロックのオーバーラップ部分における、最終的には除去される除去部分データ及び除去されずに出力される出力部分データの値を比較することによって、オーバーラップ部分の歪み量を検出する。この比較によってオーバーラップ部分の歪み量が検出される理由は、出力部分のデータは歪みを発生させない正常な値であり、除去部分のデータは歪みを発生させる場合があるからである。
 オーバーラップ量決定部222は、検出した歪み量が所定の規定値よりも大きい場合にはオーバーラップ量Mを増加させる。オーバーラップ量決定部222は、検出した歪み量が所定の規定値よりも小さい場合にはオーバーラップ量Mを減少させる。そのために、オーバーラップ量決定部222は、オーバーラップ量の増加又は減少を指示する制御信号216を、オーバーラップ付加回路210及びオーバーラップ除去回路214へ出力する。
 次に、デジタルフィルタ回路200を構成するFFT回路211の構成を説明する。
 図2は、本発明の実施形態におけるFFT回路211の構成例を示すブロック図である。FFT回路211は、図7に示されたデータフロー500に従って、基数を8とする2段階のバタフライ処理に分解された64ポイントFFTを、パイプライン回路方式によって処理する。FFT回路211は、時間領域のデータx(n)(n=0,1,・・・,63)を入力し、x(n)をFFT処理によりフーリエ変換して周波数領域の信号X(k)(k=0,1,・・・,63)を生成し、出力する。
 図7のデータフローに示した64ポイントFFT処理、すなわち各々8データを含む、8組のデータの組に対する処理のすべてを、組ごとに個別の回路で実現するためには、膨大な規模の回路を要する。そのため、FFT回路211は、8データ並列で64ポイントFFT処理を行うものとする。この場合、FFT回路211は、時間領域のデータx(n)を入力し、FFT処理によりフーリエ変換した周波数領域の信号X(k)を生成して出力する。このとき、入力データx(n)として、8データずつ、8サイクルの期間に、図3に示す順序で、合計で64個のデータが入力される。なお、ここでは、図3の表の内容として示された、0から63までの数字は、x(n)の添え字nを意味する。
 具体的には、1サイクル目に、データ組P1を構成するx(0),x(1),・・・,x(7)の8データが入力される。そして、2サイクル目に、データ組P2を構成するx(8),x(9),・・・,x(15)の8データが入力される。以降同様に、3サイクル目から8サイクル目まで、データ組P3~P8を構成するデータが入力される。
 同様に、出力データX(k)として、8データずつ、8サイクルの期間に、図3に示す順序で、64データが出力される。なお、ここで図3の表の内容として示された、0から63までの数字は、X(k)の添え字kを意味する。
 具体的には、1サイクル目に、データ組P1を構成するX(0),X(1),・・・,X(7)の8データが出力される。2サイクル目に、データ組P2を構成するX(8),X(9),・・・,X(15)の8データが出力される。以降同様に、3サイクル目から8サイクル目まで、データ組P3~P8を構成するデータが出力される。
 FFT回路211は、第1のデータ並べ替え処理部11、第1のバタフライ演算処理部21、第2のデータ並べ替え処理部12、ひねり乗算処理部31、第2のバタフライ演算処理部22、及び第3のデータ並べ替え処理部13、を備える。FFT回路211は、第1のデータ並べ替え処理、第1のバタフライ演算処理、第2のデータ並べ替え処理、ひねり乗算処理、第2のバタフライ演算処理、及び第3のデータ並べ替え処理を、パイプライン処理する。
 第1のデータ並べ替え処理部11、及び第2のデータ並べ替え処理部12は、データ並べ替えのためのバッファ回路である。第1のデータ並べ替え処理部11、及び第2のデータ並べ替え処理部12は、それぞれ、第1のバタフライ演算処理部21の前と後とで、FFT処理のアルゴリズム上のデータの依存関係に基づいた、データシーケンスの並べ替えを行う。
 第3のデータ並べ替え処理部13も、同様に、データ並べ替えのためのバッファ回路である。すなわち、第3のデータ並べ替え処理部13は、第2のバタフライ演算処理部22の後で、FFT処理のアルゴリズム上のデータの依存関係に基づいた、データシーケンスの並べ替えを行う。
 具体的には、第1のデータ並べ替え処理部11は、入力データx(n)の入力順序である図3に示す「逐次順序」を、第1のバタフライ演算処理部21に入力する順序である図4に示す「ビットリバース順序」に並べ替える。
 図4に示すビットリバース順序は、図7に示したデータフロー図における、1段目の基数8のバタフライ処理502への入力データ組に対応する。具体的には、1サイクル目に、データ組P1を構成するx(0),x(8),・・・,x(56)の8データを入力する。そして、2サイクル目に、データ組P2を構成するx(1),x(9),・・・,x(57)の8データを入力する。以降、3サイクル目から8サイクル目まで同様にして、データ組P3~P8を構成するデータを入力する。
 ここで、「逐次順序」と「ビットリバース順序」とについて、具体的に説明する。「逐次順序」とは、図3に示された、8つのデータ組P1、P2、P3、P4、P5、P6、P7、P8の順序をいう。データ組Ps(sは処理サイクルの順を示す値。s=1,・・・,8)は、それぞれ、ps(0)からps(7)まで、順に並んだ8個のデータからなり、ps(i)は、
   ps(i)=8(s-1)+i
である。そして、各データ組は、処理のサイクルの進行に対応して、P1、P2、P3、P4、P5、P6、P7、P8の順に並べられている。つまり、逐次順序とは、i×s個のデータを、先頭のデータからi個ずつデータ順に並べたデータ組をs個作成し、そのデータ組をサイクル順に並べたものである。
 「ビットリバース順序」とは、図4に示された、8つのデータ組Q1、Q2、Q3、Q4、Q5、Q6、Q7、Q8の順序をいう。データ組Qsは、それぞれ、qs(0)からqs(7)までの8個のデータからなり、qs(i)は、
   qs(i)=(s-1)+8i
である。そして、各データ組は、処理のサイクルの進行に対応して、Q1、Q2、Q3、Q4、Q5、Q6、Q7、Q8の順に並べられている。つまり、ビットリバース順序とは、逐次順序で入力されたi×s個のデータを、先頭のデータからs個ずつサイクル順に並べ、同じサイクルのi個のデータを1つの組としてデータ順に並べたものである。
 以上のように、ビットリバース順序の各データ組は、逐次順序の各組が設定されれば一意に定まる。ビットリバース順序の各データ組Qs(s=1,・・・,8)を構成するデータのiデータ目は、逐次順序に従ったサイクルiにおける、sデータ目のデータである。すなわち、
   Qs(i)=Pi(s)
である。このように、Qs(i)とPi(s)とは、各データ組を構成するデータについての、サイクルの進行に対する順序とデータ位置に対する順序が入れ替えられた関係にある。従って、ビットリバース順序で入力されたデータを、ビットリバース順序に従って並べ替えると、逐次順序になる。
 図3における各行ps(i)、及び図4における8つの行qs(i)は、それぞれ、次段のiデータ目に入力されるデータを示す。各データ組に含まれる8個の数字は、FFTのポイントのうちの1個を特定する識別情報であり、具体的にはx(n)の添え字nの値である。
 なお、逐次順序及びビットリバース順序は、図3、4に例示されたものに限定されない。すなわち、逐次順序の各データ組は、上記のように、FFTのポイント数、サイクル数、並列に処理するデータ数に応じて、データが順に並べられて作成されればよい。そして、ビットリバース順序の各データ組は、上記のように、逐次順序で入力されるデータの、サイクルの進行に対する順序とデータ位置に対する順序とが入れ替られて作成されればよい。
 第1のバタフライ演算処理部21は、図7のデータフロー500において2回行われる基数8のバタフライ演算処理の、1回目のバタフライ演算処理502(第1のバタフライ演算処理)を処理するバタフライ回路である。第1のバタフライ演算処理部21は、バタフライ演算処理の結果を、データy(n)(n=0,1,・・・,63)として、図3に示す逐次順序で出力する。
 第2のデータ並べ替え処理部12は、第1のバタフライ演算処理部21が逐次順序で出力するデータy(n)を、第2のバタフライ演算処理部22に入力するために、図4に示すビットリバース順序に並べ替える。
 ひねり乗算処理部31は、第1のバタフライ演算処理後に、FFT演算における複素平面上の複素回転を処理する回路であり、図7のデータフロー500における、ひねり乗算処理504に対応する。なお、ひねり乗算処理では、データの並べ替えは行われない。
 第2のバタフライ演算処理部22は、図7のデータフロー図における、2回目の基数8のバタフライ処理503を処理するバタフライ回路である。第2のバタフライ演算処理部22は、ビットリバース順序で入力されるひねり乗算処理後のデータy'(n)(n=0,1,・・・,63)に対してバタフライ演算処理を行い、その結果X(k)(n=0,1,・・・,63)を、同じくビットリバース順序で出力する。
 第3のデータ並べ替え処理部13は、第2のバタフライ演算処理部22がビットリバース順序で出力するデータX(k)を、図3に示す逐次順序に並べ替える。
 データ並べ替え処理部は、入力されたデータを一旦記憶し、記憶したデータの選択及び出力を制御することによって、図2に示す逐次順序、図3に示すビットリバース順序、及び図4に示す逐次順序のそれぞれに従ったデータの並べ替え処理を実現する。以下に、データ並べ替え処理部の具体例を示す。
 第1のデータ並べ替え処理部11、第2のデータ並べ替え処理部12、及び、第3のデータ並べ替え処理部13は、例えば図5に示すデータ並べ替え処理部100で実現することができる。
 データ並べ替え処理部100は、入力情報103として入力される8個のデータからなるデータ組D1~D8を、FIFOバッファ(First In First Out Buffer。先入れ先出しバッファ)における先入れ順序で入力して、データ記憶位置101a~101hに書き込み、記憶させる。具体的には、データ記憶位置101a~101hのそれぞれに、データ組D1~D8が記憶される。
 次に、データ並べ替え処理部100は、FIFOバッファにおける先出し順序で、記憶されているデータを出力する。具体的には、データ並べ替え処理部100は、データ読み出し位置102a~102hのそれぞれから8個のデータを読み出して1つのデータ組とし、8つのデータ組D1’~D8’を出力情報104として出力する。このように、データ組D1’~D8’は、サイクル順に並べられたデータ組D1~D8に含まれるデータを、データ位置の順に並べ替えて1つの組としたものである。
 以上説明したように、FFT回路211において、第1のデータ並べ替え処理部11、第2のデータ並べ替え処理部12、及び第3のデータ並べ替え処理部13によって、図2に示す逐次順序、図3に示すビットリバース順序、及び図4に示す逐次順序のそれぞれに従った3回の並べ替え処理が必要となる。なぜなら、FFT回路211は、8データ並列で64ポイントFFT処理を行うため、FFT処理に8サイクルが必要であり、サイクル間をまたがったデータの並べ替えが必要となるからである。
 IFFT回路213もFFT回路211と同様の構成で実現することができる。
 次に、デジタルフィルタ回路200を構成するオーバーラップ誤差検出部215の構成を説明する。
 図6は、本発明の実施形態に係るオーバーラップ誤差検出部215の構成例を示すブロック図である。オーバーラップ誤差検出部215は、第1の誤差比較部221aと、第2の誤差比較部221bと、オーバーラップ量決定部222と、を含む。
 オーバーラップ誤差検出部215は、2つの連続するFFTブロックであるFFTブロックFB(i)とFFTブロックFB(i+1)とのそれぞれに含まれる、除去データとオーバーラップ出力データとを比較し、その結果に基づいてオーバーラップ量Mを決定する。オーバーラップ誤差検出部215の詳細な動作は以下の通りである。
 第1の誤差比較部221aは、FB(i)の除去部分データの値とFB(i+1)の出力部分データの値との比較によりFB(i)の除去部分データの誤差を検出し、検出した誤差をオーバーラップ量決定部222に出力する。
 同様に、第2の誤差比較部221bは、FB(i)の出力部分データの値とFB(i+1)の除去部分データの値との比較によりFB(i+1)の除去部分データの誤差を検出し、検出した誤差をオーバーラップ量決定部222に出力する。
 オーバーラップ量決定部222は、第1の誤差比較部221aから入力されたFB(i)の除去部分データの誤差と、第2の誤差比較部221bから入力されたFB(i+1)の除去部分データの誤差とに基づいて、必要なオーバーラップ量を決定する。そして、オーバーラップ量決定部222は、オーバーラップ量の増加又は減少を指示する制御信号216を、オーバーラップ付加回路210及びオーバーラップ除去回路214へ出力する。
(実施形態の動作)
 オーバーラップ誤差検出部215は、連続する2つのFFTブロックのオーバーラップ部分において、除去部分データの値と出力部分データの値とを互いに比較することで、オーバーラップ部分の歪み量を検出する。この比較によってオーバーラップ部分の歪み量が検出される理由は、出力部分のデータは歪みを発生させる場合がない正常な値であり、除去部分のデータは歪みを発生させる場合があるからである。
 オーバーラップ誤差検出部215は、検出した歪み量が所定の規定値よりも大きい場合には、オーバーラップ量Mを増加させる。オーバーラップ量決定部215は、検出した歪み量が所定の規定値よりも小さい場合には、オーバーラップ量Mを減少させる。そのために、オーバーラップ誤差検出部215は、オーバーラップ量の増加又は減少を指示する制御信号216を、オーバーラップ付加回路210及びオーバーラップ除去回路214へ出力する。
 オーバーラップ付加回路210及びオーバーラップ除去回路214は、オーバーラップ量決定部215が出力する制御信号216が、オーバーラップ量の減少を指示する場合、オーバーラップ量Mを減少させる。一方、オーバーラップ付加回路210及びオーバーラップ除去回路214は、制御信号216が、オーバーラップ量の増加を指示する場合、オーバーラップ量Mを増加させる。そして、オーバーラップ付加回路210、オーバーラップ除去回路214は、それぞれ、オーバーラップ量Mに従って、オーバーラップの付加、除去を行う
(実施形態の効果)
 FFT処理されたブロックにおけるオーバーラップ部分の両端付近には、信号に歪みを発生させるデータが含まれる。そして、その歪みの量は、必要なオーバーラップ量に対して、実際のオーバーラップ量Mが小さい場合には大きく、オーバーラップ量Mが大きい場合には小さい。また、オーバーラップ量Mが大きいほど、処理量の合計が増加するので、デジタルフィルタ回路200の消費電力も増加する。
 そこで、以上のように、本実施形態のデジタルフィルタ回路200は、連続する2つのFFTブロックのオーバーラップ部分のデータを比較することによって、オーバーラップ部分に発生した歪みの量を検出する。そして、デジタルフィルタ回路200は、検出した歪みの量が所定の規定値よりも大きい場合にはオーバーラップ量Mの値を増加させ、検出した歪みの量が小さい場合にはオーバーラップ量Mの値を減少させる。すなわち、デジタルフィルタ回路200は、検出したオーバーラップ部分の歪みの大きさに応じて、オーバーラップ量Mを適応的に制御する。
 その結果、本実施形態では、デジタルフィルタ回路200の出力データが発生させる歪み量を適切な量に維持することができる。そして、本実施形態では、適切な歪み量を維持するために必要最小限のオーバーラップ量でフィルタ処理を行うので、フィルタ処理に要する消費電力を小さくすることができる。
 なお、本実施形態では、オーバーラップ量決定部222は、2つの連続するFFTブロックの前のブロック及び後のブロックのそれぞれの除去部分データの誤差を検出するために2つの誤差比較部を備え、オーバーラップ量を決定する。オーバーラップ量決定部222は、前のブロック又は後のブロックのいずれか一方の除去部分データの誤差を検出する誤差比較部のみを備え、その誤差比較部の出力のみから、必要なオーバーラップ量を決定してもよい。
 また、本実施形態では、FFT、IFFT、フィルタ処理等、各処理は、すべて個別の回路等の構成要素によって処理されることが想定されている。しかし、各実施形態の処理は、所定の装置が備えるコンピュータ、例えば、DSP(Digital Signal Processor)等を用いたソフトウェアによって実行されてもよい。すなわち、各処理を行うコンピュータプログラムは、DSP(図示なし)によって読み込まれ、実行される。
 例えば、データの並べ替え処理を、プログラムを用いて行ってもよい。すなわち、DSPとメモリを用いて、メモリへのデータの書き込み及びメモリからのデータの読み出しをプログラムによって制御することによって、データの並べ替え処理を行ってもよい。さらに、本実施形態ではFFT処理を、プログラムを用いて行ってもよい。
 以上のように、プログラムを用いて各処理を行っても、上述の実施形態の処理と同内容の処理を行うことができる。
 なお、上記の処理プログラムは、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ等の半導体記憶装置、あるいは光ディスク、磁気ディスク、光磁気ディスク等、非一時的な媒体に格納されてもよい。
 この出願は、2013年12月13日に出願された日本出願特願2013-258272を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 11  第1のデータ並べ替え処理部
 12  第2のデータ並べ替え処理部
 13  第3のデータ並べ替え処理部
 21  第1のバタフライ演算処理部
 22  第2のバタフライ演算処理部
 31  ひねり乗算処理部
 100  データ並べ替え処理部
 101a~101h  データ記憶位置
 102a~102h  データ読み出し位置
 103  入力情報
 104  出力情報
 200  デジタルフィルタ回路
 210  オーバーラップ付加回路
 211  FFT回路
 212  フィルタ演算回路
 213  IFFT回路
 214  オーバーラップ除去回路
 215  オーバーラップ誤差検出部
 216  制御信号
 221a  第1の誤差比較部
 221b  第2の誤差比較部
 222  オーバーラップ量決定部
 500  データフロー
 501  データ並べ替え処理
 502、503  バタフライ演算処理
 504  ひねり乗算処理
 505a~505h  部分データフロー
 700  デジタルフィルタ回路
 710  オーバーラップ付加回路
 711  FFT回路
 712  フィルタ演算回路
 713  IFFT回路
 714  オーバーラップ除去回路

Claims (6)

  1.  連続する(N-M)個の時間領域の入力データ(Nは正整数、MはNより小さい正整数)を含む第1の入力ブロックに、前記第1の入力ブロックの直前の連続するN個の時間領域の入力データを含む第2の入力ブロックの最後の連続するデータをオーバーラップ量であるM個だけ付加し、オーバーラップブロックを生成するオーバーラップ付加手段と、
     前記オーバーラップブロック及び前記第2の入力ブロックのそれぞれを、高速フーリエ変換処理により周波数領域の第1の周波数領域ブロック及び第2の周波数領域ブロックに変換するフーリエ変換手段と、
     前記第1の周波数領域ブロック及び前記第2の周波数領域ブロックのそれぞれに対してフィルタ処理を行い、第1の処理後ブロック及び第2の処理後ブロックを生成するフィルタ演算手段と、
     前記第1の処理後ブロック及び前記第2の処理後ブロックのそれぞれを、逆高速フーリエ変換処理により時間領域の第1の時間領域ブロック及び第2の時間領域ブロックに変換する逆フーリエ変換手段と、
     前記第1の時間領域ブロック及び前記第2の時間領域ブロックのそれぞれが時間的にオーバーラップするオーバーラップ部分のうち、前記第1の時間領域ブロックの時間軸の前端のk個(kはMより小さい正整数)のデータ及び前記第2の時間領域ブロックの時間軸の後端の(M-k)個のデータを除去部分データとして除去し、出力データを生成するオーバーラップ除去手段と、
     前記第1の時間領域ブロックの前記除去部分データと、前記第2の時間領域ブロックの前記オーバーラップ部分のうちの前記除去部分データ以外の出力部分データとを比較して前記オーバーラップ部分に含まれるデータが発生させる歪み量を検出し、前記歪み量に基づいて前記オーバーラップ量を制御するオーバーラップ誤差検出手段と、
    を備えることを特徴とするデジタルフィルタ装置。
  2.  前記オーバーラップ誤差検出手段は、
     前記検出した歪み量が規定値よりも大きい場合には、前記オーバーラップ量を増加させ、
     前記検出した歪み量が規定値よりも小さい場合には、前記オーバーラップ量を減少させる
    ことを特徴とする請求項1に記載のデジタルフィルタ装置。
  3.  前記オーバーラップ誤差検出手段は、
     前記第1の時間領域ブロックの前記除去部分データと、前記第2の時間領域ブロックの前記出力部分データとを比較し、前記第1の時間領域ブロックの前記歪み量を検出する第1の誤差比較部と、
     前記第1の誤差比較部によって検出された歪み量に基づいて前記オーバーラップ量を決定するオーバーラップ量決定部と、を含む
    ことを特徴とする請求項1又は2に記載のデジタルフィルタ装置。
  4.  前記オーバーラップ誤差検出手段は、
    前記第2の時間領域ブロックの前記除去部分データと、前記第1の時間領域ブロックの前記出力部分データとを比較し、前記第2の時間領域ブロックの前記歪み量を検出する第2の誤差比較部を含み、
     前記オーバーラップ量決定部は、前記第2の誤差比較部によって検出された歪み量に基づいて前記オーバーラップ量を決定する
    ことを特徴とする請求項3に記載のデジタルフィルタ装置。
  5.  連続する(N-M)個の時間領域の入力データ(Nは正整数、MはNより小さい正整数)を含む第1の入力ブロックに、前記第1の入力ブロックの直前の連続するN個の時間領域の入力データを含む第2の入力ブロックの最後の連続するデータをオーバーラップ量であるM個だけ付加してオーバーラップブロックを生成し、
     前記オーバーラップブロック及び前記第2の入力ブロックのそれぞれを、高速フーリエ変換処理により周波数領域の第1の周波数領域ブロック及び第2の周波数領域ブロックに変換し、
     前記第1の周波数領域ブロック及び前記第2の周波数領域ブロックのそれぞれに対してフィルタ処理を行って第1の処理後ブロック及び第2の処理後ブロックを生成し、
     前記第1の処理後ブロック及び前記第2の処理後ブロックのそれぞれを、逆高速フーリエ変換処理により時間領域の第1の時間領域ブロック及び第2の時間領域ブロックに変換し、
     前記第1の時間領域ブロック及び前記第2の時間領域ブロックのそれぞれが時間的にオーバーラップするオーバーラップ部分のうち、前記第1の時間領域ブロックの時間軸の前端のk個(kはMより小さい正整数)のデータ及び前記第2の時間領域ブロックの時間軸の後端の(M-k)個のデータを除去部分データとして除去して出力データを生成し、
     前記第1の時間領域ブロックの前記除去部分データと、前記第2の時間領域ブロックの前記オーバーラップ部分のうちの前記除去部分データ以外の出力部分データとを比較して前記オーバーラップ部分に含まれるデータが発生させる歪み量を検出し、前記歪み量に基づいて前記オーバーラップ量を制御する
    ことを特徴とするデジタルフィルタ処理方法。
  6.  デジタルフィルタ装置が備えるコンピュータを、
     連続する(N-M)個の時間領域の入力データ(Nは正整数、MはNより小さい正整数)を含む第1の入力ブロックに、前記第1の入力ブロックの直前の連続するN個の時間領域の入力データを含む第2の入力ブロックの最後の連続するデータをオーバーラップ量であるM個だけ付加し、オーバーラップブロックを生成するオーバーラップ付加手段と、
     前記オーバーラップブロック及び前記第2の入力ブロックのそれぞれを、高速フーリエ変換処理により周波数領域の第1の周波数領域ブロック及び第2の周波数領域ブロックに変換するフーリエ変換手段と、
     前記第1の周波数領域ブロック及び前記第2の周波数領域ブロックのそれぞれに対してフィルタ処理を行い、第1の処理後ブロック及び第2の処理後ブロックを生成するフィルタ演算手段と、
     前記第1の処理後ブロック及び前記第2の処理後ブロックのそれぞれを、逆高速フーリエ変換処理により時間領域の第1の時間領域ブロック及び第2の時間領域ブロックに変換する逆フーリエ変換手段と、
     前記第1の時間領域ブロック及び前記第2の時間領域ブロックのそれぞれが時間的にオーバーラップするオーバーラップ部分のうち、前記第1の時間領域ブロックの時間軸の前端のk個(kはMより小さい正整数)のデータ及び前記第2の時間領域ブロックの時間軸の後端の(M-k)個のデータを除去部分データとして除去し、出力データを生成するオーバーラップ除去手段と、
     前記第1の時間領域ブロックの前記除去部分データと、前記第2の時間領域ブロックの前記オーバーラップ部分のうちの前記除去部分データ以外の出力部分データとを比較して前記オーバーラップ部分に含まれるデータが発生させる歪み量を検出し、前記歪み量に基づいて前記オーバーラップ量を制御するオーバーラップ誤差検出手段と、
    として機能させるためのデジタルフィルタプログラムが記憶された記憶媒体。
PCT/JP2014/005802 2013-12-13 2014-11-19 デジタルフィルタ装置、デジタルフィルタ処理方法及びデジタルフィルタプログラムが記憶された記憶媒体 WO2015087495A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/103,112 US9880975B2 (en) 2013-12-13 2014-11-19 Digital filter device, digital filter processing method, and storage medium having digital filter program stored thereon
JP2015552301A JP6489021B2 (ja) 2013-12-13 2014-11-19 デジタルフィルタ装置、デジタルフィルタ処理方法及びデジタルフィルタプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013-258272 2013-12-13
JP2013258272 2013-12-13

Publications (1)

Publication Number Publication Date
WO2015087495A1 true WO2015087495A1 (ja) 2015-06-18

Family

ID=53370826

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/005802 WO2015087495A1 (ja) 2013-12-13 2014-11-19 デジタルフィルタ装置、デジタルフィルタ処理方法及びデジタルフィルタプログラムが記憶された記憶媒体

Country Status (3)

Country Link
US (1) US9880975B2 (ja)
JP (1) JP6489021B2 (ja)
WO (1) WO2015087495A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017094824A1 (ja) * 2015-12-02 2017-06-08 日本電気株式会社 ディジタルフィルタ、フィルタ処理方法及び記録媒体
WO2021117140A1 (ja) * 2019-12-10 2021-06-17 三菱電機株式会社 フィルタ回路、信号処理方法、制御回路およびプログラム記憶媒体

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9880975B2 (en) * 2013-12-13 2018-01-30 Nec Corporation Digital filter device, digital filter processing method, and storage medium having digital filter program stored thereon
CN107113257B (zh) * 2015-01-30 2020-07-10 南通数动互联科技有限公司 数据处理的方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012086262A1 (ja) * 2010-12-21 2012-06-28 日本電気株式会社 デジタルフィルタ回路およびデジタルフィルタ制御方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3219613B2 (ja) 1994-11-14 2001-10-15 三菱重工業株式会社 アンモニア分解触媒及びアンモニアの分解除去方法
JP2001056806A (ja) 1999-06-10 2001-02-27 Matsushita Electric Ind Co Ltd 高速フーリエ変換装置
US7502816B2 (en) * 2003-07-31 2009-03-10 Panasonic Corporation Signal-processing apparatus and method
WO2006014528A1 (en) 2004-07-08 2006-02-09 Asocs Ltd. A method of and apparatus for implementing fast orthogonal transforms of variable size
JP4737747B2 (ja) 2005-04-25 2011-08-03 パナソニック株式会社 無線通信装置および無線通信方法
JP2010130355A (ja) 2008-11-27 2010-06-10 Sharp Corp 受信装置および受信方法
JP2011004264A (ja) * 2009-06-19 2011-01-06 Fujitsu Ltd ディジタル信号処理装置およびディジタル信号処理方法
JP5549442B2 (ja) 2010-07-14 2014-07-16 三菱電機株式会社 Fft演算装置
JP5821584B2 (ja) * 2011-12-02 2015-11-24 富士通株式会社 音声処理装置、音声処理方法及び音声処理プログラム
US9934199B2 (en) * 2013-07-23 2018-04-03 Nec Corporation Digital filter device, digital filtering method, and storage medium having digital filter program stored thereon
US9880975B2 (en) * 2013-12-13 2018-01-30 Nec Corporation Digital filter device, digital filter processing method, and storage medium having digital filter program stored thereon

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012086262A1 (ja) * 2010-12-21 2012-06-28 日本電気株式会社 デジタルフィルタ回路およびデジタルフィルタ制御方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017094824A1 (ja) * 2015-12-02 2017-06-08 日本電気株式会社 ディジタルフィルタ、フィルタ処理方法及び記録媒体
US10855255B2 (en) 2015-12-02 2020-12-01 Nec Corporation Digital filter, filter processing method, and recording medium
WO2021117140A1 (ja) * 2019-12-10 2021-06-17 三菱電機株式会社 フィルタ回路、信号処理方法、制御回路およびプログラム記憶媒体

Also Published As

Publication number Publication date
US9880975B2 (en) 2018-01-30
JP6489021B2 (ja) 2019-03-27
US20160357705A1 (en) 2016-12-08
JPWO2015087495A1 (ja) 2017-03-16

Similar Documents

Publication Publication Date Title
JP6288089B2 (ja) デジタルフィルタ装置、デジタルフィルタ処理方法及びデジタルフィルタプログラムが記憶された記憶媒体
JP6489021B2 (ja) デジタルフィルタ装置、デジタルフィルタ処理方法及びデジタルフィルタプログラム
JP5599874B2 (ja) 信号処理方法ならびにデータ処理の方法および装置
US9785614B2 (en) Fast Fourier transform device, fast Fourier transform method, and recording medium storing fast Fourier transform program
JP6256348B2 (ja) 高速フーリエ変換回路、高速フーリエ変換処理方法及び高速フーリエ変換処理プログラム
CN104349260A (zh) 低功耗wola滤波器组及其综合阶段电路
KR102376492B1 (ko) 실수값을 입력으로 하는 고속푸리에 변환장치 및 방법
JP6451647B2 (ja) 高速フーリエ変換装置、高速フーリエ変換方法、及び高速フーリエ変換プログラム
JP6930607B2 (ja) 信号処理装置、方法、プログラムと記録媒体
CN102957993B (zh) 低功耗wola滤波器组及其分析阶段电路
JP6436087B2 (ja) デジタルフィルタ装置、デジタルフィルタ処理方法およびプログラム
US10853445B2 (en) Digital filter device, digital filtering method, and program recording medium
JP6977883B2 (ja) 信号処理装置、方法、プログラム
US20230289397A1 (en) Fast fourier transform device, digital filtering device, fast fourier transform method, and non-transitory computer-readable medium
JP6943283B2 (ja) 高速フーリエ変換装置、データ並べ替え処理装置、高速フーリエ変換処理方法およびプログラム
US20220188014A1 (en) Digital filter device, operation method for digital filter device, and non-transitory computer-readable medium storing program
WO2021193947A1 (ja) デジタルフィルタ装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14869277

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015552301

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15103112

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14869277

Country of ref document: EP

Kind code of ref document: A1