IP Library Granted Patent US 8,405,532
Granted Patent B1
US 8,405,532 · App. 12/790,552 · Granted Mar 26, 2013

Asynchronous sample rate converter

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,405,532
App. No.
12/790,552
Granted
Mar 26, 2013
Kind
B1
Abstract

Systems and methods for asynchronous sample rate conversion are provided that allow time-varying arbitrary sample ratios. An uncorrected ratio between two arbitrary sample rates is corrected and subsequently used to perform an efficient sample rate conversion on the samples in a data stream. Coefficients of a (polyphase) finite impulse response filter are interpolated based on a current time register value. Additional computational efficiency (and a smaller finite impulse response filter) may be used due to oversampling the input signal to the finite impulse response filter.

Claims (48)

1. A method for asynchronous sample rate conversion, comprising:

adding a time increment value to a current time register to produce a current time value, wherein the current time value includes a current time integer value and a current time fractional value;

determining a starting address in a data table based on the current time integer value;

performing interpolation of coefficients related to a finite impulse response filter to generate interpolated coefficients; and

configuring a finite impulse response filter from the interpolated coefficients.

2. The method of claim 1 , wherein the coefficients are retrieved from a coefficient memory.

3. The method of claim 2 , wherein the most significant bits of the current time fractional value are used to determine a starting address in the coefficient memory, and wherein the remaining bits of the current time fractional value are used to control the interpolation.

4. The method of claim 1 , wherein the finite impulse response filter uses polyphase components.

5. The method of claim 1 , wherein digital waveform data is stored in the data table.

6. The method of claim 1 , wherein the starting address addresses a vector of multiple samples in the data table.

7. The method of claim 1 , wherein the finite impulse response filter filters multiple entries of the data table.

8. A system for asynchronous sample rate conversion, comprising:

an adder which adds a time increment value to a current time register, wherein the current time register includes a current time integer value and a current time fractional value;

a data table, wherein a starting address is determined by a part of the current time register;

a coefficient memory comprising coefficients related to a finite impulse response filter, wherein a second starting address is determined by a second part of the current time register;

an arithmetic unit which produces interpolated coefficients, wherein the interpolation is controlled by a third part of the current time register; and

a finite impulse response filter configured from the interpolated coefficients which filters multiple entries of the data table.

9. The system of claim 8 , wherein the finite impulse response filter uses polyphase components.

10. The system of claim 8 , wherein the most significant bits of the current time fractional value are used to determine the second starting address, and wherein the remaining bits of the current time fractional value are used to determine the third part of the current time register.

11. A non-transitory computer readable storage medium having embodied thereon a program, the program being executable by a processor to perform a method for asynchronous sample rate conversion, comprising:

adding a time increment value to a current time register to produce a current time value, wherein the current time value includes a current time integer value and a current time fractional value;

determining a starting address in a data table based on the current time integer value;

performing interpolation of coefficients related to a finite impulse response filter to generate interpolated coefficients; and

configuring a finite impulse response filter from the interpolated coefficients.

12. The non-transitory computer readable storage medium of claim 11 , wherein the coefficients are retrieved from a coefficient memory.

13. The non-transitory computer readable storage medium of claim 11 , wherein the finite impulse response filter uses polyphase components.

14. The non-transitory computer readable storage medium of claim 11 , wherein digital waveform data is stored in the data table.

15. The non-transitory computer readable storage medium of claim 11 , wherein the starting address addresses a vector of multiple samples in the data table.

16. A method for calculating a corrected ratio of two time increment values, comprising:

calculating an uncorrected ratio between a first time increment value and a second time increment value;

producing an error value by subtracting an uncorrected increment value from the second time increment value; and

updating the uncorrected ratio by applying an error correction value.

17. The method of claim 16 , wherein the uncorrected increment value is determined by multiplying the first time increment value with the uncorrected ratio.

18. The method of claim 16 , wherein the error correction value is determined by multiplying the error value with an inverse of the second time increment value.

19. An apparatus for calculating a corrected ratio of two time increment values, comprising:

a ratio module executed by a processor to calculate an uncorrected ratio between a first time increment value and a second time increment value;

a first multiplier which multiplies the uncorrected ratio with the second time increment value to produce an uncorrected time increment value;

a first subtraction module which calculates an error value by subtracting the uncorrected time increment value from the first time increment value;

an error correction module which produces an error correction value; and

an arithmetic module which updates the uncorrected ratio by applying the error correction value to produce a corrected ratio.

20. The apparatus of claim 19 , wherein the ratio module comprises:

a second subtraction module which calculates a first time increment value between consecutive arrival times of samples of a first data stream sampled at a first clock rate;

a third subtraction module which calculates a second time increment value between consecutive arrival times of samples of a second data stream sampled at a second clock rate; and

a second arithmetic module which produces an uncorrected ratio based on the first time increment value and the second time increment value.

21. The apparatus of claim 20 , wherein the second arithmetic module comprises:

an inverter which calculates the inverse of the second time increment value; and

a second multiplier which multiplies the inverse of the second time increment value with the first time increment value to produce an uncorrected ratio.

22. The apparatus of claim 19 , wherein the error correction module comprises another multiplier which multiplies the error value with the inverse of the second time increment value to produce the error correction value.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2024
From: KNOWLES ELECTRONICS, LLC
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 066215/0911 →
CHANGE OF NAME Recorded Feb 25, 2016
From: AUDIENCE, INC.
To: AUDIENCE LLC
Reel/Frame 037927/0424 →
MERGER Recorded Feb 25, 2016
From: AUDIENCE LLC
To: KNOWLES ELECTRONICS, LLC
Reel/Frame 037927/0435 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2010
From: CLARK, BRIAN; MASSIE, DANA
To: AUDIENCE, INC.
Reel/Frame 024836/0485 →