Techniques related to a digital filter include at least one decimator disposed between an integrator section and a comb section such that the transfer function of the filter has split zeros. The resulting filter implementation employs considerable less silicon real estate than other prior art implementations with spread zeros, and has more design flexibility with improved resulting performance than the Hogenauer implementation.
|
15. A digital filter comprising:
a comb section;
a decimator connected to the comb section; and
an integrator section connected to the decimator, wherein a transfer function of the filter has split zeros.
14. A digital filter comprising:
an integrator section;
a decimator connected to the output of the integrator section; and
a comb section connected to the decimator, wherein a transfer function of the filter has split zeros.
1. A digital filter comprising:
a filter input terminal;
a first plurality of integrators, connected in series to the filter input;
a second plurality of parallel decimators, each connected to the output of the first plurality of integrators; and
a third plurality of combs, each comb having an adder input, a delay element input and a comb output; and
a filter output terminal in data communication with comb outputs of the third plurality of combs,
wherein connections among the third plurality of combs, the second plurality of parallel decimators, the first plurality of integrators and the filter output terminal are configured to provide a transfer function of a digital filter, with at least one zero spaced from an other zero, between signals on the input terminal and signals at the output terminal.
12. A method for manufacturing a digital filter, the method comprising:
providing for a zero-delay decimator sampling an input series at a time of a sub-sample of an output series, the sub-sample of the output series corresponding to an output frequency;
providing for an offset decimator sampling the input series at times not sampled by the zero-delay decimator;
providing for a plurality of single-delay combs, each single-delay comb having a single delay element; and
connecting the zero-delay decimator to an adder of at least one single-delay comb of the second plurality of single delay combs, and
connecting the offset decimator to a single-delay element of at least one of the second plurality of single-delay combs,
wherein the offset decimator is connected to the input series in parallel with the zero-delay decimator, and the filter has a zero at a split frequency different than the output frequency.
13. An analog to digital conversion chip comprising:
an analog input;
a modulator connected to the analog input to convert analog voltages to a stream of digital bits on a modulator output
a digital filter connected to the modulator output, the filter configured to provide a particular transfer function for the stream of digital bits;
a communications bus connected to the digital filter and the modulator;
a clock generator connected to the communications bus;
output control logic connected to the communications bus;
wherein the digital filter includes
a filter input terminal connected to the modulator output,
a first plurality of integrators, connected in series to the filter input,
a second plurality of parallel decimators, each connected to the output of the first plurality of integrators,
a third plurality of combs, each comb having an adder input, a delay element input and a comb output, and
a filter output terminal in data communication with the second plurality of parallel decimators and comb outputs of the third plurality of combs; and
wherein connections among the third plurality of combs, the second plurality of parallel decimators and the filter output terminal are configured to provide the particular transfer function.
2. The digital filter of
3. The digital filter of
4. The digital filter of
5. The digital filter of
6. The digital filter of
7. The digital filter of
the transfer function is of order N;
N is greater than 1;
a number of the first plurality of integrators is equal to N; and
every signal path from a decimator of the second plurality of decimators to the filter output encounters no more than N combs.
8. The digital filter of
9. The digital filter of
10. The digital filter of
the transfer function has less than a certain number of zeros at any frequency; and
the certain number is in a range from 2 to N.
11. The digital filter of
the transfer function has one zero substantially at one power line frequency, and another zero substantially at another power line frequency.
|
The invention relates to digital filters, and more particularly to flexibly positioning N zeros of a digital SincN filter with a minimal use of extra registers.
Techniques for sampling an analog signal, converting the sampled signal to digital and processing that signal using digital techniques are known in the art. An example of an analog signal source is that provided by a measurement sensor, such as a thermocouple. The sampled analog signal is converted to digital. Conversion to digital may produce a digital stream of one or more bits. Typically, the analog signal is sampled at one rate, the sampling frequency (fS), while the digital output is needed at a different rate, the output word rate (OWR).
Filters for doing such processing, such as finite impulse response (FIR) filters and FIR Sinc filters, are known. Digital filters such as Sinc filters can be implemented using digital circuits for performing a variety of mathematical operations. Some FIR filters use tables of coefficients for multiplying digital values and performing additions. Multipliers are known which use 2's complement addition to perform multiplication. However, such multipliers require a fair amount of power, machine cycles and silicon real estate to implement.
Certain cascaded integrator comb (CIC) filters described in an article by Eugene B. Hogenauer, entitled “AN ECONOMICAL CLASS OF DIGITAL FILTERS FOR DECIMATION AND INTERPOLATION,” published in IEEE Transactions on Acoustics, Speech and Signal Processing, Volume ASSP-29, No. 2, Apr. 1981, incorporated herein in its entirety by reference (Hogenauer filter), perform the filtering without coefficient multiplication. N integrators, N combs and a subsampling switch comprise an Nth order Hogenauer Sinc filter denoted by SincN The N integrators operate at a high sampling rate, fS, and the N combs operate at a low sampling rate (the subsampling rate) fSS.
The frequency response of a Hogenauer filter depends on the order N of the Sinc filter, a differential delay M, and the integer rate change factor R. The Hogenauer filters produce a frequency response characterized by an equation or a polynomial expression of the equation with roots (also called “zeros”) where attenuation of signals is very strong. R, M, and N are chosen to provide acceptable passband characteristics over the frequency range from zero to a predetermined cutoff frequency, fC, expressed relative to the low sampling rate fSS.
The Hogenauer article, cited above, notes some problems encountered with these filters. One disadvantage is that the frequency response is fully determined by only three integer parameters, resulting in a limited range of filter characteristics. For example, the Hogenauer filter of order N always superimposes all zeros at a frequency f0 (and integral multiples of f0) where f0 is defined as:
This wastes the potential to strongly attenuate other frequencies in the vicinity of the frequency f0.
What is needed are techniques that enable greater freedom in the placement of zeros than allowed by Hogenauer filters, and techniques to tailor the passband characteristics as described without employing the multipliers and large number of registers that greatly increase the use of silicon real estate in other digital filters.
A new architecture for implementing SincN filters is introduced, based on the Hogenauer architecture, which permits arbitrary zero placement. Zero splitting is achieved by observing the data dependencies in the comb section of a baseline filter, and subsequently translating them into a new architecture that can be implemented in hardware with a small cost in chip size or implemented in software in a digital signal processor with small cost in computation. The architecture retains the inherent flexibility and conceptual simplicity of the Hogenauer SincN architecture. Since zero splitting generally requires additional sampling of integrator section output, the filter is usually somewhat larger than the corresponding Hogenauer filters without split zeros.
An advantage of the filters of the present invention is a considerable increase in the design options available to the filter designers. Splitting the zeros may also be used to reduce the noise that gets aliased back into the passband. Splitting the zeros also allows selective simultaneous attenuation of power line frequencies, such as 50 Hz and 60 Hz. Because of the large power associated with these line frequencies, they often cause introduction of “noise” into electronic equipment. Placing filter zeros at one or more of these frequencies can significantly reduce noise of the unwanted line frequency and increase the SNR of a device. Simultaneous rejection of both 50 Hz and 60 Hz by the same filter is desirable so that the same filter can be used in different regions of the world without changes. Similarly simultaneous attenuation of other frequencies is possible.
According to the invention, methods, products, systems and techniques related to the digital filter include at least one decimator disposed between an integrator section and a comb section such that the transfer function of the filter has split zeros. The resulting filter implementation employs considerable less silicon real estate than other prior art implementations with spread zeros, and has better SNR characteristics than the Hogenauer implementation.
The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements and in which:
A method and apparatus is described for spreading zeros from a Hogenauer SincN filter to flexibly control filter response without a large increase in the number of registers needed and the corresponding cost in silicon real estate. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.
Digital filters play an important role in many applications. For example, in analog to digital conversion (ADC), analog signals are converted to digital data streams at some high sampling rate fS and digital values are output as words at an output word rate (OWR). The OWR may be the same as, greater than, or less than the sampling rate fS.
A variety of designs can be used for the digital filter 130. Many are well known in the art. Some filters use coefficients and multipliers to achieve the desired frequency response. The Hogenauer filters require no multipliers, and use limited storage thereby leading to more economical hardware implementations. They are designated cascaded integrators-comb (CIC) filters because their structure consists of an integrator section operating at a high rate and a comb section operating at a low rate.
where Equation 1 is the system function expressed in terms of the z transform well known in the art. The hardware elements of each integrator stage consists of an adder 202 and a one-time-step-delay element 212 in a feedback loop, indicated by the backwards pointing arrow, into a single-step delay element 212. The expression z−1 is the z transform representation for a one-time-step delay; it may be implemented in hardware by a register recording the last value placed there. The comb section operates at the low sampling rate fS, of decimator 230, where fSS=fS/R, and R is the integer rate change factor. This section consists of N comb stages with a differential delay of M timesamples per stage, represented by the expression z−M in multiple delay element 222. In hardware a z−M delay element is often composed of M registers. The value of M can be kept small by the decimator 230 disposed between the integrator section and the comb section that allows the comb section to operate at the lower frequency. The fSS decimator 230 is represented by an open switch that is closed once per subsample interval. The transfer function for a single comb stage referenced to the high sampling rate is given in Equation 2.
HC(z)=1−z−RM (2)
It follows from Equations 1 and 2 that the system transfer function for the composite filter referenced to the high sampling rate fS, is given by Equation 3.
It is implicit from the last form of this system function that the CIC filter is functionally equivalent to a cascade of N uniform FIR filter stages, each FIR filter stage with a transfer function of (1−z−RM)/(1−z−1).
The structure for the CIC interpolation filter is presented in FIG. 2B. Here the N stage comb section precedes the N stage integrator section. In this interpolation case, the switch 230 causes a rate increase by a factor R by inserting R−1 zero value samples between consecutive samples of the comb section output.
Hogenauer gives a hardware example of a filter using four-bit integrators and four-bit combs that uses twos complement arithmetic. The four-bit integrator is illustrated in
The system response given by Equation 3 indicates that the values of frequency that produce a zero in the numerator, and therefore which provide maximum attenuation of input frequencies, are all N-order zeros. Placing multiple zeros at the same frequency concentrates the attenuation at that frequency and wastes the potential for zeroing out or strongly attenuating several other frequencies. In general, a polynomial of order N can have up to N different zeros. The Hogenauer filters do not provide a means for spreading or splitting out the potential N zeros of the system response. As will explained below, the present invention modifies the structure of the Hogenauer filters so that any or all zeros can be split and spread to other frequencies.
Hardware Overview
The integrator, decimators and combs used in the present invention can be implemented in any of the ways known in the art. For illustration purposes, the present invention will be described in terms of certain embodiments which are used by way of example and not by way of limitation. In the following, the basic elements of the filters utilizing the techniques of the present invention will be the k-bit integrator 350 illustrated in
Consider the filter of FIG. 5A. It is not a Hogenauer filter; the decimator 530 is placed after the comb stages 560. This is also a third order filter designated Sinc3 filter 500. It has an input at an input terminal 502 and output at an output terminal 504. Each of the three integrator stages is composed of the k-bit integrator 350 of FIG. 3. Assume for this example that the integrator rate change factor, R, is “64” and M is “1.” Because the decimator 530 is after the comb stages, the delay elements 567 must introduce a 64-cycle delay represented by the expression z−64. Note that the multiply by −1 in the comb stages is represented by the factor −1 on the arrow connecting the delay element to the adder 202. This represents the function of the multiply by −1 element (not shown). This filter has the same response as a Hogenauer filter using a single cycle delay and a decimator switch disposed between the integrator stages and the comb stages, where the switch is closed once on the 64th cycle of the sampling frequency fS. This filter has 3 roots at the fSS of fS/64.
The system response of the Sinc3 filter 510 of
Though the filter 510 of
Filter Design Method
According to one embodiment of the present invention, a baseline filter with N stages of integrators followed by N stages of combs followed by a decimator is used as a base for designing a digital filter with a minimal number of registers and split zeros.
The new filter is designed to include between the integrator section and the comb section a set of decimators in parallel, each sampling the output from the integrator section (herein also called the input to the comb section, or, simply, input) at different offsets in time. Thus the design method includes providing a decimator at the original subsampling frequency, fSS in step 694 and providing one or more decimators at times offset from the first decimator, or periods different than the first decimator, or both. The output from the parallel decimators are combined in the comb section as dictated during the tracing back step. In the embodiments described below, only single-time-step delay elements that require one register are used. In general, however, longer delays in the comb, requiring multiple registers, might also be used. The design method therefore includes a step 696 for providing a plurality of short-delay combs and a step 697 connecting the decimators to the combs with total delays equivalent to those recorded during the trace-back step.
Examples of the Design Method
The design method embodiment outlined above in general terms will become more clear to those skilled in the art by way of the following three examples.
The first example designs a new Sinc3 filter where R is 16 and the split frequencies correspond to a sampling of 18 cycles and 14 cycles. For example, where fS is 8192 Hz, as in the sample ADC chip 100, an R of 16 yields an fSS of 512 Hz. The 18 cycles sampling corresponds to a frequency of about 455 Hz, (a frequency offset of −57 Hz and a time delay of two more time units), and 14 cycles sampling corresponds to a frequency of about 585 Hz (a frequency offset of +73 Hz and a delay of two fewer time units). The delays are symmetrically distributed around R, but the frequencies are not exactly symmetric. In the time domain, measured in number of sampling cycles, fSS corresponds to the integer factor fS/R. In other embodiments the delays need not be symmetrically distributed around R. But asymmetric distribution of delays generally leads to more complex traces and usually requires that more samples be retained.
The data dependency of outputs of C1, C2 and C3 from baseline filter 600 without split zeroes and baseline filter 610 with split zeros are also shown for a few traces through the dependency charts in
In
The first comb stage of Sinc3 filter 600 combines the present time output from the previous stage, in this case, the input from column 706, with the negative of the value from 16 cycles earlier in time. For example, following the arrows, at row 739 of
On the next row, when time is 17 cycles, the value in C1 is the input in column 706 on the same row minus the input value at time cycle 1 which is “1.” This combination yields a value of “153−1” which is “152.” This process continues to fill C1 at all subsequent times.
The next column represents the output from the second comb stage of filter 600. Arrows are used to illustrate the next combination. The relationship between the present row and the row 16 cycles earlier is analogous to the relationship shown with the arrows for the first comb stage. Looking at row 749 corresponding to time 32 cycles, the value at C2 “256” is equal to the present value at Cl “392” minus the value of C1 at time 16 cycles before, in row 739, which is “136.” Therefore, the value at C2, as represented by column 702, at time 32 in row 749 equals “392−136”=“256.”
Similarly, each value of C3 in column 703 is the difference between the output at C2 on the same row and the output on C2 from 16 cycles earlier. Thus a value for C1, C2 and C3 can be established for all times. The C3 values are desired only at the fSS which is once every 16th cycle; therefore, the output decimates the value of C3 by an R factor of 16. The decimated output occurs at rows 729, 739 and 749 outlined in bold horizontal bars. The arrows show all the combinations that contribute to the output in column 709 at time 48 cycles, in row 769.
Because the output is needed at these discreet separated times, all the intervening calculations need not be performed, and all other inputs not used in these outputs can be dropped. Here the only inputs in column 706 needed are the ones at the same times as the decimated output. Hence, it turns out that the decimation can be moved to the beginning of the comb section, i.e., after I3 and before the first comb stage. The only values needed are those at time 0 cycles, 16 cycles and 32 cycles, which are found in rows 729, 739 and 749, respectively, and so on, every 16 cycles.
For the Sinc3 filter 610 of
Tracing backwards from the output of the second stage C2 in column 712, using the arrows, the inputs (in column 706) needed can be identified. They are marked by the double walled boxes.
The second stage, 670 of filter 610, has a delay factor of 14; and so the value in C2 depends upon the value of C1 on the same row 749 and the value on a row 758 only 14 cycles before. This dependence is shown by the two arrows connecting the ellipses with values of 423 and 252 in row 749 and the arrow connecting the oval with the value of 171 in row 758 to the oval with the value of 252 in row 749. The values inside the ellipses will be explained subsequently, when the traces are followed in the forward direction.
Now consider the values at C1 in column 711. The first stage 680 of filter 610 has a delay factor of 18; and so a value in C1 depends upon the value in column 706 on the same row and a value in a row 18 cycles earlier in time. Looking first at the ellipse containing value “423” on row 749 at time 32 cycles, the value at C1 in column 711 depends on the difference between value “528” on the same row in column 706 and the value “105” in column 706 but on the row 18 cycles before. Continuing by tracing the origins of the value for C1 required in row 758 at time 18 cycles; it can be seen to depend on the input “171” in column 706 from the same row 758 and from the row 18 cycles before, i.e., row 729 at time 0 cycles. Thus C1 on row 758 is given by “171”-“0” which is “171.” Note that because of the symmetry in deviating the delays in the first and second combs, the delay offsets are the same size (2 cycles) but in opposite directions. After traversing the first two combs, the needed inputs are back in sync with the output every 16 cycles. For example, the arrows connect time 0 cycles in column 706 to time 18 cycles at C1 to time 32 cycles at C2.
For the split zero filter 610 to output a value at time 48 cycles, a C2 value is needed at time 32 cycles. Looking at the arrows, it can be seen to get a C2 value at time 32 cycles, a value is needed of C1 at 32 cycles and at 18 cycles. The value of C1 at 18 cycles requires an input from column 706 at 18 cycles and one at 0 cycles. By following all the arrows needed for the output at time 48 cycles, it can be seen that the input (col 706) to the comb section is needed at least at 0, 14, 16 18, 30, 32, 34 and 48 cycles. By continuing the tracebacks from other outputs, it can be seen that input (col 706) is needed at the output time (multiple of R) and at times 2 cycles before and 2 cycles after this time. That is, inputs (706) to the comb section are needed at times of −2, 0, 2, 14, 16, 18, 30, 32, 34 cycles, etc.
The paths established while tracing backwards from the output to identify the input to the comb stage that must be sampled, also gives the combinations required to move forward from the input from I3 in column 706 to the output of the three comb stages in column 713. Until the comb stages can be completely connected,
Referring again to the data dependencies represented by the arrows in
This connection is shown as delay element 891 in
The remainder of the connections in the circuit of
The resulting hardware can be evaluated in terms of its complexity using a measure of the complexity of the comb stage. This is because the integrator stage is unchanged in all these embodiments. A Hogenauer adjusted complexity coefficient (HACK) can be defined as the number of adder and register pairs required in the implementation divided by the nominal number of adder and register pairs in a Hogenauer filter of the same order. In the example just described and illustrated in
As another example of the method and resulting apparatus, aSinc4 filter is designed with simultaneous rejection of 50 Hz and 60 Hz line frequencies. A data dependency graph was developed for a baseline Sinc4 filter having two zeros at one frequency (such as 50 Hz) and two zeros at another frequency (such as 60 Hz). By assuming fS is about 870 Hz and fSS is about 54 Hz, R is 16. If two roots are placed at a frequency corresponding to a time interval of 16+2 and two roots are placed symmetrically at a frequency corresponding to a time interval of 16−2, then the roots actually occur at frequencies of about 48 Hz and 62 Hz, respectively. (This simple example was chosen to keep the R manageably small to serve as an illustration. At a higher sampling frequency, fS, and a higher value for R, such as the sample ADC chip 100 which has an fS value of 8192 Hz and an R of 153, roots can be placed closer to 50 and 60 Hz than in the simple example. Example 3 describes the case of the sample ADC.)
The complexity of this circuit design is given by a HACK value of 10/4, i.e. 2.5. Even at 2.5 times the size of a Hogenauer filter, the Sinc4 filter 1000 still represents substantial size reduction compared to the chains of 18 register delays needed in modified baseline filter 910 depicted in FIG. 9. It is also to be noted that a HACK value of 2.5 does not necessarily mean that 2.5 times as many components would be used—portions of the circuit can be easily time multiplexed. For example, in the comb section shown in
A data dependency graph was generated for another baseline circuit (not shown) which is a Sinc4 filter having four separate zeros with time delays symmetrically distributed around fSS. The zeros for this example were fSS−β′, fSS−α′, fSS+α and fSS+β, corresponding to time delays of b, a, −a and −b, respectively. In this example, fS is 8192 Hz. To achieve at least 80 dB attenuation from 47 to 63 Hz, R was 153 (for an OWR of 53.54 Hz), a was 9 cycles and b was 20 cycles. This places zeros at 47.35 Hz, 50.57 Hz, 56.89 Hz, and 61.59 Hz, much closer to the line frequencies of 50 and 60 Hz than previous examples. The resulting filter circuit 1100 is shown FIG. 11.
Referring to
In the case of filter 1100, the HACK value is 3 (=12/4). The Sinc4 filter 1100 of
Computer system 1200 may be coupled via bus 1202 to a display 1212, such as a cathode ray tube (CRT), for displaying information to a computer user. An input device 1214, including alphanumeric and other keys, is coupled to bus 1202 for communicating information and command selections to processor 1204. Another type of user input device is cursor control 1216, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 1204 and for controlling cursor movement on display 1212. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
The invention is related to the use of computer system 1200 for designing digital filters with split zeros. According to one embodiment of the invention, a filter design with split zeros is provided by computer system 1200 in response to processor 1204 executing one or more sequences of one or more instructions contained in main memory 1206. Such instructions may be read into main memory 1206 from another computer-readable medium, such as storage device 1210. Execution of the sequences of instructions contained in main memory 1206 causes processor 1204 to perform the method steps described above. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
The term “computer-readable medium” as used herein refers to any medium that participates in providing instructions to processor 1204 for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 1210. Volatile media includes dynamic memory, such as main memory 1206. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 1202. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.
Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punchcards, papertape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to processor 1204 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 1200 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 1202. Bus 1202 carries the data to main memory 1206, from which processor 1204 retrieves and executes the instructions. The instructions received by main memory 1206 may optionally be stored on storage device 1210 either before or after execution by processor 1204.
Computer system 1200 also includes a communication interface 1218 coupled to bus 1202. Communication interface 1218 provides a two-way data communication coupling to a network link 1220 that is connected to a local network 1222. For example, communication interface 1218 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 1218 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 1218 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
Network link 1220 typically provides data communication through one or more networks to other data devices. For example, network link 1220 may provide a connection through local network 1222 to a host computer 1224 or to data equipment operated by an Internet Service Provider (ISP) 1226. ISP 1226 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” 1228. Local network 1222 and Internet 1228 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 1220 and through communication interface 1218, which carry the digital data to and from computer system 1200, are exemplary forms of carrier waves transporting the information.
Computer system 1200 can send messages and receive data, including program code, through the network(s), network link 1220 and communication interface 1218. In the Internet example, a server 1230 might transmit a requested code for an application program through Internet 1228, ISP 1226, local network 1222 and communication interface 1218. In accordance with the invention, one such downloaded application provides for filter comb stage connections as described herein.
The received code may be executed by processor 1204 as it is received, and/or stored in storage device 1210, or other non-volatile storage for later execution. In this manner, computer system 1200 may obtain application code in the form of a carrier wave.
The computer program products described above can be used both to design the filter and to implement a digital signal processor. The resulting filter can be implemented in hardware using fewer registers and therefore less silicon real estate. The DSP implementation would be smaller than one used to do the same thing with a FIR as per the prior art.
In the foregoing specification, the invention has been described with reference to specific embodiments thereof. The specification and drawings are, however, to be regarded in an illustrative rather than a restrictive sense. It will be evident to one of ordinary skill in the art that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention which is defined by the appended claims and their equivalents.
Patent | Priority | Assignee | Title |
10050606, | Dec 17 2014 | STMICROELECTRONICS INTERNATIONAL N V | Decimation FIR filters and methods |
10050607, | Dec 17 2014 | STMICROELECTRONICS INTERNATIONAL N V | Polyphase decimation FIR filters and methods |
7062241, | Sep 14 2000 | Intel Corporation | Signal processor and method for the system-independent digital evaluation of mobile communications reception signals of various mobile phone standards |
7529788, | Oct 21 2002 | NSC CO , LTD | Digital filter design method and device, digital filter design program, and digital filter |
7552157, | Oct 01 2001 | Institut Franco-Allemand de Recherches de Saint-Louis | Broad-dynamic filtering procedure for a recursive digital filter installed in a signal processor (DSP) operating with integers |
7788309, | Apr 04 2006 | Analog Devices, Inc. | Interleaved comb and integrator filter structures |
Patent | Priority | Assignee | Title |
5262970, | Sep 18 1990 | Naxos Data LLC | Digital filter and multi-channel decimator |
6161118, | Jun 12 1998 | CSR TECHNOLOGY INC | Digital comb filter having a cascaded integrator stage with adjustable gain |
6317765, | Sep 16 1998 | Cirrus Logic, INC | Sinc filter with selective decimation ratios |
6321246, | Sep 16 1998 | Cirrus Logic, INC | Linear phase FIR sinc filter with multiplexing |
6408318, | Apr 05 1999 | SONIC INNOVATIONS, INC | Multiple stage decimation filter |
6470365, | Aug 23 1999 | Google Technology Holdings LLC | Method and architecture for complex datapath decimation and channel filtering |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Dec 13 1999 | NANDA, KIRTIK | Cirrus Logic, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010476 | /0006 | |
Dec 13 1999 | KASHA, DAN | Cirrus Logic, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010476 | /0006 | |
Dec 20 1999 | Cirrus Logic, Inc. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Sep 22 2008 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Sep 24 2012 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Sep 22 2016 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Mar 22 2008 | 4 years fee payment window open |
Sep 22 2008 | 6 months grace period start (w surcharge) |
Mar 22 2009 | patent expiry (for year 4) |
Mar 22 2011 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 22 2012 | 8 years fee payment window open |
Sep 22 2012 | 6 months grace period start (w surcharge) |
Mar 22 2013 | patent expiry (for year 8) |
Mar 22 2015 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 22 2016 | 12 years fee payment window open |
Sep 22 2016 | 6 months grace period start (w surcharge) |
Mar 22 2017 | patent expiry (for year 12) |
Mar 22 2019 | 2 years to revive unintentionally abandoned end. (for year 12) |