Decimation FIR filters and methods
10050606 ยท 2018-08-14
Assignee
Inventors
Cpc classification
International classification
Abstract
A polyphase decimation FIR filter apparatus including a modulo integrator circuit configured to integrate input samples and to provide integrated input samples; and a polyphase FIR filter circuit configured to process the integrated input samples, the polyphase FIR filter circuit including a plurality of multiplier accumulator circuits, each configured to accumulate products of coefficients and respective integrated signal samples, wherein each of the multiplier accumulator circuits receives a subset of FIR filter coefficients, wherein the FIR filter coefficients are derived as the nth difference of original filter coefficients, where n is a number of integrators in the integrator circuit, and wherein the FIR filter circuit is configured to perform computation operations with modulo arithmetic.
Claims
1. A cascaded integrator-comb (CIC) filter comprising: an m.sup.th order digital integrator configured to operate with modulo arithmetic and two's complement, the m.sup.th order digital integrator configured to receive input samples and to generate integrated input samples; and a finite impulse response (FIR) filter configured to process the integrated input samples and produce output samples with a decimation factor k, the FIR filter comprising: a plurality of multiplier accumulator circuits, each multiplier accumulator circuit configured to accumulate products of FIR filter coefficients and respective integrated input samples, wherein the FIR filter coefficients are derived as a difference of the m.sup.th order of original FIR filter coefficients, stored as the difference of the original FIR filter coefficients, and applied to respective multiplier accumulator circuits, wherein the original FIR filter coefficients have a first word length, and wherein the FIR filter coefficients have a second word length smaller than the first word length.
2. The CIC filter of claim 1, wherein the m.sup.th order digital integrator comprises a third order digital integrator and the FIR filter coefficients are derived as the third order difference of the original FIR filter coefficients.
3. The CIC filter of claim 1, wherein the FIR filter coefficients are stored in a plurality of memory banks associated with respective multiplier accumulator circuits; and at least some FIR filter coefficients of a memory bank are stored non-consecutively.
4. The CIC filter of claim 1, wherein the FIR filter coefficients are stored in read-only memory (ROM).
5. The CIC filter of claim 1, wherein each multiplier accumulator circuit comprises one multiple constant multiplication circuit configured to provide products of an integrated input sample and two or more FIR filter coefficients.
6. The CIC filter of claim 1, wherein the FIR filter coefficients are L bit coefficients and the original FIR filter coefficients are N bit coefficients, wherein L is a positive integer greater than zero and N is a positive integer greater than L.
7. The CIC filter of claim 1, wherein each input sample has P bits, P being a positive integer greater than zero; and each integrated input sample has Q bits, Q being a positive integer greater than P.
8. The CIC filter of claim 1, wherein the decimation factor k is programmable with a control signal.
9. A digital signal processing (DSP) system comprising: an m.sup.th order digital integrator configured to operate with modulo arithmetic and two's complement, the m.sup.th order digital integrator configured to receive input samples and to generate integrated input samples; a coefficient memory configured to store filter coefficients with a first word length, wherein the filter coefficients are derived as a difference of the m.sup.th order of original finite impulse response (FIR) filter coefficients having a second word length bigger than the first word length, the original FIR filter coefficients comprising filter coefficients of a sinc filter and filter coefficients of a second FIR filter; and a plurality of multiplier accumulator circuits configured to accumulate products of filter coefficients and respective integrated input samples, wherein respective products are generated by multiplying respective integrated input samples with filter coefficients without reconstructing the original FIR filter coefficients.
10. The DSP system of claim 9, wherein the coefficient memory comprises read-only memory (ROM).
11. The DSP system of claim 9, wherein each of the multiplier accumulator circuits comprises: a multiple constant multiplication circuit configured to provide products of respective integrated input samples and filter coefficients; and an accumulator circuit configured to accumulate the products.
12. The DSP system of claim 9, wherein each multiplier accumulator circuit of the plurality of multiplier accumulator circuits is configured to receive a subset of the filter coefficients.
13. The DSP system of claim 12, further comprising a controller configured to change the subset of the filter coefficients supplied to the plurality of multiplier accumulator circuits after every k cycles, wherein k is a decimation factor.
14. The DSP system of claim 13, wherein the controller is further configured to: select a multiplier accumulator circuit of the plurality of multiplier accumulator circuits to provide an output every k cycles; and reset an accumulator of the selected multiplied accumulator circuit after the multiplied accumulator circuit provides the output.
15. A method comprising: receiving input samples, wherein each input sample has L bits, L being a positive integer greater than zero; integrating the input samples with a digital integrator to produce integrated input samples, wherein each integrated input sample has N bits, N being a positive integer greater than L, the digital integrator configured to operate with modulo arithmetic and two's complement; and accumulating products of the integrated input samples and filter coefficients with respective multiplier accumulator circuits, wherein the filter coefficients are derived as a difference of an m.sup.th order of original filter coefficients, wherein the original filter coefficients have a first word length, and wherein the filter coefficients have a second word length smaller than the first word length.
16. The method of claim 15, further comprising selecting an output of a selected multiplier accumulator circuit after every k cycles, wherein k is a decimation factor.
17. The method of claim 15, further comprising deriving the filter coefficients as the difference of the m.sup.th order of original filter coefficients, wherein integrating the input samples comprises m.sup.th order integration of the input samples.
18. The method of claim 17, wherein the original filter coefficients comprise filter coefficients of a sinc filter and filter coefficients of a second FIR filter.
19. The method of claim 17, wherein m is equal to 3.
20. The method of claim 17, further comprising: storing the filter coefficients in a plurality of memory banks associated with respective multiplier accumulator circuits; and at least one filter coefficients of a first memory bank of the plurality of memory banks is stored non-consecutively with other filter coefficients.
21. The method of claim 15, wherein L is equal to 6 and N is equal to 22, and k is equal to 24.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) For a better understanding of the embodiments, reference is made to the accompanying drawings, which are incorporated herein by reference and in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
(14) A block diagram of a conventional FIR filter 100 is shown in
(15) The input signal samples x(n) and the coefficients h.sub.k are multi-bit values. The multiplication performed by multipliers no in conventional FIR filters is a major source of power dissipation. Further, the power dissipation increases as the number of filter taps in the FIR filter increases.
(16) Conventional polyphase decimation filters for decimation by k include k subfilters. In the polyphase subfilters, a set of k successive input samples is convolved with sets of k coefficients, each coefficient taken from one of the k subfilters, in calculation of an output. The sets of coefficients are as follows: First set: h[0], . . . , h[k2], h[k1] Second set: h[k], . . . , h[2k2], h[2k1] and Third set: h[Mkk+1], . . . , h[Mk2], h[Mk1],
(17) where k is the decimation factor and M is the number of subfilters.
(18) The partial response to one set of inputs is combined with the response to subsequent sets of inputs until the set of input samples is shifted out of the filter. This fact can be exploited to build a filter structure in which computation can be carried out in independent circuits which are multiplier accumulators. The proposed polyphase decimation FIR filter architecture uses M independent multiplier accumulator circuits operating concurrently on input samples x(n), where M is the number of filter taps T in the filter divided by the decimation factor k.
(19) A schematic block diagram of a decimation FIR filter apparatus in accordance with embodiments is shown in
(20) The integrator circuit 210 receives an input word of P bits and provides an output of N bits to FIR filter circuit 220. The polyphase FIR filter circuit 220 provides an output of N bits, where N is greater than P. The FIR filter apparatus 200 performs decimation by a decimation factor k. As discussed below, the decimation factor k may be programmable.
(21) The FIR filter apparatus 200 of
(22) An implementation of the FIR filter apparatus 200 is shown in
(23) The differential coefficient method is described with reference to
(24) An implementation of integrator circuit 210 in accordance with embodiments is shown in
(25) Each of the stages 410, 412 and 414 includes a summing unit 420 and a register 424, which, in the example of
(26) A schematic block diagram of FIR filter circuit 220 in accordance with embodiments is shown in
(27) Each of the MAC circuits 510, 512, . . . 520 receives integrated input samples x.sub.i(n) from integrator circuit 210 at a first input and receives filter coefficient values derived as a difference of the original coefficient at a second input. The values are multiplied and accumulated as described below. Each of the MAC circuits 510, 512, . . . 520 performs multiply and accumulate operations for k input cycles using sets of k coefficients. After every k input cycles, the coefficients of the MAC are changed, but the MAC circuits continue accumulating the results. One of the MAC circuits is selected for producing an output value y(m) after every k input cycles. Thereafter, that MAC circuit is reset and starts accumulating results from a next set of samples and a next set of coefficients. The sets of coefficients applied to each MAC circuit and the MAC circuit selected for output change in a cyclic manner. The selection of coefficients to be applied to each of the MAC circuits and the MAC circuit selected for output are controlled by the controller 540.
(28) The FIR filter circuit 220 may include M MAC circuits, where M is based on the number of filter taps T in a particular FIR filter and the decimation factor k. In particular, the number M of MAC circuits in the FIR filter circuit 220 may be the number of filter taps T divided by the decimation factor k, rounded to the next higher integer if necessary.
(29) As shown in
(30) During each period of k input cycles, the integrated input samples xi(n) are multiplied in each MAC circuit by the respective coefficient values in a convolution operation. Thus, for example in MAC circuit 510 integrated input sample xi(o) is multiplied by coefficient ho, input sample xi(1) is multiplied by coefficient h1, etc., and the results are accumulated. After each period of k input cycles, the sets of coefficients applied to each MAC circuit are changed, as indicated by the second and following rows of coefficients in
(31) A schematic block diagram of a multiplier accumulator circuit 510 in accordance with embodiments is shown in
(32) The MCM circuit 610 provides multiple outputs corresponding to the data input value multiplied by several coefficient values. The data selector 620 selects an appropriate output of the MCM circuit 610 to be provided to accumulator 630. The accumulator 630 includes a summing unit 640 and a register 650. The summing unit 640 sums the value from data selector 620 with the value contained in register 650 and stores the new value in register 650, thereby performing accumulation of the values.
(33) A schematic block diagram of multiplier accumulator circuit 510 in accordance with additional embodiments is shown in
(34) As indicated above, the decimation factor k of the polyphase FIR filter circuit may be programmable. The decimation factor k may be programmed by operating the FIR filter circuit with different coefficient values corresponding to different decimation factors. The decimation factor may be selected by an input signal to controller 540. The controller 540 then controls the MCM circuit 610 of
(35) The polyphase FIR circuit can be implemented using the implementations of the multiplier accumulator circuits described herein and using many other implementations. The polyphase FIR filter circuit can be implemented in transpose or direct form, a transpose implementation being described herein. However, the polyphase FIR filter circuit is not limited to the disclosed implementations.
(36) A flowchart of a process performed by the polyphase FIR filter circuit of
(37) In act 810, coefficient sets are applied to respective MAC circuits 510, 512, . . . 520. With reference to
(38) In act 830, a determination is made as to whether results have been accumulated for k input cycles. As indicated, processing for each input cycle includes multiplying the integrated input sample x.sub.i(n) by the coefficient value and accumulating the result. If it is determined in act 830 that results have not been accumulated for k input cycles, the process returns to act 820 to process the next integrated input sample.
(39) If it is determined in act 830 that results have been accumulated for k input cycles, an output value y(m) is provided from a selected MAC circuit. In particular, the output selector 530 selects one of the MAC circuits 510, 512, . . . 520 to provide an output value.
(40) In act 850, the controller 540 selects next coefficient sets to be applied to MAC circuits 510, 512, . . . 520. For example, the coefficient sets in the second row of
(41) In act 860, the controller 540 resets the current MAC circuit which has been selected to provide an output value and then selects a next MAC circuit to provide an output value after the next k input cycles. The process then returns to act 820 and integrated input samples are multiplied by coefficient values and accumulated as described above.
(42) A table providing synthesis results for an example filter is shown in
(43)
(44) Having thus described at least one illustrative embodiment of the invention, various alterations, modifications and improvements will readily occur to those skilled in the art. Such alterations, modifications, and improvements are intended to be part of this disclosure, and are intended to be within the spirit and the scope of the present invention. Accordingly, the foregoing description is by way of example only and is not intended to be limiting. The present invention is limited only as defined in the following claims and the equivalents thereto.