US5548542A - Half-band filter and method - Google Patents

Half-band filter and method Download PDF

Info

Publication number
US5548542A
US5548542A US08/304,433 US30443394A US5548542A US 5548542 A US5548542 A US 5548542A US 30443394 A US30443394 A US 30443394A US 5548542 A US5548542 A US 5548542A
Authority
US
United States
Prior art keywords
filter
sub
multiplier
coupled
arm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US08/304,433
Inventor
Cindy C. Rauth
Perry W. Frogge
David H. Damerow
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intersil Corp
Original Assignee
Harris Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Harris Corp filed Critical Harris Corp
Priority to US08/304,433 priority Critical patent/US5548542A/en
Priority to US08/462,684 priority patent/US5574671A/en
Application granted granted Critical
Publication of US5548542A publication Critical patent/US5548542A/en
Assigned to INTERSIL CORPORATION reassignment INTERSIL CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HARRIS CORPORATION
Assigned to CREDIT SUISSE FIRST BOSTON, AS COLLATERAL AGENT reassignment CREDIT SUISSE FIRST BOSTON, AS COLLATERAL AGENT SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: INTERSIL CORPORATION
Assigned to MORGAN STANLEY & CO. INCORPORATED reassignment MORGAN STANLEY & CO. INCORPORATED SECURITY AGREEMENT Assignors: D2AUDIO CORPORATION, ELANTEC SEMICONDUCTOR, INC., INTERSIL AMERICAS INC., INTERSIL COMMUNICATIONS, INC., INTERSIL CORPORATION, KENET, INC., PLANET ATE, INC., QUELLAN, INC., TECHWELL, INC., ZILKER LABS, INC.
Assigned to INTERSIL CORPORATION reassignment INTERSIL CORPORATION RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: CREDIT SUISSE FIRST BOSTON
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/06Non-recursive filters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow
    • G06F7/49921Saturation, i.e. clipping the result to a minimum or maximum value
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H19/00Networks using time-varying elements, e.g. N-path filters

