IP Library Granted Patent US 7,236,110
Granted Patent B2
US 7,236,110 · App. 11/272,254 · Granted Jun 26, 2007

Sample rate converter for reducing the sampling frequency of a signal by a fractional number

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 7,236,110
App. No.
11/272,254
Granted
Jun 26, 2007
Kind
B2
Abstract

A sample rate converter reduces the sampling rate of a signal by a fractional number U/D, where U represents an up-sampling rate and D represents a down-sampling rate. The converter comprises an input for receiving an input data stream at a first rate and an FIR filtering stage. The FIR filtering stage comprises a set of D polyphase filter branches, each branch including a set of filter coefficients which operate on a sample of the input signal. The converter also comprises a commutative switch which selectively connects a sample of the input data stream to one of the polyphase filter branches, the switch being arranged to skip every U−1 filter branches during a cycle through the filter branches. An output outputs an output data stream at a second data rate which is lower than the first data rate.

Claims (210)

1. A sample rate converter for reducing the sampling rate of a signal by a fractional number U/D, where U represents an up-sampling rate and D represents a down-sampling rate, the converter comprising:

an input for receiving an input data stream at a first rate;

an FIR filtering stage comprising a set of D polyphase filter branches, each branch including a set of filter coefficients for operating on a sample of the input signal;

a commutative switch which is arranged to selectively connect a sample of the input data stream to one of the polyphase filter branches, the switch being arranged to skip every U−1 filter branches during a cycle through the filter branches and,

an output for outputting an output data stream at a second data rate which is lower than the first data rate, wherein

each polyphase filter branch comprises a set of coefficient multiplication stages where a coefficient is multiplied by an input sample, and the commutative switch comprises a counter which is arranged to selectively output indexes to filter coefficients for a required filter branch and a coefficient generator which generates the filter coefficients for use in the coefficient multiplication stages of the required filter branch.

2. The sample rate converter of claim 1 wherein the coefficient generator calculates the filter coefficients according to a stored formula.

3. The sample rate converter of claim 2 wherein the FIR filtering stage has a SINC 3 response and the coefficient generator calculates the filter coefficients according to the formula:

C

k

=

