US7908306B1

SRC with multiple sets of filter coefficients in memory and a high order coefficient interpolator

Summary by NHIP

Sample Rate Conversion with Interpolated Filters

The method stores multiple independent polyphase filter coefficient sets in memory and selects one based on a register value. A cubic spline algorithm interpolates the selected coefficients according to an estimated sample rate before convolving them with audio input samples.

Claim Score by NHIP

Read claim 6, the broadest

Abstract

Systems and methods for converting a data stream from a first sample rate to a second sample rate using a sample rate converter that employs selectable filters. In one embodiment, the filters are implemented by providing multiple sets of filter coefficients in a memory, selecting one of the sets of filter coefficients and performing coefficient interpolation to produce filter coefficients that are convolved with the input data stream to produce a re-sampled output data stream. The input signal can be an audio signal that is convolved with interpolated polyphase filter coefficients in the sample rate converter of a digital PWM audio amplifier. The set of filter coefficients can be selected by a value stored in a filter selection register that is modifiable by a DSP or by user input. The sets of filter coefficients can be stored in a single memory and interpolated according to a cubic spline interpolation algorithm.

US7908306B1, drawing sheet 1
Sheet 1 of 6

Term

Projected expiry 22 January 2028.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Projected expiry

18 claims: 3 independent, 15 dependent

  1. 1
    A method comprising:(a) storing a plurality of independent sets of filter coefficients in a memory, wherein each set of filter coefficients defines a different polyphase filter function, wherein each of the different polyphase filter functions would result in at least some modifying of a signal if the signal were filtered in accordance with the polyphase filter function, and wherein each of the different polyphase filter functions would result in modifying of a signal in a different manner than the other polyphase filter functions;(b) storing a value in a filter selection register;(c) selecting a single one of the independent sets of filter coefficients based on the value stored in the filter selection register;(d) receiving an audio input signal including a plurality of samples;(e) estimating a sample rate of the audio input signal;(f) interpolating the single one selected set of filter coefficients, in dependence on the estimated sample rate of the audio input signal, to thereby produce interpolated polyphase filter coefficients;and (g) convolving the produced interpolated polyphase filter coefficients with the samples of the audio input signal to produce a filtered audio output signal that differs from the audio input signal regardless of which single one of the sets of filter coefficients is selected;wherein said selecting the single one of the independent sets of filter coefficients at step (c) is performed prior to receiving the audio input signal at step (d), independent of the audio input signal received at step (d), and independent of the filtered audio output signal produced at step (g);and wherein the same single one of the sets of filter coefficients selected at step (c) is used at steps (f) and (g) to produce the filtered audio output signal produced at step (g).
  2. 6
    Broadest claimClaim Score 31, narrow(NHIP)A system comprising:a coefficient interpolator;a filter selection register;a memory coupled to the coefficient interpolator;and a sample rate estimator configured to estimate a sample rate of an audio input signal;a convolution engine coupled to the coefficient interpolator;wherein the memory is configured to store multiple independent sets of filter coefficients, wherein each set of filter coefficients defines a different polyphase filter function, wherein each of the different polyphase filter functions would result in at least some modifying of a signal if the signal were filtered in accordance with the polyphase filter function, and wherein each of the different polyphase filter functions would result in modifying of a signal in a different manner than the other polyphase filter functions;and wherein the coefficient interpolator is configured to interpolate a selected single one of the independent sets of filter coefficients, in dependence on the estimated sample rate of the audio input signal, to thereby produce interpolated polyphase filter coefficients;and wherein the selected single of one of the independent sets of filter coefficients is selected based on contents of the filter selection register, independent of the audio input signal received, and independent of a filtered audio output signal produced;wherein the same single one of the sets of filter coefficients selected is used to produce the filtered audio output signal;and wherein the convolution engine is configured to convolve the audio input signal with the produced interpolated polyphase coefficients corresponding to the selected single one of the sets of filter coefficients to produce the filtered audio output signal that differs from the audio input signal regardless of which one of the sets of filter coefficients is selected.
  3. 11
    A method comprising:storing a plurality of independent sets of filter coefficients in a memory, wherein each set of filter coefficients defines a different polyphase filter function, wherein each of the different polyphase filter functions would result in at least some modifying of a signal if the signal were filtered in accordance with the polyphase filter function, and wherein each of the different polyphase filter functions would result in modifying of a signal in a different manner than the other polyphase filter functions;storing a value in a filter selection register;selecting a single one of the sets of filter coefficients based on the value stored in the filter selection register;receiving an audio data signal and frame sync signals associated with the audio data signal;estimating, based on the frame sync signals, a sample rate of the audio data signal;interpolating the single one selected set of filter coefficients, in dependence on the estimated sample rate of the received audio data signal, to thereby produce interpolated polyphase filter coefficients;and convolving the produced interpolated polyphase filter coefficients with the received audio data signal to produce a filtered audio data signal that differs from the received audio data signal regardless of which single one of the sets of filter coefficients is selected;wherein said selecting the single one of the independent sets of filter coefficients is performed prior to receiving the audio data signal, independent of the audio data signal received, and independent of the filtered audio data signal produced;and wherein the same single one of the sets of filter coefficients selected is used to produce the filtered audio data signal.