Low-power pulse-shaping digital filters
AssigneePentomics, Inc.
InventorsAlan N. Willson, Jr., Larry S. Wasserman
Life of this patent
Estimating the term…
Abstract
A method, apparatus, article of manufacture, and a memory structure for low power digital processing is disclosed. Tap values are modified by one or more factors to increase computational efficiency and a bias factor used to compensate for changes in the processor output response that result from the modification of the tap values.
Claims42
A method of processing a series of mapped input data values {x0, x1, . . . , xN−1}, comprising the steps of:
- (a) successively storing and processing, in a digital processor, each of the mapped input values to create tap values {t0, t1, . . . , tN−1};
- (b) processing, in the digital processor, each of the tap values {t0, t1, . . . , tN−1} to produce {At0h0, At1h1, . . . , AtN−1hN−1} wherein values {h0, h1, . . . , hN−} are weight values selected to achieve the desired device response and A is a constant;
- (c) computing, in the digital processor, a sum of values {At0h0, At1h1, . . . , AtN−1hN−1} to produce ∑ k = 0 N - 1 At k h k ;
- and
- (d) biasing, in the digital processor, the sum ∑ k = 0 N - 1 A t k h k
- to produce an output value.
A method of computing a response of a digital device by implementing a sum of a series of mapped and weighted input values, comprising the steps of:
- modifying, in a digital processor, the weight of the mapped and weighted input values;
- and
- biasing, in the digital processor, the sum of the series of mapped and weighted input values.
An apparatus for computing a response of a digital device by implementing a sum of a series of mapped and weighted input values, comprising:
- means for modifying the weight of the mapped and weighted input values;
- and
- means for biasing the sum of the series of mapped and weighted input values.
A program storage device, readable by a computer, tangibly embodying one or more programs of instructions executable by the computer to perform method steps of processing an input data stream {x0, x1, . . . , xN−1}, the method steps comprising the steps of:
- (a) successively storing and mapping each of the mapped input values to create tap values {t0, t1, . . . , tN−1};
- (b) processing each of the tap values {t0, t1, . . . , tN−1} to produce {At0h0, At1h1, . . . , AtN−1hN−1} wherein values {h0, h1, . . . , hN−1} are weight values selected to achieve a desired device response and A is a constant;
- (c) computing a sum of the values {At0h0, At1h1, . . . , AtN−1hN−1} to produce ∑ k = 0 N - 1 At k h k ;
- and
- (d) biasing the sum ∑ k = 0 N - 1 A t k h k
- to produce an output value.
A method of processing a series of mapped input data values {x0, x1, . . . , xN−1} by a digital device, comprising the steps of:
- (a) successively storing and mapping, in a digital processor, each of the input values to create tap values {t0, t1, t2, . . . , tN−3, tN−2, tN−1} associated with tap weights {h0, h1, h2, . . . , hN−3, hN−2, hN−1}, wherein the tap weights comprise one or more tap weight pairs {hi−1, hN−i} defined according to a relationship selected from the group comprising hi−1=hN−i and hi−1=−hN−i for i=1, 2, 3, . . . , N/2 when N is even and i=1, 2, 3, . . . , (N+1)/2 when N is odd, and wherein each tap weight pair {hi−1, hN−i} is associated with a tap value pair {ti−1, tN−i};
- (b) determining, in the digital processor, a state for each tap value pair {ti−1, tN−i};
- (c) selectively determining, in the digital processor, values representing the product of the tap values and the tap weights modified according to the tap weight pair state;
- (d) summing, in the digital processor, the selectively determined tap values;
- (e) determining, in the digital processor, a tap weight pair majority case;
- (f) biasing, in the digital processor, the summed values in accordance with the tap weight pair majority case.
A method performed by a digital filter for processing a series of Q mapped input data values zi where i=0, 1, . . . , Q−1, comprising the steps of:
- (a) setting j=0;
- (b) taking N values xk=zk+j where k=0, 1, . . . , N−1 and N≦Q;
- (c) selecting a set of constants Ak where k=0, 1, . . . , N−1;
- (d) computing a tap value sN−1=x0AN−1hN−1 where AN−1 is a constant and hN−1 is a weight value;
- (e) computing tap values sk=xN−1−kAkhk+tk with tk=sk+1 and with a bias value being added to one of the sk+1 values, for k=N−2, N−3, . . . 0, where Ak are constants and hk are weight values;
- (f) using s0 as an output value;
- and
- (g) repeating steps (b) through (f) for j=1, 2, . . . , Q−N.
A method of processing a series of mapped input data values {x0, x1, . . . , xN−1}, comprising the steps of:
- (a) successively mapping, in a digital processor, each of the mapped input values to create tap values {t0, t1, . . . , tN−1};
- (b) processing, in the digital processor, each of the tap values {t0, t1, . . . , tN−1} to produce {A0t0h0, A1t1h1, . . . , AN−1tN−1hN−1} wherein values {h0, h1, . . . , hn−1} are weight values selected to achieve desired device response and {A0, A1, . . . , AN−1} are constant factors;
- (c) computing, in the digital processor, a sum of the values {A0t0h0, . . . , AN−1tN−1hN−1} to produce ∑ k = 0 N - 1 A k t k h k ;
- and
- (d) biasing, in the digital processor, the sum ∑ k = 0 N - 1 A k t k h k
- to produce an output value.
A method of processing a series of mapped input data values {x0, x1, . . . , xN−1} comprising the steps of:
- (a) successively mapping, in a digital processor, each of the mapped input values to create a set of tap values {t0, t1, . . . , tN−1};
- (b) processing, in the digital processor, each member of a P-element subset, of the set of tap values {t0, t1, . . . , tN−1}, wherein 0≦P≦N, to produce a subset of the set {At0h0, At1h1, . . . , AtN−1hN−1} wherein values {h0, h1, . . . , hN−1} are weight values selected to achieve a desired device response, and A is a factor selected to improve computational efficiency of the digital device;
- (c) computing, in the digital processor, the sum of the P values of the subset, with the sum being zero when P=0;
- and
- (d) biasing, in the digital processor, the sum of the P values of the subset to produce an output value.
An apparatus for processing a series of mapped input data values {x0, x1, . . . , xN−1}, comprising:
- (a) means for successively mapping each of the mapped input values {x0, x1, . . . , xN−1} to create tap values {t0, t1, . . . , tN−1};
- (b) means for processing each of the tap values {t0, t1, . . . , tN−1} to produce {A0t0h0, A1t1h1, . . . , AN−1tN−1hN−1} wherein values {h0, h1, . . . , hN−1} are weight values selected to achieve a desired apparatus response and {A0, A1, . . . , AN−1} are constant factors;
- (c) means for computing the sum of the values {A0t0h0, A1t1h1, . . . , AN−1tN−1h1−1} to produce ∑ k = 0 N - 1 A k t k h k ;
- and
- (d) means for biasing the sum ∑ k = 0 N - 1 A k t k h k
- to produce an output value.
A method by which a digital device computes a response, comprising the steps of:
- computing, in a digital processor, the sum of a series of mapped and weighted input values, wherein the weight of the mapped input values is selected to improve computational efficiency, and
- biasing the sum of the series of mapped and weighted input values, in the digital processor, to compensate for the selection of the weight of the mapped input values.
In a digital filter having an input and output relationship describable by a transfer function H(z), a method of computing an output sequence {y(n)} for an input sequence {x(n)} and for constants A and B, comprising:
- modifying the filter such that the transfer function is A×H(z);
- modifying the input sequence {x(n)} by replacing each x(n) input sample by 1/A×(x(n)+B);
- applying the modified input sequence to the modified filter to produce a modified filter response;
- and
- subtracting a constant B×H(1) from at least one sample value of the modified filter response.
In a digital filter having an input and output relationship describable by a transfer function H(z), a method of computing an output sequence {y(n)} for an input sequence {x(n)} and for constants A and B, comprising:
- modifying the filter such that the transfer function is A×H(z);
- modifying the input sequence {x(n)} by replacing each x(n) input sample by 1/A×(x(n)+B);
- applying the modified input sequence to the modified filter to produce a modified filter response;
- and
- adding a constant −B×H(1) to at least one sample value of the modified filter response.
Dependencies are inferred from the claim text.