{

k

(

k

+

1

)

2

if

k

D

[

(

k

-

N

)

(

3

D

-

3

-

2

k

)

+

(

D

+

1

)

]

2

if

D

<

k

(

3

D

-

2

)

2

C

3

D

-

2

-

k

if

k

>

(

3

D

-

2

)

2

where k is an index to the filter coefficient.

4. The sample rate converter of claim 1 wherein the coefficient generator retrieves the filter coefficients from a table of stored coefficients.

5. The sample rate converter of claim 1 wherein each polyphase filter branch comprises N coefficient multiplication stages where an input sample is multiplied by a filter coefficient, and wherein the converter comprises N multiplier and accumulation units, with each multiplier and accumulation unit being arranged to perform one coefficient multiplication stage of each of the filter branches selected by the commutative switch during a cycle through the set of filter branches and to accumulate results of the multiplication stages.

6. The sample rate converter of claim 5 wherein each multiplier and accumulation unit is arranged to accumulate results of the same coefficient multiplication stage in each of the filter branches selected by the commutative switch during a cycle of the commutative switch through the set of filter branches and to forward an accumulated result to a next multiplier and accumulation unit after each cycle.

7. The sample rate converter of claim 5 wherein a coefficient generator generates a set of coefficients for a selected filter branch and the coefficient generator is arranged to output coefficients in a manner which causes results of multiplication stages in N consecutive cycles of the commutative switch to be accumulated on the same multiplier and accumulation unit.

8. An integrated circuit comprising the sample rate converter of claim 1 .

9. A sample rate converter for reducing the sampling rate of a signal by a fractional number U/D, where U represents an up-sampling rate and D represents a down-sampling rate, the converter comprising:

an input for receiving an input data stream at a first rate;

an FIR filtering stage comprising a set of D polyphase filter branches, each branch including a set of three filter coefficients for operating on a sample of the input signal;

a commutative switch which selectively connects a sample of the input data stream to one of the polyphase filter branches, the switch being arranged to skip every U−1 filter branches during a cycle through the filter branches; and

an output for outputting an output data stream at a second data rate which is lower than the first data rate, wherein

each polyphase filter branch comprises three coefficient multiplication stages where an input sample is multiplied by a filter coefficient, and wherein the converter comprises three multiplier and accumulation units, with each multiplier and accumulation unit being arranged to perform one coefficient multiplication stage of each of the filter branches selected by the commutative switch during a cycle through the set of filter branches and to accumulate results of the multiplication stages.

10. A method of performing sample rate conversion of an input data stream by a fractional number U/D, where U represents an up-sampling rate and D represents a down-sampling rate, the method comprising:

receiving an input data stream at a first rate;

applying the input data stream to an FIR filtering stage comprising a set of D polyphase filter branches, each branch including a set of filter coefficients for operating on a sample of the input signal;

selectively applying a sample of the input data stream to one of the polyphase filter branches, and skipping every U−1 filter branches during a cycle through the filter branches; and,

outputting an output data stream at a second data rate which is lower than the first data rate, wherein

each polyphase filter branch comprises a set of coefficient multiplication stages where an input sample is multiplied by a coefficient, and the step of selectively applying a sample of the input data stream to one of the polyphase filter branches comprises generating the filter coefficients for use in the coefficient multiplication stages of the required filter branch and multiplying the sample of the input data stream with the filter coefficients.

11. The method of claim 10 wherein the coefficient generator calculates the filter coefficients according to a stored formula.

12. The method of claim 11 wherein the FIR filtering stage has a SINC 3 response and the filter coefficients are generated according to the formula:

C

k

=

{

k

(

k

+

1

)

2

if

k

D

[

(

k

-

N

)

(

3

D

-

3

-

2

k

)

+

(

D

+

1

)

]

2

if

D

<

k

(

3

D

-

2

)

2

C

3

D

-

2

-

k

if

k

>

(

3

D

-

2

)

2

where k is an index to the filter coefficient.

13. The method of claim 10 wherein the filter coefficients are retrieved from a table of stored coefficients.

14. The method of claim 10 wherein each polyphase filter branch comprises N coefficient multiplication stages where a coefficient is multiplied by an input sample, and the step of multiplying the sample of the input data stream with the filter coefficients is performed by N multiplier and accumulation (MAC) units, the method further comprising using each multiplier and accumulation unit to accumulate the results of the coefficient multiplication stages of the selected filter branches.

15. The method of claim 14 further comprising using each multiplier and accumulation unit to accumulate the results of the same coefficient multiplication stage of the selected filter branches and to forward an accumulated result to a next multiplier and accumulation unit after each cycle through the set of filter branches.

16. The method of claim 14 further comprising generating a set of coefficients for a selected filter branch and outputting coefficients in a manner which causes results of multiplication stages to be accumulated on the same multiplier and accumulation unit during N consecutive cycles through the set of filter branches.

17. A digital signal resulting from the method of claim 10 .

18. A machine-readable medium carrying instructions for causing a processor to perform sample rate conversion of an input data stream by a fractional number U/D, where U represents an up-sampling rate and D represents a down-sampling rate, the instructions causing the processor to:

receive an input data stream at a first rate;

apply the input data stream to an FIR filtering stage comprising a set of D polyphase filter branches, each branch including a set of filter coefficients for operating on a sample of the input signal;

selectively apply a sample of the input data stream to one of the polyphase filter branches, and skip every U−1 filter branches during a cycle through the filter branches; and,

output an output data stream at a second data rate which is lower than the first data rate, wherein

each polyphase filter branch comprises a set of coefficient multiplication stages where an input sample is multiplied by a coefficient, and the step of selectively applying a sample of the input data stream to one of the polyphase filter branches comprises generating the filter coefficients for use in the coefficient multiplication stages of the required filter branch and multiplying the sample of the input data stream with the filter coefficients.