# US 8,751,554 B2 · Systems and methods for an adjustable filter engine

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,751,554 B2
- Document ID: US8751554B2
- Status: Granted
- Kind: B2
- Application number: 12/767,405
- Filed: 2010-04-26
- Published: 2011-10-27
- Granted: 2014-06-10
- Earliest claimed: 2010-04-26
- Assignees: Aptina Imaging Corporation
- Applicants: Chihsin Wu
- Inventors: Chihsin Wu
- Web page: https://patentgrep.com/patent/US8751554B2

## CPC

- H03H 21/0012: {Digital adaptive filters}
- H03H 17/0294: {Variable filters; Programmable filters}
- H03H: IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS (waveguides, resonators, lines or other devices of the waveguide type H01P)

## Abstract

Systems and methods are provided for an adjustable filter engine. In particular, an electronic system is provided that can include a focus module, memory, and control circuitry. In some embodiments, the focus module can include an adjustable filter engine and a motor. By using the adjustable filter engine to generate a filter with a large number of filter coefficients, the control circuitry can accommodate a variety of system characteristics. For example, by generating a set of cumulative coefficients and re-arranging the order of the cumulative coefficients, the control circuitry can reduce the bit-width requirements of the adjustable filter engine hardware. For instance, the control circuitry can reduce the number of multipliers required to perform a convolution between an updated filter and one or more input signals. In some embodiments, the updated filter can be generated to reduce oscillations of the motor movement due to a new position request.

## Claims

### Claim 1

A method of generating an updated filter, the method comprising:
receiving a set of filter coefficients;
generating a set of cumulative coefficients from the set of filter coefficients, each element of which corresponding to an accumulation of one or more coefficients of said set of filter co-efficients;
storing the set of cumulative coefficients in a memory included in an electronic device;
adjusting at least one parameter associated with the set;
accessing one or more cumulative coefficients of the set based at least in part on the at least one parameter; and
generating an updated filter based on the one or more cumulative coefficients, by at least one of selectively accessing and rearranging the order of ones of said stored cumulative coefficients.

### Claim 2 (depends on 1)

The method of claim 1, wherein the memory is a static random access memory (“SRAM”).

### Claim 3 (depends on 1)

The method of claim 1, wherein the generating the set of cumulative coefficients is performed according to:
C={Ci|Ci=Σck, iε{1, . . . , N−1}}, for k=0 to i=N−1−i
where C is the set of cumulative coefficients, ck is the set of filter coefficients, and N is the number of coefficients of the original filter.

### Claim 4 (depends on 1)

The method of claim 1, wherein the programming further comprises reversing an ordering of the set of cumulative coefficients.

### Claim 5 (depends on 1)

The method of claim 1, wherein the programming further comprising programming a number of cumulative coefficients of the set of cumulative coefficients into a register of the memory.

### Claim 6 (depends on 1)

The method of claim 1, wherein the adjusting comprises adjusting one or more filter characteristics based on one or more system characteristics.

### Claim 7 (depends on 1)

The method of claim 1, wherein the adjusting comprises: determining a preferred settling time of a step response of the adjusted filter; and adjusting a number of cumulative coefficients of the set of cumulative coefficients based at least in part on the preferred settling time.

### Claim 8 (depends on 1)

The method of claim 1, wherein the adjusting comprises programming the at least one parameter into a register of an adjustable filter engine.

### Claim 9 (depends on 1)

The method of claim 1, wherein the adjusting further comprises: determining a sampling period of the set of cumulative coefficients in the memory based at least in part on a system clock rate and a sampling rate of the original filter; and programming the sampling period into a register of the memory.

### Claim 10 (depends on 1)

The method of claim 1, wherein the at least one parameter comprises at least one of a sampling period, a start address, a step size, and a number of cumulative coefficients.

### Claim 11

A system for generating an updated filter, comprising:
a memory comprising at least one register provided in an electronic device; and
control circuitry, wherein the control circuitry is operative to:
receive a set of filter coefficients;
generate a set of cumulative coefficients from the set of filter coefficients, each element of which corresponding to an accumulation of one or more coefficients of said set of filter coefficients;
store the set of cumulative coefficients in the memory;
adjust at least one parameter associated with the set;
access one or more cumulative coefficients of the set based at least in part on the at least one parameter; and
generate an updated filter based on the one or more cumulative coefficients, by at least one of selectively accessing and rearranging the order of ones of said stored cumulative coefficients.

### Claim 12 (depends on 11)

The system of claim 11, wherein the memory is a static random access memory (“SRAM”).

### Claim 13 (depends on 11)

The system of claim 11, wherein said generate a set of cumulative coefficients is performed according to:
C={Ci|Ci=Σck, iε{1, . . . , N−1}}, for k=0 to i=N−1−i
where C is the set of cumulative coefficients, ck is the set of filter coefficients, and N is the number of coefficients of the original filter.

### Claim 14 (depends on 11)

The system of claim 11, wherein said programming further comprises reversing an ordering of the set of cumulative coefficients.

### Claim 15 (depends on 11)

The system of claim 11, wherein said programming further comprises programming a number of cumulative coefficients of the set of cumulative coefficients into a register of the memory.

### Claim 16 (depends on 11)

The system of claim 11, wherein said adjust at least one parameter comprises adjusting one or more filter characteristics based on one or more system characteristics.

### Claim 17 (depends on 11)

The system of claim 11, wherein said adjust at least one parameter comprises: determining a preferred settling time of a step response of the adjusted filter; and
adjusting a number of cumulative coefficients of the set of cumulative coefficients based at least in part on the preferred settling time.

### Claim 18 (depends on 11)

The system of claim 11, wherein said adjust at least one parameter comprises programming the at least one parameter into a register of an adjustable filter engine.

### Claim 19 (depends on 11)

The system of claim 11, wherein said adjust at least one parameter further comprises:
determining a sampling period of the set of cumulative coefficients in the memory based at least in part on a system clock rate and a sampling rate of the original filter; and
programming the sampling period into a register of the memory.

### Claim 20 (depends on 11)

The system of claim 11, wherein the at least one parameter comprises at least one of a sampling period, a start address, a step size, and a number of cumulative coefficients.

### Claim 21 (depends on 11)

The system of claim 11, wherein said memory and control circuitry are integrated in a semiconductor chip.
