Claims
- 1. A sample rate converter comprising:
a plurality of sample rate converter components; wherein a first portion of the components comprise hardware components; and wherein a second portion of the components comprise software components.
- 2. The sample rate converter of claim 1, wherein the sample rate converter comprises two or more channels for processing input data streams, wherein the two or more channels share one or more of the plurality of sample rate converter components.
- 3. The sample rate converter of claim 1, wherein the sample rate converter comprises two or more channels for processing input data streams, wherein each of the two or more channels is configured to process an input data stream having a sample rate that is independent of sample rates of input data streams processed by the other channels.
- 4. The sample rate converter of claim 3, wherein each channel includes an independent rate estimator.
- 5. The sample rate converter of claim 4, wherein each rate estimator includes a separate sample period counter.
- 6. The sample rate converter of claim 5, wherein a sample rate of each input data stream is determined by reading each sample period counter with a common software component.
- 7. The sample rate converter of claim 5, wherein one of the channels is a primary channel and the remainder of the channels are secondary channels, wherein a sample rate is estimated for the primary channel, wherein for each secondary channel a ratio of a corresponding sample period counter to the primary channel sample period counter is determined, and wherein a sample rate for each secondary channel is determined to be the sample rate estimated for the primary channel times the ratio.
- 8. The sample rate converter of claim 3, wherein each channel implements a polyphase filter, wherein coefficients for each polyphase filter implementation are interpolated from a common set of filter coefficients.
- 9. The sample rate converter of claim 1, wherein the components comprise:
a rate estimator; a low pass filter, wherein an output of the rate estimator is passed through the low pass filter; a phase selection unit, wherein an output of the low pass filter is provided to the phase selection unit; a polyphase coefficient interpolator, wherein a set of interpolated polyphase filter coefficients is generated by the polyphase coefficient interpolator based upon an output of the phase selection unit; a convolution unit configured to convolve the interpolated polyphase filter coefficients with a corresponding sample of an input data stream; an input FIFO configured to receive samples of the input data stream and to provide the samples of the input data stream to the convolution unit; an output FIFO configured to receive samples of an output data stream from the convolution unit; and a FIFO management unit coupled to the input and output FIFOs and configured to provide feedback to the low pass filter.
- 10. The sample rate converter of claim 9, wherein the rate estimator, the low pass filter and the polyphase coefficient interpolator are implemented in hardware.
- 11. The sample rate converter of claim 9, wherein the phase selection unit, the convolution unit and the FIFO management unit are implemented in software.
- 12. The sample rate converter of claim 9, wherein the rate estimator comprises a counter which is configured to count sample periods of the input data stream and wherein an input sample rate is computed by a software component based upon a value of the counter.
- 13. The sample rate converter of claim 1, wherein the sample rate converter is coupled to a pulse width modulated audio amplifier.
- 14. A method for converting an input data stream having a first sample rate to an output data stream having a second data rate, the method comprising:
receiving a first input data stream having a first input sample rate; and processing the first input data stream using at least one hardware component of a sample rate converter and at least one software component of the sample rate converter to produce a first output data stream having a first output sample rate.
- 15. The method of claim 14, further comprising estimating the first input sample rate.
- 16. The method of claim 15, wherein estimating the first input sample rate comprises counting a number of cycles in a sample period in the first input data stream and computing the first input sample rate from the number of cycles in the sample period.
- 17. The method of claim 14, wherein the first input sample rate is variable.
- 18. The method of claim 14, further comprising receiving a second input data stream having a second input sample rate and processing the second input data stream using at least one hardware component of the sample rate converter and at least one software component of the sample rate converter to produce a second output data stream having a second output data rate.
- 19. The method of claim 18, wherein the first and second input sample rates are variable, independent of each other.
- 20. The method of claim 18, wherein the first output sample rate is equal to the second output sample rate.
- 21. The method of claim 18, wherein the first and second input data streams are processed by at least one common hardware or software component.
- 22. The method of claim 14, wherein the at least one hardware component comprises a polyphase coefficient interpolator.
- 23. The method of claim 14, wherein the at least one software component comprises a phase selection unit which selects a phase for interpolating a set of polyphase filter coefficients.
- 24. The method of claim 14, wherein the at least one software component comprises a convolution unit which convolves sets of interpolated polyphase filter coefficients with corresponding samples of the first input data stream to produce the first output data stream.
- 25. The method of claim 14, wherein processing the first input data stream comprises: estimating the first input sample rate; selecting a phase for interpolation of a set of polyphase filter coefficients; interpolating the set of polyphase filter coefficients; convolving the set of interpolated polyphase filter coefficients with one or more samples of the first input data stream; and providing resulting samples of the first output data stream.
- 26. The method of claim 25, wherein interpolating the set of polyphase filter coefficients is performed in hardware and convolving the set of interpolated polyphase filter coefficients with one or more samples of the first input data stream is performed in software.
RELATED APPLICATIONS
[0001] This application claims priority to: U.S. Provisional Patent Application No. 60/469,761, entitled “Systems and Methods for Implementing a Sample Rate Converter Using Hardware and Software to Maximize Speed and Flexibility,” by Andersen, et al., filed May 12, 2003; U.S. Provisional Patent Application No. 60/456,414, entitled “Adaptive Anti-Clipping Protection,” by Taylor, et al., filed Mar. 21, 2003; U.S. Provisional Patent Application No. 60/456,430, entitled “Frequency Response Correction,” by Taylor, et al., filed Mar. 21, 2003; U.S. Provisional Patent Application No. 60/456,429, entitled “High-Efficiency, High-Performance Sample Rate Converter,” by Andersen, et al., filed Mar. 21, 2003; U.S. Provisional Patent Application No. 60/456,421, entitled “Output Device Switch Timing Correction,” by Taylor, et al., filed Mar. 21, 2003; U.S. Provisional Patent Application No. 60/456,422, entitled “Output Filter, Phase/Timing Correction,” by Taylor, et al., filed Mar. 21, 2003; U.S. Provisional Patent Application No. 60/456,428, entitled “Output Filter Speaker/Load Compensation,” by Taylor, et al., filed Mar. 21, 2003; U.S. Provisional Patent Application No. 60/456,420, entitled “Output Stage Channel Timing Calibration,” by Taylor, et al., filed Mar. 21, 2003; U.S. Provisional Patent Application No. 60/456,427, entitled “Intelligent Over-Current, Over-Load Protection,” by Hand, et al., filed Mar. 21, 2003; each of which is fully incorporated by reference as if set forth herein in its entirety.
Provisional Applications (9)
|
Number |
Date |
Country |
|
60469761 |
May 2003 |
US |
|
60456414 |
Mar 2003 |
US |
|
60456430 |
Mar 2003 |
US |
|
60456429 |
Mar 2003 |
US |
|
60456421 |
Mar 2003 |
US |
|
60456422 |
Mar 2003 |
US |
|
60456428 |
Mar 2003 |
US |
|
60456420 |
Mar 2003 |
US |
|
60456427 |
Mar 2003 |
US |