WO2019225576A1 - 信号処理装置、方法、プログラム - Google Patents
信号処理装置、方法、プログラム Download PDFInfo
- Publication number
- WO2019225576A1 WO2019225576A1 PCT/JP2019/020041 JP2019020041W WO2019225576A1 WO 2019225576 A1 WO2019225576 A1 WO 2019225576A1 JP 2019020041 W JP2019020041 W JP 2019020041W WO 2019225576 A1 WO2019225576 A1 WO 2019225576A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- expression
- processing
- representation
- complement
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 444
- 238000000034 method Methods 0.000 title claims description 256
- 230000000295 complement effect Effects 0.000 claims abstract description 199
- 238000012937 correction Methods 0.000 claims abstract description 92
- 230000008569 process Effects 0.000 claims description 237
- 230000008707 rearrangement Effects 0.000 claims description 159
- 238000006243 chemical reaction Methods 0.000 claims description 127
- 238000004364 calculation method Methods 0.000 claims description 61
- 238000003672 processing method Methods 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 21
- 230000000694 effects Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
Definitions
- the present invention is based on the priority claim of Japanese patent application: Japanese Patent Application No. 2018-097661 (filed on May 22, 2018), the entire contents of which are incorporated herein by reference. Shall.
- the present invention relates to a signal processing apparatus, method, and program.
- FFT Fast Fourier Transform
- FDE frequency domain equalization
- frequency domain equalization In frequency domain equalization, first, signal data in the time domain is converted into data in the frequency domain by fast Fourier transform. Next, filter processing for equalization is performed. Then, the filtered data is reconverted into signal data in the time domain by inverse fast Fourier transform (Inverse FFT: hereinafter referred to as “IFFT”).
- IFFT inverse fast Fourier transform
- Patent Document 1 describes an FFT apparatus using butterfly computation.
- Patent Document 1 also describes “twist multiplication” described later, that is, multiplication using a twist coefficient (twiddle coefficient or twiddle factor).
- Non-Patent Document 1 describes a Cooley-Tukey butterfly operation as an efficient FFT / IFFT processing method.
- the circuit of FFT / IFFT by Cooley-Tukey with a large number of points becomes complicated. Therefore, the FFT / IFFT processing is performed by decomposing into two small FFT / IFFTs based on the Prime-Factor method described in Non-Patent Document 2, for example.
- FIG. 26 shows a 64-point FFT data flow 500 that has been decomposed into two-stage radix-8 butterfly processing using the Prime Factor method.
- 8 data parallel an FFT apparatus that performs FFT processing in parallel on 8 data
- a 64-point FFT process can be realized by repeating the above process.
- the processing corresponding to each of the partial data flows 505a to 505h performed for 8 data is sequentially performed. Specifically, this is performed as follows. That is, At the first time, the processing corresponding to the partial data flow 505a is The second time, the processing corresponding to the partial data flow 505b is In the third time, processing corresponding to the partial data flow 505c (not shown) is performed.
- Patent Document 2 describes an FFT apparatus that rearranges data using a RAM in butterfly computation.
- Patent Document 3 describes a speed-up technique based on parallel processing of butterfly computations for an FFT computation device with reduced memory usage.
- JP-A-8-137832 page 3-5, FIG. 25
- Japanese Unexamined Patent Publication No. 2001-56806 5th page, FIG. 1
- Japanese Patent Laying-Open No. 2012-22500 5th page, FIG. 1
- 2's complement representation is widely used as a representation method of signal data in binary number in digital signal processing.
- the two's complement representation is characterized in that the addition / subtraction processing circuit can be realized with a small circuit scale because the subtraction processing can be expressed by addition processing.
- circuit-activity percentage-activity
- C load capacity
- V Voltage
- f Operating frequency.
- the circuit-activity (percentage-activity) is given by the ratio between the estimated number of switching times in a certain time period and the number of clock cycles in that period.
- the reduction in the operation rate in bit units is effective in reducing power consumption.
- the signal data of signal processing for communication often changes frequently between positive and negative in the vicinity of the value 0.
- the internal data often takes a small value in the vicinity of 0 in fast Fourier transform (FFT) processing.
- FFT fast Fourier transform
- FIG. 27 shows binary representations of +7 to ⁇ 8 signal values in 8-bit signal data as an example of 2's complement representation and sign absolute value representation.
- the bit value on the upper bit side is greatly different between the positive value and the negative value with the value 0 as the boundary. Therefore, when a signal that frequently changes between positive and negative in the vicinity of the value 0 is expressed, the operation rate in bit units increases. For example, when changing from +1 to ⁇ 1, all 7 bits other than the least significant bit (Least Significant Bit: LSB) transition.
- LSB least significant bit
- the sign absolute value representation represents the sign with the most significant bit (Most Significant Bit: MSB) and the absolute value of the value with the other bits, the positive value and the negative value with the value 0 as the boundary The difference in bit value between and is small. Therefore, even when a signal that frequently changes between positive and negative in the vicinity of the value 0 is expressed, the operation rate in bit units is small. For example, when changing from +1 to ⁇ 1, only the most significant bit changes.
- the sign absolute value expression can reduce the circuit operation rate a as compared with the two's complement expression, the load capacity C of the addition / subtraction circuit increases. For this reason, the code absolute value expression has a problem that the power consumption becomes large particularly in the case of signal processing with many addition / subtraction processes.
- bit inversion processing and 1 addition processing are required for conversion between 2's complement expression and sign absolute value expression.
- FIG. 28 shows a configuration example of a conversion circuit 600 between 2's complement expression and sign absolute value expression.
- the conversion circuit 600 is configured by connecting a bit inversion circuit 601 and a 1 addition circuit 602.
- the circuit scale of the 1-adder circuit 602 cannot be ignored as compared with other logic processing circuits and arithmetic processing circuits. For this reason, when a lot of conversion processing is required, there is a problem that the circuit scale and power consumption of the entire circuit increase by the amount of the conversion circuit.
- an object of the present invention is to provide a signal processing device, method, and program capable of suppressing or reducing an increase in the circuit scale and power consumption of the entire circuit. For the purpose.
- a signal processing device includes an arithmetic processing unit that performs arithmetic processing and a storage processing unit that performs storage processing, and includes a two's complement expression and a two's complement expression as data representation formats. Processing is performed using both of the different second representation formats.
- the second representation format is the same as the 2's complement representation when the data value is positive or 0, and inverts bits other than the most significant bit indicating the sign from the 2's complement representation when the data value is negative This is the expression format.
- the arithmetic processing unit performs arithmetic processing on at least one of data expressed by a two's complement expression or data obtained by performing correction processing on data expressed by the second expression format.
- the storage processing unit performs a storage process on the data expressed in the second expression format.
- a butterfly operation processing unit that performs butterfly operation processing, a twist multiplication processing unit that performs twist multiplication processing, and a data rearrangement processing unit that rearranges the order of a plurality of data
- FFT Fast Fourier transform
- the second representation format is the same as the 2's complement representation when the data value is positive or 0, and inverts bits other than the most significant bit indicating the sign from the 2's complement representation when the data value is negative It is an expression.
- the butterfly operation processing unit performs processing on data expressed by two's complement expression.
- the data rearrangement processing unit performs a storage process on the data expressed in the second expression format.
- the twist multiplication processing unit performs processing on data obtained by performing correction processing on data expressed in the second representation format for multiplication processing, and converts the data expressed in two's complement representation for addition processing. Process it.
- the correction processing is performed by the least significant bit among the N-bit (N is a positive integer) data.
- M bits is a positive integer satisfying M ⁇ N).
- a step of performing storage processing on data expressed in a second representation format different from the two's complement representation, and the data represented by the two's complement representation, or the first A signal processing method including a step of performing arithmetic processing on at least one of data obtained by performing correction processing on the data expressed in the two expression formats.
- the second representation format is the same as the two's complement representation when the data value is positive or 0, and when the data value is negative, bits other than the most significant bit indicating the sign from the two's complement representation. It is an inverted expression format.
- the data value when the data value is positive or 0, it is the same as the two's complement representation, and when the data value is negative, the data other than the most significant bit indicating the sign from the two's complement representation.
- Storage processing for data expressed in the second expression format which is an expression format in which bits are inverted, and correction processing for data expressed in two's complement expression or data expressed in the second expression format
- a program for causing a processor to execute arithmetic processing on at least one of the performed data is provided.
- non-transitory computer readable medium such as a semiconductor memory, HDD (Hard Disk Drive), CD (Compact Disk), DVD (Digital Versatile Disk), etc., on which the program is recorded.
- -readable (medium) is provided.
- an increase in the circuit scale and power consumption of the entire circuit can be suppressed or reduced.
- FIG. 10 schematically illustrates an arrangement of data sets according to an intermediate order according to the second exemplary embodiment of the present invention. It is a time chart explaining operation
- FIG. 11 is a diagram illustrating one form of a computer program as an embodiment of the present invention.
- FIG. 1 is a diagram illustrating a configuration example of a signal processing device (signal processing circuit) 100 according to a first exemplary embodiment of the present invention.
- the signal processing apparatus 100 includes a first storage processing unit 101, a second storage processing unit 103, and a first storage processing unit that perform storage processing such as signal data buffering processing, retiming processing, and rearrangement processing. 3 storage processing units 105 and a fourth storage processing unit 108.
- the signal processing apparatus 100 includes a first arithmetic processing unit 102, a second arithmetic processing unit 104, a third arithmetic processing unit 106, and the like as arithmetic processing units that perform arithmetic processing such as addition / subtraction and multiplication / division. And a fourth arithmetic processing unit 107.
- a plurality of storage processing units may be provided in one unit. Moreover, it is good also as a structure provided with the some arithmetic processing part in one unit.
- the first storage processing unit 101 inputs signal data expressed in 2's complement representation from the outside of the signal processing apparatus 100, performs storage processing, and receives the signal data expressed in 2's complement representation as the first The result is output to the arithmetic processing unit 102.
- the first arithmetic processing unit 102 receives the signal data expressed by the two's complement expression from the first storage processing unit 101, performs arithmetic processing, and outputs the signal data expressed by the two's complement expression to the second To the storage processing unit 103.
- the second storage processing unit 103 receives the signal data expressed by the two's complement expression from the first arithmetic processing unit 102 and performs storage processing, and the signal data expressed by the code absolute value--expression is input to the second storage processing unit 103. Output to the second arithmetic processing unit 104.
- the second arithmetic processing unit 104 receives the signal data expressed by the code absolute value--expression from the second storage processing unit 103, performs arithmetic processing, and receives the signal expressed by the code absolute value--expression.
- the data is output to the third storage processing unit 105.
- the third storage processing unit 105 receives the signal data expressed by the code absolute value--expression from the second arithmetic processing unit 104, performs storage processing, and the signal data expressed by the code absolute value--expression Is output to the third arithmetic processing unit 106.
- the third arithmetic processing unit 106 receives the signal data expressed by the sign absolute value--expression from the third storage processing unit 105, performs arithmetic processing, and receives the signal data expressed by the two's complement expression. The result is output to the fourth arithmetic processing unit 107.
- the fourth arithmetic processing unit 107 receives the signal data expressed by two's complement expression from the third arithmetic processing unit 106 and performs arithmetic processing, and the signal data expressed by the sign absolute value--expression is obtained. The data is output to the fourth storage processing unit 108.
- the fourth storage processing unit 108 receives the signal data expressed by the sign absolute value--expression from the fourth arithmetic processing unit 107, performs storage processing, and receives the signal data expressed by the two's complement expression. The signal is output to the outside of the signal processing apparatus 100.
- the sign absolute value--representation is If the value of the data is positive or 0 (non-negative), it is identical to the two's complement representation of the data; When the data value is negative, it is an expression obtained by inverting bits other than the most significant bit indicating the sign with respect to the 2's complement expression of the data.
- FIG. 2 shows a binary representation of a signal value of +15 to ⁇ 16 in 6-bit signal data by a 2's complement representation and a sign absolute value representation as a sign absolute value--representation and comparison.
- the sign absolute value--expression like the sign absolute value expression, has a small bit value difference between a positive value and a negative value with the value 0 as a boundary. Therefore, even when a signal that frequently changes between positive and negative in the vicinity of the value 0 is expressed, the operation rate in bit units is small. For example, when changing from + 1 + 1 (“00001”) to ⁇ 2 (“10001”), only the most significant bit changes.
- FIG. 3 is a diagram illustrating a configuration example of the first storage processing unit 101.
- the first storage processing unit 101 includes a conversion circuit 10a, a storage circuit 30, and a conversion circuit 10b.
- the conversion circuit 10a is a circuit that converts input signal data expressed in two's complement expression into signal data expressed in sign absolute value--expression and outputs the signal data.
- the storage circuit 30 receives the signal data expressed by the code absolute value--expression output from the conversion circuit 10a, performs storage processing with the code absolute value--expression, and converts the code absolute value--expression as it is. It is a circuit that outputs to 10b.
- the conversion circuit 10b is a circuit that converts the signal data expressed by the code absolute value output from the storage circuit 30 into signal data expressed by two's complement expression and outputs the signal data.
- the conversion circuits 10a and 10b can be realized by, for example, the conversion circuit 10 shown in FIG.
- the conversion circuit 10 inputs N-bit (N is a positive integer) signal data and converts the 2's complement expression to the sign absolute value--representation, or the sign absolute value--representation to the 2's complement expression. It is a circuit that converts and outputs.
- the conversion circuit 10 outputs the most significant bit indicating the code input from the input IN [N-1] as it is to the OUT [N-1] as a sign bit.
- Inputs IN [0] to IN [N-2] are input to first terminals of XOR (exclusive OR) circuits 17 0 to 17 N-2 , respectively.
- the most significant bit indicating the sign input from the input IN [N ⁇ 1] is input to the second terminals of the XOR circuits 17 0 to 17 N ⁇ 2 .
- the XOR circuits 17 0 to 17 N-2 output the exclusive OR operation results of the inputs of the first terminal and the second terminal to the outputs OUT [0] to OUT [N-2], respectively.
- the conversion circuit 10 sign-absolutely converts the signal data (IN [N-1] is a sign bit) expressed in two's complement expression input to the inputs IN [0] to IN [N-1]. Value--converted into representation, and signal data of sign absolute value--representation is output from outputs OUT [0] to OUT [N-1] (OUT [N-1] is a sign bit).
- the sign absolute value input to the inputs IN [0] to IN [N-1] -converts the signal data expressed in the expression (IN [N-1] is a sign bit) into a two's complement expression, 2's complement representation signal data is output from outputs OUT [0] to OUT [N-1] (OUT [N-1] is a sign bit).
- the conversion circuit 10 the conversion between the two's complement expression and the sign absolute value--expression can be realized only by the bit inversion process. That is, the conversion circuit 10 does not require 1 addition processing (increment processing) required for the sign absolute value expression. Bit inversion processing can be realized by exclusive OR only. For this reason, the conversion circuit 10 can be realized with an overwhelmingly small circuit scale as compared with other logic processing circuits and arithmetic processing circuits.
- FIG. 5 is a diagram illustrating a configuration example of the first arithmetic processing unit 102.
- the first arithmetic processing unit 102 includes an arithmetic circuit 40.
- the arithmetic circuit 40 performs arithmetic processing on the input signal data expressed in two's complement expression, and outputs the result as signal data expressed in two's complement expression.
- the arithmetic processing performed by the arithmetic circuit 40 includes addition processing and subtraction processing, which are difficult to realize an efficient circuit with the code absolute value expression and the code absolute value--expression.
- FIG. 6 is a diagram illustrating a configuration example of the second storage processing unit 103 in FIG.
- the second storage processing unit 103 includes a conversion circuit 10 and a storage circuit 30.
- the conversion circuit 10 converts the input signal data expressed in two's complement expression into signal data expressed in the sign absolute value--expression and outputs the signal data.
- the storage circuit 30 inputs the signal data expressed by the code absolute value--expression output from the conversion circuit 10a, performs storage processing with the code absolute value--expression, and outputs the code absolute value--expression as it is. .
- FIG. 7 is a diagram illustrating a configuration example of the second arithmetic processing unit 104.
- the second arithmetic processing unit 104 includes a correction circuit 20 and an arithmetic circuit 41.
- the correction circuit 20 is a circuit that performs a correction process on the input signal data expressed by the code absolute value--expression and outputs the result.
- the arithmetic circuit 41 performs arithmetic processing on the signal data represented by the code absolute value corrected by the correction circuit 20 and outputs the result as the signal data represented by the code absolute value.
- the arithmetic processing performed by the arithmetic circuit 41 includes multiplication processing and division processing capable of realizing an efficient circuit even with code absolute value expression and code absolute value--expression.
- FIG. 8 is a diagram showing a configuration example of the correction circuit 20 of FIG.
- the correction circuit 20 receives M bits from the least significant bit of the input IN (M is a positive integer satisfying M ⁇ N) (IN [0]
- the result of adding the value 1 to (IN [M-1]) is output from the least significant bit of the output OUT to M bits (OUT [0] to OUT [M-1]).
- the correction circuit 20 directly converts the input IN to the corresponding bit (OUT [M] to OUT [N-1]) of the output OUT. Output.
- the correction circuit 20 outputs the value of the signal data IN as it is to the signal data OUT.
- the correction circuit 20 includes a selector circuit 21 and an addition circuit 22.
- the selector circuit 21 adds the value 0 when the input IN is a positive value (IN [N-1] is a value 0) with reference to the most significant bit indicating the sign input from the input IN [N-1]. If the input IN is a negative value (IN [N ⁇ 1] is a value 1), the value 1 is output to the adder circuit 22.
- the adder circuit 22 adds the value output from the selector circuit 21 and M bits (IN [0] to IN [M-1]) from the least significant bit of the input IN, and then adds M from the least significant bit of the output OUT. This circuit outputs to bits (OUT [0] to OUT [M-1]).
- FIG. 9 is a diagram illustrating a configuration example of the arithmetic circuit 41 in FIG.
- the arithmetic circuit 41 includes a sign arithmetic circuit 42 and an unsigned arithmetic circuit 43.
- the sign calculation circuit 42 is a circuit for calculating the sign bit of the most significant bit in the sign absolute value expression, and includes a sign bit 44 that is the most significant bit of the input A and a sign bit 45 that is the most significant bit of the input B. input.
- the sign calculation circuit 42 If both sign bit 44 and sign bit 45 have the value 0, output the value 0 to sign bit 48; If either sign bit 44 or sign bit 45 is value 1, output value 1 to sign bit 48; When both the sign bit 44 and the sign bit 45 are the value 1, the value and the value 0 are output to the sign bit 48 to calculate and output the sign bit of the output C.
- the unsigned arithmetic circuit 43 is a circuit for calculating an absolute value portion other than the sign bit in the sign absolute value expression.
- the unsigned arithmetic circuit 43 inputs the bit 46 other than the most significant bit of the input A and the bit 47 other than the most significant bit of the input B, performs an arithmetic process, and outputs the result to the absolute value 49, thereby outputting the output C.
- the absolute value portion which is a bit other than the sign bit, is calculated and output.
- the arithmetic circuit 41 is an arithmetic circuit related to the sign absolute value expression, and can realize an operation that can be processed by separately calculating the sign and other absolute values. Specifically, the arithmetic circuit 41 can realize multiplication processing and division processing.
- the correction circuit 20 provides a function of reducing the error of the calculation result by correcting the input data to be calculated.
- the correction circuit 20 adds 1 to the M bits from the least significant bit among the input N bits when the input is a negative value.
- the value (negative value) input to the arithmetic circuit 41 approaches the value expressed in the sign absolute value expression from the value expressed in the sign absolute value--expression. As a result, the error in the calculation result can be reduced.
- the value input to the arithmetic circuit 41 is expressed in the sign absolute value representation. Although it is equal to the calculated value and no error occurs in the calculation result, the addition process is performed for all the N bits to be input, so that the circuit scale of the addition circuit 22 is increased. That is, when M is increased, the calculation error is reduced but the circuit scale is increased. When M is decreased, the calculation error is increased but the circuit scale is reduced.
- the circuit scale of the correction circuit 20 can be reduced by setting M to a value as small as possible within the allowable range of calculation errors.
- FIG. 10 is a diagram illustrating a configuration example of the third storage processing unit 105.
- the third storage processing unit 105 includes a storage circuit 30 and is a circuit that receives signal data expressed in a code absolute value--expression, performs storage processing, and outputs the signal as it is in the code absolute value--expression.
- FIG. 11 is a diagram illustrating a configuration example of the third arithmetic processing unit 106.
- the third arithmetic processing unit 106 can be configured by the correction circuit 20, the arithmetic circuit 41, and the conversion circuit 10.
- the correction circuit 20 performs correction processing on the input signal data expressed by the absolute code value--expression and outputs the result.
- the arithmetic circuit 41 performs arithmetic processing on the signal data represented by the code absolute value corrected by the correction circuit 20 and outputs the result as the signal data represented by the code absolute value.
- the conversion circuit 10 converts the signal data expressed by the sign absolute value--expression output from the arithmetic circuit 41 into signal data expressed by a two's complement expression and outputs the signal data.
- FIG. 12 is a diagram illustrating a configuration example of the fourth arithmetic processing unit 107.
- the fourth arithmetic processing unit 107 can be composed of the conversion circuit 10, the correction circuit 20, and the arithmetic circuit 41.
- the conversion circuit 10 converts the input signal data expressed in two's complement expression into signal data expressed in the sign absolute value--expression and outputs the signal data.
- the correction circuit 20 performs correction processing on the input signal absolute value--representation expressed in the signal data, and the arithmetic circuit 41 that outputs the result outputs the code absolute value--representation corrected by the correction circuit 20 An arithmetic process is performed on the received signal data, and the result is output as the signal data expressed as the code absolute value ---.
- FIG. 13 is a diagram illustrating a configuration example of the fourth storage processing unit 108.
- the fourth storage processing unit 108 can be composed of the storage circuit 30 and the conversion circuit 10.
- the storage circuit 30 inputs the input signal data expressed in the code absolute value--expression, performs storage processing with the code absolute value--representation, and outputs it to the conversion circuit 10 as the code absolute value--representation. .
- the conversion circuit 10 converts the signal data expressed by the code absolute value output from the storage circuit 30 into signal data expressed by two's complement expression, and outputs the signal data.
- FIG. 29A is a diagram for explaining the method of the first exemplary embodiment.
- the method of the first exemplary embodiment includes: a process of storing data converted into a sign absolute value--representation format (step S1); data represented by two's complement expression; or sign absolute value--representation And at least arithmetic processing (step S2) for performing arithmetic on at least one of the data obtained by performing correction processing on the data expressed in the format.
- a storage process (step S1) may be further included after the calculation process (step S2). Further, the calculation process (step S2) may be executed first, followed by the storage process (step S1).
- FIG. 29B is a diagram illustrating an example of the procedure of the storage process (step S1) in FIG.
- the storage process includes a first conversion process (step S11) for converting data from a two's complement representation into a code absolute value--representation format, and a memory for storing the data converted into the code absolute value--representation format in a storage circuit.
- Processing step S12
- second conversion processing step S13 for reading out the data in the code absolute value--representation format after the storage processing from the storage circuit and converting the data into a two's complement representation.
- step S2 depending on the combination with the calculation process (step S2), only step S12 may be included, or one of step S11 and step S13 may be included in addition to step S12. .
- FIG. 29C is a diagram illustrating an example of the procedure of the calculation process (step S2) in FIG.
- the arithmetic processing includes a first conversion process (step S21) for converting data from a two's complement representation to a code absolute value--expression format, and correction processing is performed on the data expressed in the code absolute value--expression format.
- step S1 In the case where the data expressed by the two's complement expression is output from the storage process (step S1), and the arithmetic process is performed on the data expressed by the two's complement expression in step S22, the data shown in FIG. Steps S21 and S23 are omitted. Also, the data expressed in the code absolute value--expression format is output from the storage process (step S1) in FIG. 29A, and expressed in the code absolute value--expression format in step S22 in FIG. 29C. When the calculation is performed on the data that has been subjected to the correction process, the step S21 in FIG. 29C is omitted. That is, depending on the combination of the data representation format from the storage process (step S1) and the data representation format in the calculation process (step S2), either step S21 or step S23 in FIG. Either one may be included.
- the signal processing apparatus 100 includes the first storage processing unit 101, the second storage processing unit 103, the third storage processing unit 105, and the fourth storage unit.
- the storage processing unit 108 storage processing is performed with the code absolute value--expression.
- the signal processing apparatus 100 performs arithmetic processing with the code absolute value--expression in the second arithmetic processing unit 104 and the fourth arithmetic processing unit 107.
- the sign absolute value--expression like the sign absolute value expression, has a small bit value difference between a positive value and a negative value with the value 0 as a boundary. Therefore, even when a signal that frequently changes between positive and negative in the vicinity of the value 0 is expressed, the operation rate in bit units is small. As a result, the operation rate of the circuit in the storage process and the arithmetic process can be reduced as compared with the processing with the 2's complement expression.
- the conversion process between the two's complement expression and the sign absolute value--expression by the conversion circuit 10 can be realized only by the bit inversion process, and the 1 addition process (increment process) necessary for the sign absolute value expression is performed. do not need.
- bit inversion processing can be realized only by the XOR circuit, it can be realized by an overwhelmingly small circuit scale as compared with other logic processing circuits and arithmetic processing circuits.
- the operation rate of the circuit in the storage processing unit can be reduced. For this reason, power consumption in the storage processing unit can be reduced.
- the correction circuit 20 by correcting the sign absolute value--expression value by the correction circuit 20, even if arithmetic processing such as multiplication and division is performed with the sign absolute value--expression as it is, the generated calculation error can be reduced. . Therefore, the number of arithmetic circuits to which the code absolute value--expression can be applied can be increased, so that the power consumption in the arithmetic processing unit can be reduced.
- the correction circuit 20 can set the number of bits (M) to be corrected to an optimum value according to an allowable calculation error, the circuit scale of the correction circuit 20 can be reduced. As a result, power consumption in the arithmetic processing unit can be reduced.
- the first arithmetic processing unit 102 and the third arithmetic processing unit 106 perform arithmetic processing while maintaining the two's complement representation. Therefore, although the operation rate of the circuits related to these arithmetic processing units is not reduced, the circuit scale is not greatly increased by conversion between the data representation formats as in the case where the sign absolute value representation is applied. Therefore, the power consumption of the entire signal processing apparatus can be reduced by the amount of power consumption related to the second arithmetic processing unit 104, the fourth arithmetic processing unit 107, and the storage process.
- FIG. 14 is a diagram illustrating a configuration example of the FFT apparatus 400 according to the second exemplary embodiment of the present invention.
- the FFT apparatus 400 processes the 64-point FFT decomposed into the two-stage radix-8 butterfly processing according to the data flow 500 shown in FIG. 26 by the pipeline circuit method.
- N is a positive integer representing the FFT block size.
- the FFT apparatus 400 performs 64-point FFT processing in parallel with 8 data.
- the FFT apparatus 400 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 in FIG. 15 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 apparatus 400 includes a first data rearrangement processing unit 250a, a first butterfly calculation processing unit 240a, a second data rearrangement processing unit 260, a twist multiplication processing unit 270, and a second butterfly calculation process.
- the FFT apparatus 400 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. Pipeline.
- the first data rearrangement processing unit 250a and the second data rearrangement processing unit 260 are buffer circuits for data rearrangement.
- the first data rearrangement processing unit 250a and the second data rearrangement processing unit 260 are based on the data dependency on the FFT processing algorithm before and after the first butterfly computation processing unit 240a, respectively. , Rearrange the data sequence.
- the third data rearrangement processing unit 250b is also a buffer circuit for data rearrangement. That is, the third data rearrangement processing unit 250b rearranges the data sequence based on the data dependency on the algorithm of the FFT processing after the second butterfly operation processing unit 240b.
- the first data rearrangement processing unit 250a is configured to input the “sequential order” shown in FIG. 15, which is the input order of the input data x (n), to the first butterfly computation processing unit 240a.
- the data is rearranged in the “bit reverse order” shown in FIG.
- the bit reverse order shown in FIG. 16 corresponds to the input data set to the radix-8 butterfly computation processing unit 502 in the first stage in the data flow diagram shown in FIG.
- 8 data of x (0), x (8),..., X (56) constituting the data set P1 are input in the first cycle.
- 8 data of x (1), x (9),..., X (57) constituting the data set P2 are input in the second cycle.
- data constituting the data sets P3 to P8 is input in the same manner from the third cycle to the eighth cycle.
- the sequential order refers to the order of the eight data sets P1, P2, P3, P4, P5, P6, P7, and P8 shown in FIG.
- ps (i) (i 0,..., 7 ) Is given below.
- ps (i) x [8 ⁇ (s ⁇ 1) + i]
- 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.
- “Sequential order” is a set of s data sets in which i ⁇ s pieces of data are arranged in order of data from the top in order of data, and each data set is arranged in a cycle order.
- the 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.
- bit reverse order is data input in a sequential order is arranged in order of s pieces from the top in order of cycles, and i pieces of data in the same cycle are arranged as a set in order of data.
- Each data set in the bit reverse order is uniquely determined if each sequential order is set.
- the (s ⁇ 1) th data P i + 1 (s ⁇ 1) in the (i + 1) th cycle. That is, Qs (i) P i + 1 (s ⁇ 1)
- Qs (i) and P i + 1 (s ⁇ 1) are in a relationship in which the order of cycle progression and the order of data positions are interchanged for the data constituting each data set.
- Each row ps (i) in FIG. 15 and eight rows qs (i) in FIG. 16 indicate data input to the i-th in the next stage.
- Eight numbers included in each data set are identification information that identifies 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 processed in parallel. 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 and the order of the data position.
- the first butterfly computation processing unit 240a performs the first butterfly computation processing (502) (first butterfly computation processing) of the radix-8 butterfly computation performed twice in the data flow 500 of FIG. An arithmetic processing circuit.
- the second data rearrangement processing unit 260 uses the bits of FIG. 16 to input the data y (n) output from the first butterfly calculation processing unit 240a in sequential order to the second butterfly calculation processing unit 240b. Rearrange in reverse order.
- the twist multiplication processing unit 270 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 unit 504 in the data flow 500 of FIG. In the twist multiplication process, the data is not rearranged.
- the second butterfly operation processing unit 240b is a butterfly operation processing circuit that processes the second radix-8 butterfly operation processing (503) in the data flow diagram of FIG.
- the third data rearrangement processing unit 250b rearranges the data X (k) output by the second butterfly operation processing unit 240b in the bit reverse order in the sequential order of FIG.
- the data rearrangement processing unit temporarily stores the input data, and controls the selection and output of the stored data, thereby rearranging the data according to the sequential order of FIG. 15 and the bit reverse order of FIG. Processing is realized. Below, the specific example of a data rearrangement process part is shown.
- the first data rearrangement processing unit 250a and the third data rearrangement processing unit 250b can be realized by, for example, the data rearrangement processing unit 250 shown in FIG.
- the data rearrangement processing unit 250 includes a conversion circuit 231, a data rearrangement unit (data rearrangement unit) 200, and a conversion circuit 232.
- the conversion circuit 231 converts the data expressed in the two's complement representation input in the sequential order into the code absolute value--representation, and then the data rearrangement unit 200 rearranges the data from the sequential order to the bit reverse order. The process and the data rearrangement process from the bit reverse order to the sequential order are performed by the code absolute value--expression. Then, the conversion circuit 232 converts the sign absolute value--expression from the 2's complement expression to output.
- the second data rearrangement processing unit 260 in FIG. 14 can be realized by, for example, the data rearrangement processing unit 260 shown in FIG. Referring to FIG. 18, the data rearrangement processing unit 260 includes a conversion circuit 231 and a data rearrangement unit (data rearrangement unit) 200. After the conversion circuit 231 converts the data expressed in the two's complement expression inputted in the sequential order into the code absolute value--expression, the data rearranging unit (data rearranging means) 200 performs bit reverse from the sequential order. The data rearrangement processing to the order is performed with the code absolute value--expression, and the code absolute value--expression is output as it is.
- the conversion circuit 231 includes conversion circuits 233a to 233h, and converts the data expressed in two's complement representation input in parallel to the respective code absolute value--expression.
- the conversion circuits 233a to 233h can be configured by the conversion circuit 10 shown in FIG.
- the conversion circuit 232 is composed of conversion circuits 234a to 234h, and converts the data expressed in the code absolute value--expression input in parallel into a two's complement expression.
- the conversion circuits 234a to 234h can be configured by the conversion circuit 10 shown in FIG.
- FIG. 19 is a diagram illustrating a configuration example of the data rearranging unit (data rearranging unit) 200 of FIGS. 17 and 18.
- the data rearrangement unit 200 includes a first data rearrangement unit (first data rearrangement unit) 201, a second data rearrangement unit (second data rearrangement unit) 204, and Consists of From a sequential order to a bit reverse order in two steps by a first data rearrangement unit (first data rearrangement unit) 201 and a second data rearrangement unit (second data rearrangement unit) 204.
- the data rearrangement process and the data rearrangement process from the bit reverse order to the sequential order are performed.
- the data rearrangement process in the data rearrangement unit (data rearrangement unit) 200 in FIG. 19 will be specifically described by taking the data rearrangement process from the sequential order to the bit reverse order as an example.
- the first data rearranging unit (first data rearranging means) 201 performs the “order sequential” shown in FIG. 21 as the “sequential order” data shown in FIG. Sort the data of.
- the “intermediate order” shown in FIG. 21 is a unit of a data set composed of four data indicated by dotted lines in the “sequential order” shown in FIG. 20 and after rearrangement indicated by arrows. Is the order.
- the second data rearrangement unit (second data rearrangement means) 204 is shown in FIG. 16 from the “intermediate order” shown in FIG. 21 as the second step of rearrangement.
- the rearrangement process to “bit reverse order” is performed with the sign absolute value--expression.
- Reordering 1 and 8 in a data set consisting of ⁇ 0, 1, 8, 9 ⁇ , Reordering 3 and 10 in a data set consisting of ⁇ 2, 3, 10, 11 ⁇ , Reordering 5 and 12 in a data set consisting of ⁇ 4, 5, 12, 13 ⁇ , Reordering 7 and 14 in a data set consisting of ⁇ 6, 7, 14, 15 ⁇ , Reordering 17 and 24 in a data set consisting of ⁇ 16, 17, 24, 25 ⁇ , Reordering 19 and 26 in a data set consisting of ⁇ 18, 19, 26, 27 ⁇ , Reordering 21 and 28 in a data set composed of ⁇ 20, 21, 28, 29 ⁇ , Reordering 23 and 30 in a data set consisting of ⁇ 22, 23, 30, 31 ⁇ , Reordering 33 and 40 in a data set consisting of ⁇ 32, 33, 40, 41 ⁇ , Reordering 35 and 42 in a data set consisting of ⁇ 34, 35, 42, 43 ⁇ , Reordering 37 and 44 in a data set
- the first data rearrangement unit (first data rearrangement unit) 201 includes the first data distribution unit (first data distribution unit) 202 and 4.
- Two RAM circuits 210a, 210b, 210c, 210d and a second data distribution unit (second data distribution means) 203 are provided.
- the first data distribution unit 202 inputs eight data simultaneously from the eight inputs in0 to in7, performs a data distribution process, and outputs them to the eight outputs 205a to 205h.
- the RAM circuit 210a stores the two data output by the first data distribution unit 202 to 205a and 205b as a set, and outputs the data as two data again to 206a and 206b.
- the RAM circuit 210b stores two sets of data output by the first data distribution unit 202 to 205c and 205d, and outputs the two sets of data again to 206c and 206d.
- the RAM circuit 210c stores the two data output by the first data distribution unit 202 to 205e and 205f as a set, and outputs the two data again to 206e and 206f.
- the RAM circuit 210d stores the two data output by the first data distribution unit 202 to 205g and 205h as a set, and outputs the two data again to 206g and 206h.
- the second data distribution unit 203 inputs eight data simultaneously from the eight inputs 206a to 206h, performs a data distribution process, and outputs them to the eight outputs 207a to 207h.
- the second data rearranging unit (second data rearranging means) 204 is composed of four data set rearranging units 220a to 220d.
- the in-data-group rearrangement unit 220a receives the two inputs 207a and 207b, performs a rearrangement process within the data set composed of the four data, and outputs to the outputs out0 and out1.
- the in-data set rearrangement unit 220b receives the two inputs 207c and 207d, performs a rearrangement process inside the data set composed of the four data, and outputs to the outputs out2 and out3.
- the in-data-group rearrangement unit 220c receives the two inputs 207e and 207f, performs a rearrangement process within the data set composed of the four data, and outputs to the outputs out4 and out5.
- the in-data-group rearrangement unit 220d receives the two inputs 207g and 207h, performs a rearrangement process inside the data set composed of the four data, and outputs to the outputs out6 and out7.
- 19 constitutes the data rearrangement unit 200 of the second data rearrangement processing unit 260 in FIG. 18, the second data rearrangement unit (second data in FIG. 19).
- Outputs out0 to out7 of the rearranging means) 204 correspond to the outputs out0 to out7 of the second data rearrangement processing unit 260 in FIG.
- the data rearrangement unit 200 of FIG. 19 constitutes the data rearrangement unit 200 of the data rearrangement processing unit 250 of FIG. 17, the second data rearrangement unit (second data rearrangement unit) 204 of FIG.
- the outputs out0 to out7 correspond to the respective inputs of the conversion circuit 232 (conversion circuits 234a to 234h) in FIG.
- FIG. 22 is a time chart showing the operation of the data rearrangement unit 200.
- the horizontal axis of FIG. 22 is time (represented by cycle number), and each row represents data of data lines (input and output) of each part of FIG.
- the numbers of elements of the array of cycles (columns) and data lines (rows): 0 to 63 are data x (0)..., X (63) (for example, data set P1,. ., Each data of P8).
- the data rearrangement unit 200 inputs 64 pieces of data from 0 to 63 sequentially in 8 cycles from t0 to t7, and 64 pieces from 0 to 63 in 8 rows from t8 to t15. Are output in bit reverse order.
- the first data rearrangement unit 201 inputs 64 pieces of data from 0 to 63 sequentially in 8 parallels in 8 cycles from t0 to t7, and 8 parallels in 8 cycles from t8 to t15. Are output in an intermediate order.
- the first data distribution unit 202 performs the following operations. In the following, the first data distribution unit 202 that is the operation subject is omitted.
- the first data distribution unit 202 performs the following operations in cycles t0 to t7.
- each of the 8 data of 0 to 7, 8 to 15, 16 to 23, 24 to 31, 32 to 39, 40 to 47, 48 to 55, 56 to 63 is, for example, 15, x (0) to x (7) constituting the data set P1, x (8) to x (15) constituting the data set P2, and x (16) to x (23) constituting the data set P3.
- the same notation is used for data.
- the first data distribution unit 202 rotates and outputs eight data that are simultaneously input in parallel, and can be easily realized by, for example, a shift circuit. it can.
- a shift circuit for example, in a register that stores and holds eight data from in0 to in7 in parallel, for example, in cycles t2 and t3, the data of in6, in7, and in0 to in5 are arranged in this order by rotating two data to the right. Data is obtained.
- cycles t4 and t5 for example, by rotating four data to the left or right, eight data in which data of in4 to in7 and in0 to in3 are arranged in this order is obtained.
- cycles t6 and t7 for example, eight data in which data of in2 to in7 and in0 to in1 are arranged in this order are obtained by rotating left by two data.
- the parallel 8 data is output to outputs 205a to 205h, respectively.
- the RAM circuit 210a performs the following operation. Note that the outputs 205a and 205b of the first data distribution unit 202 are connected to the inputs of the RAM circuit 210a, respectively, and hence are referred to as inputs 205a and 205b in the description of the RAM circuit 210a. Further, the RAM circuit 210a, which is the operation subject, is omitted. The same applies to the inputs of the RAM circuits 210b to 210d.
- the RAM circuit 210b performs the following operation.
- the RAM circuit 210c performs the following operation.
- Two data 40 and 41 input from the inputs 205e and 205f at cycle t5 are output to outputs 206e and 206f at cycle t9.
- Two data 62 and 63 input from the inputs 205e and 205f at cycle t7 are output to outputs 206e and 206f at cycle t15.
- the RAM circuit 210d performs the following operation.
- Two data 56 and 57 input from the inputs 205g and 205h at cycle t7 are output to outputs 206g and 206h at cycle t9.
- the second data distribution unit 203 performs the following operation. Note that the outputs 206a to 206h of the RAM circuits 210a to 210d are connected to the inputs of the second data distribution unit 203, and hence are referred to as inputs 206a to 206h in the description of the second data distribution unit 203. Further, the second data distribution unit 203 that is the operation subject is omitted.
- the data input from 206a is output to 207a
- the data input from 206b is output to 207b
- the data input from 206c is output to 207c
- the data input from 206d is output to 207d
- the data input from 206e is output to 207e
- the data input from 206f is output to 207f
- the data input from 206g is output to 207g
- Data input from 206h is output to 207h.
- the data input from 206a is output to 207g
- the data input from 206b is output to 207h
- the data input from 206c is output to 207a
- the data input from 206d is output to 207b
- the data input from 206e is output to 207c
- the data input from 206f is output to 207d
- the data input from 206g is output to 207e
- Data input from 206h is output to 207f.
- the data input from 206a is output to 207e
- the data input from 206b is output to 207f
- the data input from 206c is output to 207g
- the data input from 206d is output to 207h.
- the data input from 206e is output to 207a
- the data input from 206f is output to 207b
- the data input from 206g is output to 207c
- Data input from 206h is output to 207d.
- the data input from 206a is output to 207c
- the data input from 206b is output to 207d
- the data input from 206c is output to 207e
- the data input from 206d is output to 207f
- the data input from 206e is output to 207g
- the data input from 206f is output to 207h.
- the data input from 206g is output to 207a
- Data input from 206h is output to 207b.
- the second data distribution unit 203 performs the following operation.
- the second data distribution unit 203 Similar to the first data distribution unit 202, the second data distribution unit 203 also rotates and outputs eight pieces of data that are simultaneously input in parallel, and is easily realized by a shift circuit, for example. be able to.
- the second data rearrangement unit 204 inputs 64 pieces of data from 0 to 63 in an intermediate order in 8 cycles from t8 to t15, and 8 pieces in parallel from 8 to 8 in t9 to t16. Are output in the bit reverse order.
- the data set sorting unit 220a operates as follows. Note that the data set rearrangement unit 220a, which is the operation subject, is omitted.
- the data set sorting unit 220b operates as follows. Note that the data set rearranging unit 220b, which is an operation subject, is omitted.
- the data set rearrangement unit 220c operates as follows. Note that the data set rearranging unit 220c, which is an operation subject, is omitted.
- the data set sorting unit 220d operates as follows. Note that the data set rearranging unit 220d, which is the operation subject, is omitted.
- the first data rearrangement unit 201 performs rearrangement from the sequential order to the intermediate order
- the second data rearrangement unit 204 performs rearrangement from the intermediate order to the bit reverse order.
- the data rearrangement unit 200 realizes rearrangement from the sequential order to the bit reverse order.
- the in-data set rearrangement units 220a to 220d constituting the second data rearrangement unit 204 can be realized by, for example, the in-data set rearrangement unit 220 shown in FIG. Referring to FIG. 23, the data set rearrangement unit 220 includes selector circuits 221, 224, and 225 and flip-flops 222 and 223.
- FIG. 24 is a time chart showing the operation of the data set rearranging unit 220.
- the data set rearrangement unit 220 inputs four pieces of data 0, 1, 8, and 9 as data sets from inputs in0 and in1 in cycles t0 and t1, and performs rearrangement processing in the data sets. And outputs 0, 8, 1, 9 as four data from the outputs out0, out1 in the cycles t1, t2.
- the data set rearrangement unit 220 inputs 0 and 1 from the inputs in0 and in1 in the cycle t0, and the selector 221 selects 0 input from the input in0.
- flip-flop 222 stores 0 selected by selector 221 and flip-flop 223 stores 1 input from input in1.
- cycle t1 inputs 9 and 9 are input from inputs in0 and in1, and selector 221 selects 9 input from input in1.
- flip-flop 222 outputs the stored 0 and 9 input from input in1, and flip-flop 223 outputs the stored 1.
- selector 224 selects 0 output from flip-flop 222 and outputs it to output out0.
- Selector 225 selects 8 input from input in0 and outputs it to output out1.
- flip-flop 222 In cycle t2, flip-flop 222 outputs stored 9 and flip-flop 223 outputs stored 1.
- the selector 224 selects 1 output from the flip-flop 223 and outputs it to the output out0
- the selector 225 selects 9 output from the flip-flop 222 and outputs it to the output out1.
- the data rearrangement process has been described by taking the rearrangement from the sequential order to the bit reverse order as an example.
- the rearrangement from the bit reverse order to the sequential order also involves bit reverse as the first step rearrangement.
- the rearrangement from the order to the intermediate order, and the rearrangement at the second step can be realized in two steps, in which the middle order is changed from the intermediate order to the sequential order.
- FIG. 25 is a diagram illustrating a configuration example of the twist multiplication processing unit 270.
- the twist multiplication processing unit 270 includes correction circuits 20a to 20d, multiplication circuits 271a to 271d, conversion circuits 10a to 10d, and addition circuits 272a to 272b.
- the correction circuits 20a to 20d can be realized by the correction circuit 20 shown in FIG. 8, for example.
- the multiplication circuits 271a to 271d can be realized, for example, by performing unsigned multiplication processing by the unsigned computation circuit 43 in the computation circuit 41 shown in FIG.
- the multiplication circuit 271a multiplies the real component B of the input A expressed by the sign absolute value--expression and the real component X of the input W, and outputs the result BX.
- the multiplication circuit 271b performs a multiplication process of the imaginary number component iC of the input A and the imaginary number component iY of the input W expressed by the sign absolute value--expression, and outputs the result -CY.
- the multiplication circuit 271c multiplies the imaginary component iC of the input A expressed by the sign absolute value--expression and the real component X of the input W, and outputs the result iCX.
- the multiplication circuit 271d performs a multiplication process on the real component B of the input A expressed by the sign absolute value--expression and the imaginary component iY of the input W, and outputs the result iBY.
- the conversion circuits 10a to 10d can be realized by, for example, the conversion circuit 10 shown in FIG.
- the conversion circuit 10a converts the signal BX expressed by the sign absolute value--expression output from the multiplication circuit 271a into a two's complement expression and outputs the converted signal.
- the conversion circuit 10b converts the signal absolute value expressed by the sign absolute value output from the multiplication circuit 271b into a two's complement expression and outputs the converted signal.
- the conversion circuit 10c converts the signal iCX expressed by the sign absolute value--expression output from the multiplication circuit 271c into a two's complement expression and outputs the result.
- the conversion circuit 10d converts the signal iBY expressed by the sign absolute value--expression output from the multiplication circuit 271d into a two's complement expression and outputs the converted signal.
- the addition circuits 272a and 272b can be realized by an addition circuit that performs an addition process on an input expressed in two's complement expression.
- the adder circuit 272a performs addition processing on the signal BX expressed by the two's complement expression output from the conversion circuit 10a and the signal ⁇ CY expressed by the two's complement expression output by the conversion circuit 10b, and the result is A certain BX-CY is output.
- the addition circuit 272b performs addition processing on the signal iCX expressed by the two's complement expression output from the conversion circuit 10c and the signal iBY expressed by the two's complement expression output by the conversion circuit 10d, and the result is i (CX + BY) is output.
- the FFT apparatus 400 performs rearrangement from “sequential order” to “bit reverse order”, which is a data rearrangement process necessary for butterfly computation,
- the rearrangement from the “bit reverse order” to the “sequential order” is realized in two steps through the “intermediate order” after conversion into the code absolute value--expression. Therefore, while the rearrangement processing is performed with the 2's complement representation, circuits such as a RAM circuit, a flip-flop circuit, and a selector circuit that constitute the first data rearrangement unit 201 and the second data rearrangement unit 204.
- the operation rate can be reduced.
- the FFT apparatus 400 processes the former multiplication process with the sign absolute value--expression among the multiplication process and the addition process constituting the twist multiplication process. For this reason, the operation rate of the circuit can be reduced as compared with the multiplication processing in the two's complement expression.
- the latter addition processing is performed in 2's complement representation, but the circuit scale of the addition circuit is significantly smaller than that of the multiplication circuit, so that the multiplication processing is processed by the sign absolute value--representation.
- the operation rate of the circuit of the twist multiplication processing unit 270 that performs the multiplication process can be reduced.
- the conversion process between the two's complement expression and the sign absolute value--expression can be realized only by the bit inversion process, and requires one addition process (increment process) required by the conventional sign absolute value expression. do not do.
- bit inversion processing can be realized with only an XOR circuit, it can be realized with an overwhelmingly small circuit scale as compared with other logic processing circuits and arithmetic processing circuits.
- the generated computation error can be reduced and allowed.
- the number of bits to be corrected can be set to an optimum value according to the calculation error. As a result, the circuit scale related to the correction process can be reduced.
- the operation rate of the circuit in the data rearrangement process can be reduced. For this reason, the power consumption in a data rearrangement process part can be reduced.
- the butterfly calculation process is processed in the complement calculation unit while maintaining the two's complement expression. For this reason, the operation rate of the circuits related to the arithmetic processing is not reduced, but the circuit scale is not greatly increased by conversion between the data representation formats as in the case where the sign absolute value representation is applied. Therefore, the power consumption of the entire FFT apparatus can be reduced by the amount of power consumption associated with the data rearrangement process and the twist multiplication process.
- FIG. 30 is a diagram schematically illustrating a form in which the processing and functions of the apparatuses 100 and 400 according to the first and second exemplary embodiments described above are realized by a program.
- the processor device 300 includes a processor 301, a program storage unit 302 that stores a program (instruction group, data, and the like) executed by the processor 301, and a RAM 303 (data read / write by the processor 301 is performed. 8 may function as the RAM circuit 210 of FIG.
- the processor 301 may be a digital signal processor (Digital Signal Processor) or the like.
- the program storage unit 302 may be a ROM (Read-Only Memory), an EEPROM (Electrically-Erasable Programmable-Read-Only Memory), an HDD (Hard Disk Drive), a USB (Universal Serial Bus) memory, or the like.
- the program storage unit 302 may be configured to store the firmware of the processor 301.
- the RAM 303 may be configured to be built in the processor 301.
- the first interface 304 includes an input circuit (or reception circuit) and an input buffer (reception buffer), and the second interface 305 may include an output buffer (transmission buffer) and an output circuit (transmission circuit). Good.
- the first and second interfaces 304 and 305 may be a single interface circuit including an input / output circuit (transceiver circuit).
- Patent Documents 1-3 and Non-Patent Documents 1 and 2 are incorporated herein by reference.
- the embodiments and examples can be changed and adjusted based on the basic technical concept.
- Various combinations or selections of various disclosed elements are possible within the scope of the claims of the present invention. . That is, the present invention of course includes various variations and modifications that could be made by those skilled in the art according to the entire disclosure including the claims and the technical idea.
- a signal processing apparatus comprising:
- the arithmetic processing unit includes: If the operation to be processed is multiplication or division, Performing an arithmetic process on any of the data subjected to the correction process on the data expressed in the second expression format; The signal processing apparatus according to appendix 1 or 2, wherein when the operation to be processed is addition or subtraction, the arithmetic processing is performed on data represented by a two's complement expression.
- the storage processing unit A first conversion unit that inputs data expressed in a two's complement representation and converts the input data from a two's complement representation into the second representation format; A storage circuit for storing and outputting data in the second representation format; A second converter that inputs the data in the second representation format output from the storage circuit, converts the input data into a two's complement representation, and outputs the converted data.
- a configuration comprising the memory circuit; 4.
- the arithmetic processing unit includes: A first arithmetic circuit that inputs data expressed in two's complement representation and performs arithmetic processing on the data expressed in two's complement representation; A first conversion unit that inputs data expressed by a two's complement expression and converts the input data from a two's complement expression to the second expression format; A correction circuit that performs the correction process on the data expressed in the second expression format; A second arithmetic circuit that inputs data corrected by the correction circuit and performs arithmetic processing of the corrected data; A second conversion unit that inputs data in the second representation format, converts the input data into a two's complement representation, and outputs the converted data.
- a configuration comprising the first arithmetic circuit; A configuration comprising the correction circuit and the second arithmetic circuit; A configuration in which the correction circuit and the second arithmetic circuit are further provided with at least one of the first conversion unit and the second conversion unit; 4.
- the signal processing device according to any one of appendices 1 to 3, wherein the signal processing device includes at least one of the above.
- the second arithmetic circuit includes: A code operation circuit that outputs a calculation result of a sign bit of the data in the second expression format that has been subjected to the correction processing as a calculation target; 6.
- the arithmetic processing unit is A butterfly calculation processing unit for performing butterfly calculation processing; A twist multiplication processing unit for performing a twist multiplication process; With The storage processing unit A data rearrangement processing unit that rearranges the order of multiple data, The butterfly operation processing unit performs butterfly operation processing on data expressed by two's complement expression, The twist multiplication processing unit performs an arithmetic process on the data obtained by performing the correction process on the data expressed in the second expression format for the multiplication process, For the addition process, an arithmetic process is performed on the data represented by the two's complement expression, The signal rearrangement processing unit performs a storage process on data expressed in the second expression format.
- the data rearrangement processing unit A first conversion unit that inputs data expressed in two's complement representation and converts the data to the second representation format; A second converter that inputs data expressed in the second expression format and converts the data into a two's complement expression; With The first conversion unit performs data rearrangement processing by converting input data represented by two's complement representation into the second representation format, 9.
- the signal processing apparatus according to claim 8, wherein the second conversion unit converts the data after the data rearrangement processing expressed in the second expression format into a two's complement expression and outputs the converted data. .
- the first and second conversion units output the most significant bit of the input data as it is, 10.
- the signal processing apparatus according to appendix 8 or 9, wherein a result obtained by performing an exclusive OR with the most significant bit other than the most significant bit of the input data is output.
- a butterfly calculation processing unit for performing butterfly calculation processing A twist multiplication processing unit for performing a twist multiplication process; A data rearrangement processing unit for rearranging the order of a plurality of data;
- An FFT apparatus that performs Fast Fourier Transform (FFT) or Inverse Fast Fourier Transform (IFFT), Perform computation using both the two's complement representation and the second representation format different from the two's complement representation as the data representation format,
- the second representation format is the same as the two's complement representation for non-negative data, and the negative data is a representation obtained by inverting bits other than the most significant bit indicating the sign from the two's complement representation of the data.
- the butterfly operation processing unit Process the data expressed in two's complement representation,
- the data rearrangement processing unit A storage process is performed on the data expressed in the second expression format,
- the twist multiplication processing unit For the multiplication process, an arithmetic process is performed on the data obtained by performing the correction process on the data expressed in the second expression format,
- An FFT apparatus characterized in that, for addition processing, arithmetic processing is performed on data expressed by a two's complement expression.
- the data rearrangement processing unit A first converter that converts data from a two's complement representation to the second representation format; A second converter for converting from the second representation format to a two's complement representation; With The first conversion unit converts the data expressed in the two's complement expression to be input into the second expression format and performs a data rearrangement process, The FFT according to appendix 11 or 12, wherein the second conversion unit converts the data after the data rearrangement processing expressed in the second expression format into a two's complement expression and outputs the converted data. apparatus.
- the first and second conversion units output the most significant bit of the input data as it is, 14.
- the FFT apparatus according to any one of appendices 11 to 13, wherein a result obtained by performing an exclusive OR with the most significant bit other than the most significant bit of the input data is output.
- (Appendix 15) Storing the data represented in a second representation format different from the two's complement representation; Performing arithmetic processing on at least one of data represented by two's complement representation or data obtained by performing correction processing on data represented by the second representation format; Including The second expression format is: If the data value is positive or 0, it is the same as the two's complement expression, A signal processing method characterized in that, when a data value is negative, an expression format is obtained by inverting bits other than the most significant bit indicating a sign from a two's complement expression.
- Appendix 17 In the arithmetic processing, when the operation to be processed is multiplication or division, Performing an arithmetic process on any of the data subjected to the correction process on the data expressed in the second expression format; 17.
- the storing process is A first conversion process for inputting data expressed in two's complement representation and converting the input data from two's complement representation to the second representation format; A storage process for storing the data in the second expression format in a storage circuit; Regarding the second conversion process of inputting the data in the second representation format output from the storage circuit, converting the input data into a two's complement representation, and outputting the converted data.
- the storage process or 18.
- the signal processing method according to any one of appendices 15 to 17, including at least one of the first conversion process or the second conversion process before or after the storage process.
- the arithmetic processing is as follows: A first arithmetic processing for inputting data expressed in two's complement representation and performing arithmetic processing on the data expressed in two's complement representation; A first conversion process for inputting data expressed by a two's complement expression and converting the input data from a two's complement expression to the second expression format; Correction processing to be performed on data expressed in the second expression format; A second calculation process for calculating the corrected data; Regarding the second conversion process of inputting the data in the second representation format, converting the input data into a two's complement representation, and outputting it, The first arithmetic processing; The correction process and the second calculation process; In addition to the correction process and the second calculation process, at least one of the first conversion process and the second conversion process, 18.
- the signal processing method according to any one of supplementary notes 15 to 17, characterized in that any one of the above is included.
- the fast Fourier transform or the inverse fast Fourier transform is performed using both the two's complement representation as the data representation format and the second representation format
- the arithmetic processing is Butterfly calculation processing for performing butterfly calculation processing; Twist multiplication processing for performing twist multiplication processing; Including fast Fourier transform or inverse fast Fourier transform,
- the storing process is Including data reordering to reorder the order of multiple data
- the butterfly calculation process is Performs butterfly computation on data expressed in two's complement representation
- the twist multiplication process performs an arithmetic process on the data obtained by performing a correction process on the data expressed in the second expression format for the multiplication process,
- an arithmetic process is performed on the data represented by the two's complement expression
- the signal rearrangement process performs a storage process on the data expressed in the second expression format.
- the data rearrangement process includes a first conversion process for converting data from a two's complement representation to the second representation format; A second conversion process for converting from the second representation format to a two's complement representation; Including In the first conversion process, the data expressed in the two's complement expression to be input is converted into the second expression format to perform a data rearrangement process, The signal processing method according to appendix 20, wherein, in the second conversion process, the data after the data rearrangement process expressed in the second expression format is converted into a two's complement expression and output. .
- the second representation format is the same as the two's complement representation for non-negative data
- the negative data is a representation obtained by inverting bits other than the most significant bit indicating the sign from the two's complement representation of the data.
- the data rearrangement process includes a first conversion process for converting data from a two's complement representation to the second representation format; A second conversion process for converting from the second representation format to a two's complement representation; Including In the first conversion process, the data expressed in the two's complement expression to be input is converted into the second expression format to perform a data rearrangement process, 24.
- Appendix 27 When the operation to be processed is multiplication or division as the arithmetic processing, Performing an arithmetic process on any of the data subjected to the correction process on the data expressed in the second expression format; 27.
- the storage process is: A first conversion process for inputting data expressed in two's complement representation and converting the input data from two's complement representation to the second representation format; A storage process for storing the data in the second expression format in a storage circuit; Regarding the second conversion process of inputting the data in the second representation format output from the storage circuit, converting the input data into a two's complement representation, and outputting the converted data.
- the storage process, or 28. The program according to any one of appendices 25 to 27, including at least one of the first conversion process or the second conversion process before or after the storage process.
- the arithmetic processing is as follows: A first arithmetic processing for inputting data expressed in two's complement representation and performing arithmetic processing on the data expressed in two's complement representation; A first conversion process for inputting data expressed by a two's complement expression and converting the input data from a two's complement expression to the second expression format; Correction processing to be performed on data expressed in the second expression format; A second calculation process for calculating the corrected data; Regarding the second conversion process of inputting the data in the second representation format, converting the input data into a two's complement representation, and outputting it, The first arithmetic processing; The correction process and the second calculation process; In addition to the correction process and the second calculation process, at least one of the first conversion process and the second conversion process, 28.
- the program according to any one of appendices 25 to 27, including any of the above.
- the arithmetic processing is Butterfly calculation processing for performing butterfly calculation processing; Twist multiplication processing for performing twist multiplication processing; Including fast Fourier transform or inverse fast Fourier transform,
- the storing process is Including data reordering to reorder the order of multiple data,
- the butterfly computation process performs a butterfly computation process on data expressed by a two's complement expression,
- the twist multiplication process performs an arithmetic process on the data obtained by performing a correction process on the data expressed in the second expression format for the multiplication process,
- an arithmetic process is performed on the data represented by the two's complement expression, 27.
- the program according to appendix 25 or 26, wherein the data rearrangement process performs a storage process on data expressed in the second expression format.
- the data rearrangement process is: A first conversion process for converting data from two's complement representation into the second representation format; A second conversion process for converting from the second representation format to a two's complement representation; Including In the first conversion process, the data expressed in the two's complement expression to be input is converted into the second expression format to perform a data rearrangement process, The program according to attachment 30, wherein, in the second conversion process, the data after the data rearrangement process expressed in the second expression format is converted into a two's complement expression and output.
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Discrete Mathematics (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
- Human Computer Interaction (AREA)
Abstract
本発明は、回路規模や消費電力の増大を抑制又は低減可能とする信号処理装置を提供する。信号処理装置は、データ値が正又は0の場合は、2の補数表現と同一であり、データ値が負の場合は、2の補数表現から符号を示す最上位ビット以外のビットを反転した表現形式である第2の表現形式により表現されたデータに対して記憶処理を行う記憶処理部と、2の補数表現により表現されたデータ、又は、前記第2の表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対して演算処理を行う演算処理部とを備える。
Description
[関連出願についての記載]
本発明は、日本国特許出願:特願2018-097761号(2018年5月22日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、信号処理装置、方法、プログラムに関する。
本発明は、日本国特許出願:特願2018-097761号(2018年5月22日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、信号処理装置、方法、プログラムに関する。
デジタル信号処理において重要な処理の1つとして、高速フーリエ変換(Fast Fourier Transform:以降、「FFT」という。)処理がある。また、例えば無線通信や有線通信における信号伝送中の波形歪みを補償する技術として、周波数領域等化(Frequency domain equalization(FDE))技術が知られている。
周波数領域等化では、まず高速フーリエ変換により時間領域上の信号データが周波数領域上のデータに変換される。次に、等化のためのフィルタ処理が行われる。そして、フィルタ処理後のデータは、逆高速フーリエ変換(Inverse FFT:以降、「IFFT」という。)により時間領域上の信号データに再変換される。上記処理によって、元の時間領域上の信号の波形歪みが補償される。以降、FFTとIFFTを区別しないときは、「FFT/IFFT」と表記する。
一般に、FFT/IFFT処理では、「バタフライ演算」が用いられる。例えば特許文献1には、バタフライ演算を用いたFFT装置等について記載されている。特許文献1には、後述の「ひねり乗算」、すなわち、ひねり係数(twiddle coefficient又はtwiddle factor)を用いた乗算についても記載されている。また、例えば非特許文献1には、効率的なFFT/IFFT処理方式として、Cooley-Tukeyによるバタフライ演算が記載されている。
しかし、ポイント数の大きいCooley-TukeyによるFFT/IFFTは回路が複雑になる。そのため、FFT/IFFT処理は、例えば非特許文献2に記載されたPrime Factor法に基づいて、2つの小さなFFT/IFFTに分解して行われる。
図26には、Prime Factor法を利用して2段階の基数8のバタフライ処理に分解された、64ポイントFFTのデータフロー500が示されている。データフロー500は、データ並べ替え処理部501、バタフライ演算処理部502、503からなる延べ16回の基数8のバタフライ演算処理、及び、ひねり係数{Wk}(W=exp(-2πj/N), j2=-1)を乗算するひねり乗算処理部504を含む(図26では、ひねり係数は(W0, W1,…,W7),…,(W0, W7,…,W49))。
図26のデータフローでは、入力された時間領域のデータx(n)(n=0,1,・・・ ,63)が、FFT処理により、周波数領域の信号X(k)(k=0,1,・・・,63)にフーリエ変換される。図26では、一部のデータフローの図示は省略されている。なお、図26のデータフローは、IFFT処理を行う場合についても、基本構成は同じである。
図26のデータフローのすべてを回路で実現するためには、膨大な規模の回路を要する。そのため、必要な処理性能に応じて、データフローの一部分の処理を実現する回路を繰り返し使用することで、FFT処理の全体を実現する方法が一般的である。
例えば、図26のデータフローにおいて、8個のデータに対して並列に(以降、単に「8データ並列で」という。)FFT処理を行うFFT装置を物理的な回路として作成した場合、合計8回の繰り返し処理により64ポイントFFT処理を実現することができる。
8回の繰り返し処理は、8個のデータに対して行われる部分データフロー505a~505hの、それぞれにあたる処理が順に行われるものである。具体的には、次のように行われる。すなわち、
1回目には、部分データフロー505aにあたる処理が、
2回目には、部分データフロー505bにあたる処理が、
3回目には、部分データフロー505c(図示せず)にあたる処理が、それぞれ行われる。
1回目には、部分データフロー505aにあたる処理が、
2回目には、部分データフロー505bにあたる処理が、
3回目には、部分データフロー505c(図示せず)にあたる処理が、それぞれ行われる。
以降、同様に、8回目の部分データフロー505hにあたる処理までが順に行われる。以上の処理により、64ポイントFFT処理が実現される。
バタフライ演算では、逐次的な順序に並べられたデータが、所定の規則に従った順序で読み出され、処理される。そのため、バタフライ演算では、データの並べ替えが必要である。バタフライ演算の回路の実現には、主に、RAM(Random Access Memory)が用いられる。例えば特許文献2には、バタフライ演算において、RAMを用いたデータの並べ替えを行うFFT装置について記載されている。また、例えば特許文献3には、メモリ使用量を削減したFFT演算装置に関して、バタフライ演算の並列処理による高速化技術が記載されている。
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
デジタル信号処理における信号データの2進数による表現方法として、2の補数表現が広く使われている。2の補数表現は、減算処理を加算処理で表現できることから、加減算処理回路を小さい回路規模で実現できる、という特徴がある。
一方、2の補数表現では、値0の近傍における正の小さい値と負の小さい値ではビット単位での値が大きく異なる。このため、値が0の近傍で正と負とで頻繁に変化する信号を2の補数で表現した場合、ビット単位の動作率(トグル率)が大きい、という特徴がある。CMOS(Complementary Metal Oxide Semiconductor)回路により実現したデジタル信号処理回路の動的な消費電力(ダイナミック電力)Pは、下記に示す式(1)で表現することができる。
P=(1/2)*a*C*V2*f … (1)
P=(1/2)*a*C*V2*f … (1)
ここで、
a:回路動作率(percentage-activity)、
C:負荷容量、
V:電圧、
f:動作周波数
である。回路動作率(percentage-activity)は、ある時間期間におけるスイッチング回数の推定値と該期間におけるクロックサイクル数の比率で与えられる。
a:回路動作率(percentage-activity)、
C:負荷容量、
V:電圧、
f:動作周波数
である。回路動作率(percentage-activity)は、ある時間期間におけるスイッチング回数の推定値と該期間におけるクロックサイクル数の比率で与えられる。
信号データのビット単位の動作率は回路動作率aを決定することから、ビット単位の動作率の低減が、消費電力の低減に有効である。ところで、通信向け信号処理の信号データは、値0の近傍で正と負とで頻繁に変化することが多い。また、デジタル信号処理において重要な処理の1つとして、高速フーリエ変換(FFT)処理においても、その内部データが値0の近傍の小さい値をとることが多い。
これらの処理において、2の補数表現を用いた場合、ビット単位の動作率が大きくなり、その結果消費電力が大きくなる、という問題がある。
それに対し、値0の近傍におけるビット単位の動作率が小さいデジタルデータの表現方法として、符号絶対値表現がある。図27には、2の補数表現と符号絶対値表現の一例として、8ビットの信号データにおける+7~-8の信号値の2進数表現が示されている。2の補数表現では値0を境界として、正の値と負の値との間で上位ビット側のビット値が大きく異なることがわかる。したがって、値0の近傍で正と負とで頻繁に変化する信号を表現した場合、ビット単位の動作率が大きくなることになる。例えば、+1から-1に変化した場合、最下位ビット(Least Significant Bit: LSB)以外の7ビットがすべて遷移することになる。
一方、符号絶対値表現は、最上位ビット(Most Significant Bit: MSB)で符号を表し、それ以外のビットで値の絶対値を表すことから、値0を境界として、正の値と負の値との間でビット値の差異が小さい。したがって、値0の近傍で正と負とで頻繁に変化する信号を表現した場合でも、ビット単位の動作率は小さいという特徴がある。例えば、+1から-1に変化した場合、最上位ビットの1ビットのみが遷移することになる。
ところが、符号絶対値表現では、減算処理を加算処理で表現できないことから、加算処理回路と減算処理回路とを別に用意する必要がある。その結果、加減算処理を実現する回路の規模が大きくなる。回路規模は式(1)に示した動的な消費電力Pにおける負荷容量Cを決定することから、回路規模の増大は消費電力を増大させる。
すなわち、符号絶対値表現は、2の補数表現と比較して、回路動作率aを低減できるものの、加減算回路の負荷容量Cが増大する。このため、符号絶対値表現は、特に加減算処理の多い信号処理の場合、消費電力が大きくなる、という問題がある。
加減算処理には、効率的に回路を実現することが可能な2の補数表現を使用し、
加減算処理以外には、動作率を低減できる符号絶対値表現を使用する、ことも考えられる。
加減算処理以外には、動作率を低減できる符号絶対値表現を使用する、ことも考えられる。
しかしながら、2の補数表現と符号絶対値表現との変換には、ビット反転処理と1加算処理(インクリメント処理)が必要になる。
図28には、2の補数表現と符号絶対値表現との変換回路600の構成例が示されている。変換回路600は、ビット反転回路601と1加算回路602とを接続して構成される。変換回路600において、特に、1加算回路602の回路規模は、他の論理処理回路や演算処理回路と比較して無視できない規模となる。このため、変換処理が多く必要になる場合、その変換回路の分だけ、回路全体の回路規模や消費電力が大きくなる、という問題がある。
したがって、本発明は、上記課題に鑑みて創案されたものであって、その目的は、回路全体の回路規模や消費電力の増大を抑制又は低減可能とする信号処理装置、方法、プログラムを提供することを目的とする。
本発明の1つの側面によれば、信号処理装置は、演算処理を行う演算処理部と、記憶処理を行う記憶処理部とを備え、データ表現形式として2の補数表現と、2の補数表現と異なる第2の表現形式との双方を使用して処理を行う。前記第2の表現形式は、データ値が正又は0の場合は2の補数表現と同一であり、データ値が負の場合は、2の補数表現から符号を示す最上位ビット以外のビットを反転した表現形式である。前記演算処理部は2の補数表現により表現されたデータ、又は、前記第2の表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対して演算処理を行う。前記記憶処理部は前記第2の表現形式により表現されたデータに対して記憶処理を行う。
本発明の1つの側面によれば、バタフライ演算処理を行うバタフライ演算処理部と、ひねり乗算処理を行うひねり乗算処理部と、複数のデータの順序を並べ替えるデータ並べ替え処理部と、を備え、データ表現形式として2の補数表現と、2の補数表現と異なる第2の表現形式の双方を使用して演算処理を行うことで高速フーリエ変換又は逆高速フーリエ変換を行う高速フーリエ変換(FFT)装置が提供される。前記第2の表現形式は、データ値が正又は0の場合は2の補数表現と同一であり、データ値が負の場合は、2の補数表現から符号を示す最上位ビット以外のビットを反転した表現である。前記バタフライ演算処理部は、2の補数表現により表現されたデータに対して処理を行う。前記データ並べ替え処理部は、前記第2の表現形式により表現されたデータに対して記憶処理を行う。前記ひねり乗算処理部は、乗算処理については前記第2の表現形式により表現されたデータに補正処理を行ったデータに対して処理を行い、加算処理については2の補数表現により表現されたデータに対して処理を行う。前記補正処理は、前記第2の表現形式により表現されたNビット(Nは正整数)のデータが負の値の場合に、前記Nビット(Nは正整数)のデータのうち、最下位ビットからMビット(MはM≦Nの正整数)に対して値1を加算する処理を行う。
本発明の1つの側面によれば、2の補数表現と異なる第2の表現形式により表現されたデータに対して記憶処理を行う工程と、2の補数表現により表現されたデータ、又は、前記第2の表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対して演算処理を行う工程と、を含む信号処理方法が提供される。前記第2の表現形式は、データ値が正又は0の場合は、2の補数表現と同一であり、データ値が負の場合は、2の補数表現から符号を示す最上位ビット以外のビットを反転した表現形式である。
本発明の1つの側面によれば、データ値が正又は0の場合は、2の補数表現と同一であり、データ値が負の場合は、2の補数表現から符号を示す最上位ビット以外のビットを反転した表現形式である第2の表現形式により表現されたデータに対する記憶処理と、2の補数表現により表現されたデータ、又は、前記第2の表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対する演算処理と、をプロセッサに実行させるプログラムが提供される。本発明によれば、該プログラムを記録した、半導体メモリやHDD(Hard Disk Drive)、CD(Compact Disk)、DVD(Digital Versatile Disk)等の非一時的なコンピュータ読み出し可能な媒体(non-transitory computer-readable medium)が提供される。
本発明によれば、回路全体の回路規模や消費電力の増大を抑制又は低減可能としている。
(第1の例示的な実施形態)
図1は、本発明の第1の例示的な実施形態に係る信号処理装置(信号処理回路)100の構成例を説明する図である。信号処理装置100は、信号データのバッファリング処理、リタイミング処理や並べ替え処理等の記憶処理を行う記憶処理部として、第1の記憶処理部101と、第2の記憶処理部103と、第3の記憶処理部105と、第4の記憶処理部108とを備えている。また、信号処理装置100は、加減算や乗除算等の演算処理を行う演算処理部として、第1の演算処理部102と、第2の演算処理部104と、第3の演算処理部106と、第4の演算処理部107とを備えている。なお、複数の記憶処理部を1つのユニット内に備えた構成としてもよい。また、複数の演算処理部を1つのユニット内に備えた構成としてもよい。
図1は、本発明の第1の例示的な実施形態に係る信号処理装置(信号処理回路)100の構成例を説明する図である。信号処理装置100は、信号データのバッファリング処理、リタイミング処理や並べ替え処理等の記憶処理を行う記憶処理部として、第1の記憶処理部101と、第2の記憶処理部103と、第3の記憶処理部105と、第4の記憶処理部108とを備えている。また、信号処理装置100は、加減算や乗除算等の演算処理を行う演算処理部として、第1の演算処理部102と、第2の演算処理部104と、第3の演算処理部106と、第4の演算処理部107とを備えている。なお、複数の記憶処理部を1つのユニット内に備えた構成としてもよい。また、複数の演算処理部を1つのユニット内に備えた構成としてもよい。
第1の記憶処理部101は、信号処理装置100の外部から、2の補数表現により表現された信号データを入力して記憶処理を行い、2の補数表現により表現された信号データを第1の演算処理部102に出力する。
第1の演算処理部102は、第1の記憶処理部101から、2の補数表現により表現された信号データを入力して演算処理を行い、2の補数表現により表現された信号データを第2の記憶処理部103に出力する。
第2の記憶処理部103は、第1の演算処理部102から2の補数表現により表現された信号データを入力して記憶処理を行い、符号絶対値--表現により表現された信号データを第2の演算処理部104に出力する。
第2の演算処理部104は、第2の記憶処理部103から、符号絶対値--表現により表現された信号データを入力して演算処理を行い、符号絶対値--表現により表現された信号データを第3の記憶処理部105に出力する。
第3の記憶処理部105は、第2の演算処理部104から符号絶対値--表現により表現された信号データを入力して記憶処理を行い、符号絶対値--表現により表現された信号データを第3の演算処理部106に出力する。
第3の演算処理部106は、第3の記憶処理部105から、符号絶対値--表現により表現された信号データを入力して演算処理を行い、2の補数表現により表現された信号データを第4の演算処理部107に出力する。
第4の演算処理部107は、第3の演算処理部106から、2の補数表現により表現された信号データを入力して演算処理を行い、符号絶対値--表現により表現された信号データを第4の記憶処理部108に出力する。
第4の記憶処理部108は、第4の演算処理部107から、符号絶対値--表現により表現された信号データを入力して記憶処理を行い、2の補数表現により表現された信号データを信号処理装置100の外部に出力する。
ここで、本発明に係る符号絶対値--表現は、
データの値が正又は0の場合(非負の場合)、該データの2の補数表現と同一であり、
データの値が負の場合は、該データの2の補数表現に対して符号を示す最上位ビット以外のビットを反転した表現である。
データの値が正又は0の場合(非負の場合)、該データの2の補数表現と同一であり、
データの値が負の場合は、該データの2の補数表現に対して符号を示す最上位ビット以外のビットを反転した表現である。
図2に、符号絶対値--表現とその比較として、2の補数表現、及び符号絶対値表現による、6ビットの信号データにおける+15~-16の信号値の2進数表現を示す。
図2において、データ値が正の場合、符号絶対値--表現、2の補数表現、及び符号絶対値表現ともすべて同一のビット表現である。データ値が0の場合、符号絶対値--表現と2の補数表現は同一のビット表現である。データ値が負の場合、符号絶対値--表現は2の補数表現から、符号を示す最上位ビット以外のビットを反転した表現である。同様に、データ値が負の場合、2の補数表現は、符号絶対値--表現から、符号を示す最上位ビット以外のビットを反転した表現である。「符号絶対値--表現」は、本願特許請求の範囲の「第2の表現形式」に対応する。
図2に示すように、符号絶対値--表現は、符号絶対値表現と同様に、値0を境界として、正の値と負の値との間でビット値の差異が小さい。したがって、値0の近傍で正と負とで頻繁に変化する信号を表現した場合でも、ビット単位の動作率は小さい、という特徴がある。例えば、+1+1("00001")から-2("10001")に変化した場合、最上位ビットの1ビットのみが遷移することになる。
図3は、第1の記憶処理部101の構成例を示す図である。図3を参照すると、第1の記憶処理部101は、変換回路10aと、記憶回路30と、変換回路10bとを備えている。変換回路10aは、入力する2の補数表現で表現された信号データを、符号絶対値--表現で表現された信号データに変換して出力する回路である。
記憶回路30は、変換回路10aが出力する符号絶対値--表現で表現された信号データを入力して符号絶対値--表現のまま記憶処理を行い、符号絶対値--表現のまま変換回路10bに出力する回路である。
変換回路10bは、記憶回路30が出力する符号絶対値--表現で表現された信号データを、2の補数表現で表現された信号データに変換して出力する回路である。
変換回路10a、10bは、例えば図4に示す変換回路10で実現することができる。変換回路10は、Nビット(Nは正の整数)の信号データを入力して、2の補数表現から符号絶対値--表現へ、又は、符号絶対値--表現から2の補数表現へ、変換して出力する回路である。
図4を参照すると、変換回路10は、入力IN[N-1]から入力する符号を示す最上位ビットはそのまま符号ビットとしてOUT[N-1]に出力する。入力IN[0]~IN[N-2]は、XOR(exclusive OR:排他的論理和)回路170~17N-2の第1端子にそれぞれ入力される。入力IN[N-1]から入力する符号を示す最上位ビットは、XOR回路170~17N-2の第2端子に入力される。XOR回路170~17N-2は第1端子と第2端子の入力の排他的論理和演算結果を出力OUT[0]~OUT[N-2]にそれぞれ出力する。
入力するデータ値が正又は0の場合、入力IN[N-1]から入力する符号を示す最上位ビットは値0であり、出力OUT[0]~OUT[N-2]には、入力IN[0]~IN[N-2]に入力されたデータ値がそのまま出力される。
一方、入力するデータ値が負の場合、入力IN[N-1]から入力する符号を示す最上位ビットは値1であり、XOR回路170~17N-2における第1端子と第2端子の入力の排他的論理和処理により、出力OUT[0]~OUT[N-2]には、入力IN[0]~IN[N-2]に入力されたデータ値を反転したデータが出力される。
以上の処理により、変換回路10は、入力IN[0]~IN[N-1]に入力された2の補数表現で表現された信号データ(IN[N-1]は符号ビット)を符号絶対値--表現に変換し、符号絶対値--表現の信号データを出力OUT[0]~OUT[N-1]から出力する(OUT[N-1]は符号ビット)。また、入力IN[0]~IN[N-1]に入力された符号絶対値--表現で表現された信号データ(IN[N-1]は符号ビット)を2の補数表現に変換し、2の補数表現の信号データを出力OUT[0]~OUT[N-1]から出力する(OUT[N-1]は符号ビット)。
以上のように、変換回路10において、2の補数表現と符号絶対値--表現との変換は、ビット反転処理のみで実現することができる。すなわち、変換回路10において、符号絶対値表現で必要とされた1加算処理(インクリメント処理)は必要とされない。ビット反転処理は、排他的論理和のみで実現できる。このため、他の論理処理回路や演算処理回路と比較して、圧倒的に小さい回路規模で、変換回路10を実現することができる。
図5は、第1の演算処理部102の構成例を示す図である。第1の演算処理部102は、演算回路40を備えている。演算回路40は、入力する2の補数表現で表現された信号データに対して演算処理を行い、その結果を2の補数表現で表現された信号データとして出力する。
演算回路40が行う演算処理は、具体的には、符号絶対値表現や符号絶対値--表現では効率的な回路実現が難しい加算処理や減算処理を含む。
図6は、図1の第2の記憶処理部103の構成例を示す図である。第2の記憶処理部103は、変換回路10と記憶回路30とを備えている。
変換回路10は、入力する2の補数表現で表現された信号データを、符号絶対値--表現で表現された信号データに変換して出力する。
記憶回路30は、変換回路10aが出力する符号絶対値--表現で表現された信号データを入力して符号絶対値--表現のまま記憶処理を行い、符号絶対値--表現のまま出力する。
図7は、第2の演算処理部104の構成例を示す図である。第2の演算処理部104は、補正回路20と演算回路41とを備えている。補正回路20は、入力する符号絶対値--表現で表現された信号データに対して補正処理を行い、その結果を出力する回路である。
演算回路41は、補正回路20が補正処理した符号絶対値--表現された信号データに対して演算処理を行い、その結果を符号絶対値--表現された信号データとして出力する。演算回路41が行う演算処理は、具体的には、符号絶対値表現や符号絶対値--表現でも効率的な回路実現が可能な乗算処理や除算処理を含む。
図8は、図7の補正回路20の構成例を示す図である。補正回路20は、入力するNビット(Nは正整数)の信号データINが負の値の場合、入力INの最下位ビットからMビット(MはM≦Nの正整数)(IN[0]~IN[M-1])に対して値1を加算する処理を行った結果を、出力OUTの最下位ビットからMビット(OUT[0]~OUT[M-1])に出力する。、それ以外のビット(IN[M]~IN[N-1])については、補正回路20は、入力INをそのまま出力OUTの該当するビット(OUT[M]~OUT[N-1])に出力する。
一方、入力INが正の値の場合は、補正回路20は、信号データINの値をそのまま信号データOUTに出力する。
図8を参照すると、補正回路20は、セレクタ回路21と、加算回路22を備えている。セレクタ回路21は、入力IN[N-1]から入力する符号を示す最上位ビットを参照して、入力INが正の値(IN[N-1]が値0)の場合、値0を加算回路22に出力し、入力INが負の値(IN[N-1]が値1)の場合、値1を加算回路22に出力する。
加算回路22は、セレクタ回路21が出力する値と、入力INの最下位ビットからMビット(IN[0]~IN[M-1])とを加算して、出力OUTの最下位ビットからMビット(OUT[0]~OUT[M-1])に出力する回路である。
図7の演算回路41は、例えば符号絶対値表現に係る演算回路で実現することができる。図9は、図7の演算回路41の構成例を示す図である。演算回路41は、符号演算回路42と、符号なし演算回路43を備えている。
符号演算回路42は、符号絶対値表現において最上位ビットの符号ビットを演算する回路であり、入力Aの最上位ビットである符号ビット44と、入力Bの最上位ビットである符号ビット45とを入力する。
符号演算回路42は、
・符号ビット44と符号ビット45が両方とも値0である場合には、値0を符号ビット48に出力し、
・符号ビット44と符号ビット45のいずれか一方が値1である場合には、値1を符号ビット48に出力し、
・符号ビット44と符号ビット45が両方とも値1である場合には値、値0を符号ビット48に出力することで、出力Cの符号ビットを演算して出力する。
・符号ビット44と符号ビット45が両方とも値0である場合には、値0を符号ビット48に出力し、
・符号ビット44と符号ビット45のいずれか一方が値1である場合には、値1を符号ビット48に出力し、
・符号ビット44と符号ビット45が両方とも値1である場合には値、値0を符号ビット48に出力することで、出力Cの符号ビットを演算して出力する。
符号なし演算回路43は、符号絶対値表現において、符号ビット以外の絶対値部分を演算する回路である。
符号なし演算回路43は、入力Aの最上位ビット以外のビット46と、入力Bの最上位ビット以外のビット47とを入力して演算処理を行い、絶対値49に出力することで、出力Cの符号ビット以外のビットである絶対値部分を演算して出力する。
上記したように、演算回路41は、符号絶対値表現に係る演算回路であり、符号とそれ以外の絶対値とを別に演算して処理が可能な演算を実現することができる。具体的には、演算回路41は、乗算処理や除算処理を実現することができる。
次に、補正回路20の機能について説明する。図2に示すように、符号絶対値表現と符号絶対値--表現とを比較すると、正の値の場合は、同じ2進数表現が同じ値を表現する。一方、負の値の場合は、同じ2進数表現について、符号絶対値表現よりも、符号絶対値--表現の方が、1だけ小さい値を表現する。
したがって、演算回路41のように、符号絶対値表現に係る演算回路で符号絶対値--表現で表現された信号データを演算した場合、演算対象の入力データが負の値の場合には、演算結果に誤差が発生する。補正回路20は、演算対象の入力データに補正を加えることで、演算結果の誤差を縮小する機能を提供する。補正回路20は、入力するNビットのうち最下位ビットからMビットに対して、入力が負の値の場合に1を加算する。
したがって、演算回路41に入力される値(負の値)が、符号絶対値--表現で表現された値から、符号絶対値表現で表現された値に近づくことになる。その結果、演算結果における誤差を縮小することができる。
入力するNビットのすべてのビットに対して、入力が負の値の場合に、1を加算した場合(M=Nの場合)、演算回路41に入力される値が、符号絶対値表現で表現された値と等しくなり、演算結果における誤差は発生しないが、入力するNビットのすべてのビットに対して加算処理を行うので、加算回路22の回路規模が大きくなる。すなわち、Mを大きくすると、演算誤差は小さくなるが、回路規模は大きくなり、Mを小さくすると、演算誤差は大きくなるが、回路規模は小さくなる、という特徴がある。
したがって、演算誤差が許容できる範囲で、Mをなるべく小さな値に設定することで、補正回路20の回路規模を小さくすることができる。
図10は、第3の記憶処理部105の構成例を示す図である。第3の記憶処理部105は、記憶回路30を備え、符号絶対値--表現で表現された信号データを入力して記憶処理を行い、符号絶対値--表現のまま出力する回路である。
図11は、第3の演算処理部106の構成例を示す図である。第3の演算処理部106は、補正回路20と、演算回路41と、変換回路10とから構成することができる。
補正回路20は、入力する符号絶対値--表現で表現された信号データに対して補正処理を行い、その結果を出力する。
演算回路41は、補正回路20が補正処理した符号絶対値--表現された信号データに対して演算処理を行い、その結果を符号絶対値--表現された信号データとして出力する。
変換回路10は、演算回路41が出力した符号絶対値--表現で表現された信号データを、2の補数表現で表現された信号データに変換して出力する。
図12は、第4の演算処理部107の構成例を示す図である。第4の演算処理部107は、変換回路10と、補正回路20と、演算回路41とから構成することができる。
変換回路10は、入力する2の補数表現で表現された信号データを、符号絶対値--表現で表現された信号データに変換して出力する。
補正回路20は、入力する符号絶対値--表現で表現された信号データに対して補正処理を行い、その結果を出力する演算回路41は、補正回路20が補正処理した符号絶対値--表現された信号データに対して演算処理を行い、その結果を符号絶対値--表現された信号データとして出力する。
図13は、第4の記憶処理部108の構成例を示す図である。第4の記憶処理部108は、記憶回路30と変換回路10とから構成することができる。
記憶回路30は、入力する符号絶対値--表現で表現された信号データを入力して符号絶対値--表現のまま記憶処理を行い、符号絶対値--表現のまま変換回路10に出力する。
変換回路10は、記憶回路30が出力する符号絶対値--表現で表現された信号データを、2の補数表現で表現された信号データに変換して出力する。
図29(A)は、第1の例示的な実施形態の方法を説明する図である。第1の例示的な実施形態の方法は、符号絶対値--表現形式に変換したデータの記憶処理(ステップS1)と、2の補数表現により表現されたデータ、又は、符号絶対値--表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対して演算を行う演算処理(ステップS2)とを少なくとも含む。なお、演算処理(ステップS2)のあとに記憶処理(ステップS1)をさらに含むようにしてもよい。また、演算処理(ステップS2)を最初に実行し、つづいて記憶処理(ステップS1)を実行するようにしてもよい。なお、上記ステップS1、S2の各処理は、メモリに接続されたプロセッサにプログラム(命令群)を実行させることで実現するようにしてもよい。
図29(B)は、図29(A)の記憶処理(ステップS1)の手順の一例を説明する図である。記憶処理は、データを2の補数表現から符号絶対値--表現形式に変換する第1の変換処理(ステップS11)と、符号絶対値--表現形式に変換したデータを記憶回路に記憶する記憶処理(ステップS12)と、記憶処理後の符号絶対値--表現形式のデータを記憶回路から読み出し2の補数表現へ変換して出力する第2の変換処理(ステップS13)と、を含む。なお、図29(B)において、演算処理(ステップS2)との組み合わせによっては、ステップS12のみとしてもよいし、あるいは、ステップS12に加えてステップS11又はステップS13のいずれか一方を含むようにしてもよい。
図29(C)は、図29(A)の演算処理(ステップS2)の手順の一例を説明する図である。演算処理は、データを2の補数表現から符号絶対値--表現形式に変換する第1の変換処理(ステップS21)と、符号絶対値--表現形式により表現されたデータに補正処理を行ったデータに対して演算を行う演算処理(ステップS22)と、演算処理結果の符号絶対値--表現形式のデータを2の補数表現へ変換して出力する第2の変換処理(ステップS23)と、を含む。なお、記憶処理(ステップS1)から2の補数表現により表現されたデータが出力され、ステップS22において、2の補数表現により表現されたデータに対して演算処理を行う場合、図29(C)のステップS21、ステップS23は省略される。また、図29(A)の記憶処理(ステップS1)から符号絶対値--表現形式により表現されたデータが出力され、図29(C)のステップS22において、符号絶対値--表現形式により表現されたデータに補正処理を行ったデータに対して演算を行う場合、図29(C)のステップS21は省略される。すなわち、記憶処理(ステップS1)からのデータの表現形式と、演算処理(ステップS2)でのデータの表現形式の組み合わせに応じて、図29(C)のステップS21又はステップS23の両方、又は、いずれか一方を含むようにしてもよい。
(第1の例示的な実施形態の効果)
以上説明したように、第1の例示的な実施形態では、信号処理装置100は、第1の記憶処理部101、第2の記憶処理部103、第3の記憶処理部105、及び、第4の記憶処理部108において、符号絶対値--表現で記憶処理を行う。さらに、信号処理装置100は、第2の演算処理部104、及び第4の演算処理部107において、符号絶対値--表現で演算処理を行う。
以上説明したように、第1の例示的な実施形態では、信号処理装置100は、第1の記憶処理部101、第2の記憶処理部103、第3の記憶処理部105、及び、第4の記憶処理部108において、符号絶対値--表現で記憶処理を行う。さらに、信号処理装置100は、第2の演算処理部104、及び第4の演算処理部107において、符号絶対値--表現で演算処理を行う。
図2に示すように符号絶対値--表現は、符号絶対値表現と同様に、値0を境界として、正の値と負の値との間でビット値の差異が小さい。したがって、値0の近傍で正と負とで頻繁に変化する信号を表現した場合でも、ビット単位の動作率は小さいという特徴がある。その結果、2の補数表現のまま処理するのに比べて、記憶処理や演算処理における回路の動作率を低減することができる。
また、変換回路10による2の補数表現と符号絶対値--表現との変換処理は、ビット反転処理のみで実現することができ、符号絶対値表現が必要とした1加算処理(インクリメント処理)を必要としない。
ビット反転処理は、XOR回路のみで実現できるので、他の論理処理回路や演算処理回路と比較して圧倒的に小さい回路規模で実現することができる。
したがって、第1の例示的な実施形態では、値0の近傍で正と負とで頻繁に変化する信号を処理する場合でも、記憶処理部における回路の動作率を小さくすることができる。このため、記憶処理部における消費電力を低減することができる。
また、補正回路20による符号絶対値--表現の値の補正により、乗算や除算などの演算処理を、符号絶対値--表現のまま演算しても、発生する演算誤差を小さくすることができる。そのため、符号絶対値--表現を適用可能な演算回路を増加させることができるため、演算処理部における消費電力を低減することができる。
また、補正回路20は、許容される演算誤差に応じて補正対象となるビット数(M)を最適な値に設定することができるので、補正回路20の回路規模を小さくすることができる。その結果、演算処理部における消費電力を低減することができる。
一方、第1の例示的な実施形態では、第1の演算処理部102、及び第3の演算処理部106において、2の補数表現のまま演算処理される。そのため、これら演算処理部に係る回路の動作率は低減されないが、符号絶対値表現を適用した場合のようにデータ表現形式間の変換により回路規模が大きく増大することはない。したがって、第2の演算処理部104や第4の演算処理部107、記憶処理に係る消費電力が小さくなる分だけ、信号処理装置全体の消費電力を低減することができる。
(第2の例示的な実施形態)
図14は、本発明の第2の例示的な実施形態に係るFFT装置400の構成例を示す図である。FFT装置400は、図26に示されたデータフロー500にしたがって、2段階の基数8のバタフライ処理に分解された64ポイントFFTを、パイプライン回路方式によって処理する。
図14は、本発明の第2の例示的な実施形態に係るFFT装置400の構成例を示す図である。FFT装置400は、図26に示されたデータフロー500にしたがって、2段階の基数8のバタフライ処理に分解された64ポイントFFTを、パイプライン回路方式によって処理する。
FFT装置400は、時間領域のデータx(n)(n=0,1,・・・,N-1)を入力し、x(n)をFFT処理によりフーリエ変換して周波数領域の信号X(k)(k=0,1,・・・,N-1)を生成し、出力する。ここで、NはFFTブロックサイズを表す正整数である。
FFT装置400は、8データ並列で64ポイントFFT処理を行うものとする。この場合、FFT装置400は、時間領域のデータx(n)を入力し、FFT処理によりフーリエ変換した周波数領域の信号X(k)を生成して出力する。このとき、入力データx(n) として、8データずつ、8サイクルの期間に、図15に示す順序で、合計で64個のデータが入力される。なお、ここでは、図15の表の内容として示された、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サイクルの期間に、図15に示す順序で、64データを出力される。なお、ここでは、図15の表の内容として示された、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装置400は、第1のデータ並べ替え処理部250aと、第1のバタフライ演算処理部240aと、第2のデータ並べ替え処理部260と、ひねり乗算処理部270と、第2のバタフライ演算処理部240bと、第3のデータ並べ替え処理部250bとを備える。
FFT装置400は、第1のデータ並べ替え処理、第1のバタフライ演算処理、第2のデータ並べ替え処理、ひねり乗算処理、第2のバタフライ演算処理、及び、第3のデータ並べ替え処理を、パイプライン処理する。
第1のデータ並べ替え処理部250aと第2のデータ並べ替え処理部260は、データ並べ替えのためのバッファ回路である。第1のデータ並べ替え処理部250aと第2のデータ並べ替え処理部260は、それぞれ、第1のバタフライ演算処理部240aの前と後で、FFT処理のアルゴリズム上のデータの依存関係に基づいた、データシーケンスの並べ替えを行う。
第3のデータ並べ替え処理部250bも、同様に、データ並べ替えのためのバッファ回路である。すなわち、第3のデータ並べ替え処理部250bは、第2のバタフライ演算処理部240bの後で、FFT処理のアルゴリズム上のデータの依存関係に基づいた、データシーケンスの並べ替えを行う。
具体的には、第1のデータ並べ替え処理部250aは、入力データx(n)の入力順序である図15に示す「逐次順序」を、第1のバタフライ演算処理部240aに入力する順序である図16に示す「ビットリバース順序」に並べ替える。
図16に示すビットリバース順序は、図26に示したデータフロー図における、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を構成するデータを入力する。
逐次順序は、図15に示された8つのデータ組P1、P2、P3、P4、P5、P6、P7、P8の順序をいう。データ組Ps(sは処理サイクルの順序を表す値であり、s=1、2、・・・、8)は、それぞれ、ps(0)からps(7)まで順に並んだ8個のデータからなる。図15に示す順序で、8データずつ8サイクルの期間に合計で64個のデータx(0)~x(63)が入力されるとして、ps(i)(i=0,・・・,7)は、以下で与えられる。
ps(i)=x[8×(s-1)+i]
ps(i)=x[8×(s-1)+i]
各データ組は、処理のサイクルの進行に対応して、P1、P2、P3、P4、P5、P6、P7、P8の順に並べられる。「逐次順序」は、i×s個のデータを、先頭からi個ずつデータ順に並べたデータ組をs組作成し、各データ組をサイクル順に並べたものである。
ビットリバース順序は、図16に示された8つのデータ組Q1、Q2、Q3、Q4、Q5、Q6、Q7、Q8の順序をいう。データ組Qs(sは処理サイクルの順序を表す値であり、s=1、2、・・・、8)は、それぞれ、qs(0)からqs(7)まで、順に並んだ8個のデータからなる。逐次順序で入力された64個のデータx(0)~x(63)に対して、qs(i)(i=0,・・・,7)は、以下で与えられる。
qs(i)=x[(s-1)+8×i]
qs(i)=x[(s-1)+8×i]
各データ組は、処理のサイクルの進行に対応してQ1、Q2、Q3、Q4、Q5、Q6、Q7、Q8の順に並べられる。ビットリバース順序は、逐次順序で入力されたis個のデータを、先頭からs個ずつサイクル順に並べ、同じサイクルのi個のデータを1つの組としてデータ順に並べたものである。
ビットリバース順序の各データ組は、逐次順序の各組が設定されていれば一意に定まる。ビットリバース順序の各データ組Qs(s=1,・・・,8)を構成するデータのうちi番目のデータQs(i)(i=0,・・・,7)は、逐次順序に従った(i+1)番目のサイクルにおける(s-1)番目のデータPi+1(s-1)である。すなわち、
Qs(i)=Pi+1(s-1)
Qs(i)=Pi+1(s-1)
Qs(i)とPi+1(s-1)は、各データ組を構成するデータについて、サイクルの進行の順序とデータ位置に関する順序とが入れ替えられた関係にある。ビットリバース順序で入力されたデータをビットリバース順序にしたがって並び替えると、逐次順序となる。
図15における各行ps(i)、及び図16における8つの行qs(i)は、それぞれ、次段のi番目に入力されるデータを示す。各データ組に含まれる8個の数字は、FFTのポイントのうちの1個を特定する識別情報であり、具体的にはx(n)の添え字nの値である。
なお、逐次順序及びビットリバース順序は、図15、図16に例示されたものに限定されない。すなわち、逐次順序の各データ組は、上記のように、FFTのポイント数、サイクル数、並列に処理するデータ数に応じて、データを順に並べて作成すればよい。そして、ビットリバース順序の各データ組は、上記のように、逐次順序で入力されるデータの、サイクルの進行に対する順序とデータ位置に対する順序を入れ替えて作成すればよい。
第1のバタフライ演算処理部240aは、図26のデータフロー500において2回行われる基数8のバタフライ演算処理の、1回目のバタフライ演算処理(502)(第1のバタフライ演算処理)を処理するバタフライ演算処理回路である。
第1のバタフライ演算処理部240aは、バタフライ演算処理の結果を、データy(n)(n=0,1,・・・,63)として、図15の逐次順序で出力する。
第2のデータ並べ替え処理部260は、第1のバタフライ演算処理部240aが逐次順序で出力するデータy(n)を、第2のバタフライ演算処理部240bに入力するために、図16のビットリバース順序に並べ替える。
ひねり乗算処理部270は、第1のバタフライ演算処理後に、FFT演算における複素平面上の複素回転を処理する回路であり、図26のデータフロー500における、ひねり乗算処理部504に対応する。なお、ひねり乗算処理では、データの並へ替えは行われない。
第2のバタフライ演算処理部240bは、図26のデータフロー図における、2回目の基数8のバタフライ演算処理(503)を処理するバタフライ演算処理回路である。
第2のバタフライ演算処理部240bは、ビットリバース順序で入力されるひねり乗算処理後のデータy'(n)(n=0,1,・・・,63)に対してバタフライ演算処理を行い、その結果X(k)(n=0,1,・・・,63)を、同じくビットリバース順序で出力する。
第3のデータ並べ替え処理部250bは、第2のバタフライ演算処理部240bがビットリバース順序で出力するデータX(k)を、図15の逐次順序に並べ替える。
データ並べ替え処理部は、入力されたデータを一旦記憶し、記憶したデータの選択及び出力を制御することによって、図15の逐次順序、図16のビットリバース順序のそれぞれに従ったデータの並べ替え処理が実現される。以下に、データ並べ替え処理部の具体例を示す。
図14において、第1のデータ並べ替え処理部250a、及び第3のデータ並べ替え処理部250bは、例えば図17に示すデータ並べ替え処理部250で実現することができる。
図17を参照すると、データ並べ替え処理部250は、変換回路231と、データ並べ替え部(データ並べ替え手段)200と、及び変換回路232とを備えている。変換回路231で、逐次順序で入力される2の補数表現で表現されたデータを符号絶対値--表現に変換した後、データ並べ替え部200で、逐次順序からビットリバース順序へのデータ並べ替え処理や、ビットリバース順序から逐次順序へのデータ並べ替え処理を符号絶対値--表現で行う。、そして、変換回路232で、符号絶対値--表現から2の補数表現に変換して出力する。
図14の第2のデータ並べ替え処理部260は、例えば図18に示すデータ並べ替え処理部260で実現することができる。図18を参照すると、データ並べ替え処理部260は、変換回路231と、データ並べ替え部(データ並べ替え手段)200とから構成される。変換回路231が、逐次順序で入力される2の補数表現で表現されたデータを符号絶対値--表現に変換した後、データ並べ替え部(データ並べ替え手段)200は、逐次順序からビットリバース順序へのデータ並べ替え処理を符号絶対値--表現で行い、符号絶対値--表現のまま出力する。
図17及び図18において、変換回路231は、変換回路233a~233hから構成され、並列に入力される2の補数表現で表現されたデータをそれぞれ符号絶対値--表現に変換する。変換回路233a~233hは、図4に示す変換回路10で構成することができる。
また、図17において、変換回路232は、変換回路234a~234hから構成され、並列に入力される符号絶対値--表現で表現されたデータをそれぞれ2の補数表現に変換する。変換回路234a~234hは、図4に示す変換回路10で構成することができる。
図19は、図17、図18のデータ並べ替え部(データ並べ替え手段)200の構成例を示す図である。図19を参照すると、データ並べ替え部200は、第1のデータ並べ替え部(第1のデータ並べ替え手段)201と、第2のデータ並べ替え部(第2のデータ並べ替え手段)204とから構成される。第1のデータ並べ替え部(第1のデータ並べ替え手段)201と第2のデータ並べ替え部(第2のデータ並べ替え手段)204とによる2段階のステップで、逐次順序からビットリバース順序へのデータ並べ替え処理や、ビットリバース順序から逐次順序へのデータ並べ替え処理を行う。
図19のデータ並べ替え部(データ並べ替え手段)200におけるデータ並べ替え処理について、逐次順序からビットリバース順序へのデータ並べ替え処理を例に、具体的に説明する。
第1のデータ並べ替え部(第1のデータ並べ替え手段)201は、1ステップ目の並べ替えとして、図20に示す「逐次順序」のデータを、図21に示されている「中間順序」のデータへ、並べ替えを行う。図21に示す「中間順序」は、図20に示されている「逐次順序」において、点線で示した4つのデータから構成されるデータ組の単位で、矢印で示した並べ替えを行った後の順序である。
詳細には、図20に示されている「逐次順序」において、
{2, 3, 10, 11}から構成されるデータ組と、{16, 17, 24, 25}から構成されるデータ組との並べ替え、
{4, 5, 12, 13}から構成されるデータ組と、{32, 33, 40, 41}から構成されるデータ組との並べ替え、
{6, 7, 14, 15}から構成されるデータ組と、{48, 49, 56, 57}から構成されるデータ組との並べ替え、
{20, 21, 28, 29}から構成されるデータ組と、{34, 35, 42, 43}から構成されるデータ組との並べ替え、
{22, 23, 30, 31}から構成されるデータ組と、{50, 51, 58, 59}から構成されるデータ組との並べ替え、
{38, 39, 46, 47}から構成されるデータ組と、{52, 53, 60, 61}から構成されるデータ組との並べ替えをそれぞれ行うと、図21に示す「中間順序」になる。
{2, 3, 10, 11}から構成されるデータ組と、{16, 17, 24, 25}から構成されるデータ組との並べ替え、
{4, 5, 12, 13}から構成されるデータ組と、{32, 33, 40, 41}から構成されるデータ組との並べ替え、
{6, 7, 14, 15}から構成されるデータ組と、{48, 49, 56, 57}から構成されるデータ組との並べ替え、
{20, 21, 28, 29}から構成されるデータ組と、{34, 35, 42, 43}から構成されるデータ組との並べ替え、
{22, 23, 30, 31}から構成されるデータ組と、{50, 51, 58, 59}から構成されるデータ組との並べ替え、
{38, 39, 46, 47}から構成されるデータ組と、{52, 53, 60, 61}から構成されるデータ組との並べ替えをそれぞれ行うと、図21に示す「中間順序」になる。
次に、第2のデータ並べ替え部(第2のデータ並べ替え手段)204は、2ステップ目の並べ替えとして、図21に示されている「中間順序」から、図16に示されている「ビットリバース順序」への並べ替え処理を符号絶対値--表現のまま行う。
詳細には、図21の「中間順序」において、点線で示した4つのデータから構成される各データ組において、矢印で示した各データ組の内部の並べ替えを行った後の順序である。
すなわち、図21の「中間順序」において、
{0, 1, 8, 9}から構成されるデータ組における1と8との並べ替え、
{2, 3, 10, 11}から構成されるデータ組における3と10との並べ替え、
{4, 5, 12, 13}から構成されるデータ組における5と12との並べ替え、
{6, 7, 14, 15}から構成されるデータ組における7と14との並べ替え、
{16, 17, 24, 25}から構成されるデータ組における17と24との並べ替え、
{18, 19, 26, 27}から構成されるデータ組における19と26との並べ替え、
{20, 21, 28, 29}から構成されるデータ組における21と28との並べ替え、
{22, 23, 30, 31}から構成されるデータ組における23と30との並べ替え、
{32, 33, 40, 41}から構成されるデータ組における33と40との並べ替え、
{34, 35, 42, 43}から構成されるデータ組における35と42との並べ替え、
{36, 37, 44, 45}から構成されるデータ組における37と44との並べ替え、
{38, 39, 46, 47}から構成されるデータ組における39と46との並べ替え、
{48, 49, 56, 57}から構成されるデータ組における49と56との並べ替え、
{50, 51, 58, 59}から構成されるデータ組における51と58との並べ替え、
{52, 53, 60, 61}から構成されるデータ組における53と60との並べ替え、
{54, 55, 62, 63}から構成されるデータ組における55と62との並べ替え、
をそれぞれ行うと、図16に示されている「ビットリバース順序」になる。
{0, 1, 8, 9}から構成されるデータ組における1と8との並べ替え、
{2, 3, 10, 11}から構成されるデータ組における3と10との並べ替え、
{4, 5, 12, 13}から構成されるデータ組における5と12との並べ替え、
{6, 7, 14, 15}から構成されるデータ組における7と14との並べ替え、
{16, 17, 24, 25}から構成されるデータ組における17と24との並べ替え、
{18, 19, 26, 27}から構成されるデータ組における19と26との並べ替え、
{20, 21, 28, 29}から構成されるデータ組における21と28との並べ替え、
{22, 23, 30, 31}から構成されるデータ組における23と30との並べ替え、
{32, 33, 40, 41}から構成されるデータ組における33と40との並べ替え、
{34, 35, 42, 43}から構成されるデータ組における35と42との並べ替え、
{36, 37, 44, 45}から構成されるデータ組における37と44との並べ替え、
{38, 39, 46, 47}から構成されるデータ組における39と46との並べ替え、
{48, 49, 56, 57}から構成されるデータ組における49と56との並べ替え、
{50, 51, 58, 59}から構成されるデータ組における51と58との並べ替え、
{52, 53, 60, 61}から構成されるデータ組における53と60との並べ替え、
{54, 55, 62, 63}から構成されるデータ組における55と62との並べ替え、
をそれぞれ行うと、図16に示されている「ビットリバース順序」になる。
図19を参照すると、データ並べ替え部200において、第1のデータ並べ替え部(第1のデータ並べ替え手段)201は、第1のデータ振り分け部(第1のデータ振り分け手段)202と、4つのRAM回路210a、210b、210c、210dと、第2のデータ振り分け部(第2のデータ振り分け手段)203とを備えている。
第1のデータ振り分け部202は、8つの入力in0~in7から8つのデータを同時に入力して、データの振り分け処理を行い、8つの出力205a~205hへ出力する。
RAM回路210aは、第1のデータ振り分け部202が205a及び205bに出力した2つのデータを組みにして記憶し、206a及び206bに再び2つのデータとして出力する。
同様に、RAM回路210bは、第1のデータ振り分け部202が205c及び205dに出力した2つのデータを組みにして記憶し、206c及び206dに再び2つのデータとして出力する。
RAM回路210cは、第1のデータ振り分け部202が205e及び205fに出力した2つのデータを組みにして記憶し、206e及び206fに再び2つのデータとして出力する。
RAM回路210dは、第1のデータ振り分け部202が205g及び205hに出力した2つのデータを組みにして記憶し、206g及び206hに再び2つのデータとして出力する。
第2のデータ振り分け部203は、8つの入力206a~206hから8つのデータを同時に入力して、データの振り分け処理を行い、8つの出力207a~207hへ出力する。
第2のデータ並べ替え部(第2のデータ並べ替え手段)204は、4つのデータ組内並べ替え部220a~220dから構成される。
データ組内並べ替え部220aは、2つの入力207a、207bを入力して、4つのデータから構成されるデータ組の内部で並べ替え処理を行い、出力out0、out1に出力する。
同様に、データ組内並べ替え部220bは、2つの入力207c、207dを入力して、4つのデータから構成されるデータ組の内部で並べ替え処理を行い、出力out2、out3に出力する。
データ組内並べ替え部220cは、2つの入力207e、207fを入力して、4つのデータから構成されるデータ組の内部で並べ替え処理を行い、出力out4、out5に出力する。
データ組内並べ替え部220dは、2つの入力207g、207hを入力して、4つのデータから構成されるデータ組の内部で並べ替え処理を行い、出力out6、out7に出力する。なお、図19のデータ並べ替え部200が、図18の第2のデータ並べ替え処理部260のデータ並べ替え部200を構成する場合、図19の第2のデータ並べ替え部(第2のデータ並べ替え手段)204の出力out0~out7は、図18の第2のデータ並べ替え処理部260の出力out0~out7に対応する。図19のデータ並べ替え部200が、図17のデータ並べ替え処理部250のデータ並べ替え部200を構成する場合、図19の第2のデータ並べ替え部(第2のデータ並べ替え手段)204の出力out0~out7は、図17の変換回路232(変換回路234a~234h)のそれぞれの入力に対応する。
次に、データ並べ替え部200の具体的な動作を説明する。図22は、データ並べ替え部200の動作を示すタイムチャートである。図22の横軸は時間(サイクル番号で表す)であり、各行は、図19の各部のデータ線(入力、出力)のデータを表している。図22において、サイクル(列)とデータ線(行)の配列の要素の数字:0~63は、データx(0)・・・、x(63)(例えば図15のデータ組P1、・・・、P8の各データ)を表している。
データ並べ替え部200は、t0~t7の8サイクルにおいて8並列で、0~63の64個のデータを逐次順序で入力し、t8~t15の8サイクルにおいて8並列で、0~63の64個のデータをビットリバース順序で出力する。
まず、第1のデータ並べ替え部(第1のデータ並べ替え手段)201の動作の詳細を説明する。第1のデータ並べ替え部201は、t0~t7の8サイクルにおいて8並列で、0~63の64個のデータを逐次順序で入力し、t8~t15の8サイクルにおいて8並列で、0~63の64個のデータを中間順序で出力する。
第1のデータ振り分け部202は、以下の動作を行う。なお、以下では、動作主体である第1のデータ振り分け部202は省略される。
サイクルt0及びt1において、
in0から入力したデータを205aに出力し、
in1から入力したデータを205bに出力し、
in2から入力したデータを205cに出力し、
in3から入力したデータを205dに出力し、
in4から入力したデータを205eに出力し、
in5から入力したデータを205fに出力し、
in6から入力したデータを205gに出力し、
in7から入力したデータを205hに出力する。
in0から入力したデータを205aに出力し、
in1から入力したデータを205bに出力し、
in2から入力したデータを205cに出力し、
in3から入力したデータを205dに出力し、
in4から入力したデータを205eに出力し、
in5から入力したデータを205fに出力し、
in6から入力したデータを205gに出力し、
in7から入力したデータを205hに出力する。
サイクルt2及びt3において、
in0から入力したデータを205cに出力し、
in1から入力したデータを205dに出力し、
in2から入力したデータを205eに出力し、
in3から入力したデータを205fに出力し、
in4から入力したデータを205gに出力し、
in5から入力したデータを205hに出力し、
in6から入力したデータを205aに出力し、
in7から入力したデータを205bに出力する。
in0から入力したデータを205cに出力し、
in1から入力したデータを205dに出力し、
in2から入力したデータを205eに出力し、
in3から入力したデータを205fに出力し、
in4から入力したデータを205gに出力し、
in5から入力したデータを205hに出力し、
in6から入力したデータを205aに出力し、
in7から入力したデータを205bに出力する。
サイクルt4及びt5において、
in0から入力したデータを205eに出力し、
in1から入力したデータを205fに出力し、
in2から入力したデータを205gに出力し、
in3から入力したデータを205hに出力し、
in4から入力したデータを205aに出力し、
in5から入力したデータを205bに出力し、
in6から入力したデータを205cに出力し、
in7から入力したデータを205dに出力する。
in0から入力したデータを205eに出力し、
in1から入力したデータを205fに出力し、
in2から入力したデータを205gに出力し、
in3から入力したデータを205hに出力し、
in4から入力したデータを205aに出力し、
in5から入力したデータを205bに出力し、
in6から入力したデータを205cに出力し、
in7から入力したデータを205dに出力する。
サイクルt6及びt7において、
in0から入力したデータを205gに出力し、
in1から入力したデータを205hに出力し、
in2から入力したデータを205aに出力し、
in3から入力したデータを205bに出力し、
in4から入力したデータを205cに出力し、
in5から入力したデータを205dに出力し、
in6から入力したデータを205eに出力し、
in7から入力したデータを205fに出力する。
in0から入力したデータを205gに出力し、
in1から入力したデータを205hに出力し、
in2から入力したデータを205aに出力し、
in3から入力したデータを205bに出力し、
in4から入力したデータを205cに出力し、
in5から入力したデータを205dに出力し、
in6から入力したデータを205eに出力し、
in7から入力したデータを205fに出力する。
すわなち、第1のデータ振り分け部202は、サイクルt0からt7において以下の動作を行う。
(1)サイクルt0において、入力in0~in7から0~7の8データをそれぞれ入力し、出力205a~205hに0~7の8データをそれぞれ出力する。
(2)サイクルt1において、入力in0~in7から8~15の8データをそれぞれ入力し、出力205a~205hに8~15の8データをそれぞれ出力する。
(3)サイクルt2において、入力in0~in7から16~23の8データをそれぞれ入力し、出力205a~205hに23、24、及び16~21の8データをそれぞれ出力する。
(4)サイクルt3において、入力in0~in7から24~31の8データをそれぞれ入力し、出力205a~205hに30、31、及び24~29の8データをそれぞれ出力する。
(5)サイクルt4において、入力in0~in7から32~39の8データをそれぞれ入力し、出力205a~205hに36~39、及び32~35の8データをそれぞれ出力する。
(6)サイクルt5において、入力in0~in7から40~47の8データをそれぞれ入力し、出力205a~205hに44~47、及び40~43の8データをそれぞれ出力する。
(7)サイクルt6において、入力in0~in7から48~55の8データをそれぞれ入力し、出力205a~205hに50~55、及び48、49の8データをそれぞれ出力する。
(8)サイクルt7において、入力in0~in7から56~63の8データをそれぞれ入力し、出力205a~205hに58~63、及び56、57の8データをそれぞれ出力する。
なお、上記(1)~(8)において、0~7、8~15、16~23、24~31、32~39、40~47、48~55、56~63の各8データは、例えば図15のデータ組P1を構成するx(0)~x(7)、データ組P2を構成するx(8)~x(15)、データ組P3を構成するx(16)~x(23)、データ組P4を構成するx(24)~x(31)、データ組P5を構成するx(32)~x(39)、データ組P6を構成するx(40)~x(47)、データ組P7を構成するx(48)~x(55)、データ組P8を構成するx(56)~x(63)に対応している。すなわち、データの数字nはx(n)の添え字nを表している。以下、データに関して、同様の表記が用いられる。
以上説明したように、第1のデータ振り分け部202は、並列して同時に入力する8つのデータに対してローテート(rotate)処理して出力するものであり、例えばシフト回路で容易に実現することができる。例えばin0~in7からの8データを並列に記憶保持するレジスタにおいて、例えばサイクルt2及びt3では、2つのデータ分、右ローテートすることで、in6、in7、in0~in5のデータをこの順に並べた8データが得られる。サイクルt4及びt5では、例えば4つのデータ分、左又は右にローテートすることで、in4~in7、in0~in3のデータをこの順に並べた8データが得られる。サイクルt6及びt7では、例えば2つのデータ分、左ローテートすることで、in2~in7、in0~in1のデータをこの順に並べた8データが得られる。並列8データは、それぞれ、出力205a~205hに出力される。
次に、RAM回路210aは、以下の動作を行う。なお、第1のデータ振り分け部202の出力205a、205bは、RAM回路210aの入力にそれぞれ接続されるため、RAM回路210aに関する説明では、入力205a、205bという。また、動作主体であるRAM回路210aは省略される。RAM回路210b~210dの入力についても同様とする。
(1)サイクルt0において入力205a、205bから入力したデータ0,1を、サイクルt8において出力206a、206bに出力する。
(2)サイクルt1において入力205a、205bから入力したデータ8,9を、サイクルt9において出力206a、206bに出力する。
(3)サイクルt2において入力205a、205bから入力したデータ22,23を、サイクルt14において出力206a、206bに出力する。
(4)サイクルt3において入力205a、205bから入力したデータ30,31を、サイクルt15において出力206a、206bに出力する。
(5)サイクルt4において入力205a、205bから入力したデータ36,37を、サイクルt12において出力206a、206bに出力する。
(6)サイクルt5において入力205a、205bから入力したデータ44,45を、サイクルt13において出力206a、206bに出力する。
(7)サイクルt6において入力205a、205bから入力したデータ50,51を、サイクルt10において出力206a、206bに出力する。
(8)サイクルt7において入力205a、205bから入力したデータ58,59を、サイクルt11において出力206a、206bに出力する。
同様に、RAM回路210bは、以下の動作を行う。
(1)サイクルt0において入力205c、205dから入力した2,3の2つのデータを、サイクルt10において出力206c、206dに出力する。
(2)サイクルt1において入力205c、205dから入力した10,11の2つのデータを、サイクルt11において出力206c、206dに出力する。
(3)サイクルt2において入力205c、205dから入力した16,17の2つのデータを、サイクルt8において出力206c、206dに出力する。
(4)サイクルt3において入力205c、205dから入力した24,25の2つのデータを、サイクルt9において出力206c、206dに出力する。
(5)サイクルt4において入力205c、205dから入力した38,39の2つのデータを、サイクルt14において出力206c、206dに出力する。
(6)サイクルt5において入力205c、205dから入力した46,47の2つのデータを、サイクルt15において出力206c、206dに出力する。
(7)サイクルt6において入力205c、205dから入力した52,53の2つのデータを、サイクルt12において出力206c、206dに出力する。
(8)サイクルt7において入力205c、205dから入力した60,61の2つのデータを、サイクルt13において出力206c、206dに出力する。
同様に、RAM回路210cは、以下の動作を行う。
(1)サイクルt0において入力205e、205fから入力した4,5の2つのデータを、サイクルt12において出力206e、206fに出力する。
(2)サイクルt1において入力205e、205fから入力した12,13の2つのデータを、サイクルt13において出力206e、206fに出力する。
(3)サイクルt2において入力205e、205fから入力した18,19の2つのデータを、サイクルt10において出力206e、206fに出力する。
(4)サイクルt3において入力205e、205fから入力した26,27の2つのデータを、サイクルt11において出力206e、206fに出力する。
(5)サイクルt4において入力205e、205fから入力した32,33の2つのデータを、サイクルt8において出力206e、206fに出力する。
(6)サイクルt5において入力205e、205fから入力した40,41の2つのデータを、サイクルt9において出力206e、206fに出力する。
(7)サイクルt6において入力205e、205fから入力した54,55の2つのデータを、サイクルt14において出力206e、206fに出力する。
(8)サイクルt7において入力205e、205fから入力した62,63の2つのデータを、サイクルt15において出力206e、206fに出力する。
同様に、RAM回路210dは、以下の動作を行う。
(1)サイクルt0において入力205g、205hから入力した6,7の2つのデータを、サイクルt14において出力206g、206hに出力する。
(2)サイクルt1において入力205g、205hから入力した14,15の2つのデータを、サイクルt15において出力206g、206hに出力する。
(3)サイクルt2において入力205g、205hから入力した20,21の2つのデータを、サイクルt12において出力206g、206hに出力する。
(4)サイクルt3において入力205g、205hから入力した28,29の2つのデータを、サイクルt13において出力206g、206hに出力する。
(5)サイクルt4において入力205g、205hから入力した34,35の2つのデータを、サイクルt10において出力206g、206hに出力する。
(6)サイクルt5において入力205g、205hから入力した42,43の2つのデータを、サイクルt11において出力206g、206hに出力する。
(7)サイクルt6において入力205g、205hから入力した48,49の2つのデータを、サイクルt8において出力206g、206hに出力する。
(8)サイクルt7において入力205g、205hから入力した56,57の2つのデータを、サイクルt9において出力206g、206hに出力する。
次に、第2のデータ振り分け部203は、以下の動作を行う。なお、RAM回路210a~210dの出力206a~206hは第2のデータ振り分け部203の入力に接続されるため、第2のデータ振り分け部203の説明では、入力206a~206hという。また、動作主体である第2のデータ振り分け部203は省略される。
サイクルt8及びt9において、
206aから入力したデータを207aに出力し、
206bから入力したデータを207bに出力し、
206cから入力したデータを207cに出力し、
206dから入力したデータを207dに出力し、
206eから入力したデータを207eに出力し、
206fから入力したデータを207fに出力し、
206gから入力したデータを207gに出力し、
206hから入力したデータを207hに出力する。
206aから入力したデータを207aに出力し、
206bから入力したデータを207bに出力し、
206cから入力したデータを207cに出力し、
206dから入力したデータを207dに出力し、
206eから入力したデータを207eに出力し、
206fから入力したデータを207fに出力し、
206gから入力したデータを207gに出力し、
206hから入力したデータを207hに出力する。
サイクルt10及びt11において、
206aから入力したデータを207gに出力し、
206bから入力したデータを207hに出力し、
206cから入力したデータを207aに出力し、
206dから入力したデータを207bに出力し、
206eから入力したデータを207cに出力し、
206fから入力したデータを207dに出力し、
206gから入力したデータを207eに出力し、
206hから入力したデータを207fに出力する。
206aから入力したデータを207gに出力し、
206bから入力したデータを207hに出力し、
206cから入力したデータを207aに出力し、
206dから入力したデータを207bに出力し、
206eから入力したデータを207cに出力し、
206fから入力したデータを207dに出力し、
206gから入力したデータを207eに出力し、
206hから入力したデータを207fに出力する。
サイクルt12及びt13において、
206aから入力したデータを207eに出力し、
206bから入力したデータを207fに出力し、
206cから入力したデータを207gに出力し、
206dから入力したデータを207hに出力し、
206eから入力したデータを207aに出力し、
206fから入力したデータを207bに出力し、
206gから入力したデータを207cに出力し、
206hから入力したデータを207dに出力する。
206aから入力したデータを207eに出力し、
206bから入力したデータを207fに出力し、
206cから入力したデータを207gに出力し、
206dから入力したデータを207hに出力し、
206eから入力したデータを207aに出力し、
206fから入力したデータを207bに出力し、
206gから入力したデータを207cに出力し、
206hから入力したデータを207dに出力する。
サイクルt14及びt15において、
206aから入力したデータを207cに出力し、
206bから入力したデータを207dに出力し、
206cから入力したデータを207eに出力し、
206dから入力したデータを207fに出力し、
206eから入力したデータを207gに出力し、
206fから入力したデータを207hに出力し、
206gから入力したデータを207aに出力し、
206hから入力したデータを207bに出力する。
206aから入力したデータを207cに出力し、
206bから入力したデータを207dに出力し、
206cから入力したデータを207eに出力し、
206dから入力したデータを207fに出力し、
206eから入力したデータを207gに出力し、
206fから入力したデータを207hに出力し、
206gから入力したデータを207aに出力し、
206hから入力したデータを207bに出力する。
すわなち、第2のデータ振り分け部203は、以下の動作を行う。
(1)サイクルt8において、入力206a~206hから0,1,16、17,32,33,48,49の8データをそれぞれ入力し、出力207a~207hに0,1,16、17,32,33,48,49の8データをそれぞれ出力する。
(2)サイクルt9において、入力206a~206hから8,9,24,25,40,41,56,57の8データをそれぞれ入力し、出力207a~207hに8,9,24,25,40,41,56,57の8データをそれぞれ出力する。
(3)サイクルt10において、入力206a~206hから50,51,2,3,18,19,34,35の8データをそれぞれ入力し、出力207a~207hに2,3,18,19,34,35,50,51の8データをそれぞれ出力する。
(4)サイクルt11において、入力206a~206hから58,59,10,11,26,27,42,43の8データをそれぞれ入力し、出力207a~207hに10,11,26,27,42,43,58,59の8データをそれぞれ出力する。
(5)サイクルt12において、入力206a~206hから36,37,52,53,4,5,20,21の8データをそれぞれ入力し、出力207a~207hに4,5,20,21,36,37,52,53の8データをそれぞれ出力する。
(6)サイクルt13において、入力206a~206hから44,45,60,61,12,13,28,29の8データをそれぞれ入力し、出力207a~207hに12,13,28,29,44,45,60,61の8データをそれぞれ出力する。
(7)サイクルt14において、入力206a~206hから22,23,38,39,54,55,6,7の8データをそれぞれ入力し、出力207a~207hに6,7,22,23,38,39,54,55の8データをそれぞれ出力する。
(8)サイクルt15において、入力206a~206hから30,31,46,47,62,63,14,15の8データをそれぞれ入力し、出力207a~207hに14,15,30,31,46,47,62,63の8データをそれぞれ出力する。
第1のデータ振り分け部202と同様に、第2のデータ振り分け部203も、並列して同時に入力する8つのデータに対してローテート処理して出力するものであり、例えばシフト回路で容易に実現することができる。
次に、図22を参照して、第2のデータ並べ替え部(第2のデータ並べ替え手段)204の動作の詳細を説明する。第2のデータ並べ替え部204は、t8~t15の8サイクルにおいて8並列で、0~63の64個のデータを中間順序で入力し、t9~t16の8サイクルにおいて8並列で、0~63の64個のデータをビットリバース順序で出力する。
データ組内並べ替え部220aは、以下のように動作する。なお、動作主体であるデータ組内並べ替え部220aは省略される。
入力207a、207bから、
サイクルt8において、0,1の2つのデータを入力し、
サイクルt9において、8,9の2つのデータを入力し、
出力out0、out1に、
サイクルt9において、0,8の2つのデータを出力し、
サイクルt10において、1,9の2つのデータを出力する。
サイクルt8において、0,1の2つのデータを入力し、
サイクルt9において、8,9の2つのデータを入力し、
出力out0、out1に、
サイクルt9において、0,8の2つのデータを出力し、
サイクルt10において、1,9の2つのデータを出力する。
同様に、入力207a、207bから、
サイクルt10において、2,3の2つのデータを入力し、
サイクルt11において、10,11の2つのデータを入力し、
出力out0、out1に、
サイクルt11において、2,10の2つのデータを出力し、
サイクルt12において、3,11の2つのデータを出力する。
サイクルt10において、2,3の2つのデータを入力し、
サイクルt11において、10,11の2つのデータを入力し、
出力out0、out1に、
サイクルt11において、2,10の2つのデータを出力し、
サイクルt12において、3,11の2つのデータを出力する。
入力207a、207bから、
サイクルt12において、4,5の2つのデータを入力し、
サイクルt13において、12,13の2つのデータを入力し、
出力out0、out1に、
サイクルt13において、4,12の2つのデータを出力し、
サイクルt14において、5,13の2つのデータを出力する。
サイクルt12において、4,5の2つのデータを入力し、
サイクルt13において、12,13の2つのデータを入力し、
出力out0、out1に、
サイクルt13において、4,12の2つのデータを出力し、
サイクルt14において、5,13の2つのデータを出力する。
入力207a、207bから、
サイクルt14において、6,7の2つのデータを入力し、
サイクルt15において、14,15の2つのデータを入力し、
出力out0、out1に、
サイクルt15において、6,14の2つのデータを出力し、
サイクルt16において、7,15の2つのデータを出力する。
サイクルt14において、6,7の2つのデータを入力し、
サイクルt15において、14,15の2つのデータを入力し、
出力out0、out1に、
サイクルt15において、6,14の2つのデータを出力し、
サイクルt16において、7,15の2つのデータを出力する。
データ組内並べ替え部220bは、以下のように動作する。なお、動作主体であるデータ組内並べ替え部220bは省略される。
入力207c、207dから、
サイクルt8において、16,17の2つのデータを入力し、
サイクルt9において、24,25の2つのデータを入力し、
出力out2、out3に、
サイクルt9において、16,24の2つのデータを出力し、
サイクルt10において、17,25の2つのデータを出力する。
サイクルt8において、16,17の2つのデータを入力し、
サイクルt9において、24,25の2つのデータを入力し、
出力out2、out3に、
サイクルt9において、16,24の2つのデータを出力し、
サイクルt10において、17,25の2つのデータを出力する。
同様に、
入力207c、207dから、
サイクルt10において、18,19の2つのデータを入力し、
サイクルt11において、26,27の2つのデータを入力し、
出力out2、out3に、
サイクルt11において、18,26の2つのデータを出力し、
サイクルt12において、19,27の2つのデータを出力する。
入力207c、207dから、
サイクルt10において、18,19の2つのデータを入力し、
サイクルt11において、26,27の2つのデータを入力し、
出力out2、out3に、
サイクルt11において、18,26の2つのデータを出力し、
サイクルt12において、19,27の2つのデータを出力する。
入力207c、207dから、
サイクルt12において、20,21の2つのデータを入力し、
サイクルt13において、28,29の2つのデータを入力し、
出力out2、out3に、
サイクルt13において、20,28の2つのデータを出力し、
サイクルt14において、21,29の2つのデータを出力する。
サイクルt12において、20,21の2つのデータを入力し、
サイクルt13において、28,29の2つのデータを入力し、
出力out2、out3に、
サイクルt13において、20,28の2つのデータを出力し、
サイクルt14において、21,29の2つのデータを出力する。
入力207c、207dから、
サイクルt14において、22,23の2つのデータを入力し、
サイクルt15において、30,31の2つのデータを入力し、
出力out2、out3に、
サイクルt15において、22,30の2つのデータを出力し、
サイクルt16において、23,31の2つのデータを出力する。
サイクルt14において、22,23の2つのデータを入力し、
サイクルt15において、30,31の2つのデータを入力し、
出力out2、out3に、
サイクルt15において、22,30の2つのデータを出力し、
サイクルt16において、23,31の2つのデータを出力する。
データ組内並べ替え部220cは、以下のように動作する。なお、動作主体であるデータ組内並べ替え部220cは省略される。
入力207e、207fから、
サイクルt8において、32,33の2つのデータを入力し、
サイクルt9において、40,41の2つのデータを入力し、
出力out4、out5に、
サイクルt9において、32,40の2つのデータを出力し、
サイクルt10において、33,41の2つのデータを出力する。
サイクルt8において、32,33の2つのデータを入力し、
サイクルt9において、40,41の2つのデータを入力し、
出力out4、out5に、
サイクルt9において、32,40の2つのデータを出力し、
サイクルt10において、33,41の2つのデータを出力する。
同様に、
入力207e、207fから、
サイクルt10において、34,35の2つのデータを入力し、
サイクルt11において、42,43の2つのデータを入力し、
出力out4、out5に、
サイクルt11において、34,42の2つのデータを出力し、
サイクルt12において、35,43の2つのデータを出力する。
入力207e、207fから、
サイクルt10において、34,35の2つのデータを入力し、
サイクルt11において、42,43の2つのデータを入力し、
出力out4、out5に、
サイクルt11において、34,42の2つのデータを出力し、
サイクルt12において、35,43の2つのデータを出力する。
入力207e、207fから、
サイクルt12において、36,37の2つのデータを入力し、
サイクルt13において、44,45の2つのデータを入力し、
出力out4、out5に、
サイクルt13において、36,44の2つのデータを出力し、
サイクルt14において、37,45の2つのデータを出力する。
サイクルt12において、36,37の2つのデータを入力し、
サイクルt13において、44,45の2つのデータを入力し、
出力out4、out5に、
サイクルt13において、36,44の2つのデータを出力し、
サイクルt14において、37,45の2つのデータを出力する。
入力207e、207fから、
サイクルt14において、38,39の2つのデータを入力し、
サイクルt15において、46,47の2つのデータを入力し、
出力out4、out5に、
サイクルt15において、38,46の2つのデータを出力し、
サイクルt16において、39,47の2つのデータを出力する。
サイクルt14において、38,39の2つのデータを入力し、
サイクルt15において、46,47の2つのデータを入力し、
出力out4、out5に、
サイクルt15において、38,46の2つのデータを出力し、
サイクルt16において、39,47の2つのデータを出力する。
データ組内並べ替え部220dは、以下のように動作する。なお、動作主体であるデータ組内並べ替え部220dは省略される。
入力207g、207hから、
サイクルt8において、48,49の2つのデータを入力し、
サイクルt9において、56,57の2つのデータを入力し、
出力out6、out7に、
サイクルt9において、48,56の2つのデータを出力し、
サイクルt10において、49,57の2つのデータを出力する。
サイクルt8において、48,49の2つのデータを入力し、
サイクルt9において、56,57の2つのデータを入力し、
出力out6、out7に、
サイクルt9において、48,56の2つのデータを出力し、
サイクルt10において、49,57の2つのデータを出力する。
同様に、入力207g、207hから、
サイクルt10において、50,51の2つのデータを入力し、
サイクルt11において、58,59の2つのデータを入力し、
出力out6、out7に、
サイクルt11において、50,58の2つのデータを出力し、
サイクルt12において、51,59の2つのデータを出力する。
サイクルt10において、50,51の2つのデータを入力し、
サイクルt11において、58,59の2つのデータを入力し、
出力out6、out7に、
サイクルt11において、50,58の2つのデータを出力し、
サイクルt12において、51,59の2つのデータを出力する。
入力207g、207hから、
サイクルt12において、52,53の2つのデータを入力し、
サイクルt13において、60,61の2つのデータを入力し、
出力out6、out7に、
サイクルt13において、52,60の2つのデータを出力し、
サイクルt14において、53,61の2つのデータを出力する。
サイクルt12において、52,53の2つのデータを入力し、
サイクルt13において、60,61の2つのデータを入力し、
出力out6、out7に、
サイクルt13において、52,60の2つのデータを出力し、
サイクルt14において、53,61の2つのデータを出力する。
入力207g、207hから、
サイクルt14において、54,55の2つのデータを入力し、
サイクルt15において、62,63の2つのデータを入力し、
出力out6、out7に、
サイクルt15において、54,62の2つのデータを出力し、
サイクルt16において、55,63の2つのデータを出力する。
サイクルt14において、54,55の2つのデータを入力し、
サイクルt15において、62,63の2つのデータを入力し、
出力out6、out7に、
サイクルt15において、54,62の2つのデータを出力し、
サイクルt16において、55,63の2つのデータを出力する。
以上説明したように、第1のデータ並べ替え部201が、逐次順序から中間順序への並べ替えを行い、第2のデータ並べ替え部204が、中間順序からビットリバース順序への並べ替えを行うことで、データ並べ替え部200は、逐次順序からビットリバース順序への並べ替えを実現する。
第2のデータ並べ替え部204を構成するデータ組内並べ替え部220a~220dは、例えば図23に示すデータ組内並べ替え部220で実現することができる。図23を参照すると、データ組内並べ替え部220は、セレクタ回路221、224、225、及び、フリップフロップ222、223から構成される。
図24は、データ組内並べ替え部220の動作を示すタイムチャートである。図24において、データ組内並べ替え部220は、サイクルt0、t1において、入力in0、in1から、4つのデータ0,1,8,9をデータ組として入力して、データ組内の並べ替え処理を行い、サイクルt1、t2において、出力out0、out1から4つのデータとして、0,8,1,9を出力する。具体的には、データ組内並べ替え部220は、サイクルt0において、入力in0、in1から0,1を入力し、セレクタ221は入力in0から入力した0を選択する。また、サイクルt0において、フリップフロップ222はセレクタ221が選択した0を記憶し、フリップフロップ223は入力in1から入力した1を記憶する。
サイクルt1において、入力in0、in1から8,9を入力し、セレクタ221は入力in1から入力した9を選択する。また、サイクルt1において、フリップフロップ222は記憶した0を出力するとともに入力in1から入力した9を記憶し、フリップフロップ223は記憶した1を出力する。また、サイクルt1において、セレクタ224は、フリップフロップ222が出力する0を選択して、出力out0に出力し、セレクタ225は、入力in0から入力した8を選択して、出力out1に出力する。
サイクルt2において、フリップフロップ222は記憶した9を出力し、フリップフロップ223は記憶した1を出力する。また、サイクルt1において、セレクタ224は、フリップフロップ223が出力する1を選択して、出力out0に出力し、セレクタ225は、フリップフロップ222が出力する9を選択して、出力out1に出力する。
以上、逐次順序からビットリバース順序への並べ替えを例に、データ並べ替え処理を説明したが、ビットリバース順序から逐次順序への並べ替えについても同様に、1ステップ目の並べ替えとして、ビットリバース順序から中間順序に並べ替えを行い、2ステップ目の並べ替えとして、中間順序から逐次順序に中部替えを行う、2段階のステップで実現することができる。
図25は、ひねり乗算処理部270の構成例を示す図である。ひねり乗算処理部270は、符号絶対値--表現で表現された複素信号:
A=B+iC、及び、
W=X+iY
(ただし、i2=-1)を入力して、それらの複素乗算の結果である
T=AxW=(BX-CY)+i(CX+BY)
を演算して出力する。
A=B+iC、及び、
W=X+iY
(ただし、i2=-1)を入力して、それらの複素乗算の結果である
T=AxW=(BX-CY)+i(CX+BY)
を演算して出力する。
ひねり乗算処理部270は、補正回路20a~20d、乗算回路271a~271d、変換回路10a~10d、加算回路272a~272bを備えている。
補正回路20a~20dは、例えば図8に示した補正回路20により実現することができる。
補正回路20aは、入力する複素信号A=B+iCの実数成分であるBに対して補正処理を行う。
同様に、補正回路20bは、入力する複素信号A=B+iCの虚数成分であるiCに対して補正処理を行う。
補正回路20cは、入力する複素信号W=X+iYの実数成分であるXに対して補正処理を行う。
補正回路20dは、入力する複素信号W=X+iYの虚数成分であるiYに対して補正処理を行う。
乗算回路271a~271dは、例えば図9に示した演算回路41において、符号なし演算回路43で符号なし乗算処理を行うことで実現することができる。
乗算回路271aは、符号絶対値--表現で表現された入力Aの実数成分Bと、入力Wの実数成分Xとの乗算処理を行い、その結果であるBXを出力する。
乗算回路271bは、符号絶対値--表現で表現された入力Aの虚数成分iCと入力Wの虚数成分iYとの乗算処理を行い、その結果である-CYを出力する。
乗算回路271cは、符号絶対値--表現で表現された入力Aの虚数成分iCと入力Wの実数成分Xとの乗算処理を行い、その結果であるiCXを出力する。
乗算回路271dは、符号絶対値--表現で表現された入力Aの実数成分Bと入力Wの虚数成分iYとの乗算処理を行い、その結果であるiBYを出力する。
変換回路10a~10dは、例えば図4に示す変換回路10で実現することができる。
変換回路10aは、乗算回路271aが出力した符号絶対値--表現で表現された信号BXを2の補数表現へ変換して出力する。
変換回路10bは、乗算回路271bが出力した符号絶対値--表現で表現された信号-CYを2の補数表現へ変換して出力する。
変換回路10cは、乗算回路271cが出力した符号絶対値--表現で表現された信号iCXを2の補数表現へ変換して出力する。
変換回路10dは、乗算回路271dが出力した符号絶対値--表現で表現された信号iBYを2の補数表現へ変換して出力する。
加算回路272a、272bは、2の補数表現で表現された入力に対して加算処理を行う加算回路で実現することができる。
加算回路272aは、変換回路10aが出力する2の補数表現で表現された信号BXと、変換回路10bが出力する2の補数表現で表現された信号-CYとの加算処理を行い、その結果であるBX-CYを出力する。
加算回路272bは、変換回路10cが出力する2の補数表現で表現された信号iCXと、変換回路10dが出力する2の補数表現で表現された信号iBYとの加算処理を行い、その結果であるi(CX+BY)を出力する。
これらの加算結果から、ひねり乗算処理部270は、その処理結果であるT=AxW=(BX-CY)+i(CX+BY)を出力する。
(第2の例示的な実施形態の効果)
上記したように、第2の例示的な実施形態では、FFT装置400は、バタフライ演算において必要なデータの並べ替え処理である、「逐次順序」から、「ビットリバース順序」への並べ替えや、「ビットリバース順序」から「逐次順序」への並べ替えを、符号絶対値--表現に変換した後、「中間順序」を介した2段階のステップで実現する。そのため、2の補数表現のまま並べ替え処理を行うのに対して、第1のデータ並べ替え部201や第2のデータ並べ替え部204を構成するRAM回路、フリップフロップ回路やセレクタ回路などの回路の動作率を低減することができる。
上記したように、第2の例示的な実施形態では、FFT装置400は、バタフライ演算において必要なデータの並べ替え処理である、「逐次順序」から、「ビットリバース順序」への並べ替えや、「ビットリバース順序」から「逐次順序」への並べ替えを、符号絶対値--表現に変換した後、「中間順序」を介した2段階のステップで実現する。そのため、2の補数表現のまま並べ替え処理を行うのに対して、第1のデータ並べ替え部201や第2のデータ並べ替え部204を構成するRAM回路、フリップフロップ回路やセレクタ回路などの回路の動作率を低減することができる。
また、FFT装置400は、ひねり乗算処理を構成する乗算処理と加算処理のうち、前者の乗算処理を符号絶対値--表現のまま処理する。そのため、2の補数表現で乗算処理を行うのに対して、回路の動作率を低減することができる。
一方、後者の加算処理は、2の補数表現で処理を行うが、乗算回路に比べて加算回路の回路規模は大幅に小さいため、乗算処理を符号絶対値--表現で処理する分だけ、ひねり乗算処理を行うひねり乗算処理部270の回路の動作率を低減することができる。
また、2の補数表現と符号絶対値--表現との変換処理は、ビット反転処理のみで実現することができ、従来の符号絶対値表現が必要とした1加算処理(インクリメント処理)を必要としない。
ビット反転処理はXOR回路のみで実現できるので、他の論理処理回路や演算処理回路と比較して圧倒的に小さい回路規模で実現することができる。
また、符号絶対値--表現の値に対する補正処理により、乗算や除算などの演算処理を符号絶対値--表現のまま演算しても、発生する演算誤差を小さくすることができ、許容される演算誤差に応じて補正対象となるビット数を最適な値に設定することができる。その結果、補正処理に係る回路規模を小さくすることができる。
したがって、第2の例示的な実施形態では、値0の近傍で正と負とで頻繁に変化する信号を処理する場合でも、データの並べ替え処理における回路の動作率を小さくすることができる。このため、データ並べ替え処理部における消費電力を低減することができる。
一方、第2の例示的な実施形態では、バタフライ演算処理はバラフライ演算処理部において、2の補数表現のまま処理される。そのため、それら演算処理に係る回路の動作率は低減されないが、符号絶対値表現を適用した場合のようにデータ表現形式間の変換により回路規模が大きく増大することはない。したがって、データの並べ替え処理やひねり乗算処理に係る消費電力が小さくなる分だけ、FFT装置全体の消費電力を低減することができる。
図30は、上記した第1、第2の例示的な実施形態の装置100、400の処理、機能をプログラムで実現する一形態を模式的に例示する図である。図30を参照すると、プロセッサ装置300は、プロセッサ301と、プロセッサ301で実行されるプログラム(命令群とデータ等)を記憶するプログラム記憶部302と、プロセッサ301によるデータの書き込み読み出しが行われるRAM303(第2の例示的な実施形態の図8のRAM回路210として機能してもよい)と、入力端子INから入力データを受信しプロセッサ301に供給する第1のインタフェース(インタフェース1)304と、プロセッサ301から出力されるデータを受け出力端子OUTから出力する第2のインタフェース(インタフェース2)305を備えている。プロセッサ301は、デジタル信号プロセッサ(Digital Signal Processor)等であってもよい。プログラム記憶部302は、ROM(Read-Only Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory)、あるいは、HDD(Hard Disk Drive)、USB(Universal Serial Bus)メモリ等であってもよい。プログラム記憶部302は、プロセッサ301のファームウェアを記憶する構成であってもよい。RAM303は、プロセッサ301に内蔵される構成としてもよい。第1のインタフェース304は、入力回路(又は受信回路)と入力バッファ(受信バッファ)を備え、第2のインタフェース305は、出力バッファ(送信バッファ)と出力回路(送信回路)を備えた構成としてもよい。第1、第2のインタフェース304、305は、入出力回路(送受信回路(transceiver))を備えた一つのインタフェース回路としてもよい。プロセッサ301がプログラム記憶部302に記憶されたプログラムを実行することで、前記第1、第2の例示的な実施形態と同様の効果を奏することができる。なお、図30は単に説明のために、プロセッサ装置300の各部301~305の構成を例示したが、これらの各部の一部又は全てをプロセッサ301に含める1チップ構成としてもよいことは勿論である。
なお、上記の特許文献1-3、非特許文献1、2の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ乃至選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
上記した実施形態は以下のように付記される(ただし、以下に制限されない)。
(付記1)
データ値が正又は0の場合は、2の補数表現と同一であり、データ値が負の場合は、2の補数表現から符号を示す最上位ビット以外のビットを反転した表現形式である第2の表現形式により表現されたデータに対して記憶処理を行う記憶処理部と、
2の補数表現により表現されたデータ、又は、前記第2の表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対して演算処理を行う演算処理部と、
を備えた、ことを特徴とする信号処理装置。
データ値が正又は0の場合は、2の補数表現と同一であり、データ値が負の場合は、2の補数表現から符号を示す最上位ビット以外のビットを反転した表現形式である第2の表現形式により表現されたデータに対して記憶処理を行う記憶処理部と、
2の補数表現により表現されたデータ、又は、前記第2の表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対して演算処理を行う演算処理部と、
を備えた、ことを特徴とする信号処理装置。
(付記2)
前記補正処理は、前記第2の表現形式により表現されたNビット(Nは正整数)のデータが負の値の場合に、
前記Nビット(ただし、Nは所定の正整数)のデータのうち、最下位ビットからMビット(ただし、MはM≦Nの正整数)に対して値1を加算する処理である、ことを特徴とする付記1に記載の信号処理装置。
前記補正処理は、前記第2の表現形式により表現されたNビット(Nは正整数)のデータが負の値の場合に、
前記Nビット(ただし、Nは所定の正整数)のデータのうち、最下位ビットからMビット(ただし、MはM≦Nの正整数)に対して値1を加算する処理である、ことを特徴とする付記1に記載の信号処理装置。
(付記3)
前記演算処理部は、
処理する演算が乗算又は除算の場合には、
前記第2の表現形式により表現されたデータに前記補正処理を行ったデータのいずれかに対して演算処理を行い、
処理する演算が加算又は減算の場合には、2の補数表現により表現されたデータに対して演算処理を行う、ことを特徴とする付記1又は2に記載の信号処理装置。
前記演算処理部は、
処理する演算が乗算又は除算の場合には、
前記第2の表現形式により表現されたデータに前記補正処理を行ったデータのいずれかに対して演算処理を行い、
処理する演算が加算又は減算の場合には、2の補数表現により表現されたデータに対して演算処理を行う、ことを特徴とする付記1又は2に記載の信号処理装置。
(付記4)
前記記憶処理部は、
2の補数表現で表現されたデータを入力し、前記入力したデータを2の補数表現から前記第2の表現形式へ変換する第1の変換部と、
前記第2の表現形式でのデータの記憶処理及び出力を行う記憶回路と、
前記記憶回路から出力された前記第2の表現形式のデータを入力し、前記入力したデータを2の補数表現へ変換して出力する第2の変換部について、
前記記憶回路を備えた構成と、
前記記憶回路と、前記第1の変換部又は前記第2の変換部の少なくともいずれかを備えた構成
のうちの少なくともいずれかを含む、ことを特徴とする付記1乃至3のいずれかに記載の信号処理装置。
前記記憶処理部は、
2の補数表現で表現されたデータを入力し、前記入力したデータを2の補数表現から前記第2の表現形式へ変換する第1の変換部と、
前記第2の表現形式でのデータの記憶処理及び出力を行う記憶回路と、
前記記憶回路から出力された前記第2の表現形式のデータを入力し、前記入力したデータを2の補数表現へ変換して出力する第2の変換部について、
前記記憶回路を備えた構成と、
前記記憶回路と、前記第1の変換部又は前記第2の変換部の少なくともいずれかを備えた構成
のうちの少なくともいずれかを含む、ことを特徴とする付記1乃至3のいずれかに記載の信号処理装置。
(付記5)
前記演算処理部は、
2の補数表現により表現されたデータを入力し、2の補数表現により表現されたデータの演算処理を行う第1の演算回路と、
2の補数表現により表現されたデータを入力し、前記入力したデータを2の補数表現から前記第2の表現形式へ変換する第1の変換部と、
前記第2の表現形式により表現されたデータに前記補正処理を行う補正回路と、
前記補正回路で補正処理されたデータを入力し、前記補正処理されたデータの演算処理を行う第2の演算回路と、
前記第2の表現形式のデータを入力し、前記入力したデータを2の補数表現へ変換して出力する第2の変換部について、
前記第1の演算回路を備えた構成と、
前記補正回路及び前記第2の演算回路を備えた構成と、
前記補正回路及び前記第2の演算回路に、さらに前記第1の変換部又は前記第2の変換部の少なくともいずれかを備えた構成、
のうちの少なくともいずれかを含む、ことを特徴とする付記1乃至3のいずれかに記載の信号処理装置。
前記演算処理部は、
2の補数表現により表現されたデータを入力し、2の補数表現により表現されたデータの演算処理を行う第1の演算回路と、
2の補数表現により表現されたデータを入力し、前記入力したデータを2の補数表現から前記第2の表現形式へ変換する第1の変換部と、
前記第2の表現形式により表現されたデータに前記補正処理を行う補正回路と、
前記補正回路で補正処理されたデータを入力し、前記補正処理されたデータの演算処理を行う第2の演算回路と、
前記第2の表現形式のデータを入力し、前記入力したデータを2の補数表現へ変換して出力する第2の変換部について、
前記第1の演算回路を備えた構成と、
前記補正回路及び前記第2の演算回路を備えた構成と、
前記補正回路及び前記第2の演算回路に、さらに前記第1の変換部又は前記第2の変換部の少なくともいずれかを備えた構成、
のうちの少なくともいずれかを含む、ことを特徴とする付記1乃至3のいずれかに記載の信号処理装置。
(付記6)
前記第2の演算回路は、
演算対象である前記補正処理した前記第2の表現形式のデータの符号ビットの演算結果を符号ビットとして出力する符号演算回路と、
演算対象である前記補正処理した前記第2の表現形式のデータの前記符号ビット以外の絶対値部分を演算して出力する符号なし演算回路と、ことを特徴とする付記5に記載の信号処理装置。
前記第2の演算回路は、
演算対象である前記補正処理した前記第2の表現形式のデータの符号ビットの演算結果を符号ビットとして出力する符号演算回路と、
演算対象である前記補正処理した前記第2の表現形式のデータの前記符号ビット以外の絶対値部分を演算して出力する符号なし演算回路と、ことを特徴とする付記5に記載の信号処理装置。
(付記7)
前記第1及び第2の変換部は、前記入力したデータの最上位ビットはそのまま出力し、
前記入力したデータの前記最上位ビット以外は、前記最上位ビットとの排他的論理和を行った結果を出力する、ことを特徴とする付記4乃至6のいずれかに記載の信号処理装置。
前記第1及び第2の変換部は、前記入力したデータの最上位ビットはそのまま出力し、
前記入力したデータの前記最上位ビット以外は、前記最上位ビットとの排他的論理和を行った結果を出力する、ことを特徴とする付記4乃至6のいずれかに記載の信号処理装置。
(付記8)
付記1又は2に記載の信号処理装置において、データ表現形式として2の補数表現と、前記第2の表現形式の双方を使用して高速フーリエ変換又は逆高速フーリエ変換を行い、
前記演算処理部が、
バタフライ演算処理を行うバタフライ演算処理部と、
ひねり乗算処理を行うひねり乗算処理部と、
を備え、
前記記憶処理部が、
複数のデータの順序を並べ替えるデータ並べ替え処理部を備え、
前記バタフライ演算処理部は、2の補数表現により表現されたデータに対してバタフライ演算処理を行い、
前記ひねり乗算処理部は、乗算処理については、前記第2の表現形式により表現されたデータに補正処理を行ったデータに対して演算処理を行い、
加算処理については、2の補数表現により表現されたデータに対して演算処理を行い、
前記データ並べ替え処理部は、前記第2の表現形式により表現されたデータに対して記憶処理を行う、ことを特徴とする信号処理装置。
付記1又は2に記載の信号処理装置において、データ表現形式として2の補数表現と、前記第2の表現形式の双方を使用して高速フーリエ変換又は逆高速フーリエ変換を行い、
前記演算処理部が、
バタフライ演算処理を行うバタフライ演算処理部と、
ひねり乗算処理を行うひねり乗算処理部と、
を備え、
前記記憶処理部が、
複数のデータの順序を並べ替えるデータ並べ替え処理部を備え、
前記バタフライ演算処理部は、2の補数表現により表現されたデータに対してバタフライ演算処理を行い、
前記ひねり乗算処理部は、乗算処理については、前記第2の表現形式により表現されたデータに補正処理を行ったデータに対して演算処理を行い、
加算処理については、2の補数表現により表現されたデータに対して演算処理を行い、
前記データ並べ替え処理部は、前記第2の表現形式により表現されたデータに対して記憶処理を行う、ことを特徴とする信号処理装置。
(付記9)
前記データ並べ替え処理部は、
2の補数表現で表現されたデータを入力し前記第2の表現形式へ変換する第1の変換部と、
前記第2の表現形式で表現されたデータを入力し2の補数表現へ変換する第2の変換部と、
を備え、
前記第1の変換部は、入力する2の補数表現で表現されたデータを前記第2の表現形式に変換してデータ並べ替え処理を行い、
前記第2の変換部は、前記第2の表現形式で表現されたデータ並べ替え処理後のデータを2の補数表現に変換して出力する、ことを特徴とする付記8に記載の信号処理装置。
前記データ並べ替え処理部は、
2の補数表現で表現されたデータを入力し前記第2の表現形式へ変換する第1の変換部と、
前記第2の表現形式で表現されたデータを入力し2の補数表現へ変換する第2の変換部と、
を備え、
前記第1の変換部は、入力する2の補数表現で表現されたデータを前記第2の表現形式に変換してデータ並べ替え処理を行い、
前記第2の変換部は、前記第2の表現形式で表現されたデータ並べ替え処理後のデータを2の補数表現に変換して出力する、ことを特徴とする付記8に記載の信号処理装置。
(付記10)
前記第1及び第2の変換部は、前記入力したデータの最上位ビットはそのまま出力し、
前記入力したデータの前記最上位ビット以外は、前記最上位ビットとの排他的論理和を行った結果を出力する、ことを特徴とする付記8又は9に記載の信号処理装置。
前記第1及び第2の変換部は、前記入力したデータの最上位ビットはそのまま出力し、
前記入力したデータの前記最上位ビット以外は、前記最上位ビットとの排他的論理和を行った結果を出力する、ことを特徴とする付記8又は9に記載の信号処理装置。
(付記11)
バタフライ演算処理を行うバタフライ演算処理部と、
ひねり乗算処理を行うひねり乗算処理部と、
複数のデータの順序を並べ替えるデータ並べ替え処理部と、
を備え、高速フーリエ変換(FFT)又は逆高速フーリエ変換(IFFT)を行うFFT装置であって、
データ表現形式として2の補数表現と、2の補数表現と異なる第2の表現形式の双方を使用して演算を行い、
前記第2の表現形式は、非負のデータについては2の補数表現と同一であり、負のデータについては、前記データの2の補数表現から符号を示す最上位ビット以外のビットを反転した表現であり、
前記バタフライ演算処理部は、
2の補数表現により表現されたデータに対して処理を行い、
前記データ並べ替え処理部は、
前記第2の表現形式により表現されたデータに対して記憶処理を行い、
前記ひねり乗算処理部は、
乗算処理については、前記第2の表現形式により表現されたデータに補正処理を行ったデータに対して演算処理を行い、
加算処理については、2の補数表現により表現されたデータに対して演算処理を行う、ことを特徴とするFFT装置。
バタフライ演算処理を行うバタフライ演算処理部と、
ひねり乗算処理を行うひねり乗算処理部と、
複数のデータの順序を並べ替えるデータ並べ替え処理部と、
を備え、高速フーリエ変換(FFT)又は逆高速フーリエ変換(IFFT)を行うFFT装置であって、
データ表現形式として2の補数表現と、2の補数表現と異なる第2の表現形式の双方を使用して演算を行い、
前記第2の表現形式は、非負のデータについては2の補数表現と同一であり、負のデータについては、前記データの2の補数表現から符号を示す最上位ビット以外のビットを反転した表現であり、
前記バタフライ演算処理部は、
2の補数表現により表現されたデータに対して処理を行い、
前記データ並べ替え処理部は、
前記第2の表現形式により表現されたデータに対して記憶処理を行い、
前記ひねり乗算処理部は、
乗算処理については、前記第2の表現形式により表現されたデータに補正処理を行ったデータに対して演算処理を行い、
加算処理については、2の補数表現により表現されたデータに対して演算処理を行う、ことを特徴とするFFT装置。
(付記12)
前記補正処理は、前記第2の表現形式により表現されたNビット(Nは正整数)のデータが負の値の場合に、前記Nビット(Nは正整数)のデータのうち、最下位ビットからMビット(MはM≦Nの正整数)に対して値1を加算する処理を行う、ことを特徴とする付記11に記載のFFT装置。
前記補正処理は、前記第2の表現形式により表現されたNビット(Nは正整数)のデータが負の値の場合に、前記Nビット(Nは正整数)のデータのうち、最下位ビットからMビット(MはM≦Nの正整数)に対して値1を加算する処理を行う、ことを特徴とする付記11に記載のFFT装置。
(付記13)
前記データ並べ替え処理部は、
データを2の補数表現から前記第2の表現形式へ変換する第1の変換部と、
前記第2の表現形式から2の補数表現へ変換する第2の変換部と、
を備え、
前記第1の変換部により、入力する2の補数表現で表現されたデータを前記第2の表現形式に変換してデータ並べ替え処理を行い、
前記第2の変換部により、前記第2の表現形式で表現されたデータ並べ替え処理後のデータを2の補数表現に変換して出力する、ことを特徴とする付記11又は12に記載のFFT装置。
前記データ並べ替え処理部は、
データを2の補数表現から前記第2の表現形式へ変換する第1の変換部と、
前記第2の表現形式から2の補数表現へ変換する第2の変換部と、
を備え、
前記第1の変換部により、入力する2の補数表現で表現されたデータを前記第2の表現形式に変換してデータ並べ替え処理を行い、
前記第2の変換部により、前記第2の表現形式で表現されたデータ並べ替え処理後のデータを2の補数表現に変換して出力する、ことを特徴とする付記11又は12に記載のFFT装置。
(付記14)
前記第1及び第2の変換部は、前記入力したデータの最上位ビットはそのまま出力し、
前記入力したデータの前記最上位ビット以外は、前記最上位ビットとの排他的論理和を行った結果を出力する、ことを特徴とする付記11乃至13のいずれかに記載のFFT装置。
前記第1及び第2の変換部は、前記入力したデータの最上位ビットはそのまま出力し、
前記入力したデータの前記最上位ビット以外は、前記最上位ビットとの排他的論理和を行った結果を出力する、ことを特徴とする付記11乃至13のいずれかに記載のFFT装置。
(付記15)
2の補数表現と異なる第2の表現形式により表現されたデータに対して記憶処理を行う工程と、
2の補数表現により表現されたデータ、又は、前記第2の表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対して演算処理を行う工程と、
を含み、
前記第2の表現形式は、
データ値が正又は0の場合は、2の補数表現と同一であり、
データ値が負の場合は、2の補数表現から符号を示す最上位ビット以外のビットを反転した表現形式である、ことを特徴とする信号処理方法。
2の補数表現と異なる第2の表現形式により表現されたデータに対して記憶処理を行う工程と、
2の補数表現により表現されたデータ、又は、前記第2の表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対して演算処理を行う工程と、
を含み、
前記第2の表現形式は、
データ値が正又は0の場合は、2の補数表現と同一であり、
データ値が負の場合は、2の補数表現から符号を示す最上位ビット以外のビットを反転した表現形式である、ことを特徴とする信号処理方法。
(付記16)
前記補正処理では、前記第2の表現形式により表現されたNビット(Nは正整数)のデータが負の値の場合に、
前記Nビット(ただし、Nは所定の正整数)のデータのうち、最下位ビットからMビット(ただし、MはM≦Nの正整数)に対して値1を加算する、ことを特徴とする付記15に記載の信号処理方法。
前記補正処理では、前記第2の表現形式により表現されたNビット(Nは正整数)のデータが負の値の場合に、
前記Nビット(ただし、Nは所定の正整数)のデータのうち、最下位ビットからMビット(ただし、MはM≦Nの正整数)に対して値1を加算する、ことを特徴とする付記15に記載の信号処理方法。
(付記17)
前記演算処理では、処理する演算が乗算又は除算の場合には、
前記第2の表現形式により表現されたデータに前記補正処理を行ったデータのいずれかに対して演算処理を行い、
処理する演算が加算又は減算の場合には、2の補数表現により表現されたデータに対して演算処理を行う、ことを特徴とする付記15又は16に記載の信号処理方法。
前記演算処理では、処理する演算が乗算又は除算の場合には、
前記第2の表現形式により表現されたデータに前記補正処理を行ったデータのいずれかに対して演算処理を行い、
処理する演算が加算又は減算の場合には、2の補数表現により表現されたデータに対して演算処理を行う、ことを特徴とする付記15又は16に記載の信号処理方法。
(付記18)
前記記憶処理は、
2の補数表現で表現されたデータを入力し、前記入力したデータを2の補数表現から前記第2の表現形式へ変換する第1の変換処理と、
前記第2の表現形式でのデータの記憶回路へ記憶する記憶処理と、
前記記憶回路から出力された前記第2の表現形式のデータを入力し、前記入力したデータを2の補数表現へ変換して出力する第2の変換処理について、
前記記憶処理、又は、
前記記憶処理の前又は後の前記第1の変換処理又は前記第2の変換処理の少なくともいずれかを含む、ことを特徴とする付記15乃至17のいずれかに記載の信号処理方法。
前記記憶処理は、
2の補数表現で表現されたデータを入力し、前記入力したデータを2の補数表現から前記第2の表現形式へ変換する第1の変換処理と、
前記第2の表現形式でのデータの記憶回路へ記憶する記憶処理と、
前記記憶回路から出力された前記第2の表現形式のデータを入力し、前記入力したデータを2の補数表現へ変換して出力する第2の変換処理について、
前記記憶処理、又は、
前記記憶処理の前又は後の前記第1の変換処理又は前記第2の変換処理の少なくともいずれかを含む、ことを特徴とする付記15乃至17のいずれかに記載の信号処理方法。
(付記19)
前記演算処理は、
2の補数表現により表現されたデータを入力し、2の補数表現により表現されたデータの演算処理を行う第1の演算処理と、
2の補数表現により表現されたデータを入力し、前記入力したデータを2の補数表現から前記第2の表現形式へ変換する第1の変換処理と、
前記第2の表現形式により表現されたデータに対して行う補正処理と、
前記補正処理されたデータの演算処理を行う第2の演算処理と、
前記第2の表現形式のデータを入力し、前記入力したデータを2の補数表現へ変換して出力する第2の変換処理について、
前記第1の演算処理、
前記補正処理及び前記第2の演算処理、
前記補正処理及び前記第2の演算処理に、さらに前記第1の変換処理又は前記第2の変換処理の少なくともいずれか、
のうちのいずれかを含む、ことを特徴とする付記15乃至17のいずれかに記載の信号処理方法。
前記演算処理は、
2の補数表現により表現されたデータを入力し、2の補数表現により表現されたデータの演算処理を行う第1の演算処理と、
2の補数表現により表現されたデータを入力し、前記入力したデータを2の補数表現から前記第2の表現形式へ変換する第1の変換処理と、
前記第2の表現形式により表現されたデータに対して行う補正処理と、
前記補正処理されたデータの演算処理を行う第2の演算処理と、
前記第2の表現形式のデータを入力し、前記入力したデータを2の補数表現へ変換して出力する第2の変換処理について、
前記第1の演算処理、
前記補正処理及び前記第2の演算処理、
前記補正処理及び前記第2の演算処理に、さらに前記第1の変換処理又は前記第2の変換処理の少なくともいずれか、
のうちのいずれかを含む、ことを特徴とする付記15乃至17のいずれかに記載の信号処理方法。
(付記20)
付記15又は16に記載の信号処理方法において、データ表現形式として2の補数表現と、前記第2の表現形式の双方を使用して高速フーリエ変換又は逆高速フーリエ変換を行い、
前記演算処理が、
バタフライ演算処理を行うバタフライ演算処理と、
ひねり乗算処理を行うひねり乗算処理と、
を含み、高速フーリエ変換又は逆高速フーリエ変換を行い、
前記記憶処理が、
複数のデータの順序を並べ替えるデータ並べ替え処理を含み、
前記バタフライ演算処理は、
2の補数表現により表現されたデータに対してバタフライ演算処理を行い、
前記ひねり乗算処理は、乗算処理については、前記第2の表現形式により表現されたデータに補正処理を行ったデータに対して演算処理を行い、
加算処理については、2の補数表現により表現されたデータに対して演算処理を行い、
前記データ並べ替え処理は、前記第2の表現形式により表現されたデータに対して記憶処理を行う、ことを特徴とする信号処理方法。
付記15又は16に記載の信号処理方法において、データ表現形式として2の補数表現と、前記第2の表現形式の双方を使用して高速フーリエ変換又は逆高速フーリエ変換を行い、
前記演算処理が、
バタフライ演算処理を行うバタフライ演算処理と、
ひねり乗算処理を行うひねり乗算処理と、
を含み、高速フーリエ変換又は逆高速フーリエ変換を行い、
前記記憶処理が、
複数のデータの順序を並べ替えるデータ並べ替え処理を含み、
前記バタフライ演算処理は、
2の補数表現により表現されたデータに対してバタフライ演算処理を行い、
前記ひねり乗算処理は、乗算処理については、前記第2の表現形式により表現されたデータに補正処理を行ったデータに対して演算処理を行い、
加算処理については、2の補数表現により表現されたデータに対して演算処理を行い、
前記データ並べ替え処理は、前記第2の表現形式により表現されたデータに対して記憶処理を行う、ことを特徴とする信号処理方法。
(付記21)
前記データ並べ替え処理は、データを2の補数表現から前記第2の表現形式へ変換する第1の変換処理と、
前記第2の表現形式から2の補数表現へ変換する第2の変換処理と、
を含み、
前記第1の変換処理では、入力する2の補数表現で表現されたデータを前記第2の表現形式に変換してデータ並べ替え処理を行い、
前記第2の変換処理では、前記第2の表現形式で表現されたデータ並べ替え処理後のデータを2の補数表現に変換して出力する、ことを特徴とする付記20に記載の信号処理方法。
前記データ並べ替え処理は、データを2の補数表現から前記第2の表現形式へ変換する第1の変換処理と、
前記第2の表現形式から2の補数表現へ変換する第2の変換処理と、
を含み、
前記第1の変換処理では、入力する2の補数表現で表現されたデータを前記第2の表現形式に変換してデータ並べ替え処理を行い、
前記第2の変換処理では、前記第2の表現形式で表現されたデータ並べ替え処理後のデータを2の補数表現に変換して出力する、ことを特徴とする付記20に記載の信号処理方法。
(付記22)
バタフライ演算処理を行うバタフライ演算処理と、
ひねり乗算処理を行うひねり乗算処理と、
複数のデータの順序を並べ替えるデータ並べ替え処理と、
を含み、高速フーリエ変換(FFT)又は逆高速フーリエ変換(IFFT)を行うFFT方法であって、
データ表現形式として2の補数表現と、2の補数表現と異なる第2の表現形式の双方を使用して演算を行い、
前記第2の表現形式は、非負のデータについては2の補数表現と同一であり、負のデータについては、前記データの2の補数表現から符号を示す最上位ビット以外のビットを反転した表現であり、
前記バタフライ演算処理では、
2の補数表現により表現されたデータに対して処理を行い、
前記データ並べ替え処理では、
前記第2の表現形式により表現されたデータに対して記憶処理を行い、
前記ひねり乗算処理では、
乗算処理については、前記第2の表現形式により表現されたデータに補正処理を行ったデータに対して演算処理を行い、
加算処理については、2の補数表現により表現されたデータに対して演算処理を行う、ことを特徴とするFFT演算方法。
バタフライ演算処理を行うバタフライ演算処理と、
ひねり乗算処理を行うひねり乗算処理と、
複数のデータの順序を並べ替えるデータ並べ替え処理と、
を含み、高速フーリエ変換(FFT)又は逆高速フーリエ変換(IFFT)を行うFFT方法であって、
データ表現形式として2の補数表現と、2の補数表現と異なる第2の表現形式の双方を使用して演算を行い、
前記第2の表現形式は、非負のデータについては2の補数表現と同一であり、負のデータについては、前記データの2の補数表現から符号を示す最上位ビット以外のビットを反転した表現であり、
前記バタフライ演算処理では、
2の補数表現により表現されたデータに対して処理を行い、
前記データ並べ替え処理では、
前記第2の表現形式により表現されたデータに対して記憶処理を行い、
前記ひねり乗算処理では、
乗算処理については、前記第2の表現形式により表現されたデータに補正処理を行ったデータに対して演算処理を行い、
加算処理については、2の補数表現により表現されたデータに対して演算処理を行う、ことを特徴とするFFT演算方法。
(付記23)
前記補正処理は、前記第2の表現形式により表現されたNビット(Nは正整数)のデータが負の値の場合に、前記Nビット(Nは正整数)のデータのうち、最下位ビットからMビット(MはM≦Nの正整数)に対して値1を加算する処理を行う、ことを特徴とする付記22に記載のFFT演算方法。
前記補正処理は、前記第2の表現形式により表現されたNビット(Nは正整数)のデータが負の値の場合に、前記Nビット(Nは正整数)のデータのうち、最下位ビットからMビット(MはM≦Nの正整数)に対して値1を加算する処理を行う、ことを特徴とする付記22に記載のFFT演算方法。
(付記24)
前記データ並べ替え処理は、データを2の補数表現から前記第2の表現形式へ変換する第1の変換処理と、
前記第2の表現形式から2の補数表現へ変換する第2の変換処理と、
を含み、
前記第1の変換処理では、入力する2の補数表現で表現されたデータを前記第2の表現形式に変換してデータ並べ替え処理を行い、
前記第2の変換処理では、前記第2の表現形式で表現されたデータ並べ替え処理後のデータを2の補数表現に変換して出力する、ことを特徴とする付記22又は23に記載のFFT演算方法。
前記データ並べ替え処理は、データを2の補数表現から前記第2の表現形式へ変換する第1の変換処理と、
前記第2の表現形式から2の補数表現へ変換する第2の変換処理と、
を含み、
前記第1の変換処理では、入力する2の補数表現で表現されたデータを前記第2の表現形式に変換してデータ並べ替え処理を行い、
前記第2の変換処理では、前記第2の表現形式で表現されたデータ並べ替え処理後のデータを2の補数表現に変換して出力する、ことを特徴とする付記22又は23に記載のFFT演算方法。
(付記25)
データ値が正又は0の場合は、2の補数表現と同一であり、データ値が負の場合は、2の補数表現から符号を示す最上位ビット以外のビットを反転した表現形式である第2の表現形式により表現されたデータに対する記憶処理と、
2の補数表現により表現されたデータ、又は、前記第2の表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対する演算処理と、
をプロセッサに実行させるプログラム。
データ値が正又は0の場合は、2の補数表現と同一であり、データ値が負の場合は、2の補数表現から符号を示す最上位ビット以外のビットを反転した表現形式である第2の表現形式により表現されたデータに対する記憶処理と、
2の補数表現により表現されたデータ、又は、前記第2の表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対する演算処理と、
をプロセッサに実行させるプログラム。
(付記26)
前記補正処理として、前記第2の表現形式により表現されたNビット(Nは正整数)のデータが負の値の場合に、
前記Nビット(ただし、Nは所定の正整数)のデータのうち、最下位ビットからMビット(ただし、MはM≦Nの正整数)に対して値1を加算する処理を実行する、ことを特徴とする付記25に記載のプログラム。
前記補正処理として、前記第2の表現形式により表現されたNビット(Nは正整数)のデータが負の値の場合に、
前記Nビット(ただし、Nは所定の正整数)のデータのうち、最下位ビットからMビット(ただし、MはM≦Nの正整数)に対して値1を加算する処理を実行する、ことを特徴とする付記25に記載のプログラム。
(付記27)
前記演算処理として、処理する演算が乗算又は除算の場合には、
前記第2の表現形式により表現されたデータに前記補正処理を行ったデータのいずれかに対して演算処理を行い、
処理する演算が加算又は減算の場合には、2の補数表現により表現されたデータに対して演算処理を行う、付記25又は26に記載のプログラム。
前記演算処理として、処理する演算が乗算又は除算の場合には、
前記第2の表現形式により表現されたデータに前記補正処理を行ったデータのいずれかに対して演算処理を行い、
処理する演算が加算又は減算の場合には、2の補数表現により表現されたデータに対して演算処理を行う、付記25又は26に記載のプログラム。
(付記28)
前記記憶処理は、
2の補数表現で表現されたデータを入力し、前記入力したデータを2の補数表現から前記第2の表現形式へ変換する第1の変換処理と、
前記第2の表現形式でのデータの記憶回路へ記憶する記憶処理と、
前記記憶回路から出力された前記第2の表現形式のデータを入力し、前記入力したデータを2の補数表現へ変換して出力する第2の変換処理について、
前記記憶処理、又は、
前記記憶処理の前又は後の前記第1の変換処理又は前記第2の変換処理の少なくともいずれかを含む、付記25乃至27のいずれかに記載のプログラム。
前記記憶処理は、
2の補数表現で表現されたデータを入力し、前記入力したデータを2の補数表現から前記第2の表現形式へ変換する第1の変換処理と、
前記第2の表現形式でのデータの記憶回路へ記憶する記憶処理と、
前記記憶回路から出力された前記第2の表現形式のデータを入力し、前記入力したデータを2の補数表現へ変換して出力する第2の変換処理について、
前記記憶処理、又は、
前記記憶処理の前又は後の前記第1の変換処理又は前記第2の変換処理の少なくともいずれかを含む、付記25乃至27のいずれかに記載のプログラム。
(付記29)
前記演算処理は、
2の補数表現により表現されたデータを入力し、2の補数表現により表現されたデータの演算処理を行う第1の演算処理と、
2の補数表現により表現されたデータを入力し、前記入力したデータを2の補数表現から前記第2の表現形式へ変換する第1の変換処理と、
前記第2の表現形式により表現されたデータに対して行う補正処理と、
前記補正処理されたデータの演算処理を行う第2の演算処理と、
前記第2の表現形式のデータを入力し、前記入力したデータを2の補数表現へ変換して出力する第2の変換処理について、
前記第1の演算処理、
前記補正処理及び前記第2の演算処理、
前記補正処理及び前記第2の演算処理に、さらに前記第1の変換処理又は前記第2の変換処理の少なくともいずれか、
のうちのいずれかを含む、付記25乃至27のいずれかに記載のプログラム。
前記演算処理は、
2の補数表現により表現されたデータを入力し、2の補数表現により表現されたデータの演算処理を行う第1の演算処理と、
2の補数表現により表現されたデータを入力し、前記入力したデータを2の補数表現から前記第2の表現形式へ変換する第1の変換処理と、
前記第2の表現形式により表現されたデータに対して行う補正処理と、
前記補正処理されたデータの演算処理を行う第2の演算処理と、
前記第2の表現形式のデータを入力し、前記入力したデータを2の補数表現へ変換して出力する第2の変換処理について、
前記第1の演算処理、
前記補正処理及び前記第2の演算処理、
前記補正処理及び前記第2の演算処理に、さらに前記第1の変換処理又は前記第2の変換処理の少なくともいずれか、
のうちのいずれかを含む、付記25乃至27のいずれかに記載のプログラム。
(付記30)
前記演算処理が、
バタフライ演算処理を行うバタフライ演算処理と、
ひねり乗算処理を行うひねり乗算処理と、
を含み、高速フーリエ変換又は逆高速フーリエ変換を行い、
前記記憶処理が、
複数のデータの順序を並べ替えるデータ並べ替え処理を含み、
前記バタフライ演算処理は、2の補数表現により表現されたデータに対してバタフライ演算処理を行い、
前記ひねり乗算処理は、乗算処理については、前記第2の表現形式により表現されたデータに補正処理を行ったデータに対して演算処理を行い、
加算処理については、2の補数表現により表現されたデータに対して演算処理を行い、
前記データ並べ替え処理は、前記第2の表現形式により表現されたデータに対して記憶処理を行う、付記25又は26に記載のプログラム。
前記演算処理が、
バタフライ演算処理を行うバタフライ演算処理と、
ひねり乗算処理を行うひねり乗算処理と、
を含み、高速フーリエ変換又は逆高速フーリエ変換を行い、
前記記憶処理が、
複数のデータの順序を並べ替えるデータ並べ替え処理を含み、
前記バタフライ演算処理は、2の補数表現により表現されたデータに対してバタフライ演算処理を行い、
前記ひねり乗算処理は、乗算処理については、前記第2の表現形式により表現されたデータに補正処理を行ったデータに対して演算処理を行い、
加算処理については、2の補数表現により表現されたデータに対して演算処理を行い、
前記データ並べ替え処理は、前記第2の表現形式により表現されたデータに対して記憶処理を行う、付記25又は26に記載のプログラム。
(付記31)
前記データ並べ替え処理は、
データを2の補数表現から前記第2の表現形式へ変換する第1の変換処理と、
前記第2の表現形式から2の補数表現へ変換する第2の変換処理と、
を含み、
前記第1の変換処理では、入力する2の補数表現で表現されたデータを前記第2の表現形式に変換してデータ並べ替え処理を行い、
前記第2の変換処理では、前記第2の表現形式で表現されたデータ並べ替え処理後のデータを2の補数表現に変換して出力する、付記30に記載のプログラム。
前記データ並べ替え処理は、
データを2の補数表現から前記第2の表現形式へ変換する第1の変換処理と、
前記第2の表現形式から2の補数表現へ変換する第2の変換処理と、
を含み、
前記第1の変換処理では、入力する2の補数表現で表現されたデータを前記第2の表現形式に変換してデータ並べ替え処理を行い、
前記第2の変換処理では、前記第2の表現形式で表現されたデータ並べ替え処理後のデータを2の補数表現に変換して出力する、付記30に記載のプログラム。
100 信号処理装置
101、103、105、108 記憶処理部
102、104、106、107 演算処理部
10、10a~10d 変換回路
17 XOR回路
20、20a~20d 補正回路
21 セレクタ回路
22 加算回路
30 記憶回路
40、41 演算回路
42 符号演算回路
43 符号なし演算回路
200 データ並べ替え部
201 第1のデータ並べ替え部(第1のデータ並べ替え手段)
202 第1のデータ振り分け部(第1のデータ振り分け手段)
203 第2のデータ振り分け部(第2のデータ振り分け手段)
204 第2のデータ並べ替え部(第2のデータ並べ替え手段)
210a~210d RAM回路
220 データ組内並べ替え部
220a~220d データ組内並べ替え部
221、224、225 セレクタ回路
222、223 フリップフロップ
231、232 233a~233h、234a~234h 変換回路
240a、240b バタフライ演算処理部
250、250a、250b、260 データ並べ替え処理部
270 ひねり乗算処理部
271a~271d 乗算回路
272a、272b 加算回路
300 プロセッサ装置
301 プロセッサ
302 プログラム記憶部
303 RAM
304 第1のインタフェース
305 第2のインタフェース
400 FFT装置
500 64ポイントFFTのデータフロー
501 データ並べ替え処理部(データ並べ替え処理)
502、503 バタフライ演算処理部(バタフライ演算処理)
504 ひねり乗算処理部(ひねり乗算処理)
600 変換回路
601 ビット反転回路
602 1加算回路
101、103、105、108 記憶処理部
102、104、106、107 演算処理部
10、10a~10d 変換回路
17 XOR回路
20、20a~20d 補正回路
21 セレクタ回路
22 加算回路
30 記憶回路
40、41 演算回路
42 符号演算回路
43 符号なし演算回路
200 データ並べ替え部
201 第1のデータ並べ替え部(第1のデータ並べ替え手段)
202 第1のデータ振り分け部(第1のデータ振り分け手段)
203 第2のデータ振り分け部(第2のデータ振り分け手段)
204 第2のデータ並べ替え部(第2のデータ並べ替え手段)
210a~210d RAM回路
220 データ組内並べ替え部
220a~220d データ組内並べ替え部
221、224、225 セレクタ回路
222、223 フリップフロップ
231、232 233a~233h、234a~234h 変換回路
240a、240b バタフライ演算処理部
250、250a、250b、260 データ並べ替え処理部
270 ひねり乗算処理部
271a~271d 乗算回路
272a、272b 加算回路
300 プロセッサ装置
301 プロセッサ
302 プログラム記憶部
303 RAM
304 第1のインタフェース
305 第2のインタフェース
400 FFT装置
500 64ポイントFFTのデータフロー
501 データ並べ替え処理部(データ並べ替え処理)
502、503 バタフライ演算処理部(バタフライ演算処理)
504 ひねり乗算処理部(ひねり乗算処理)
600 変換回路
601 ビット反転回路
602 1加算回路
Claims (16)
- データ値が正又は0の場合は、2の補数表現と同一であり、データ値が負の場合は、2の補数表現から符号を示す最上位ビット以外のビットを反転した表現形式である第2の表現形式により表現されたデータに対して記憶処理を行う記憶処理部と、
2の補数表現により表現されたデータ、又は、前記第2の表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対して演算処理を行う演算処理部と、
を備えた、ことを特徴とする信号処理装置。 - 前記補正処理は、前記第2の表現形式により表現されたNビット(Nは正整数)のデータが負の値の場合に、
前記Nビット(ただし、Nは所定の正整数)のデータのうち、最下位ビットからMビット(ただし、MはM≦Nの正整数)に対して値1を加算する処理である、ことを特徴とする請求項1に記載の信号処理装置。 - 前記演算処理部は、処理する演算が乗算又は除算の場合には、
前記第2の表現形式により表現されたデータに前記補正処理を行ったデータのいずれかに対して演算処理を行い、
処理する演算が加算又は減算の場合には、
2の補数表現により表現されたデータに対して演算処理を行う、ことを特徴とする請求項1又は2に記載の信号処理装置。 - 前記記憶処理部は、
2の補数表現で表現されたデータを入力し、前記入力したデータを2の補数表現から前記第2の表現形式へ変換する第1の変換部と、
前記第2の表現形式でのデータの記憶処理及び出力を行う記憶回路と、
前記記憶回路から出力された前記第2の表現形式のデータを入力し、前記入力したデータを2の補数表現へ変換して出力する第2の変換部について、
前記記憶回路を備えた構成と、
前記記憶回路と、前記第1の変換部又は前記第2の変換部の少なくともいずれかを備えた構成、
のうちの少なくともいずれかを含む、ことを特徴とする請求項1乃至3のいずれか1項に記載の信号処理装置。 - 前記演算処理部は、
2の補数表現により表現されたデータを入力し、2の補数表現により表現されたデータの演算処理を行う第1の演算回路と、
2の補数表現により表現されたデータを入力し、前記入力したデータを2の補数表現から前記第2の表現形式へ変換する第1の変換部と、
前記第2の表現形式により表現されたデータに前記補正処理を行う補正回路と、
前記補正回路で補正処理されたデータを入力し、前記補正処理されたデータの演算処理を行う第2の演算回路と、
前記第2の表現形式のデータを入力し、前記入力したデータを2の補数表現へ変換して出力する第2の変換部について、
前記第1の演算回路を備えた構成と、
前記補正回路及び前記第2の演算回路を備えた構成と、
前記補正回路及び前記第2の演算回路に、さらに前記第1の変換部又は前記第2の変換部の少なくともいずれかを備えた構成、
のうちの少なくともいずれかを含む、ことを特徴とする請求項1乃至3のいずれか1項に記載の信号処理装置。 - 前記第2の演算回路は、
演算対象である前記補正処理した前記第2の表現形式のデータの符号ビットの演算結果を符号ビットとして出力する符号演算回路と、
演算対象である前記補正処理した前記第2の表現形式のデータの前記符号ビット以外の絶対値部分を演算して出力する符号なし演算回路と、
を備えた、ことを特徴とする請求項5に記載の信号処理装置。 - 前記第1及び第2の変換部は、前記入力したデータの最上位ビットはそのまま最上位ビットとして出力し、
前記入力したデータの前記最上位ビット以外は、前記最上位ビットとの排他的論理和を行った結果を出力する、ことを特徴とする請求項4乃至6のいずれか1項に記載の信号処理装置。 - 請求項1又は2に記載の信号処理装置において、データ表現形式として2の補数表現と前記第2の表現形式の双方を使用して高速フーリエ変換又は逆高速フーリエ変換を行い、
前記演算処理部が、
バタフライ演算処理を行うバタフライ演算処理部と、
ひねり乗算処理を行うひねり乗算処理部と、
を備え、
前記記憶処理部が、
複数のデータの順序を並べ替えるデータ並べ替え処理部を備え、
前記バタフライ演算処理部は、2の補数表現により表現されたデータに対してバタフライ演算処理を行い、
前記ひねり乗算処理部は、乗算処理については、前記第2の表現形式により表現されたデータに補正処理を行ったデータに対して演算処理を行い、
加算処理については、2の補数表現により表現されたデータに対して演算処理を行い、
前記データ並べ替え処理部は、前記第2の表現形式により表現されたデータに対して記憶処理を行う、ことを特徴とする信号処理装置。 - 前記データ並べ替え処理部は、
2の補数表現で表現されたデータを入力し前記第2の表現形式へ変換する第1の変換部と、
前記第2の表現形式で表現されたデータを入力し2の補数表現へ変換する第2の変換部と、
を備え、
前記第1の変換部は、入力する2の補数表現で表現されたデータを前記第2の表現形式に変換してデータ並べ替え処理を行い、
前記第2の変換部は、前記第2の表現形式で表現されたデータ並べ替え処理後のデータを2の補数表現に変換して出力する、ことを特徴とする請求項8に記載の信号処理装置。 - 前記第1及び第2の変換部は、前記入力したデータの最上位ビットはそのまま出力し、
前記入力したデータの前記最上位ビット以外は、前記最上位ビットとの排他的論理和を行った結果を出力する、ことを特徴とする請求項8又は9に記載の信号処理装置。 - 2の補数表現と異なる第2の表現形式により表現されたデータに対して記憶処理を行う工程と、
2の補数表現により表現されたデータ、又は、前記第2の表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対して演算処理を行う工程と、
を含み、
前記第2の表現形式は、
データ値が正又は0の場合は、2の補数表現と同一であり、
データ値が負の場合は、2の補数表現から符号を示す最上位ビット以外のビットを反転した表現形式である、ことを特徴とする信号処理方法。 - 前記補正処理では、前記第2の表現形式により表現されたNビット(Nは正整数)のデータが負の値の場合に、前記Nビット(ただし、Nは所定の正整数)のデータのうち、最下位ビットからMビット(ただし、MはM≦Nの正整数)に対して値1を加算する、ことを特徴とする請求項11に記載の信号処理方法。
- 前記演算処理では、処理する演算が乗算又は除算の場合には、前記第2の表現形式により表現されたデータに前記補正処理を行ったデータのいずれかに対して演算処理を行い、
処理する演算が加算又は減算の場合には、2の補数表現により表現されたデータに対して演算処理を行う、ことを特徴とする請求項11又は12に記載の信号処理方法。 - 請求項11又は12記載の信号処理方法において、データ表現形式として2の補数表現と、前記第2の表現形式の双方を使用して高速フーリエ変換又は逆高速フーリエ変換を行い、
前記演算処理が、
バタフライ演算処理を行うバタフライ演算処理と、
ひねり乗算処理を行うひねり乗算処理と、
を含み、
前記記憶処理が、
複数のデータの順序を並べ替えるデータ並べ替え処理を含み、
前記バタフライ演算処理は、2の補数表現により表現されたデータに対してバタフライ演算処理を行い、
前記ひねり乗算処理は、乗算処理については、前記第2の表現形式により表現されたデータに補正処理を行ったデータに対して演算処理を行い、
加算処理については、2の補数表現により表現されたデータに対して演算処理を行い、
前記データ並べ替え処理は、前記第2の表現形式により表現されたデータに対して記憶処理を行う、ことを特徴とする信号処理方法。 - データ値が正又は0の場合は、2の補数表現と同一であり、データ値が負の場合は、2の補数表現から符号を示す最上位ビット以外のビットを反転した表現形式である第2の表現形式により表現されたデータに対する記憶処理と、
2の補数表現により表現されたデータ、又は、前記第2の表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対する演算処理と、
をプロセッサに実行させるプログラム。 - 請求項15に記載のプログラムを記録した非一時的なコンピュータ可読型記憶媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/057,082 US12019700B2 (en) | 2018-05-22 | 2019-05-21 | Signal processing apparatus, method, program, and recording medium |
JP2020521241A JP6977883B2 (ja) | 2018-05-22 | 2019-05-21 | 信号処理装置、方法、プログラム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018-097761 | 2018-05-22 | ||
JP2018097761 | 2018-05-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019225576A1 true WO2019225576A1 (ja) | 2019-11-28 |
Family
ID=68616944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/020041 WO2019225576A1 (ja) | 2018-05-22 | 2019-05-21 | 信号処理装置、方法、プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US12019700B2 (ja) |
JP (1) | JP6977883B2 (ja) |
WO (1) | WO2019225576A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115833845B (zh) * | 2023-01-06 | 2023-05-19 | 北京象帝先计算技术有限公司 | 位置输出装置和位置输出方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001306547A (ja) * | 2000-04-21 | 2001-11-02 | Sony Corp | 演算装置及び演算方法 |
JP2003101415A (ja) * | 2001-09-19 | 2003-04-04 | Seiko Epson Corp | データ変換装置、データ生成装置、データ変換プログラム及びデータ生成プログラム、並びにデータ変換方法及びデータ生成方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4520347A (en) * | 1982-11-22 | 1985-05-28 | Motorola, Inc. | Code conversion circuit |
US4841467A (en) * | 1987-10-05 | 1989-06-20 | General Electric Company | Architecture to implement floating point multiply/accumulate operations |
JPH06100961B2 (ja) * | 1988-04-18 | 1994-12-12 | 富士通テン株式会社 | デジタル信号処理プロセッサ |
JP3213953B2 (ja) | 1991-03-11 | 2001-10-02 | 日本電気株式会社 | ディジタルシグナルプロセッサ |
JP2766133B2 (ja) * | 1992-08-06 | 1998-06-18 | 日本電気アイシーマイコンシステム株式会社 | パラレル・シリアル・データ変換回路 |
JPH08137832A (ja) | 1994-11-07 | 1996-05-31 | Fujitsu Ltd | バタフライ演算回路および同回路を用いた高速フーリエ変換装置 |
JP2001056806A (ja) | 1999-06-10 | 2001-02-27 | Matsushita Electric Ind Co Ltd | 高速フーリエ変換装置 |
JP3614065B2 (ja) | 1999-07-27 | 2005-01-26 | 株式会社デンソー | 符号付き整数乗算装置 |
JP2003143040A (ja) | 2001-11-07 | 2003-05-16 | Sanyo Electric Co Ltd | デジタルマッチトフィルタおよびデジタルマッチトフィルタを用いた携帯無線端末 |
US7660840B2 (en) * | 2003-09-29 | 2010-02-09 | Broadcom Corporation | Method, system, and computer program product for executing SIMD instruction for flexible FFT butterfly |
JP2005184310A (ja) | 2003-12-18 | 2005-07-07 | Matsushita Electric Ind Co Ltd | 輪郭補正装置 |
JP5086675B2 (ja) | 2007-03-26 | 2012-11-28 | ルネサスエレクトロニクス株式会社 | フィルタ演算器及び動き補償装置 |
US8050173B2 (en) * | 2008-07-01 | 2011-11-01 | Broadcom Corporation | Dynamic precision for datapath modules |
JP5549442B2 (ja) | 2010-07-14 | 2014-07-16 | 三菱電機株式会社 | Fft演算装置 |
JP6358096B2 (ja) * | 2013-01-23 | 2018-07-18 | 日本電気株式会社 | 高速フーリエ変換装置、高速フーリエ変換方法、及び高速フーリエ変換プログラム |
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 |
KR102372362B1 (ko) * | 2015-09-22 | 2022-03-08 | 삼성전자주식회사 | 부호화된 크기 방식을 이용한 디지털 신호 프로세서 및 이를 포함하는 무선 통신 수신기 |
-
2019
- 2019-05-21 JP JP2020521241A patent/JP6977883B2/ja active Active
- 2019-05-21 US US17/057,082 patent/US12019700B2/en active Active
- 2019-05-21 WO PCT/JP2019/020041 patent/WO2019225576A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001306547A (ja) * | 2000-04-21 | 2001-11-02 | Sony Corp | 演算装置及び演算方法 |
JP2003101415A (ja) * | 2001-09-19 | 2003-04-04 | Seiko Epson Corp | データ変換装置、データ生成装置、データ変換プログラム及びデータ生成プログラム、並びにデータ変換方法及びデータ生成方法 |
Also Published As
Publication number | Publication date |
---|---|
US12019700B2 (en) | 2024-06-25 |
JP6977883B2 (ja) | 2021-12-08 |
JPWO2019225576A1 (ja) | 2021-07-01 |
US20210342102A1 (en) | 2021-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6288089B2 (ja) | デジタルフィルタ装置、デジタルフィルタ処理方法及びデジタルフィルタプログラムが記憶された記憶媒体 | |
CN102652315B (zh) | 信息处理设备及其控制方法 | |
JP6256348B2 (ja) | 高速フーリエ変換回路、高速フーリエ変換処理方法及び高速フーリエ変換処理プログラム | |
US9785614B2 (en) | Fast Fourier transform device, fast Fourier transform method, and recording medium storing fast Fourier transform program | |
JP6930607B2 (ja) | 信号処理装置、方法、プログラムと記録媒体 | |
JP5763911B2 (ja) | ルートi(√i)演算の保持を特徴とする基数8固定小数点FFT論理回路 | |
WO2019225576A1 (ja) | 信号処理装置、方法、プログラム | |
JP6489021B2 (ja) | デジタルフィルタ装置、デジタルフィルタ処理方法及びデジタルフィルタプログラム | |
US20170011005A1 (en) | Method and Apparatus for Decimation in Frequency FFT Butterfly | |
JP6943283B2 (ja) | 高速フーリエ変換装置、データ並べ替え処理装置、高速フーリエ変換処理方法およびプログラム | |
JP6992745B2 (ja) | デジタルフィルタ装置、デジタルフィルタ処理方法およびデジタルフィルタ処理プログラム | |
JP6451647B2 (ja) | 高速フーリエ変換装置、高速フーリエ変換方法、及び高速フーリエ変換プログラム | |
JP4405452B2 (ja) | 逆変換回路 | |
WO2021193947A1 (ja) | デジタルフィルタ装置 | |
WO2015045310A1 (ja) | デジタルフィルタ装置、デジタルフィルタ処理方法およびプログラムを格納する記憶媒体 | |
JP2023131901A (ja) | 高速フーリエ変換装置、デジタルフィルタ装置、高速フーリエ変換方法、及びプログラム | |
US20240345805A1 (en) | Multi-dimensional fft computation pipelined hardware architecture using radix-3 and radix-2² butterflies | |
JP2022152001A (ja) | 高速フーリエ変換装置及びデジタルフィルタ装置 | |
JP2009245407A (ja) | 複素数の積和演算装置および積和演算方法 | |
WO2020195239A1 (ja) | デジタルフィルタ装置、デジタルフィルタ装置の動作方法及びプログラムを格納した非一時的なコンピュータ可読媒体 | |
US20210182061A1 (en) | Information processing device, information processing method, and program | |
JP2010072981A (ja) | 複素数の積和演算装置および積和演算方法 | |
JP5570250B2 (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: 19806792 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2020521241 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19806792 Country of ref document: EP Kind code of ref document: A1 |