Recursive difference filter realization of digital filters
10250416 ยท 2019-04-02
Assignee
Inventors
Cpc classification
International classification
Abstract
According to an aspect of the present disclosure, a method comprises computing first set of coefficients of a digital filter providing first filter performance, computing a second set of coefficients from the first set of coefficients, forming a difference digital filter with second set of coefficients to produce a difference filter output and adding a compensation factor to the difference filter output to achieve a second performance identical to the first filter performance. According to another aspect, the second set of coefficients are computed as difference between the successive first set of coefficients such that when the first set of coefficients comprises N number of coefficients, the second set of coefficients comprises N1 number of coefficients. The method further comprises computing first set of coefficients according to a first relation, computing the second set of coefficients according to a second relation, generating the difference filter output in accordance with a third relation, computing a compensation factor in accordance with a fourth relation and generating a filtered output samples from a set of input samples in accordance with a fifth relation.
Claims
1. A method of filtering a digital signal with a first filter performance comprising: determining a first set of coefficients that provide the first filter performance; computing a second set of coefficients from the first set of coefficients; providing the digital signal to a difference filter with second set of coefficients to produce a difference filter output; and adding a compensation factor to the difference filter output to generate a filtered output of the digital signal with a second filter performance identical to the first filter performance.
2. The method of claim 1, wherein second set of coefficients are formed as difference between the successive first set of coefficients such that when the first set of coefficients comprises N number of coefficients, the second set of coefficients comprises N1 number of coefficients.
3. The method of claim 1, wherein second set of coefficients are formed as difference between the non successive first set of coefficients such that when the first set of coefficients comprises N number of coefficients, the second set of coefficients comprises N1 number of coefficients.
4. The method of claim 1, further comprising: computing first set of coefficients according to a first relation; computing the second set of coefficients according to a second relation; generating the difference filter output in accordance with a third relation; computing a compensation factor in accordance with a fourth relation; and generating a filtered output samples from a set of input samples in accordance with a fifth relation.
5. The method of claim 4, wherein: the first relation is y[n]=E.sub.l=0.sup.Lb.sub.0[l]x[n1], in that the b.sub.0 [l] representing first set of coefficients, y[n] is the digital filter output with first filter performance, and x[nl] representing the delayed input samples; the second relation is; b.sub.1[l]=b.sub.0[l]b.sub.0[l1] for every l=1 to L, in that the b.sub.1[l] representing the second set of coefficients, b.sub.0 [l] and b.sub.0 [l1] representing the successive first set of coefficients; the third relation is; y.sub.1[n]=.sub.q=0.sup.L1(b.sub.1[q]) X[nq1], in that y1[n] representing the difference filter output; the fourth relation is CF[n]=b.sub.0[0]x[n]+b.sub.0 [L]x[n(L+1)]+y[n1] in that CF[n] representing the compensation parameter; and the fifth relation is
y[n]=y[n1]+b.sub.0[0]x[n]+b.sub.0[L]x[n(L+1)]+.sub.q=0.sup.L1(b.sub.1[q]) x[nq1], in that the y[n] representing the filtered output with second performance and x[n] representing the input samples.
6. The method of claim 4, wherein, the first relation is y[n]=x[n].sub.k=1.sup.K a[k]y[nk] in that the a[k] representing first set of coefficients, y[n] is the digital filter output with first filter performance, and x[n] representing the input samples; the second relation is a.sub.1[q]=a[q+2]a[q+1] for every q=0 to K2, in that the a.sub.1[q] representing the second set of coefficients, a.sub.0[q+2] and a.sub.0[q+1] representing the successive first set of coefficients; the third relation is y.sub.1[n]=.sub.q=0.sup.K2(a.sub.1[q]) y[n2q], in that in that y1[n] representing the difference filter output; the fourth relation is
CF[n]=x[n]x[n1]a[l]y[n1]+a[K]y[n(K+1)]+y[n1] in that CF[n] representing the compensation parameter; and a filtered output with second performance follows the relation
y[n]=(x[n]x[n1])a[l]y[n1]+a[K]y[n(K+1)]+y[n1].sub.q=0.sup.K2(a.sub.1[q]) y[n2q], in that the y[n] representing the filtered output with second performance and x[n] representing the input samples.
7. The method of claim 1, further comprising; determining a third set of coefficients from the second set of coefficient; computing a second level compensation factor from the first and the second set of coefficients; forming a second level difference digital filter with third set of coefficients to produce a second level difference filter output; and adding the second level compensation factor to the second level difference filter output to achieve a third performance identical to the first filter performance, wherein the first set of coefficients comprises N number of coefficients, the second set of coefficients comprises N1 number of coefficients and the third set of coefficients comprises N2 number of coefficients.
8. A signal conditioning device for filtering a digital signal to provide a filtered output with a first filtering performance requiring a first set of coefficients ranging over first range value comprising: a first difference filter operative to provide a first difference filter output wherein, the first difference filter incorporating a second set of filter coefficients derived from the first set of filter coefficients wherein the second set of filter coefficients ranging over a second range value lesser than the first range value; a first compensation factor generator operative to generate a first compensation factor; and an adder operative to add the first difference filter output, the first compensation factor, and the filtered output delayed by a unit time to provide the filtered output without using the first set of filter coefficients.
9. The signal conditioning device of claim 8, wherein the first difference filter comprising L numbers of taps and the difference filter implemented to according to a relation y.sub.1[n]=.sub.q=0.sup.L1(b.sub.1[q]) X[nq1], in that y.sub.1[n] representing the first difference filter output, b.sub.1[q] representing a first set of L tap coefficients, X[nq1] representing the digital signal delayed by the corresponding q1 unit time and the operation within the summation indicating the multiplication operation.
10. The signal conditioning device of claim 8, wherein the first difference filter comprising K1 numbers of taps and the difference filter implemented to according to a relation y.sub.1[n]=.sub.q=0.sup.K2(a.sub.1[q]) y[n2q], in that y.sub.1[n] representing the first difference filter output, a.sub.1[q] representing a first set of K1 tap coefficients, y[n2q] representing the filtered output signal delayed by corresponding n2q unit time and operation within the summation indicating the multiplication operation.
11. The signal conditioning device of claim 9, wherein the a first compensation factor is equal to b.sub.0[0]x[n]+b.sub.0[L]x[n(L+1)], in that x[n] representing the digital signal, x[n(L+1)] representing digital signal delayed by corresponding L+1 unit time, b.sub.0[L] and b.sub.0[0] respectively representing first constant and a second constant providing a first filter performance.
12. The signal conditioning device of claim 10, wherein the a first compensation factor is equal to x[n]x[n1]a[l]y[n1]+a[K]y[n(K+1)]+y[n1], in that x[n] representing the digital signal, x[n] and x[n1)] representing the digital signal and the digital signal delayed by unit time, y[n(K+1)] and y[n1] representing the filtered output delayed by K+1 units time and one unit time, and a[l] and a[K] respectively representing a first constant and a second constant providing a first filter performance.
13. A signal conditioning device of claim 8, further comprising a second difference filter to provide a second difference filter output and a second compensation factor generator to generate a second compensation factor, wherein the adder is operative to add the first difference filter output, second difference filter output, the first compensation factor, the second compensation factor.
14. The signal conditioning device of claim 13, wherein the first difference filter comprising L numbers of taps and the difference filter implemented to according to a relation y.sub.1[n]=.sub.q=0.sup.L1(b.sub.1[q]) X[nq1], in that y.sub.1[n] representing the first difference filter output, b.sub.1[q] representing a first set of L tap coefficients, X[nq1] representing the digital signal delayed by the corresponding q1 unit time, and the second difference filter comprising K1 numbers of taps and the second difference filter implemented according to a relation y.sub.1[n]=.sub.q=0.sup.K2(a.sub.1[q]) y[n2q], in that y.sub.1[n] representing the second difference filter output, a.sub.1[q] representing a second set of K1 tap coefficients, y[n2q] representing the filtered output signal delayed by corresponding n2q unit time and the operation within the summation indicating the multiplication operation.
15. A method of implementing a digital filter with a performance of an N tap Finite Impulse Response (FIR) filter comprising: determining a set of first coefficients corresponding to an N taps of the FIR filter, wherein each of the first coefficient is represented with first number of bits; finding the difference between the successive first coefficients of the N taps to form N1 difference coefficients, wherein each of the N1 difference coefficients is represented with the second number of bits that is less than the first number of bits; Implementing N1 taps FIR filter with N1 difference coefficients to provide difference filter output; adding a first compensation factor to the difference filter output.
16. The method of claim 15, further comprising: finding the difference between the successive N1 difference coefficients of to form N2 difference coefficients, wherein each the N2 difference coefficients is represented with a third number of bits that is less than the second number of bits; Implementing N2 taps FIR filter with N2 difference coefficients to provide the difference filter output; adding a second compensation factor to the difference filter output.
Description
BRIEF DESCRIPTION OF DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
DETAILED DESCRIPTION OF THE PREFERRED EXAMPLES
(15)
(16) The data source 110 provides data in digital form for signal processing and conditioning. For example, the data source may be representing a receiver front end circuitry receiving wireless signal through known protocol like Wi-Fi, Bluetooth, 4G, GSM, RF, Near Field Communication for example. Alternately, the Data source may also represent a circuitry converting analog signal to digital samples like Analog to Digital Convertor (ADC) converting voice/audio into sequence of binary digits.
(17) The data receiver 130 receives conditioned or (processed) data bits from the signal conditioner 120 for further processing. For example, the data receiver 130 may comprise a transmitter section to transmit the data over wireless network, a receiver circuitry to decode the data stream and extract information for example.
(18) The signal conditioner 120 performs signal conditioning operation and provides the conditioned data on path 123. The conditioned data on path 123 enable the data receiver 130 to perform desired operation on the sequence of data from the data source 110. For example, the signal conditioner may perform amplification, filter operation, level shifting operation, buffer, impedance matching, down conversion of frequency, up conversion of frequency, for example.
(19) In one embodiment, the signal conditioner 120 performs filter operations such as low pass filter, band pass filter, high pass filter for example, to pass a desired frequency signal and stop other frequency signals. In that, the filters are designed to perform operation on the sequence of the binary digits representing the samples of information and provide the sequence of binary digits with removal of undesired information. The manner in which the signal conditioner 120 may be implemented with the reduced complexity is further described below by first describing conventional filter operations.
(20)
(21)
(22) In that, the term b[/] represents the coefficients of multiplier 220A through 220L for l taking value of 0 to L. The Notation represent the summing unit 230 and the term x[nl] represents the output from the delay unit 210A through 210L. As is known in the art, the FIR filter 201 is commonly referred to as L Tap FIR filter or (L1) order FIR filter. Each tap implements a multiplier to multiply coefficient b[l] with the corresponding delayed input data x[nl].
(23)
(24)
(25)
(26) In that, the term a[k] represents the coefficients of multiplier 320A through 320K for K taking value of 1 to K. The notation represent the summing unit 350 and the term y[nk] represents the output from the delay unit 310A through 310K.
(27) Similarly,
(28)
(29) As may be seen, each filter implementation comprises multiplication operation multiplying the tapped [delayed] input sequence with at least one of the multiplication coefficients b[l] and a[k]. Thus, requiring at least L or K numbers of multiplication operations. Often implementation of the filters (multipliers) is complex in terms of hardware, computation intensiveness and power consumption. In one prior technique, the complexity of implementation is reduced by choosing fixed coefficients. In one conventional implementation, canonical signed digit (CSD) representations are used in that, the multiplier is implemented using shift and add technique. In another conventional technique, the complexity is reduced by sharing resources such as multiplier by overlooking and reusing. In that, one multiplier is reused after one fetch or after read operation from the memory.
(30)
(31) In block 520, a set of difference coefficients representing difference between the adjacent coefficients (adjacent taps) are computed. For example, the difference coefficients may be computed by finding the difference between the b[0] and b[1], b[1] and b[2] so on.
(32) In block 530, implementing a difference filter using the difference coefficients to generate a difference filter output y.sub.1[n]. For example, the difference coefficients are multiplied with the corresponding tapped (delayed) input sequence and added to form a difference filter output.
(33) In block 540, a compensation factor is computed for obtaining the desired filter characteristic of relation (1) through (3).
(34) In block 550, a filter output is generated by adding difference filter output y.sub.1[n] to the compensation factor. In one embodiment the filter output y[n] is generated by relation: y[n]=y.sub.1[n]+CF[n]. In that, CF[n] represent compensation factor.
(35) Due to computation of the difference between the conventional coefficients, the difference coefficients, may be represented with fewer number of bits as against the a[k] or b[l], thereby reducing the complexity of multiplication in terms of computational power or hardware requirement while maintaining the performance of the filter on par with conventional filter of K or L tap with a[k] or b[l] coefficients. The manner in which each discrete filter may be implemented in example embodiments is further described below.
(36)
y[n]=.sub.l=0.sup.Lb.sub.0[l]x[n1], in that L is the order of the conventional FIR(4)
(37) In the embodiment, in block 610, coefficients b.sub.0[l] of L order (L+1 tap) FIR filter are computed for a desired performance or filter characteristic.
(38) In block 620, the difference coefficients b.sub.1[l] representing difference between the adjacent coefficients (adjacent taps) are computed. The deference coefficients b.sub.1[l] may be determined in an embodiment by relation:
b.sub.1[l]=b.sub.0[l]b.sub.0[l1] for every l=1 to L.(5)
(39) In block 630, an L1 (order) or L tap difference FIR filter is implemented using the coefficients b.sub.1[l]. In one embodiment the L tap difference FIR filter may be implemented using relation:
(40)
(41) In block 640, a compensation factor is computed. In one embodiment the compensation factor is determined using relation:
CF[n]=b.sub.0[0]x[n]+b.sub.0[L]x[n(L+1)]+y[n1](7)
(42) In block 650, the filter output is generated by adding the L tap difference FIR filter output y.sub.1[n] to the compensation factor. In one embodiment the filter output y[n] is generated by relation y[n]=y.sub.1[n]+CF[n]. The filter operation in the embodiment may be may be represented as:
(43)
(44) Due to computation of the difference, the coefficients b.sub.1[l], may be represented with fewer number of bits as against the b.sub.0[l] thereby reducing the complexity of multiplication in terms of computational power or hardware requirement while maintaining the performance of the filter on par with L order FIR filter with coefficients b.sub.0[l] of relation (4). The relation (8) may be represented in frequency domain (for example, by taking Z-transform on both sides) as:
(45)
(46)
(47)
(48) The delay elements 810A through 810N generate sequence of samples that are delayed by a factor. In one embodiment delay elements 810A through 810N provides x[n(L+1)] from x[n] there by providing an overall delay of [L+1] in accordance with the relation (8).
(49) The first order difference filter 820 multiplies the input samples x[n] with the corresponding difference coefficients. In one embodiment, the first order difference filter 820 together with the difference delay element 825 provides .sub.q=0.sup.L1(b.sub.1[q]) x[nq1] in the relation (8) by multiplying the input sample x[n] with corresponding coefficient value b.sub.1[q]. In that, the bold lettered b.sub.1[q] represents vector of b.sub.1[0], b.sub.1[1], b.sub.1[2], . . . b.sub.1[L1].
(50) The multiplier 830 multiply delayed input samples with the coefficient to generate a component of the compensation factor. In one embodiment, the multiplier 830 multiply delayed sample x[n(L+1)] with compensation factor b.sub.0[L] and provides the component b.sub.0[L]x[n(L+1)] in relation (7).
(51) Similarly, the multiplier 850 provides the component in the compensation factor. In one embodiment the multiplier 850 provides b.sub.0[0]x[n] in the relation (7). The feedback delay element 860 provides the delayed output sequence. In one embodiment, the feedback delay element 860 provides y[n1] in relation (8).
(52) The adder 840 adds the components provided by the elements 810, 830, 850 and 860 to form filter output. In one embodiment, the adder adds the components .sub.q=0.sup.L1(b.sub.1[q]) x[nq1], y[n1], b.sub.0[L]x[n(L+1)] and b.sub.0[0]x[n] to form the filter output y[n] in accordance with the relation (8).
(53)
Compensation Factor=b.sub.0[0]x[n]+b.sub.0[L]x[n(L+1)](9)
(54) The feedback delay element 830 provides y[n1] delayed (by unit time) output of the filter 801. The adder 880 performs summation operation and generates the filter output in accordance with the relation (8) for example, adds the output of the difference FIR filter 810, output of delay element 830, and output of the factor generator 840 to provide the filter output in an embodiment.
(55)
(56)
y[n]=s[n].sub.k=1.sup.Ka[k]y[nk], in that K is the order of the conventional IIR.(10)
(57) In the embodiment, in block 1010, coefficients a[k] of K order IIR filter are computed for a desired performance or filter characteristic.
(58) In block 1020, the difference coefficients a.sub.1[q] representing difference between the adjacent coefficients (adjacent taps) are computed. The deference coefficients a.sub.1[q] may be determined in an embodiment by relation:
a.sub.1[q]=a[q+2]a[q+1] for every q=0 to K2.(11)
(59) In block 1030, a difference IIR filter is implemented using the coefficients a.sub.1[q]. In one embodiment the difference IIR filter may be implemented using relation;
(60)
(61) In block 1040, a compensation factor is computed. In one embodiment the compensation factor is determined using relation:
CF[n]=x[n]x[n1]a[1]y[n1]+a[K]y[n(K+1)]+y[n1](13)
(62) In block 1050, the filter output is generated by subtracting the difference IIR filter output y.sub.1[n] from the compensation factor. In one embodiment the filter output y[n] is generated by relation y[n]=CF[n]y.sub.1[n]. The filter operation in the embodiment may be may be represented as:
(63)
(64) Due to computation of the difference, the coefficients a.sub.1[k], may be represented with fewer number of bits as against the a[k] thereby reducing the complexity of multiplication in terms of computational power or hardware requirement while maintaining the performance of the filter on par with Conventional IIR filter with coefficients a[k] of relation (10). The relation (14) may be represented in frequency domain (for example, by taking Z-transform on both sides) as:
(65)
in that, .sub.1 represents the filter coefficients without a.sub.0.
(66) Similarly, the conventional ARMA filter 501 may be implemented with reduced hardware and processing complexity. In one embodiment, the FIR part and IIR part of the conventional ARMA filter may be implemented by relation 8 and 14 respectively to reduce the computational complexity. In one embodiment, the Filter implementation may be represented as:
(67)
(68) Thus, one can see that the conventional ARMA filter can be implemented using the individual difference filter for the MA and AR portion (510 and 520) which results in bit-width savings of the multiplier and adder and hence complexity. The relation (15) may be represented in frequency domain (for example, by taking Z-transform on both sides) as:
(69)
(70) In one embodiment, the precision of the accumulator (1z.sup.1) is enhanced to maintain the stability of the filter. The manner in which the difference FIR filter may be recursively deployed is described in further detail below.
(71)
(72) The
Second Compensation Factor=b.sub.1[0]X[n]+b.sub.1[L1]X[nL](7)
(73) The second level adder output is provided to the first level adder 1130.
(74) The second level difference FIR filter 1150 is implemented using coefficients b.sub.2[k]. The coefficients b.sub.2[k] are derived as difference between the adjacent coefficients b.sub.1[k]. Thus, the coefficients b.sub.2[k] may be represents with lesser number of bits compared to the coefficients b.sub.1[k], thereby, further reducing the complexity.
(75) The second level difference FIR filter 1150 is of N2 taps while the first level difference FIR filter is of N1 taps. As a result, the number of taps remains same at each level of recursion. Thus, the latency is maintained as in the N tap FIR filter.
(76) The use of difference FIR filter for implementing a FIR filter of desired performance, the number of bits required to store coefficients is reduced at each level. Further the use of difference FIR filter for implementing a FIR filter of desired performance maintain symmetry and anti-symmetry at all level thus ensuring the linear phase. Further, the difference FIR filter may be deployed along with or on top of other conventional complexity reduction techniques such as CSD representation for example, for further reduction. The difference FIR filter may be implemented for fixed coefficients and the programmable coefficients.
(77) While various embodiments of the present disclosure have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of the present disclosure should not be limited by any of the above-discussed embodiments, but should be defined only in accordance with the following claims and their equivalents.