Definitions

  • the present invention relates to electronic devices, and, more particularly, to semiconductor circuits and methods useful for filtering digital data streams.
  • FDM frequency division multiplexing
  • each source modulates its carrier frequency with its information signal and keeps within its allocated frequency band.
  • Extraction of a desired information signal from a received broadband of simultaneous broadcasts may be performed by mixing down (down conversion by the selected carrier frequency) followed by lowpass filtering and demodulation as schematically illustrated by system 100 in FIG. 1.
  • system 100 receives radio frequency signals (e.g., 100-200 MHz) at antenna 102, filters and mixes the signals down to intermediate frequencies (e.g., 1-10 MHz) with a wideband tuner 104, converts from analog to digital format with sampling analog-to-digital converter 106, extracts the selected frequency band (e.g., of width 5 KHz) with digital down converter 108 which performs the down conversion and filtering, and demodulates and reconstructs an analog information signal with demodulator/processor 110.
  • radio frequency signals e.g., 100-200 MHz
  • intermediate frequencies e.g., 1-10 MHz
  • digital down converter 108 which performs the down conversion and filtering
  • analog-to-digital converter 106 will sample at 20 MHz or more (at least the Nyquist rate), and digital down converter 108 will output a 5 KHz selected band at a sampling rate of 10 KHz. That is, digital down converter 108 may decrease the sampling rate due to the small bandwidth of its output without loss of information.
  • the problems of construction of system 100 include realizing digital down converter 108 operating at a high sampling frequency while maintaining a low ripple sharp cutoff filter which has programmable down conversion frequency and programmable bandwidth.
  • Known realizations of a down conversion function include the combination of a numerically controlled oscillator/modulator (NCOM) such as the HSP45106 manufactured by Harris Corporation together with two decimating lowpass digital filters (one for the in-phase and one for the quadrature outputs of the NCOM) such as the HSP43220 also manufactured by Harris Corporation.
  • NCOM numerically controlled oscillator/modulator
  • a lowpass decimating filter having a decimation rate R which may be factored as
  • the filter may be realized as M cascaded independent lowpass decimation filters with the jth filter having decimation rate R j .
  • This multistage approach may greatly reduce the number of computations required to perform the filtering. Indeed, the first stages in a multistage filter need not have narrow transition bands because the transition band of the last stage will essentially determine the overall transition band. Further, the early stages decimate the sampling rate so the latter stages operate at a much lower sampling frequency.
  • Multistage filters may be effectively designed with stages of half-band filters.
  • a lowpass digital FIR filter with optimal (equiripple) design and with symmetry about ⁇ /2 is called a half-band filter. That is, a half-band filter has a transfer function Fourier transform as shown in FIG. 2a with passband and stopband of equal width.
  • Half-band filters have about one half of their filter coefficients equal to zero, so the filter computations include only about one half as many multiplications as a usual FIR filter.
  • Half-band filters may appropriately be used only for decimation or interpolation of sampling rate by a factor of 2 and when aliasing to the final transition band is permitted. See FIG. 2b illustrating the aliasing of a decimation by 2 half-band filter.
  • multistage filters with powers of 2 decimation or interpolation profitably employ cascaded half-band filters.
  • Crochiere and Rabiner, Multirate Digital Signal Processing provides general information regarding signal processing using sampling rate changes.
  • Hogenauer, An Economical Class of Digital Filters for Decimation and Interpolation, 29 IEEE Tr.Ac.Sp.Sig.Proc. 155 (1981) discloses decimation filters made of an integrator section followed by comb section operating a low sampling rate.
  • the present invention provides a digital half-band filter with truncated multipliers and joint overflow and saturation compensating complementers.
  • the truncated multipliers reduce the amount of hardware, and the complementers permit full dynamic range
  • FIG. 1 illustrates a first application of a first preferred embodiment
  • FIGS. 2a-b show half-band filter characteristics
  • FIG. 3 is a functional block diagram of a first preferred embodiment half-band filter
  • FIG. 4 illustrates four modes of operation of the present invention
  • FIG. 5 illustrates an application of a preferred embodiment
  • FIGS. 6(A)-(F) illustrate the sequence of the filtering operation in the downconversion and decimation by two mode
  • FIGS. 7(A)-(G) illustrate the sequence of the filtering operation in the interpolate by two and upconversion mode
  • FIG. 8 illustrates in block form FIR filter
  • FIG. 9 shows a portion of a Wallace tree
  • FIG. 10 shows the re-coded coefficients
  • FIG. 11 lists the multiplicand locations within the Wallace trees
  • FIG. 12 shows the sign extension words
  • FIG. 13 illustrates the truncation decision
  • FIG. 14 is a schematic for saturation detection within rounding.
  • FIG. 3 is a functional block circuit diagram of a first preferred embodiment single chip digital half-band filter generally denoted by reference numeral 300, which includes the following blocks and items: 16-bit parallel port register 302 for input data samples Ain(15:0), 16-bit parallel port register 304 for input data samples Bin(15:0), multiplexer 306 for selecting between Ain and Bin input, 16-bit registers 312 and 314 for holding inputs, multipliers 322 and 324 for downconversion, local oscillator 326 for generating the sines and cosines for downconversion and upconversion, FIR filter odd arm 327 and even arm 328 for the lowpass half-band filtering, multipliers 332 and 334 for upconversion, adder 340 for combining signals in real output, rounders 342 and 344 for rounding to 16,14, 12, 11, 10, 9, or 8 bits, output registers 346 and 348, clock control 350, and control registers 352 for selecting mode of operation, rounding level, positive or negative frequency conversion, internal versus external multiplezing,
  • Filter 300 is a 67-Tap, 20-bit, fixed coefficient filter that has four basic modes of operation illustrated in FIG. 4: (1) decimation by two filtering of a real input signal; (2) interpolation by two filtering of a real input signal; (3) quadrature downconversion of a real I.F. signal with decimation by two filtering of the resulting I and Q channels; and (4) interpolation by two filtering of a complex baseband signal and quadrature upconversion to produce a real output signal.
  • the first two modes are useful for easing the requirements on the analog antialiasing filter used with a D/A converter or a A/D converter.
  • FIG. 5 shows an application of filter 300 with the NCOM and two DDFs.
  • the third mode listed above converts a real non-baseband signal to a baseband complex signal.
  • the complex sample stream will only have to clock at half the input sample rate. This allows an A/D converter clock at twice the clock rate that the NCOM and DDF can run, i.e. a 25 MHz NCOM and DDF could be used with a 50 MHz A/D and process a signal bandwidth of almost 25 MHz. See FIG. 6.
  • the fourth mode permits using the NCOM or HSP45216 (NCO16) as a modulator.
  • This mode converts the quadrature baseband output of the NCOM or NCO16 to twice the clock rate and shifts the center frequency to FCLK/4. (FCLK is the output clock rate.) This allows a 25 MHz NCOM or NCO16 to drive a 50 MHz D/A and get almost 25 Mhz of tuning range. See FIG. 7.
  • the filter response of half-band filter 300 has a shape factor, (Passband+Transition Band)/Passband of 1.24:1 with 90 dB alias free passband at 80% of Nyquist. There is less than 0.0005 dB of passband ripple. Due to characteristics of the half-band filter, half of the coefficients are zero (with the exception of the center tap). The center tap is effectively a delay and multiply of the input signal.
  • a programmable, symmetric rounding stage (rounders 342-344) with saturation logic is provided to select from 8 to 16 bits of output, depending on the user's application.
  • Outputs are available as Two's Complement or Offset Binary.
  • Half-band filter 300 is a 67-Tap, 20-bit, fixed coefficient filter.
  • the characteristics of a half-band filter are such that the coefficient set is symmetric with every even coefficient being zero, except for the center tap.
  • the filter is divided into even and odd arms of the filter. Since the even coefficients are all zero with the exception of the center tap, the even filter arm is effectively a delay and multiply.
  • the odd filter coefficients are in the top arm and the delay and multiply of the even center tap is in the lower arm of the filter.
  • the four basic modes of operation are selected by the Mode 0-1 pins:
  • 16-bit real data is input on Ain(15:0).
  • the incoming data samples are divided into odd and even samples.
  • the input samples come in at the fastest clock rate (CLK) and are multiplexed into odd and even samples at this rate.
  • CLK clock rate
  • the FIR section of the chip, and the output samples will run at the rate of CLK/2.
  • the odd samples of data are multiplexed through the top arm of the filter, and the even samples are multiplexed through the lower arm of the filter.
  • the two filter outputs are summed together to give one 16-bit output sample on Aout(15:0).
  • the following illustration shows the proper decimation by two filter response using a standard, 67-tap filter with coefficients c 1 , c 2 , . . . c 67 so the center tap corresponds to c 34 .
  • the filter forms the decimated-by-2 output stream Y 1 , Y 3 , Y 5 , . . .
  • decimated-by-2 output stream is
  • This mode will convert a real, non-baseband signal to a baseband complex signal, and decimate the resulting I and Q channels by two.
  • the incoming data samples are divided into odd and even samples.
  • the input samples come in at the fastest clock rate (CLK) and are multiplexed into odd and even samples at this rate.
  • CLK clock rate
  • Each of the odd and even samples pass through multipication by local oscillator (L.O.) 326 before going to the filter arms.
  • L.O. local oscillator
  • the FIR section of the chip, and the output samples will run at the rate of CLK/2.
  • the odd samples of data go through the odd arm 327 of the filter, and the even samples go through the even arm 328 of the filter.
  • the top and lower arms of the filter generate the resulting I and Q channels.
  • the local oscillator multipliers 322-324 can be reduced to (1, -1) multipliers since the even data never goes to the odd coefficients and vice versa for the odd data. This results in passing data on the positive one multiply, and taking the two's complement of the data when multiplying by negative one.
  • filter 300 to be implemented as true/complementer 322 providing alternating signs on the odd data which proceeds through the filter odd arm 327 and outputs as Aout(15:0), and true/complementer 324 providing alternating signs on the even data which proceeds through the filter even arm 328 (which is just delay and multiply by c 34 ) and outputs as Bout(15:0).
  • Down conversion and shifting towards positive infinity is accomplished by convolving the data spectrum with an impulse located at positive frequency F S /4. This impulse is derived from a vector rotating clockwise about the unit circle. Downconversion and shifting towards negative infinity is accomplished by convolving the data spectrum with an impulse located at negative frequency -F S /4. This impulse is the result of a vector rotating counter clockwise about the unit circle.
  • This mode converts the quadrature baseband output of the HSP45116 (NCOM) or HSP45106 (NCO16) to twice the clock rate and shifts the center frequency to FCLK/4 (FCLK is the output clock rate).
  • FCLK is the output clock rate.
  • complex data is input on Ain(15:0) and Bin(15:0) at the rate of CLK/2.
  • the data samples effectively have zeroes placed between them before being multiplied by the filter coefficients.
  • the output from the FIR section then pass through local oscillators which upconverts the signal to the frequency of FCLK/4.
  • the FIR section of the chip and the local oscillators will run at CLK/2.
  • Both of the local oscillators generate output samples which will be muxed out at Aout(15:0) at the rate of CLK.
  • the following illustration shows the proper interpolation and upconversion using a standard, 67-tap filter with coefficients c 1 , c 2 , . . . c 67 so the center tap corresponds to c 34 .
  • the interpolation 0's lead to the stream X 1 , 0, X 2 , 0, X 3 , . . . into the filter to form the interpolated-by-2 output stream Y 1 , Y 2 , Y 3 , . . .
  • Filter 300 is implemented by the odd samples proceeding through the odd arm and then given alternating signs by true/complementer 332 and then output as Aout, and the even samples given alternating signs by true/complementer 334 and also output as Aout interleaved with the odd samples.
  • the filter 300 expects to see the first (odd) piece of data on the following clock.
  • SYNC# can be pulsed low at the beginning or it can run off a divided clock. If running off of a divided clock, it is restricted to clock/4 for modes which use internal mux and either oscillator, and clock/2 for all other modes.
  • filter 300 will output data in Offset Binary Format. If FMT is low, the output data will be in Two's Complement Format.
  • Aout(15:0) and Bout(15:0) are three-state control output busses controlled by OEA# and the OEB# (active low). There are also three other input pins to control the outputs. RNDO-2 input pins provide rounding control and allow the user to select the number of output bits from eight to sixteen.
  • true/complementers 322, 324, 332, and 334 either pass data or invert and add 1 (two's complement).
  • a tree structure is used to maximize speed.
  • An alternative eliminates the incrementers and inserts the carry into the Wallace trees. There are several ways this could be done but they add complexity and do not give a clear hardware savings.
  • bit positions 2 33 through 2 17 (17 bits) will be selected from the output of the adder.
  • the bit positions refer to the Wallace tree bit positions. 2 35 was highest Wallace tree bit and 2 9 was lowest that was kept. Therefore, there were 27 bits of accuracy. Due to combinations of sums and carries in Wallace trees, filter 300 has a 23 bit full adder following the last Wallace tree. No rounding occurs in the bottom data path through the even arm when 16 bit outputs are chosen as there are only 16 bits of data.
  • the filter 300 outputs can be in 2's complement or offset binary format as selected by FMT.
  • FIG. 8 shows the functional architecture of the 67 tap FIR filter.
  • the multiplications of filter coeffidents by data samples is carried out by a hardware which adds partial products in Wallace trees. These partial products are generated by hardwired, Booth Type recoding of the filter coefficients. This recoding was used to reduce the number of partial products required.
  • Wallace tree summation first consider the multipication of a 16-bit multiplicand (the data sample) by a 20-bit multiplier (the filter coefficient). Written out, this product is seen to be the sum of easily-generated partial products.
  • each of the 20 partial products may be generated by merely shifting the multiplicand for a corresponding 1 in the multiplier and by putting in 0s for a corresponding 0 in the multiplier. That is, the multiplicand feeding a multiplexer array controlled by the multiplier can provide the shifting and zeroing to form the partial products. If the numbers are in two's complement format, then sign extension bits would be inserted to extend the leading 1's in negative partial products out to the sign bit position. The summing of the 20 partial products consumes the bulk of the multiplication time.
  • the summing of the partial products may be accelerated in two ways while keeping the hardware minimized: the summing may be done in a Wallace tree plus final adder (see FIG. 9) and the multiplier may be recoded to reduce the number of partial products by use of a Booth-type algorithm.
  • FIR odd arm 327 shown in FIG. 8 has both Wallace trees (the 12 rectangles with a ⁇ ) and recoding of the multipliers (filter coefficients).
  • the data samples are clocked in at the righthand portion of FIG. 8, and the hardwired recoded coefficients appear as the boxes with Xs with the corresponding coefficient noted as C1, . . . C17.
  • the 67 coefficients split into 34 odd coefficients and 33 even coefficients.
  • the even coefficients are all zero except the center tap, c 34 , which is equal to 2 18 and does not need a multiplier except for a shift by 18.
  • the 34 odd coefficients are symmetric, so there are only 17 independent coefficients, and these are the C1, . . . C17. Note both the top and bottom rows of coefficients to make up the total of 34.
  • a Wallace tree consists of an array of full adders which have three inputs (the two bits being added plus the carry in from the sum of lower order bits) and two outputs (the sum bit plus the carry out to higher order bits).
  • each layer of a Wallace tree roughly has 2/3 the number of terms of the previous layer.
  • FIG. 9 shows a portion of a Wallace tree for adding nine numbers called A, B, C, . . . H, and I with a subscript indicating the bit order.
  • the rectangles indicate full adders and the broken vertical lines group bits of the same order with the least significant bits on the right. Note that every carry out goes into the adjacent grouping to the left.
  • FIG. 9 after four levels the nine numbers have been added to form at most one sum bit and one carry bit in each bit position.
  • the regularity of the tree is apparent in the lefthand portion of FIG. 9.
  • the output of the final Wallace tree feeds a final adder as indicated by the output lines at the righthand edge of FIG. 8.
  • the even data is operated on only by the center coefficient c 34 . Because the center coefficient equals a power of two (2 18 ) there is no need for an actual multiplier. The data is delayed and the bit weighting changed. The final value for the number of pipeline delays depends on the delays in the odd FIR filter arm and the front end of filter 300.
  • the odd data enters odd arm 327 of the FIR filter which has 34 taps. At each tap the data is recoded into partial products which feed the Wallace trees. Where possible, the pipelines have been moved to minimize hardware. By moving a pipeline from the bottom to the top data path, the need for registering the sum and carrys is eliminated, a savings of almost 48 flops each time this is done. This was only done in cases where the resulting Wallace tree would be 6 levels or less.
  • the recoding of the 34 coefficients of odd arm 327 proceeded by a two step process: first a set of coefficients were derived by standard methods for a 67-tap half-band filter with a prescribed width and tolerance for the passband and stopband.
  • FIG. 10 shows the resulting set of coefficients together with their recodings (1 and -1 beneath each grouping of 1s). The total number of partial products reduces to 139 for all 67 taps.
  • a sign extension word was calculated for each different set of coefficients coming into each Wallace tree; see FIG. 11.
  • the letters A through R represent the 16-bit samples and show the Wallace tree levels to which the 17 different coefficient recodings place the corresponding multiplicand sample's bits.
  • c 1 equals 4 (relative to c 34 equal to 2 18 ) and this implies one partial product which arises from shifting the sample's bits two places; the sample's 16 bits are denoted by A 15 down to A 0 and are located under the 16 bit positions 2 17 through 2 2 .
  • c 3 equals -24 which recodes to -32+8 and generates two partial products for its corresponding multiplicand sample B with bits B 15 through B 0 entered twice, once shifted 3 bits and once (negated) shifted 5 bits. If the multiplicand sample were negative, then its leading bit would be a 1 and sign extension 1s would be needed.
  • the top lines in FIG. 15 illustrate how to handle this possibility: a sign extension word of 1s for A appears under 2 19 and extending to the left edge (2 31 is the maximum shown). Also, the bit equal to the complement of A 15 is entered under 2 18 and a carry bit 1 is also entered uner 2 18 .
  • filter 300 has the low bit weight positions in the Wallace trees truncated. This removes a portion of the Wallace tree hardware and simply disregards the corresponding bits which would have entered the truncated portions.
  • FIG. 13 shows the method used to determine location of the truncation in the Wallace trees. In particular, the columns add the number of bits under each power of 2 for each Wallace tree by adding the number of partial products plus the number of carry bits shown in FIG. 11. Accumulate the number of bits for a column by considering the carries from lower power of 2 columns, and this determines the maximum which could be disregarded. In particular, for the 2 8 column the total is 122.
  • the effects of this hardware truncation on the filter performance should be negligible in the spectral sense. Random mistakes in the filter response computation for points of the time domain output will not greatly effect the spectral response because the spectral response is a Fourier transform of the time domain responses. A Fourier transform invokes integration over time domain responses, and random noise has a uniform power spectral density without any spectral spikes. This means that tolerances in passband and stopband will not be jeopardized. Thus the hardware savings by hardware truncation has a time domain impact which spectrally averages out by the Fourier transform integration. Also, truncations greater than or less than filter 300's may be used; the method of focussing on the rounding bit may be changed. Greater truncation saves more hardware but creates greater noise, and conversely for less truncation.
  • Rounders 342 and 344 allow the user to control the number of output bits. Rounding is done by generating a carry -- in for the bit position just below the LSB of interest and then truncating the output. Saturation detect logic disables the carry -- in when the most positive number (0111 . . . 111xxx when rounding away the last four bits) is present and the carry -- in would have resulted in adder rollover to the most negative number (1000 . . . 000xxx which truncates to 1000 . . . 00).
  • FIG. 14 illustrates the saturation detection circuitry with DATA bit inputs and SETRND (setround) inputs. Also provided is the function of zeroing the bits below the LSB of interest after rounding.
  • the critical speed path would be from DATA -- IN changing, through the saturation detect to signal CARRY0, and through the 17 bit adder.
  • the fastest 17 bit adder will come from a 17 bit tree adder with the unused B inputs demorganized to reduce logic.
  • true/complementers 322, 324, 332, and 334 all have saturation compensation; whereas, true/complementer 332 must also include accumulator overflow compensation.
  • true/complementer 332 must also include accumulator overflow compensation.
  • this representation of numbers is asymmetric in that there is one more negative number than positive number due to zero being one of the numbers with a sign bit 0.
  • the largest positive number is 2 15 -1 and is represented by 0111 1111 1111 1111, but the negative number with the largest magnitude is -2 15 and is represented by 1000 0000 0000 0000.
  • Now taking the two's complement of 2 15 -1's representative yields 1000 0000 0000 0001 which represents -(2 15 -1), as expected.
  • the two's complement of -2 15 's representative 1000 0000 0000 0000 is again 1000 0000 0000 0000, analogous to the two's complement of 0000 0000 0000 0000 reproducing itself.
  • true/complementers 322, 324, and 334 have a detection circuit for 1000 0000 0000 0000 and force an output of the largest positive number 0111 1111 1111 rather than taking the erroneous two's complement. Thus there will be an error of one bit, but this is the best that can be
  • True/complementer 332 compensates for saturation and also for overflow from the adder of filter odd arm 327. True/complementer 332 outputs 17 bits because odd arm 327 outputs 17 bits and rounding will be done in rounder 342. In particular, the adder has extra bits above the 17 bits to be output, and these bits are used to monitor overflow. In decimation mode for half-band filter 300, the 17th(2 34 ) and 18th(2 35 ) bits are compared, and for the other three modes (interpolation mode, downconvert plus decimate mode, and interpolate plus upconvert mode) the 17th(2 33 ), 18th(2 34 ), and 19th(2 35 ) bits are monitored.
  • decimation mode for half-band filter 300 the 17th(2 34 ) and 18th(2 35 ) bits are compared, and for the other three modes (interpolation mode, downconvert plus decimate mode, and interpolate plus upconvert mode) the 17th(2 33 ), 18th(2 34 ), and
  • True/complementer 332 provides saturation in the same manner as true/complementers 322, 324, and 334.
  • the preferred embodiments may be varied in many ways while retaining the features of a filter multiplier using Wallace trees with all lower bits hardware truncated and joint saturation plus overflow compensation.
  • the filter need not be a half-band filter, but any digital filter with multipliers which yield products that are rounded off.
  • the hardware contributing only to bits which are rounded off could be truncated.

Abstract

A digital half-band filter with mutliplications using Wallace trees which have lower bits truncated for reduction in size and with a true/complementer providing saturation compensation together with accumulator overflow compensation by monitoring bits more significant than the output bits.

Description

This is a continuation of application Ser. No. 07/930,167, filed Aug. 14, 1992, now abandoned.
BACKGROUND AND SUMMARY OF THE INVENTIONS
The present invention relates to electronic devices, and, more particularly, to semiconductor circuits and methods useful for filtering digital data streams.
DIGITAL SYSTEMS WITH HALF-BAND FILTERING
Communications systems, such as broadcast radio, use frequency division multiplexing (FDM) to simulaneously transmit differing information signals from several sources in a single locale. Typically, each source modulates its carrier frequency with its information signal and keeps within its allocated frequency band. Extraction of a desired information signal from a received broadband of simultaneous broadcasts may be performed by mixing down (down conversion by the selected carrier frequency) followed by lowpass filtering and demodulation as schematically illustrated by system 100 in FIG. 1. Indeed, system 100 receives radio frequency signals (e.g., 100-200 MHz) at antenna 102, filters and mixes the signals down to intermediate frequencies (e.g., 1-10 MHz) with a wideband tuner 104, converts from analog to digital format with sampling analog-to-digital converter 106, extracts the selected frequency band (e.g., of width 5 KHz) with digital down converter 108 which performs the down conversion and filtering, and demodulates and reconstructs an analog information signal with demodulator/processor 110. For example, ifwideband tuner 104 has a 10 MHz output bandwidth, then analog-to-digital converter 106 will sample at 20 MHz or more (at least the Nyquist rate), and digital down converter 108 will output a 5 KHz selected band at a sampling rate of 10 KHz. That is, digital down converter 108 may decrease the sampling rate due to the small bandwidth of its output without loss of information.
The problems of construction of system 100 include realizing digital down converter 108 operating at a high sampling frequency while maintaining a low ripple sharp cutoff filter which has programmable down conversion frequency and programmable bandwidth. Known realizations of a down conversion function include the combination of a numerically controlled oscillator/modulator (NCOM) such as the HSP45106 manufactured by Harris Corporation together with two decimating lowpass digital filters (one for the in-phase and one for the quadrature outputs of the NCOM) such as the HSP43220 also manufactured by Harris Corporation.
A lowpass decimating filter having a decimation rate R which may be factored as
R=R.sub.1 R.sub.2 . . . R.sub.M
may be realized as M cascaded independent lowpass decimation filters with the jth filter having decimation rate Rj. This multistage approach may greatly reduce the number of computations required to perform the filtering. Indeed, the first stages in a multistage filter need not have narrow transition bands because the transition band of the last stage will essentially determine the overall transition band. Further, the early stages decimate the sampling rate so the latter stages operate at a much lower sampling frequency.
Multistage filters may be effectively designed with stages of half-band filters. A lowpass digital FIR filter with optimal (equiripple) design and with symmetry about π/2 is called a half-band filter. That is, a half-band filter has a transfer function Fourier transform as shown in FIG. 2a with passband and stopband of equal width. Half-band filters have about one half of their filter coefficients equal to zero, so the filter computations include only about one half as many multiplications as a usual FIR filter.
Half-band filters may appropriately be used only for decimation or interpolation of sampling rate by a factor of 2 and when aliasing to the final transition band is permitted. See FIG. 2b illustrating the aliasing of a decimation by 2 half-band filter. Thus multistage filters with powers of 2 decimation or interpolation profitably employ cascaded half-band filters.
Crochiere and Rabiner, Multirate Digital Signal Processing (Prentice-Hall 1983) provides general information regarding signal processing using sampling rate changes. Hogenauer, An Economical Class of Digital Filters for Decimation and Interpolation, 29 IEEE Tr.Ac.Sp.Sig.Proc. 155 (1981) discloses decimation filters made of an integrator section followed by comb section operating a low sampling rate.
Features
The present invention provides a digital half-band filter with truncated multipliers and joint overflow and saturation compensating complementers. The truncated multipliers reduce the amount of hardware, and the complementers permit full dynamic range
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will be described with reference to the accompanying drawings, which are schematic for clarity:
FIG. 1 illustrates a first application of a first preferred embodiment;
FIGS. 2a-b show half-band filter characteristics;
FIG. 3 is a functional block diagram of a first preferred embodiment half-band filter;
FIG. 4 illustrates four modes of operation of the present invention;
FIG. 5 illustrates an application of a preferred embodiment;
FIGS. 6(A)-(F) illustrate the sequence of the filtering operation in the downconversion and decimation by two mode;
FIGS. 7(A)-(G) illustrate the sequence of the filtering operation in the interpolate by two and upconversion mode;
FIG. 8 illustrates in block form FIR filter;
FIG. 9 shows a portion of a Wallace tree;
FIG. 10 shows the re-coded coefficients;
FIG. 11 lists the multiplicand locations within the Wallace trees;
FIG. 12 shows the sign extension words;
FIG. 13 illustrates the truncation decision; and
FIG. 14 is a schematic for saturation detection within rounding.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
Architectural Overview
FIG. 3 is a functional block circuit diagram of a first preferred embodiment single chip digital half-band filter generally denoted by reference numeral 300, which includes the following blocks and items: 16-bit parallel port register 302 for input data samples Ain(15:0), 16-bit parallel port register 304 for input data samples Bin(15:0), multiplexer 306 for selecting between Ain and Bin input, 16- bit registers 312 and 314 for holding inputs, multipliers 322 and 324 for downconversion, local oscillator 326 for generating the sines and cosines for downconversion and upconversion, FIR filter odd arm 327 and even arm 328 for the lowpass half-band filtering, multipliers 332 and 334 for upconversion, adder 340 for combining signals in real output, rounders 342 and 344 for rounding to 16,14, 12, 11, 10, 9, or 8 bits, output registers 346 and 348, clock control 350, and control registers 352 for selecting mode of operation, rounding level, positive or negative frequency conversion, internal versus external multiplezing, synchronization, and output format. Note that multipliers 322, 324, and 334 output 16-bit data, but that FIR filter odd arm 327 outputs 17-bit data to provide for rounding to 16 bits.
Operation Summary
Filter 300 is a 67-Tap, 20-bit, fixed coefficient filter that has four basic modes of operation illustrated in FIG. 4: (1) decimation by two filtering of a real input signal; (2) interpolation by two filtering of a real input signal; (3) quadrature downconversion of a real I.F. signal with decimation by two filtering of the resulting I and Q channels; and (4) interpolation by two filtering of a complex baseband signal and quadrature upconversion to produce a real output signal. The first two modes are useful for easing the requirements on the analog antialiasing filter used with a D/A converter or a A/D converter. The last two modes are provided for expanding the processing bandwidth of the Harris HSP 45116 numerically controlled oscillator/modulator (NCOM) and the Harris HSP43220 decimating digital filter (DDF). Indeed, FIG. 5 shows an application of filter 300 with the NCOM and two DDFs.
The third mode listed above converts a real non-baseband signal to a baseband complex signal. To preserve all of the information in the signal, the complex sample stream will only have to clock at half the input sample rate. This allows an A/D converter clock at twice the clock rate that the NCOM and DDF can run, i.e. a 25 MHz NCOM and DDF could be used with a 50 MHz A/D and process a signal bandwidth of almost 25 MHz. See FIG. 6.
The fourth mode permits using the NCOM or HSP45216 (NCO16) as a modulator. This mode converts the quadrature baseband output of the NCOM or NCO16 to twice the clock rate and shifts the center frequency to FCLK/4. (FCLK is the output clock rate.) This allows a 25 MHz NCOM or NCO16 to drive a 50 MHz D/A and get almost 25 Mhz of tuning range. See FIG. 7.
The filter response of half-band filter 300 has a shape factor, (Passband+Transition Band)/Passband of 1.24:1 with 90 dB alias free passband at 80% of Nyquist. There is less than 0.0005 dB of passband ripple. Due to characteristics of the half-band filter, half of the coefficients are zero (with the exception of the center tap). The center tap is effectively a delay and multiply of the input signal.
A programmable, symmetric rounding stage (rounders 342-344) with saturation logic is provided to select from 8 to 16 bits of output, depending on the user's application. Outputs are available as Two's Complement or Offset Binary. There is also a pin available to give the user a selection of shifting output to positive or negative frequencies (upper or lower side band).
Half-band filter 300 is a 67-Tap, 20-bit, fixed coefficient filter. The characteristics of a half-band filter are such that the coefficient set is symmetric with every even coefficient being zero, except for the center tap. The filter is divided into even and odd arms of the filter. Since the even coefficients are all zero with the exception of the center tap, the even filter arm is effectively a delay and multiply. In FIG. 3 the odd filter coefficients are in the top arm and the delay and multiply of the even center tap is in the lower arm of the filter. The four basic modes of operation are selected by the Mode 0-1 pins:
 ______________________________________                                    
Mode                                                                      
1 pin  Mode 0 pin                                                         
                 Mode of operation                                        
______________________________________                                    
0      0         Decimation by 2 Filter                                   
0      1         Interpolation by 2 Filter                                
1      0         Downconversion with Decimation Filter                    
1      1         Interpolation Filter with Upconversion                   
______________________________________                                    
Decimation by Two Filter Mode.
For the decimation by two filter mode with internal muxing (INT/EXT# pin=1), 16-bit real data is input on Ain(15:0). The incoming data samples are divided into odd and even samples. The input samples come in at the fastest clock rate (CLK) and are multiplexed into odd and even samples at this rate. The FIR section of the chip, and the output samples will run at the rate of CLK/2. The odd samples of data are multiplexed through the top arm of the filter, and the even samples are multiplexed through the lower arm of the filter. The two filter outputs are summed together to give one 16-bit output sample on Aout(15:0). The following illustration shows the proper decimation by two filter response using a standard, 67-tap filter with coefficients c1, c2, . . . c67 so the center tap corresponds to c34. For an input stream of 16-bit data words X1, X2, X3, . . . the filter forms the decimated-by-2 output stream Y1, Y3, Y5, . . . where
Y.sub.1 =c.sub.1 X.sub.67 +c.sub.2 X.sub.66 +c.sub.3 X.sub.65 +. . . +c.sub.34 X.sub.34 +. . . +c.sub.66 X.sub.2 +c.sub.67 X.sub.1
Y.sub.3 =c.sub.1 X.sub.69 +c.sub.2 X.sub.68 +c.sub.3 X.sub.67 +. . . +c.sub.34 X.sub.36 +. . . +c.sub.66 X.sub.4 +c.sub.67 X.sub.3
Y.sub.5 =c.sub.1 C.sub.71 +c.sub.2 X.sub.70 +c.sub.3 X.sub.69 +. . . +c.sub.34 X.sub.38 +. . . +c.sub.66 X.sub.6 +c.sub.67 X.sub.5
A half-band filter has cj =0 for all even j except the center tap c34. Thus the decimated-by-2 output stream is
Y.sub.1 =c.sub.1 X.sub.67 +c.sub.3 X.sub.65 +. . . +c.sub.34 X.sub.34 +. . . +c.sub.65 X.sub.3 +c.sub.67 X.sub.1
Y.sub.3 =c.sub.1 X.sub.69 +c.sub.3 X.sub.67 +. . . +c.sub.34 X.sub.36 +. . . +c.sub.65 X.sub.5 +c.sub.67 X.sub.3
Y.sub.5 =c.sub.1 C.sub.71 +c.sub.3 X.sub.69 +. . . +c.sub.34 X.sub.38 +. . . +c.sub.65 X.sub.7 c.sub.67 X.sub.5
Looking at the data that is left, only the odd data (X1, X3, X5, . . . ) goes to the odd coefficients and only the even data (X2, X4, X6, . . . ) goes to the even coefficient. This allows half-band filter 300 to be implemented by the odd samples proceeding through the odd arm 327 with odd coefficients and the even samples proceeding through the even arm which is just a multiplication by center tap coefficient c34 and a delay, and the two filter arms' outputs are added.
For the decimation by two filter mode with external muxing (INT/EXT# pin=0), odd and even data are input through both input ports Ain(15:0) and Bin(15:0) with each clock. Odd data comes in Ain(15:0) and even data comes in Bin(15:0). The input multiplexer is disabled, and the entire chip will run at the same clock rate from the inputs through the FIR section, and out through the output port Aout(15:0). The local oscillator 326 and multipliers 312 and 314 are not used.
Interpolation by Two Filter Mode.
In this mode data always comes in Ain (15:0) and goes to odd and even arms of the filter as in the decimation by two filter mode. For the interpolation by two filter mode with internal muxing, (INT/EXT# pin=1), real data comes in through Ain(15:0) at CLK/2. The FIR section will also run at CLK/2, while output samples from each arm of the filter is muxed out through Aout(15:0) at the rate of CLK. In order to achieve interpolation by two, the data samples effectively have zeroes placed between them before being multiplied by filter coefficients. The following illustration shows the proper interpolation by two filter response using a standard, 67-tap filter with coefficients c1, c2, . . . c67 so the center tap corresponds to c34. For an input stream of 16-bit data words X1, X2, X3, . . . the interpolation 0's lead to the stream X1, 0, X2, 0, X3, . . . into the filter to form the interpolated-by-2 output stream Y1, Y2, Y3, . . . where
Y.sub.1 =c.sub.1 X.sub.34 +c.sub.3 X.sub.33 +c.sub.5 X.sub.32 +. . . +c.sub.65 X.sub.2 +c.sub.67 X.sub.1
Y.sub.2 =c.sub.2 X.sub.34 +c.sub.4 X.sub.33 +c.sub.6 X.sub.32 +. . . +c.sub.64 X.sub.3 +c.sub.66 X.sub.2
Y.sub.3 =c.sub.1 X.sub.35 +c.sub.3 X.sub.34 +c.sub.5 X.sub.33 +. . . +c.sub.65 X.sub.3 +c.sub.67 X.sub.2
Note that in each output response, only the odd filter coefficient terms have nonzero values, or the even filter coefficient terms have nonzero values, but never a mix of both. This allows half-band filter 300 to be implemented as alternating outputs from the odd arm and the even arm to Aout(15:0). Again, the even arm is effectively a delay and multiply by the center tap coefficient c34.
For the interpolation by two filter mode with external muxing (INT/EXT# pin=0), data comes in through the Ain(15:0) at the rate of CLK. The entire chip will run at CLK with two samples being output each cycle (one on Aout(15:0), the other on Bout(15:0)). It is important to note that the data on Bout(15:0) is the first piece of data per cycle and if internal muxing is used, this will be the first output sample on Aout(15:0).
Quadrature Downconversion with decimation by Two Filtering on resulting I and Q channels.
This mode will convert a real, non-baseband signal to a baseband complex signal, and decimate the resulting I and Q channels by two. If internal muxing is selected, (INT/EXT# pin=1), real data is input on Ain(15:0). The incoming data samples are divided into odd and even samples. The input samples come in at the fastest clock rate (CLK) and are multiplexed into odd and even samples at this rate. Each of the odd and even samples pass through multipication by local oscillator (L.O.) 326 before going to the filter arms. The FIR section of the chip, and the output samples will run at the rate of CLK/2. The odd samples of data go through the odd arm 327 of the filter, and the even samples go through the even arm 328 of the filter. The top and lower arms of the filter generate the resulting I and Q channels.
The following illustration shows the proper quadrature downconversion and decimation by two filter response using a standard, 67-tap filter (decimation by two means to eliminate every other output sample): Input data samples X1, X2, X3, X4, X5, . . . are multiplied by cos(2πnFS /4FS) to yield a stream of odd samples X1, 0, -X3, 0, X5, 0, -X7, 0, X9, . . . and are multiplied by sin(2πnFS /4FS) to yield a stream of even samples 0, X2, 0, -X4, 0, X6, 0, -X8, 0, . . . The filtered odd samples decimated by 2 and output as Aout(15:0) are
Y.sub.1 =-c.sub.1 X.sub.67 +c.sub.3 X.sub.65 -c.sub.5 X.sub.63 +. . . -c.sub.65 X.sub.3 c.sub.67 X.sub.1
Y.sub.3 =c.sub.1 X.sub.69 -c.sub.3 X.sub.67 +c.sub.5 X.sub.65 +. . . +c.sub.65 X.sub.5 -c.sub.67 X.sub.3
Y.sub.5 =-c.sub.1 X.sub.71 +c.sub.3 X.sub.69 -c.sub.5 X.sub.67 +. . . -c.sub.65 X.sub.7 +c.sub.67 X.sub.5
and the filtered even samples decimated by 2 and output as Bout(15:0) are
Z.sub.1 =+c.sub.2 X.sub.66 -c.sub.4 X.sub.64 +. . . -c.sub.64 X.sub.4 +c.sub.66 X.sub.2
Z.sub.3 =-c.sub.2 X.sub.68 +c.sub.4 X.sub.66 +. . . +c.sub.64 X.sub.6 -c.sub.66 X.sub.4
Z.sub.5 =+c.sub.2 X.sub.70 -c.sub.4 X.sub.68 +. . . -c.sub.64 X.sub.8 +c.sub.66 X.sub.6
Looking at the data that is left, only the odd data goes to the odd coefficients and only the even data goes to the even coefficients. Also note that the local oscillator multipliers 322-324 can be reduced to (1, -1) multipliers since the even data never goes to the odd coefficients and vice versa for the odd data. This results in passing data on the positive one multiply, and taking the two's complement of the data when multiplying by negative one. This allows filter 300 to be implemented as true/complementer 322 providing alternating signs on the odd data which proceeds through the filter odd arm 327 and outputs as Aout(15:0), and true/complementer 324 providing alternating signs on the even data which proceeds through the filter even arm 328 (which is just delay and multiply by c34) and outputs as Bout(15:0).
For the decimation by two filter mode with external muxing (INT/EXT# pin=0), odd and even data are input through both input ports Ain(15:0) and Bin(15:0), respectively, with each clock. The input multiplexer is disabled, and the entire chip will run at the same clock rate from the inputs, through the L.O.'s and FIR section, and out through the output ports Aout(15:0) and Bout(15:0).
Down conversion and shifting towards positive infinity is accomplished by convolving the data spectrum with an impulse located at positive frequency FS /4. This impulse is derived from a vector rotating clockwise about the unit circle. Downconversion and shifting towards negative infinity is accomplished by convolving the data spectrum with an impulse located at negative frequency -FS /4. This impulse is the result of a vector rotating counter clockwise about the unit circle. The USB/LSB# pin is provided to allow the user to select the Upper Side Band (input=1) or the Lower Side Band (input=0) for this mode. See FIG. 6 for an example of downconversion and decimate by two filtering operation.
Interpolation by Two filtering of Complex Baseband Signal and Quadrature Upconversion.
This mode converts the quadrature baseband output of the HSP45116 (NCOM) or HSP45106 (NCO16) to twice the clock rate and shifts the center frequency to FCLK/4 (FCLK is the output clock rate). If internal muxing is selected, (INT/EXT# pin=1), complex data is input on Ain(15:0) and Bin(15:0) at the rate of CLK/2. The data samples effectively have zeroes placed between them before being multiplied by the filter coefficients. The output from the FIR section then pass through local oscillators which upconverts the signal to the frequency of FCLK/4. The FIR section of the chip and the local oscillators will run at CLK/2. Both of the local oscillators generate output samples which will be muxed out at Aout(15:0) at the rate of CLK. The following illustration shows the proper interpolation and upconversion using a standard, 67-tap filter with coefficients c1, c2, . . . c67 so the center tap corresponds to c34. For an input stream of 16-bit data words X1, X2, X3, . . . at Ain(15:0) the interpolation 0's lead to the stream X1, 0, X2, 0, X3, . . . into the filter to form the interpolated-by-2 output stream Y1, Y2, Y3, . . . where
Y.sub.1 =c.sub.1 X.sub.34 +c.sub.3 X.sub.33 +c.sub.5 X.sub.32 +. . . +c.sub.65 X.sub.2 +c.sub.67 X.sub.1
Y.sub.2 =c.sub.2 X.sub.34 +c.sub.4 X.sub.33 +c.sub.6 X.sub.33 +. . . +c.sub.64 X.sub.3 +c.sub.66 X.sub.2
Y.sub.3 =c.sub.1 X.sub.35 +c.sub.3 X.sub.34 +c.sub.5 X.sub.33 +. . . +c.sub.65 X.sub.3 +c.sub.67 X.sub.2
Then the upconversion multiplication by cos(2πnFS /4FS) yields a stream of odd samples Y1, 0, -Y3, 0, Y5, 0, -Y7, 0, Y9, . . . And for an input stream of 16-bit data words U1, U2, U3, . . . at Bin(15:0) the interpolation 0's lead to the stream U1, 0, U2, 0, U3, . . . entering the filter to form the interpolated-by-2 output stream V1, V2, V3, . . . where
V.sub.1 =c.sub.1 U.sub.34 +c.sub.3 U.sub.33 +c.sub.5 U.sub.32 +. . . +c.sub.65 U.sub.2 +c.sub.67 U.sub.1
V.sub.2 =c.sub.2 U.sub.34 +c.sub.4 U.sub.33 +c.sub.6 U.sub.33 +. . . +c.sub.64 U.sub.3 +c.sub.66 U.sub.2
V.sub.3 =c.sub.1 U.sub.35 +c.sub.3 U.sub.34 +c.sub.5 U.sub.33 +. . . +c.sub.65 U.sub.3 +c.sub.67 U.sub.2
The upconversion multiplication by sin(2πnFS /4FS) then yields a stream of even samples 0, V2, 0, -V4, 0, V6, 0, -V8, 0, . . . Note that in each output response, either the odd filter coefficient terms have nonzero values or the even filter coefficient terms have nonzero values, but never a mix of both. This allows Bin samples to be muxed on one cycle and Ain samples the next. The local oscillators are reduced to (1, -1) multipliers. Filter 300 is implemented by the odd samples proceeding through the odd arm and then given alternating signs by true/complementer 332 and then output as Aout, and the even samples given alternating signs by true/complementer 334 and also output as Aout interleaved with the odd samples.
For the interpolation by two with upconversion mode with external muxing (INT/EXT# pin=0), complex data, I and Q, are input through both input ports Ain(15:0) and Bin(15:0), respectively, with each clock. The input multiplexer is disabled, and the entire chip will run at the same clock rate from the inputs, through the L.O.'s and FIR section, and out through the output ports Aout(15:0) and Bout(15:0). It is important to note that the data on Bout(15:0) is the first piece of data per cycle and if internal muxing is used, this will be the first output sample on Aout(15:0).
In this mode the USB/LSB# pin will translate the data towards positive infinity for the upper Side Band (input=1) and towards negative infinity for the Lower Side Band (input=0).
See FIG. 7 for an example of the interpolation by two filtering and upconversion application.
Parameter Selection
The user selects the mode of operation and asserts the SYNC# pin. The filter 300 expects to see the first (odd) piece of data on the following clock. SYNC# can be pulsed low at the beginning or it can run off a divided clock. If running off of a divided clock, it is restricted to clock/4 for modes which use internal mux and either oscillator, and clock/2 for all other modes.
If the FMT pin is high, filter 300 will output data in Offset Binary Format. If FMT is low, the output data will be in Two's Complement Format.
Aout(15:0) and Bout(15:0) are three-state control output busses controlled by OEA# and the OEB# (active low). There are also three other input pins to control the outputs. RNDO-2 input pins provide rounding control and allow the user to select the number of output bits from eight to sixteen.
______________________________________                                    
RND                                                                       
(2.0)      FUNCTION                                                       
______________________________________                                    
000        Round for 8 output bits, zero bits below.                      
001        Round for 9 output bits, zero bits below.                      
010        Round for 10 output bits, zero bits below.                     
011        Round for 11 output bits, zero bits below.                     
100        Round for 12 output bits, zero bits below.                     
101        Round for 14 bits, zero bits below.                            
110        Round for 16 bits, zero bits below.                            
111        Zero all outputs.                                              
______________________________________                                    
Top Level Circuits
As explained above, the local oscillators effectively multiply the data by 1 and -1. This means that true/ complementers 322, 324, 332, and 334 either pass data or invert and add 1 (two's complement). A tree structure is used to maximize speed. An alternative eliminates the incrementers and inserts the carry into the Wallace trees. There are several ways this could be done but they add complexity and do not give a clear hardware savings.
With the sum of all coefficients being less than 1.0, and with 16 bits of data and 20 bits for coefficients, the maximum bit position required under steady state conditions is 215 ×219 =234. Therefore, the maximum width for Wallace trees is 234, but in order to determine overflow during transient filter response, one more bit is kept, which brought the width of the Wallace trees to 235. After truncation of bits 28 and below, described in the following, 27 bits were kept in the Wallace trees and a full width final adder is used. In mode 1 (decimation mode), the upper and lower arms of the filter are added together. In this mode, the bit positions 234 through 218 (17 bits) are selected from the output of the adder. In all other modes where the two arms of the filter are not added, bit positions 233 through 217 (17 bits) will be selected from the output of the adder. The bit positions refer to the Wallace tree bit positions. 235 was highest Wallace tree bit and 29 was lowest that was kept. Therefore, there were 27 bits of accuracy. Due to combinations of sums and carries in Wallace trees, filter 300 has a 23 bit full adder following the last Wallace tree. No rounding occurs in the bottom data path through the even arm when 16 bit outputs are chosen as there are only 16 bits of data.
For Mode 1, since only Aout(15:0) is used, Bout(15:0) is being used as a test bus.
The filter 300 outputs can be in 2's complement or offset binary format as selected by FMT.
FIR
FIG. 8 shows the functional architecture of the 67 tap FIR filter. The multiplications of filter coeffidents by data samples is carried out by a hardware which adds partial products in Wallace trees. These partial products are generated by hardwired, Booth Type recoding of the filter coefficients. This recoding was used to reduce the number of partial products required. To illustrate recoding and Wallace tree summation, first consider the multipication of a 16-bit multiplicand (the data sample) by a 20-bit multiplier (the filter coefficient). Written out, this product is seen to be the sum of easily-generated partial products. For example, the multiplication of 1111000011110000 by 01010101011111111101 is: ##STR1## Clearly, each of the 20 partial products may be generated by merely shifting the multiplicand for a corresponding 1 in the multiplier and by putting in 0s for a corresponding 0 in the multiplier. That is, the multiplicand feeding a multiplexer array controlled by the multiplier can provide the shifting and zeroing to form the partial products. If the numbers are in two's complement format, then sign extension bits would be inserted to extend the leading 1's in negative partial products out to the sign bit position. The summing of the 20 partial products consumes the bulk of the multiplication time. The summing of the partial products may be accelerated in two ways while keeping the hardware minimized: the summing may be done in a Wallace tree plus final adder (see FIG. 9) and the multiplier may be recoded to reduce the number of partial products by use of a Booth-type algorithm.
FIR odd arm 327 shown in FIG. 8 has both Wallace trees (the 12 rectangles with a Σ) and recoding of the multipliers (filter coefficients). The data samples are clocked in at the righthand portion of FIG. 8, and the hardwired recoded coefficients appear as the boxes with Xs with the corresponding coefficient noted as C1, . . . C17. Of course, the 67 coefficients split into 34 odd coefficients and 33 even coefficients. But the even coefficients are all zero except the center tap, c34, which is equal to 218 and does not need a multiplier except for a shift by 18. The 34 odd coefficients are symmetric, so there are only 17 independent coefficients, and these are the C1, . . . C17. Note both the top and bottom rows of coefficients to make up the total of 34.
A Wallace tree consists of an array of full adders which have three inputs (the two bits being added plus the carry in from the sum of lower order bits) and two outputs (the sum bit plus the carry out to higher order bits). Hence, each layer of a Wallace tree roughly has 2/3 the number of terms of the previous layer. FIG. 9 shows a portion of a Wallace tree for adding nine numbers called A, B, C, . . . H, and I with a subscript indicating the bit order. The rectangles indicate full adders and the broken vertical lines group bits of the same order with the least significant bits on the right. Note that every carry out goes into the adjacent grouping to the left. As indicated by FIG. 9, after four levels the nine numbers have been added to form at most one sum bit and one carry bit in each bit position. The regularity of the tree is apparent in the lefthand portion of FIG. 9. The output of the final Wallace tree feeds a final adder as indicated by the output lines at the righthand edge of FIG. 8.
Recoding a multiplier to lessen the number of partial products may be done in various ways including the Booth algorithm which replaces groups of 1s with a leading 1 and a trailing-1. More explicitly, the foregoing example multiplier 0101 0101 0111 1111 1101 could be rewritten as 0101 0101 1000 0000 0001 minus 0000 0000 0000 0000 0100; that is, the groups of 1 bits representing 210, 29, . . . 22 are replaced by a bit representing 211 minus a bit representing 22 which just reflects the identity 211 -22 =210 +29 +. . . +22. Of course, this rewriting of the multiplier decreases the number of nonzero partial products from 14 to 7 at the cost of introducing a minus sign.
The even data is operated on only by the center coefficient c34. Because the center coefficient equals a power of two (218) there is no need for an actual multiplier. The data is delayed and the bit weighting changed. The final value for the number of pipeline delays depends on the delays in the odd FIR filter arm and the front end of filter 300.
The odd data enters odd arm 327 of the FIR filter which has 34 taps. At each tap the data is recoded into partial products which feed the Wallace trees. Where possible, the pipelines have been moved to minimize hardware. By moving a pipeline from the bottom to the top data path, the need for registering the sum and carrys is eliminated, a savings of almost 48 flops each time this is done. This was only done in cases where the resulting Wallace tree would be 6 levels or less. The recoding of the 34 coefficients of odd arm 327 proceeded by a two step process: first a set of coefficients were derived by standard methods for a 67-tap half-band filter with a prescribed width and tolerance for the passband and stopband. The resulting coefficients were then perturbed to increase the groupings of 1s and 0s in order to have a more effective application of Booth's algorithm. The coefficient perturbations were assessed based on how they changed the filter characteristics, and the set of coefficients which yielded the best grouping of 1s and 0s while maintaining acceptable filter characteristics was selected. FIG. 10 shows the resulting set of coefficients together with their recodings (1 and -1 beneath each grouping of 1s). The total number of partial products reduces to 139 for all 67 taps.
A sign extension word was calculated for each different set of coefficients coming into each Wallace tree; see FIG. 11. In FIG. 11 the letters A through R (exclusive of O) represent the 16-bit samples and show the Wallace tree levels to which the 17 different coefficient recodings place the corresponding multiplicand sample's bits. For example, c1 equals 4 (relative to c34 equal to 218) and this implies one partial product which arises from shifting the sample's bits two places; the sample's 16 bits are denoted by A15 down to A0 and are located under the 16 bit positions 217 through 22. Similarly, c3 equals -24 which recodes to -32+8 and generates two partial products for its corresponding multiplicand sample B with bits B15 through B0 entered twice, once shifted 3 bits and once (negated) shifted 5 bits. If the multiplicand sample were negative, then its leading bit would be a 1 and sign extension 1s would be needed. The top lines in FIG. 15 illustrate how to handle this possibility: a sign extension word of 1s for A appears under 219 and extending to the left edge (231 is the maximum shown). Also, the bit equal to the complement of A15 is entered under 218 and a carry bit 1 is also entered uner 218. This procedure of entering extra bits has the following net effect: if A15 equal 0 (so A is a positive number), then complemented A15 equals 1 and sum of the sign extension 1s, the carry bit 1 and A15 is zero because it amounts to an addition which overflows at the left edge. Thus there is no net effect if A is positive. Conversely, for negative A the MSB equal 1, and the sum of the sign extension 1s, the carry bit 1 and A15 is a 1 under each of 218 to the left edge; that is, the proper sign extension bits for a negative number. Similarly for each other multiplicand sample's partial products taken as a group. In particular, note for multiplicand sample B that the negated B shifted 5 bits generates a carry bit under 25 due to two's complement negation being complementation followed by adding 1 to the least significant bit.
All the 1's contained in the sign extension words for the partial products may be added together to create a single "Sign Extension Constant" as shown in FIG. 12. This has been injected into a "small" Wallace tree that is closest to the filter output to minimize hardware. All 1's were added, even those below the line of truncation in the partial products.
Truncated Multiplier Hardware
To save hardware, filter 300 has the low bit weight positions in the Wallace trees truncated. This removes a portion of the Wallace tree hardware and simply disregards the corresponding bits which would have entered the truncated portions. FIG. 13 shows the method used to determine location of the truncation in the Wallace trees. In particular, the columns add the number of bits under each power of 2 for each Wallace tree by adding the number of partial products plus the number of carry bits shown in FIG. 11. Accumulate the number of bits for a column by considering the carries from lower power of 2 columns, and this determines the maximum which could be disregarded. In particular, for the 28 column the total is 122. This means that the maximum truncated would be 122×28 which is less than 215 and thus only directly influences the 214 bit and lower. Similarly, for the 29 column the maximum truncated would be 135×29, or less than 217. Now the largest MSB of data is 232 from Wallace tree 12 (see FIG. 11), so rounding to 16 bits (the input data accuracy) implies that 217 will be the LSB and 216 will be the rounded bit. Hence, the truncation up to and including 28 but excluding 29 and higher will not directly affect the rounding bit. For Mode 1 (decimation mode), bit positions 234 -218 are selected from output of final adder, and all other modes bit positions 233 -217 are selected. The LSB is 218 for mode 1, and 217 for all other modes. When the user is selecting 16 bit output, this LSB is the bit position where a 1 is added, then the LSB and below is truncated.
Further, the effects of this hardware truncation on the filter performance should be negligible in the spectral sense. Random mistakes in the filter response computation for points of the time domain output will not greatly effect the spectral response because the spectral response is a Fourier transform of the time domain responses. A Fourier transform invokes integration over time domain responses, and random noise has a uniform power spectral density without any spectral spikes. This means that tolerances in passband and stopband will not be jeopardized. Thus the hardware savings by hardware truncation has a time domain impact which spectrally averages out by the Fourier transform integration. Also, truncations greater than or less than filter 300's may be used; the method of focussing on the rounding bit may be changed. Greater truncation saves more hardware but creates greater noise, and conversely for less truncation.
Note that the architecture does not take advantage of coefficient symmetry. The use of a pre-adder to add the two data words corresponding to symmetric coefficients for a single multiplication using the coefficient and then generating the partial products may have created a delay path that would have slowed down the overall operation.
Rounder
Rounders 342 and 344 allow the user to control the number of output bits. Rounding is done by generating a carry-- in for the bit position just below the LSB of interest and then truncating the output. Saturation detect logic disables the carry-- in when the most positive number (0111 . . . 111xxx when rounding away the last four bits) is present and the carry-- in would have resulted in adder rollover to the most negative number (1000 . . . 000xxx which truncates to 1000 . . . 00). FIG. 14 illustrates the saturation detection circuitry with DATA bit inputs and SETRND (setround) inputs. Also provided is the function of zeroing the bits below the LSB of interest after rounding.
The critical speed path would be from DATA-- IN changing, through the saturation detect to signal CARRY0, and through the 17 bit adder. The fastest 17 bit adder will come from a 17 bit tree adder with the unused B inputs demorganized to reduce logic.
True/complementer
The true/ complementers 322, 324, 332, and 334 all have saturation compensation; whereas, true/complementer 332 must also include accumulator overflow compensation. First consider simple saturation compensation as would be performed by 16-bit true/ complementers 322, 324, and 334.
Saturation arises from the asymmetry of the two's complement representation of numbers. In particular, for 16-bit numbers the most significant bit (MSB) represents the sign and the remaining fifteen bits represent the magnitude of the number. The sign bit is 0 for positive and 1 for negative numbers. Negation of a number is by taking the complement of every bit (including the sign bit) and then adding 1 to the least significant bit (LSB). This makes addition simple but makes negative numbers odd-looking due to their complementary nature. In particular, zero is represented by 0000 0000 0000 0000, plus one by 0000 0000 0000 0001, and minus one by 1111 1111 1111 1111. Taking the complement and adding one clearly interchanges plus one and minus one and keeps zero invariant. However, this representation of numbers is asymmetric in that there is one more negative number than positive number due to zero being one of the numbers with a sign bit 0. Indeed, the largest positive number is 215 -1 and is represented by 0111 1111 1111 1111, but the negative number with the largest magnitude is -215 and is represented by 1000 0000 0000 0000. Now taking the two's complement of 215 -1's representative yields 1000 0000 0000 0001 which represents -(215 -1), as expected. But the two's complement of -215 's representative 1000 0000 0000 0000 is again 1000 0000 0000 0000, analogous to the two's complement of 0000 0000 0000 0000 reproducing itself. To handle this case of an input equal to -215, true/ complementers 322, 324, and 334 have a detection circuit for 1000 0000 0000 0000 and force an output of the largest positive number 0111 1111 1111 1111 rather than taking the erroneous two's complement. Thus there will be an error of one bit, but this is the best that can be
True/complementer 332 compensates for saturation and also for overflow from the adder of filter odd arm 327. True/complementer 332 outputs 17 bits because odd arm 327 outputs 17 bits and rounding will be done in rounder 342. In particular, the adder has extra bits above the 17 bits to be output, and these bits are used to monitor overflow. In decimation mode for half-band filter 300, the 17th(234) and 18th(235) bits are compared, and for the other three modes (interpolation mode, downconvert plus decimate mode, and interpolate plus upconvert mode) the 17th(233), 18th(234), and 19th(235) bits are monitored. If an overflow occurs, then these bits will differ and an overflow flag will be set (active+1). With overflow the largest positive number or the negative number with largest magnitude will be output. The 235 bit will be used as the proper sign bit. These signals combine with the complement (-1 multiply) signal (active+1) at input LO of each cell to determine the overflow data output as follows:
______________________________________                                    
overflow sign    complement  overflow data bits                           
______________________________________                                    
1        0       0           0 1111 1111 1111 1111                        
1        1       0           1 0000 0000 0000 0000                        
1        0       1           1 0000 0000 0000 0000                        
1        1       1           0 1111 1111 1111 1111                        
______________________________________                                    
Even without overflow indicated true/complementer saturates to the largest positive number (0 1111 1111 1111 1111) when complementing the negative number with the largest magnitude (1 0000 0000 0000 0000).
True/complementer 332 provides saturation in the same manner as true/ complementers 322, 324, and 334.
MODIFICATIONS AND VARIATIONS
The preferred embodiments may be varied in many ways while retaining the features of a filter multiplier using Wallace trees with all lower bits hardware truncated and joint saturation plus overflow compensation. For example, the filter need not be a half-band filter, but any digital filter with multipliers which yield products that are rounded off. The hardware contributing only to bits which are rounded off could be truncated.

Claims (12)

What is claimed is:
1. A digital filter comprising:
a first data stream input port for N-bit data samples;
first and second multipliers for downconverting said data samples;
adders for summing partial products of the downconverted data samples and filter coefficients, and with the K least significant bits of each partial product ignored for K a positive integer;
third and fourth multipliers for upconverting the summed partial products, said adders being connected between pairs of said multipliers; and
a local oscillator for providing sines and cosines to said multipliers for up and down conversion.
2. The filter of claim 1, wherein:
said multipliers and adders are partitioned into two separate series of said multipliers and adders to form an odd coefficient filter arm and an even coefficient filter arm; and
all but one of said filter coefficients in the partial products in said even coefficient arm are zero, whereby said filter forms a half-band filter.
3. The filter of claim 2, further comprising:
(a) a second data stream input port coupled to said even coeffeicient filter arm;
(b) with (i) said first multiplier having inputs coupled to said first data stream input port and said cosines of said local oscillator, and output coupled to said odd coefficient filter arm, (ii) said second multiplier having inputs coupled to said sines of said local oscillator and to a multiplex of said second data stream input port and said first data stream input port, and output coupled to said even coefficient filter arm, (iii) said third multiplier having inputs coupled to said odd coefficient arm and said cosines of said local oscillator, and output coupled to a first filtered data stream output port, and (iv) said fourth multiplier having inputs coupled to said even coefficient filter arm and said sines of said local oscillator, and output coupled to both said first filtered data stream output port and a second filtered data stream output port.
4. The filter of claim 3, wherein:
(a) said local oscillator outputs only sines and cosines of multiples of π/2; and
(b) each of said first, second, and fourth multipliers is a true/complementer with saturation compensation and said third multiplier is a true/complementer with both saturation compensation and accumulator overflow compensation.
5. A digital filter comprising:
two ports for receiving streams of data bits;
an odd coefficient filter arm comprising a first of said input ports, a first downconversion multiplier, a first finite impulse response (FIR) filter, and a first upconversion multiplier all coupled in series;
an even coefficient filter arm comprising a second of said input ports, a second downconversion multiplier, a second FIR filter, and a second upconversion multiplier all coupled in series; and
an oscillator for providing sines and cosines, the sines being provided to said second downconversion multiplier and to said second upconversion multiplier, the cosines being provided to said first downconversion multiplier and to said first upconversion multiplier.
6. The digital filter of claim 5 wherein said second FIR filter includes coefficients, all but one of which are zero, whereby the digital filter is a half-band filter.
7. The digital filter of claim 5 wherein said first and second FIR filters sum partial products of (a) filter coefficients and (b) said streams of data bits, and the K least significant data bits of the partial products are ignored.
8. The digital filter of claim 5 further comprising a first output port for a stream of filtered data coupled to said first upconversion multiplier, and a second output port for a stream of filtered data coupled to said second upconversion multiplier and to said first output port.
9. The digital filter of claim 5 wherein said sines and cosines are multiples of π/2.
10. The digital filter of claim 5 further comprising a multiplexer coupled in series between said second input port and said second downconversion multiplier, and coupled to said first input port.
11. The digital filter of claim 5 further comprising means coupled to the digital filter for selecting one of the following operating modes for the digital filter: decimation by two filtering, and interpolation by two filtering.
12. The digital filter of claim 11 wherein said operating modes selectable by said means for selecting further comprise quadrature downconversion of I and Q channels with decimation by two filtering, and interpolation by two filtering of complex baseband signal and quadrature upconversion.
US08/304,433 1992-08-14 1994-09-12 Half-band filter and method Expired - Lifetime US5548542A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US08/304,433 US5548542A (en) 1992-08-14 1994-09-12 Half-band filter and method
US08/462,684 US5574671A (en) 1992-08-14 1995-06-05 True/complementer for a half-band filter

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US93016792A 1992-08-14 1992-08-14
US08/304,433 US5548542A (en) 1992-08-14 1994-09-12 Half-band filter and method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US93016792A Continuation 1992-08-14 1992-08-14

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US08/462,684 Division US5574671A (en) 1992-08-14 1995-06-05 True/complementer for a half-band filter

Publications (1)

Publication Number Publication Date
US5548542A true US5548542A (en) 1996-08-20

Family

ID=25459010

Family Applications (2)

Application Number Title Priority Date Filing Date
US08/304,433 Expired - Lifetime US5548542A (en) 1992-08-14 1994-09-12 Half-band filter and method
US08/462,684 Expired - Lifetime US5574671A (en) 1992-08-14 1995-06-05 True/complementer for a half-band filter

Family Applications After (1)

Application Number Title Priority Date Filing Date
US08/462,684 Expired - Lifetime US5574671A (en) 1992-08-14 1995-06-05 True/complementer for a half-band filter

Country Status (1)

Country Link
US (2) US5548542A (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6553396B1 (en) * 1999-02-23 2003-04-22 Sony Corporation Filter bank constituting method and filter bank apparatus
US20050181741A1 (en) * 2004-02-13 2005-08-18 Raj Raghu G. Method and apparatus for processing a frequency modulated (FM) signal using an adaptive equalizer
US20060155793A1 (en) * 2005-01-11 2006-07-13 Via Telecom Co., Ltd. Canonical signed digit (CSD) coefficient multiplier with optimization
US20070030182A1 (en) * 2003-10-16 2007-02-08 Koninklijke Philips Electronics N.C. Time base adjustment in a data processing device
US20100013527A1 (en) * 2008-07-15 2010-01-21 Warnick Karl F Apparatus, system, and method for integrated phase shifting and amplitude control of phased array signals
US7873934B1 (en) * 2007-11-23 2011-01-18 Altera Corporation Method and apparatus for implementing carry chains on field programmable gate array devices
US20110109507A1 (en) * 2009-11-09 2011-05-12 Linear Signal, Inc. Apparatus, system, and method for integrated modular phased array tile configuration
CN106100588A (en) * 2016-07-25 2016-11-09 南京铁道职业技术学院 A kind of restructural multi-channel digital down conversion system based on FPGA and method
US20170010381A1 (en) * 2015-07-06 2017-01-12 Metrotech Corporation Signal processing for a cable locating instrument
WO2019156644A1 (en) * 2018-02-12 2019-08-15 Aselsan Elektroni̇k Sanayi̇ Ve Ti̇caret Anoni̇m Şi̇rketi̇ The method enabling the reduction of resource utilization
CN114513193A (en) * 2022-02-15 2022-05-17 电子科技大学 FIR filtering method and filter based on probability calculation and approximate processing

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5831886A (en) * 1996-09-24 1998-11-03 Samsung Electronics Co., Ltd. Calculating a + sign(A) in a single instruction cycle
US5850347A (en) * 1996-09-24 1998-12-15 Samsung Semiconductor, Inc. Calculating 2A+ sign(A) in a single instruction cycle
US5856936A (en) * 1996-09-24 1999-01-05 Samsung Semiconductor, Inc. Calculating A - sign(A) in a single instruction cycle
US5835394A (en) * 1996-09-24 1998-11-10 Samsung Electronics Co., Ltd. Calculating selected sign 3 expression in a single instruction cycle
US5831887A (en) * 1996-09-24 1998-11-03 Samsung Electronics Co., Ltd. Calculating 2A-sign(A) in a single instruction cycle
US6658066B1 (en) * 2000-02-17 2003-12-02 Skyworks Solutions, Inc. Method and apparatus for multiple phase splitting for dual band IQ subharmonic mixer
US6771710B1 (en) * 2000-10-17 2004-08-03 Northrop Grumman Corporation Partial frequency offset digital upconversion
US6654846B1 (en) * 2000-11-14 2003-11-25 Intel Corporation High speed computer bus system with bi-directional transmission medium and interface device
US7840624B2 (en) * 2000-12-29 2010-11-23 Intel Corporation Digital low pass filter
US6873195B2 (en) * 2001-08-22 2005-03-29 Bigband Networks Bas, Inc. Compensating for differences between clock signals
US20030039319A1 (en) * 2001-08-22 2003-02-27 Willem Engelse Monitoring upstream frequency band
US20030053558A1 (en) * 2001-08-22 2003-03-20 David Unger Digital down converter

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4777612A (en) * 1983-10-05 1988-10-11 Nec Corporation Digital signal processing apparatus having a digital filter
US4815023A (en) * 1987-05-04 1989-03-21 General Electric Company Quadrature mirror filters with staggered-phase subsampling
US4893265A (en) * 1984-11-08 1990-01-09 Nec Corporation Rate conversion digital filter
US4893316A (en) * 1985-04-04 1990-01-09 Motorola, Inc. Digital radio frequency receiver
US4953118A (en) * 1987-02-19 1990-08-28 Ant Nachrichtentechnik Gmbh Nonrecursive half-band filter
US5067141A (en) * 1986-08-07 1991-11-19 International Mobile Machine Corporation Interpolator for varying a signal sampling rate
US5247515A (en) * 1991-01-28 1993-09-21 Rockwell International Corporation Apparatus for extracting one from many multiplexed signals

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4709226A (en) * 1985-07-15 1987-11-24 Rca Corporation Circuitry for complementing binary numbers
JPH06100961B2 (en) * 1988-04-18 1994-12-12 富士通テン株式会社 Digital signal processor
JPH0438520A (en) * 1990-06-04 1992-02-07 Mitsubishi Electric Corp Binary data converter

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4777612A (en) * 1983-10-05 1988-10-11 Nec Corporation Digital signal processing apparatus having a digital filter
US4893265A (en) * 1984-11-08 1990-01-09 Nec Corporation Rate conversion digital filter
US4893316A (en) * 1985-04-04 1990-01-09 Motorola, Inc. Digital radio frequency receiver
US5067141A (en) * 1986-08-07 1991-11-19 International Mobile Machine Corporation Interpolator for varying a signal sampling rate
US4953118A (en) * 1987-02-19 1990-08-28 Ant Nachrichtentechnik Gmbh Nonrecursive half-band filter
US4815023A (en) * 1987-05-04 1989-03-21 General Electric Company Quadrature mirror filters with staggered-phase subsampling
US5247515A (en) * 1991-01-28 1993-09-21 Rockwell International Corporation Apparatus for extracting one from many multiplexed signals

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6553396B1 (en) * 1999-02-23 2003-04-22 Sony Corporation Filter bank constituting method and filter bank apparatus
US20070030182A1 (en) * 2003-10-16 2007-02-08 Koninklijke Philips Electronics N.C. Time base adjustment in a data processing device
US7535385B2 (en) * 2003-10-16 2009-05-19 Nxp B.V. Time base adjustment in a data processing device
US7697898B2 (en) * 2004-02-13 2010-04-13 Freescale Semiconductor, Inc Method and apparatus for processing a frequency modulated (FM) signal using an adaptive equalizer
US20050181741A1 (en) * 2004-02-13 2005-08-18 Raj Raghu G. Method and apparatus for processing a frequency modulated (FM) signal using an adaptive equalizer
US20060155793A1 (en) * 2005-01-11 2006-07-13 Via Telecom Co., Ltd. Canonical signed digit (CSD) coefficient multiplier with optimization
US7680872B2 (en) * 2005-01-11 2010-03-16 Via Telecom Co., Ltd. Canonical signed digit (CSD) coefficient multiplier with optimization
US7873934B1 (en) * 2007-11-23 2011-01-18 Altera Corporation Method and apparatus for implementing carry chains on field programmable gate array devices
US8793629B1 (en) 2007-11-23 2014-07-29 Altera Corporation Method and apparatus for implementing carry chains on FPGA devices
US20100013527A1 (en) * 2008-07-15 2010-01-21 Warnick Karl F Apparatus, system, and method for integrated phase shifting and amplitude control of phased array signals
US8195118B2 (en) 2008-07-15 2012-06-05 Linear Signal, Inc. Apparatus, system, and method for integrated phase shifting and amplitude control of phased array signals
US20110109507A1 (en) * 2009-11-09 2011-05-12 Linear Signal, Inc. Apparatus, system, and method for integrated modular phased array tile configuration
US8872719B2 (en) 2009-11-09 2014-10-28 Linear Signal, Inc. Apparatus, system, and method for integrated modular phased array tile configuration
US20170010381A1 (en) * 2015-07-06 2017-01-12 Metrotech Corporation Signal processing for a cable locating instrument
US10338263B2 (en) * 2015-07-06 2019-07-02 Metrotech Corporation Signal processing for a cable locating instrument
CN106100588A (en) * 2016-07-25 2016-11-09 南京铁道职业技术学院 A kind of restructural multi-channel digital down conversion system based on FPGA and method
CN106100588B (en) * 2016-07-25 2023-08-25 南京铁道职业技术学院 Reconfigurable multichannel digital down-conversion system and method based on FPGA
WO2019156644A1 (en) * 2018-02-12 2019-08-15 Aselsan Elektroni̇k Sanayi̇ Ve Ti̇caret Anoni̇m Şi̇rketi̇ The method enabling the reduction of resource utilization
CN114513193A (en) * 2022-02-15 2022-05-17 电子科技大学 FIR filtering method and filter based on probability calculation and approximate processing

Also Published As

Publication number Publication date
US5574671A (en) 1996-11-12

Similar Documents

Publication Publication Date Title
US5548542A (en) Half-band filter and method
US5757794A (en) Digital down converter and method
US4791600A (en) Digital pipelined heterodyne circuit
Peled et al. A new hardware realization of digital filters
EP0472600B1 (en) Decimation filter as for a sigma-delta analog-to-digital converter
US5079734A (en) Digital decimation filter
US5262974A (en) Programmable canonic signed digit filter chip
US5831879A (en) Digital transmit filter
US6131105A (en) Calculation of a scalar product in a direct-type FIR filter
US5515402A (en) Quadrature filter with real conversion
EP2156549A2 (en) Digital signal processing circuit and method comprising band selection
KR100459519B1 (en) Floating point digital delay line filter
EP0693236B1 (en) Method and arrangement in a transposed digital fir filter for multiplying a binary input signal with tap coefficients and a method for designing a transposed digital filter
GB2122055A (en) Sampling frequency conversion circuit
US6188723B1 (en) Finite impulse response filter for wave-shaping digital quadrature amplitude modulation symbols
US6990060B2 (en) Polyphase-discrete fourier transform (DFT) sub-band definition filtering architecture
US5724395A (en) Method and apparatus for filtering digital signals
US4931973A (en) Method of generating updated transversal filter coefficients
EP1119910B1 (en) Area efficient realization of coefficient architecture for bit-serial fir, iir filters and combinational/sequential logic structure with zero latency clock output
CN112187215B (en) Cascaded half-band interpolation filter structure
US5389925A (en) A/D and D/A conversion device with shared parameter generators
EP0865682B1 (en) Use of single channel fir filter architecture to perform combined/parallel filtering of multiple (quadrature) signals
Langlois et al. Polyphase filter approach for high performance, FPGA-based quadrature demodulation
Tammali et al. FPGA Implementation of Polyphase Mixing and Area efficient Polyphase FIR Decimation algorithm for High speed Direct RF sampling ADCs
Lian et al. FPGA implementation of IS-95 CDMA baseband filter

Legal Events

Date Code Title Description
STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: INTERSIL CORPORATION, FLORIDA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HARRIS CORPORATION;REEL/FRAME:010247/0043

Effective date: 19990813

AS Assignment

Owner name: CREDIT SUISSE FIRST BOSTON, AS COLLATERAL AGENT, N

Free format text: SECURITY INTEREST;ASSIGNOR:INTERSIL CORPORATION;REEL/FRAME:010351/0410

Effective date: 19990813

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12

REMI Maintenance fee reminder mailed
AS Assignment

Owner name: MORGAN STANLEY & CO. INCORPORATED,NEW YORK

Free format text: SECURITY AGREEMENT;ASSIGNORS:INTERSIL CORPORATION;TECHWELL, INC.;INTERSIL COMMUNICATIONS, INC.;AND OTHERS;REEL/FRAME:024390/0608

Effective date: 20100427

AS Assignment

Owner name: INTERSIL CORPORATION,FLORIDA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE FIRST BOSTON;REEL/FRAME:024445/0049

Effective date: 20030306