A method and apparatus for analog to digital conversion includes processing that begins by quantizing an analog input signal to produce a stream of digital data at an over sampling rate. The processing continues by producing partially filtered data based on a moving sum of the stream of data. The processing continues by decimation filtering the partially filtered data to produce a digital output value.
|
12. A method for analog to digital conversion, the method comprises the steps of:
quantizing an analog input signal to produce a stream of digital data at an oversampling rate; producing partially filtered data based on a moving sum of the stream of digital data; and decimation filtering the partially filtered data to produce a digital output value.
1. An analog to digital converter comprises:
an oversampling quantizer that samples an analog input signal to produce a stream of digital data at an oversampling rate; a moving sum module operably coupled to receive the stream of digital data and to produce therefrom partially filtered data; and digital decimation filter operably coupled to receive the partially filtered data and to produce therefrom a digital output value.
23. An apparatus for analog to digital conversion, the apparatus comprises:
processing module; and memory operably coupled to the processing module, wherein the memory includes operational instructions that cause the processing module to: quantize an analog input signal to produce a stream of digital data at an oversampling rate; produce partially filtered data based on a moving sum of the stream of digital data; and decimation filter the partially filtered data to produce a digital output value. 17. A method of analog to digital conversion, the method comprises the steps of:
quantizing an analog input signal to produce a first stream of digital data and an analog output; quantizing the analog output to produce a second stream of digital data; decimation filtering the first stream of digital data to produce a first decimated digital data; decimation filtering the second stream of digital data to produce a second decimated digital data; and recombination filtering the first and second decimated digital data to produce a digital output.
28. An apparatus for analog to digital conversion, the apparatus comprises:
processing module; and memory operably coupled to the processing module, wherein the memory includes operational instructions that cause the processing module to: quantize an analog input signal to produce a first stream of digital data and an analog output; quantize the analog output to produce a second stream of digital data; decimation filter the first stream of digital data to produce a first decimated digital data; decimation filter the second stream of digital data to produce a second decimated digital data; and recombination filter the first and second decimated digital data to produce a digital output. 6. An analog to digital converter comprises:
a first oversampling quantizer operably coupled to receive an analog input signal and to produce therefrom a first stream of digital data and an analog output; a second oversampling quantizer operably coupled to receive the analog output and to produce therefrom a second stream of digital data; first digital decimation filter operably coupled to receive the first stream of digital data and to produce therefrom a first decimated digital data; second digital decimation filter operably coupled to receive the second stream of digital data and to produce therefrom a second decimated digital data; and recombination filter operably coupled to receive the first and second decimated digital data and to produce therefrom a digital output.
2. The analog to digital converter of
control module operably coupled to receive the partially filtered data and to produce therefrom a control signal; decimation filter calculation module operably coupled to produce a reference area value per clock interval of the oversampling rate based on an up-sampling value, a down-sampling value, and a predetermined filter transfer function, wherein the up-sampling value and the down-sampling value are related based on a sample rate conversion value; area computation module operably coupled to produce a computed area value from the reference area value based on the control signal; an inversion module operably coupled to receive the computed area value and to produce therefrom an inverted area value; and a multiplexor operably coupled to receive, as inputs, the computed area value and the inverted area value, wherein the multiplexor outputs the computed area value or the inverted area as a weighted area value for a current clock interval based on the control signal.
3. The analog to digital converter of
decimation summing module operably coupled to compute a moving sum of data of the partially filtered data based on an accumulation of a weighted area value for a plurality of clock intervals of the oversampling rate; and decimation output module operably coupled to produce a digital output value from the moving sum based on a down-sampling value, wherein the digital output value is at a desired output rate.
4. The analog to digital converter of
a first set of multipliers operably coupled to receive the reference area value and produce a first plurality of multiple reference area values; a second set of multipliers operably coupled to receive the reference area value and produce a second plurality of multiple reference area values; a first multiplexor operably coupled to receive, as inputs, the first plurality of multiple reference area values and to receive the control signal, wherein the first multiplexor outputs one of the first plurality of multiple reference area values as a first area value; a second multiplexor operably coupled to receive, as inputs, the second plurality of multiple reference area values and to receive the control signal, wherein the second multiplexor outputs one of the second plurality of multiple reference area values as a second area value; and summation module operably coupled to sum the first and second area values to produce the computed area value.
5. The analog to digital converter of
up-sampling module operably coupled to receive the partially filtered data and to up-sample the rate of the partially filtered data based on an up-sampling value to produce up-sampled data; filter operably coupled to filter the up-sampled data to produce up-sampled filtered data; and down-sampling module operably coupled to receive the up-sampled filtered data and to down-sample the up-sampled filtered data based on a down-sampling value to produce the digital output at a desired output rate.
7. The analog to digital converter of
moving sum module operably coupled to receive the first stream of digital data and to produce therefrom partially filtered data; and decimation module operably coupled to receive the partially filtered data and to produce therefrom the first decimated digital data.
8. The analog to digital converter of
control module operably coupled to receive the partially filtered data and to produce therefrom a control signal; decimation filter calculation module operably coupled to produce a reference area value per clock interval of the oversampling rate based on an up-sampling value, a down-sampling value, and a predetermined filter transfer function, wherein the up-sampling value and the down-sampling value are related based on a sample rate conversion value; area computation module operably coupled to produce a computed area value from the reference area value based on the control signal; an inversion module operably coupled to receive the computed area value and to produce therefrom an inverted area value; and a multiplexor operably coupled to receive, as inputs, the computed area value and the inverted area value, wherein the multiplexor receives, as a control signal, the digital stream of data, wherein based on a current data sample, the multiplexor outputs the area value or the inverted area as a weighted area value for a current clock interval.
9. The analog to digital converter of
a first set of multipliers operably coupled to receive the reference area value and produce a first plurality of multiple reference area values; a second set of multipliers operably coupled to receive the reference area value and produce a second plurality of multiple reference area values; a first multiplexor operably coupled to receive, as inputs, the first plurality of multiple reference area values and to receive the control signal, wherein the first multiplexor outputs one of the first plurality of multiple reference area values as a first area value; a second multiplexor operably coupled to receive, as inputs, the second plurality of multiple reference area values and to receive the control signal, wherein the second multiplexor outputs one of the second plurality of multiple reference area values as a second area value; and summation module operably coupled to sum the first and second area values to produce the computed area value.
10. The analog to digital converter of
up-sampling module operably coupled to receive the partially filtered data and to up-sample the rate of the partially filtered data based on an up-sampling value to produce up-sampled data; filter operably coupled to filter the up-sampled data to produce up-sampled filtered data; and down-sampling module operably coupled to receive the up-sampled filtered data and to down-sample the up-sampled filtered data based on a down-sampling value to produce the first decimated digital data.
11. The analog to digital converter of
moving sum module operably coupled to receive the second stream of digital data and to produce therefrom partially filtered data; and decimation module operably coupled to receive the partially filtered data and to produce therefrom the second decimated digital data.
13. The method of
producing a control signal from the partially filtered data; producing a reference area value per clock interval of the oversampling rate based on an up-sampling value, a down-sampling value, and a predetermined filter transfer function, wherein the up-sampling value and the down-sampling value are related based on a sample rate conversion value; producing a computed area value from the reference area value based on the control signal; inverting the computed area value to produce an inverted area value; and outputting the area value or the inverted area as a weighted area value for a current clock interval based on the control signal.
14. The method of
computing a moving sum of data of the stream of digital data based on an accumulation of a weighted area value for a plurality of clock intervals of the oversampling rate; and producing the digital output value from the moving sum based on a down-sampling value, wherein the digital output value is at a desired output rate.
15. The method of
producing a first plurality of multiple reference area values from the reference area value; producing a second plurality of multiple reference area values from the reference area value; outputting one of the first plurality of multiple reference area values as a first area value based on the control signal; outputting one of the second plurality of multiple reference area values as a second area value based on the control signal; and summing the first and second area values to produce the computed area value.
16. The method of
up-sampling the partially filtered data based on an up-sampling value to produce up-sampled data; filtering the up-sampled data to produce up-sampled filtered data; and down-sampling the up-sampled filtered data based on a down-sampling value to produce the digital output value at a desired output rate.
18. The method of
producing partially filtered data from the first stream of digital data; and producing the first decimated digital data from the partially filtered data.
19. The method of
producing a control signal from the partially filtered data; producing a reference area value per clock interval of the oversampling rate based on an up-sampling value, a down-sampling value, and a predetermined filter transfer function, wherein the up-sampling value and the down-sampling value are related based on a sample rate conversion value; producing a computed area value from the reference area value based on the control signal; inverting the computed area value to produce an inverted area value; and outputting the area value or the inverted area as a weighted area value for a current clock interval based on the control signal and a current data sample.
20. The method of
producing a first plurality of multiple reference area values from the reference area value; producing a second plurality of multiple reference area values from the reference area value; outputting one of the first plurality of multiple reference area values as a first area value based on the control signal; outputting one of the second plurality of multiple reference area values as a second area value based on the control signal; and summing the first and second area values to produce the computed area value.
21. The method of
up-sampling the rate of the partially filtered data based on an up-sampling value to produce up-sampled data; filtering the up-sampled data to produce up-sampled filtered data; and down-sampling the up-sampled filtered data based on a down-sampling value to produce the first decimated digital data.
22. The method of
producing partially filtered data from the second stream of digital data; and producing the second decimated digital data from the partially filtered data.
24. The apparatus of
producing a control signal from the partially filtered data; producing a reference area value per clock interval of the oversampling rate based on an up-sampling value, a down-sampling value, and a predetermined filter transfer function, wherein the up-sampling value and the down-sampling value are related based on a sample rate conversion value; producing a computed area value from the reference area value based on the control signal; inverting the computed area value to produce an inverted area value; and outputting the area value or the inverted area as a weighted area value for a current clock interval based on the control signal.
25. The apparatus of
computing a moving sum of data of the stream of digital data based on an accumulation of a weighted area value for a plurality of clock intervals of the oversampling rate; and producing the digital output value from the moving sum based on a down-sampling value, wherein the digital output value is at a desired output rate.
26. The apparatus of
producing a first plurality of multiple reference area values from the reference area value; producing a second plurality of multiple reference area values from the reference area value; outputting one of the first plurality of multiple reference area values as a first area value based on the control signal; outputting one of the second plurality of multiple reference area values as a second area value based on the control signal; and summing the first and second area values to produce the computed area value.
27. The apparatus of
up-sampling the partially filtered data based on an up-sampling value to produce up-sampled data; filtering the up-sampled data to produce up-sampled filtered data; and down-sampling the up-sampled filtered data based on a down-sampling value to produce the digital output value at a desired output rate.
29. The apparatus of
producing partially filtered data from the first stream of digital data; and producing the first decimated digital data from the partially filtered data.
30. The apparatus of
producing a control signal from the partially filtered data; producing a reference area value per clock interval of the oversampling rate based on an up-sampling value, a down-sampling value, and a predetermined filter transfer function, wherein the up-sampling value and the down-sampling value are related based on a sample rate conversion value; producing a computed area value from the reference area value based on the control signal; inverting the computed area value to produce an inverted area value; and outputting the area value or the inverted area as a weighted area value for a current clock interval based on the control signal and a current data sample.
31. The apparatus of
producing a first plurality of multiple reference area values from the reference area value; producing a second plurality of multiple reference area values from the reference area value; outputting one of the first plurality of multiple reference area values as a first area value based on the control signal; outputting one of the second plurality of multiple reference area values as a second area value based on the control signal; and summing the first and second area values to produce the computed area value.
32. The apparatus of
up-sampling module operably coupled to receive the partially filtered data and to up-sample the rate of the partially filtered data based on an up-sampling value to produce up-sampled data; filter operably coupled to filter the up-sampled data to produce up-sampled filtered data; and down-sampling module operably coupled to receive the up-sampled filtered data and to down-sample the up-sampled filtered data based on a down-sampling value to produce the first decimated digital data.
33. The apparatus of
producing partially filtered data from the second stream of digital data and to; and producing the second decimated digital data from the partially filtered data.
|
This invention relates generally to processing of data and more particularly to processing data by performing an analog to digital conversion with varying sample rates.
Analog to digital converters are known to receive an analog signal and generate a corresponding digital signal. An analog to digital converter may be implemented using a variety of topologies. For example, an analog to digital converter may be implemented utilizing Sigma-Delta technology, mash converter technology, successive approximation technology, flash converter technology, or variations thereof. For example, a mash analog to digital converter is a variation of a Sigma-Delta modulator.
The order of an analog to digital converter, such as a Sigma-Delta analog to digital converter, varies depending on the application. For example, in audio applications, where the analog input signal range varies from 20 Hz to 20 Khz, a 2nd order Sigma-Delta modulator analog converter works well. As the bandwidth of the signal range increases, the order of the modulator must also increase. For example, to process signals with a bandwidth up to 400 Khz, a 4th order Sigma-Delta modulator, analog to digital converter is utilized.
The recombining filter 16 combines the 2 digital streams of data to produce a multi-bit stream of data. The 5th order CIC filter 20, operating at a rate of some multiple of the output sampling rate (M*Fs), produces a digital filtered output. The FIR filter 22 further filters and down-samples the CIC filtered signal to produce the resulting digital output at the desired sampling rate (Fs).
The 4th order Sigma-Delta A to D converter of
Therefore, a need exists for a method and apparatus of sample rate conversion within analog to digital converters having a higher order modulator.
Generally, the present invention provides a method and apparatus for analog to digital conversion. Such a method and apparatus includes processing that begins by quantizing an analog input signal to produce a stream of digital data at an over sampling rate. The processing continues by producing partially filtered data based on a moving sum of the stream of data. The processing continues by decimation filtering the partially filtered data to produce a digital output value. By bifurcating the digital conversion process into a moving sum and decimation filtering, the order of the decimation filter can be reduced thereby simplifying the circuitry required to produce an accurate digital output of an analog signal.
The present invention can be more fully described with reference to
Up sampling modules 34 and 36 receive the respective streams of data and increase the rate of the digital streams. The amount of which the rate of the digital stream is increased is based upon the desired sample rate conversion. The desired sample rate conversion will generally be dictated by the specification in which the analog to digital converter will be utilized. For example, the SHDSL specification indicates that the output of an analog to digital converter will need to vary the output sampling rate from approximately 70 Khz to 700 Khz. The specification may also indicates the frequency percentage steps that the output sampling rate should be increased. For example, the percent increase may be ⅓rd of a percent, such that the output sampling may be adjusted by ⅓rd of a percent. For example, the 700 Khz output sampling rate may be reduced to 697.7 Khz (i.e., ⅓ of a percent decrease from 700 KHz). In this instance, the up sampling value and down sampling value are integers. To achieve this kind of granularity, the up sampling value may be 300 while the down sampling value is 301. With an up sampling value of 300, the up sampling modules 34 and 36 are required to have a 10.5 gigahertz clock, when the over sampling rate of the modulators 12 and 14 is 35 Mhz.
The recombining filter 16 combines the outputs of up sampling modules 34 and 36 to produce a 4 bit digital stream. A 5th order moving sum 32 receives the 4 bit digital stream and produces a multi-bit digital output that is subsequently down sampled by down sampling module 38. The 5th order moving sum essentially computes the area under the curve of the 5th order transfer function for a given down sampling interval. A 5th order moving sum will be a complex function. As such, a computational engine that performs a 5th order moving sum is quite complex.
In operation, the Sigma-Delta modulators 12 and 14 perform as previously described to produce a digital stream of data. Delay element 92 causes a one-clock delay such that the 1st and 2nd paths are phase aligned. The 1st and 2nd moving sums 66 and 68 perform the corresponding linear function of 1+Z-1+Z-2+ . . . Z-11. The sample rate converters 94 and 96 perform the functions as described with reference to
For example, the following represents an example of the code used to determining the moving sums based on the region in which the current sample lies.
#include | <cstd1ib.h> | |
#include | <stdio.h> | |
#include | <math.h> | |
#define | SIMTYPE 0 | |
#define | PI 3.141592654 | |
#define | FS 35.328e6 | |
#define | N 16384.0 | |
#define | FIRLENGTH 12 /* length of moving average between | |
ADC and SRC */ | ||
main (int argc, char *argv[ ]) | ||
char *junk; | ||
long max, temp, k, j, I, adcout, DATARATEINDEX, cic1A=0, | ||
cic2A=0, count; | ||
long h[828*3]; | ||
double a, b, FCH, vin, adc1=0, adc2=0, adc3=0, adc4=0, osr, | ||
noise, output=0; | ||
int cmp12out=1, pcmp12out=1, ppcmp12out=1, cmp34out=1, | ||
pcmp34out=1, ppcmp34out=1, | ||
adclout [FIRLENGTH], adc2out [FIRLENGTH], adc1fir=0, | ||
adc2fir=0; | ||
longsrcreg=0, areaA=0, areaB=0, | ||
pareaA=0, pareaB=0, srcl=0, psrcl=0, src2=0, psrc2=0, | ||
ppsrc2=0, | ||
outa=0, outb=0, cic1B, cic2B; | ||
double ma1 [MA], ma2 [MA], ma3 [MA], ma4 [MA], ma5 [MA], | ||
maout; | ||
if (argc !=2) | ||
printf ("ERROR in txpath.c: need DATARATEINDEX\n"); | ||
DATARATEINDEX = (int) (strtod (argv [1], &junk)); | ||
osr = 828.0/(25.0 + (float) DATARATEINDEX) *1.0; | ||
srcreg = 0; | ||
a = osr; | ||
b = N; | ||
FCH = FS/a/b*2.0; | ||
if | (SIMTYPE = = 0) | |
count = (1200*12*1104/ (DATARATEINDEX+25)) ; | ||
if | (SIMTYPE = = 3) | |
count = (long) (4000.0*16.0*osr) | ||
for | (i=0, j=0; I < count; i+ +) | |
{ | ||
for | (k = (FIRLENGTH -1); k > 0; k -12 -) | |
{ | ||
adc1out [k] = adc1out [k - 1]; | ||
adc2out [k] = adc2out [k - 1]; | ||
adc1fir = adc1fir + adc1out [k]; | ||
adc2fir = adc2fir + adc2out [k]; | ||
} | ||
adc1out [0] = pcmp12out; | ||
adc2out [0] = cmp34out; | ||
adc1fir = adc1fir + adc1out [0]; | ||
adc2fir = adc2fir + adc2out [0]; | ||
pareaA = areaA; | ||
pareaB = areaB; | ||
/*************** region I ************************/ | ||
if | (srcreg < (IDATARATEINDEX + 25)) | |
{ | ||
areaA = (srcreg* (srcreg + 1)) >>1; | ||
psrc1 = src1; | ||
ppsrc2 = psrc2; | ||
psrc2 = src2; | ||
src1 = cic1A + pareaA*adc1fir; | ||
src2 = cic2A + pareaA*adc2fir. | ||
cic1A = areaA*adc1fir | ||
cic2A = areaA*adc2fir, | ||
outa = 1; | ||
areaB = ((828 - srcreg) * (829 - srcreg))>>1. | ||
cic1B = cic1B + (829*828 - areaB - pareaB) * adc1fir; | ||
cic2B = cic2B + (829*828 - areaB - pareaB) * adc2fir; | ||
} | ||
/*************** region II ***********************/ | ||
if ((srcreg >= (DATAREATEINDEX + 25)) && (srcreg < 828)) | ||
{ | ||
areaA = | (srcreg* (srcreg + 1)) >> 1; | |
cic1A = | cic1A + (areaA - pareaA) *adc1fir; | |
cic2A = | cic2A + (areaA - pareaA) *adc2fir; | |
areaB = | ((828 - srcreg) * (829 - srcreg)) >>1; | |
cic1B = | cic1B + (pareaB - areaB) *adc1fir; | |
cic2B = | cic2B + (pareaB - areaB) *adc2fir; | |
} | ||
/*************** region III **********************/ | ||
if ((srcreg >= 828) && (srcreg < (828 + DATARATEINDEX + 25 | ||
))) | ||
{ | ||
areaA = | ((828*2 - srcreg) * (828*2+1 - srcreg)) >>1; | |
cic1A = | cic1A + (829*828 - areaA - pareaA) *adc1fir; | |
cic2A = | cic2A + (829*828 - areaA - pareaA) *adc2fir; | |
areaB = | ((srcreg - 828) * (srcreg - 827))>> 1 | |
psrc1 = | src1; | |
ppsrc2 = | psrc2; | |
psrc2 = | src2; | |
src1 = | cic1B + pareaB*adc1fir; | |
src2 = | cic2B + pareaB*adc2fir; | |
outb = | 1; | |
cic1B = | areaB*adc1fir; | |
cic2B = | areaB*adc2fir; | |
} | ||
/*************** region IV ***********************/ | ||
if ((srcreg >= (828 + DATARATEINDEX + 25 )) && (srcreg | ||
< 2*828 )) | ||
{ | ||
areaA = | (828*2 - srcreg) * (828*2+1 - srcreg))>>1; | |
cic1A = | cic1A + (pareaA - areaA) *adc1fir; | |
cic2A = | cic2A + (pareaA - areaA) *adc2fir; | |
areaB = | ((srcreg - 828) * (srcreg - 827 )) >>1; | |
cic1B = | cic1B + (areaB - pareaB) * adc1fir; | |
cic2B = | cic2B + (areaB - pareaB) *adc2fir; | |
} | ||
srcreg = | ((srcreg + DATARATEINDEX + 25 ) % (828*2 )) ; | |
/**/ | ||
if ((outa = = 1) || (outb = = 1)) /**/ | ||
{ | ||
output = -(double) ((DATARATEINDEX + 25) * | ||
(DATARATEINDEX + 25 )) *6.0* (double) (src2 | ||
output = output + (double) (828*823) * (double) psrc1; | ||
outa = | 0; | |
outb = | 0; | |
} | ||
The decimation filter calculation module 132 receives an up sampling value 142, a down sampling value 144, and a predetermined filter transfer function 140. Based on these inputs, the decimation filter calculation module 132 produces a reference area value 146. Recall from
The area computational module 134 receives the reference area value 146 and the control signal 148 to produce a computed area value 150. The control signal 148 is representative of the data samples contained within the digital data stream 122. The reference area value 146 is a generic representation of the weighted area of FIG. 6. The computed area value 150 therefore, is the actual weighted area for a given interval less magnitude. The inversion module 136 receives the computed area value 150 to produce an inverted area value 152. Based on the control signal, the multiplexor 138 outputs the inverted area value 150 or the computed area value 150 as the weighted area value of 154. As such, based on a sign bit of the control signal, the computed area value 150 or the inverted area value 152 will be outputted.
The area computational module 134 is shown to include two multiplexors 168 and 178, a plurality of multipliers 170 through 174 and 180 through 184, and a summing module 176. Each of the multipliers is operably coupled to receive the reference area of value 146 and multiply it by its respective value. For example, multiplier 170 multiplies the reference value 146 by 2, multiplier 172 by 4 and multiplier 174 by 8. Depending on the partially filtered data 124, the corresponding inputs of multiplexors 168 and 178 are outputted to the summing module 176. For example, if the partially filtered data 124 indicates that the magnitude is 0, then both multiplexor 168 and 178 output 0 such that the resulting computed area value 150 is 0. If, however, the value of the partially filtered data is 2, then 0 is outputted from the 1st multiplexor 168 and the output of multiplier 180 is outputted from multiplexor 178. As such, in this configuration the computed area value is 2 times the reference area value 146. Similarly, depending on the particular numerical value of partially filtered data 124, a multiplication of the reference value 146 may vary from 0 to 16 at intervals of 2 based on a combination of the outputs of multiplexor 168 and 178.
Based on the sign bit of the partially filtered data 124, multiplexor 138 outputs either the inverted area value 152 or the computed area value 150 as the weighted area value 154 for the given interval.
The decimation summing module 196 is operably coupled to receive the weighted area value 154. The decimation summing module 196 is operably coupled to compute a moving sum 200 of the stream of digital data 122 based on an accumulation of the weighted area value 154 for a plurality of clock intervals of the over sampling rate. The number of clock intervals corresponds to the down sampling rate as previously described with reference to
The decimation output module 198 is operably coupled to receive the moving sums 200 and 201 to produce a corresponding digital output value 202. The decimation output module 198 provides, in a controlled alternating manner, moving sum 200 or moving sum 201 as the digital output 202. Since the length of filter transfer function 74 is two down-sampling intervals, each area calculation completes and provides every other decimation output. Thus, the time shifted transfer function is used along with the nominal transfer function to calculate odd and even decimation outputs, respectively.
The process then proceeds to Step 224 where a moving sum of the stream of digital data is computed based on the up sampling value, the clock rate of the stream of digital data (i.e. the over sampling rate), and a predetermined filter transfer function. The predetermined filter transfer function could be based on the order of a moving sum module. If the moving sum is a 1st order, the filter transfer function will be a constant, if the moving sum is a 2nd order, the filter transfer function will be a triangular function, for a 3rd order moving sum, the filter transfer function will be a quadratic equation, et cetera.
The process then proceeds to Step 226 where a digital output value is produced from the moving sum based on the down sampling value, where the digital output value is at a desired output rate. The production of a digital output value in Step 226 is repeated for an time-shifted moving sum, which was illustrated in
The process then proceeds to Step 230 where a weighted area under the predetermined filter transfer function over the partial clock interval is determined based on the up sampling value and the data to produce a 1st weighted area. The process then proceeds to Step 232 where a plurality of weighted areas under the predetermined filter transfer function are determined based on the up sampling value and the data. Note that each of the plurality of weighted areas corresponds to an interval of the clock for the down sampling interval.
The process then proceeds to Step 234 where a final partial clock interval is determined based on the partial clock interval and the output interval (i.e. the down sampling interval). The process then proceeds to Step 236 where a final weighted area is under the predetermined filter transfer function is determined over the final partial clock interval based on the up sampling value and the data. The process then proceeds to Step 238 where the 1st weighted area, the plurality of weighted areas and the final weighted area are summed to produce a moving sum.
The process then proceeds to Step 280 where a computed area value is produced from the reference area value based on the control signal. This was described in reference to
The process then proceeds to Step 328 where a computed area value is produced from the reference area value based on the control signal. The process then proceeds to Step 330 where the computed area value is inverted to produce an inverted area value. The process then proceeds to Step 332 where the area value or the inverted area value is outputted as a weighted area value for a current clock interval based on the control signal and a current data sample.
The preceding discussion has presented a method and apparatus for sample rate conversion within an analog to digital converter. By performing the sample rate conversion in the filtering process, the need for a very high clock reference is avoided. Therefore, the concepts of the present invention are widely applicable to a variety of analog to digital converters. As one of average skill in the art will appreciate, other embodiments may be derived from the teachings of the present invention without deviating from the scope of the claims.
Patent | Priority | Assignee | Title |
10623008, | Apr 30 2015 | XILINX, Inc. | Reconfigurable fractional-N frequency generation for a phase-locked loop |
6768430, | Mar 19 2003 | Agilent Technologies, Inc. | System and method for establishing a subsampling rate for repetitive signals |
Patent | Priority | Assignee | Title |
4851841, | Oct 02 1987 | Cirrus Logic, INC | Gain scaling of oversampled analog-to-digital converters |
5512895, | Apr 25 1994 | Teradyne, Inc. | Sample rate converter |
5748126, | Mar 08 1996 | Altera Corporation | Sigma-delta digital-to-analog conversion system and process through reconstruction and resampling |
6249549, | Oct 09 1998 | MATSUSHITA ELECTRIC INDUSTRIAL CO , LTD | Down conversion system using a pre-decimation filter |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Feb 07 2001 | MAY, MICHAEL R | Sigmatel, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011572 | /0340 | |
Feb 08 2001 | Sigmatel, Inc. | (assignment on the face of the patent) | / | |||
Mar 06 2003 | Sigmatel, INC | Silicon Valley Bank | SECURITY AGREEMENT | 015074 | /0385 | |
Jun 05 2008 | Sigmatel, INC | CITIBANK, N A | SECURITY AGREEMENT | 021212 | /0372 | |
Feb 19 2010 | SIGMATEL, LLC | CITIBANK, N A | SECURITY AGREEMENT | 024079 | /0406 | |
Apr 13 2010 | SIGMATEL, LLC | CITIBANK, N A , AS NOTES COLLATERAL AGENT | SECURITY AGREEMENT | 024358 | /0439 | |
May 21 2013 | SIGMATEL, LLC | CITIBANK, N A , AS NOTES COLLATERAL AGENT | SECURITY AGREEMENT | 030628 | /0636 | |
Nov 28 2013 | SIGMATEL, L L C | ZENITH INVESTMENTS, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 033688 | /0862 | |
Dec 19 2014 | ZENITH INVESTMENTS, LLC | Apple Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 034749 | /0791 | |
Dec 07 2015 | CITIBANK, N A , AS COLLATERAL AGENT | Sigmatel, INC | PATENT RELEASE | 037354 | /0734 | |
Dec 07 2015 | CITIBANK, N A , AS COLLATERAL AGENT | SIGMATEL, LLC | CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 037354 FRAME: 0773 ASSIGNOR S HEREBY CONFIRMS THE PATENT RELEASE | 039723 | /0777 | |
Feb 18 2016 | NXP B V | MORGAN STANLEY SENIOR FUNDING, INC | CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001 ASSIGNOR S HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT | 051029 | /0001 | |
Feb 18 2016 | NXP B V | MORGAN STANLEY SENIOR FUNDING, INC | CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145 ASSIGNOR S HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT | 051145 | /0184 | |
Feb 18 2016 | NXP B V | MORGAN STANLEY SENIOR FUNDING, INC | CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212 ASSIGNOR S HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT | 051029 | /0387 | |
Feb 18 2016 | NXP B V | MORGAN STANLEY SENIOR FUNDING, INC | CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001 ASSIGNOR S HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT | 051029 | /0001 | |
Feb 18 2016 | NXP B V | MORGAN STANLEY SENIOR FUNDING, INC | CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058 ASSIGNOR S HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT | 042985 | /0001 | |
Feb 18 2016 | NXP B V | MORGAN STANLEY SENIOR FUNDING, INC | SECURITY AGREEMENT SUPPLEMENT | 038017 | /0058 | |
Feb 18 2016 | NXP B V | MORGAN STANLEY SENIOR FUNDING, INC | CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058 ASSIGNOR S HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT | 039361 | /0212 | |
Feb 18 2016 | NXP B V | MORGAN STANLEY SENIOR FUNDING, INC | CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145 ASSIGNOR S HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT | 051145 | /0184 | |
Feb 18 2016 | NXP B V | MORGAN STANLEY SENIOR FUNDING, INC | CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058 ASSIGNOR S HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT | 051030 | /0001 | |
Feb 18 2016 | NXP B V | MORGAN STANLEY SENIOR FUNDING, INC | CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212 ASSIGNOR S HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT | 051029 | /0387 | |
Feb 18 2016 | NXP B V | MORGAN STANLEY SENIOR FUNDING, INC | CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212 ASSIGNOR S HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT | 042762 | /0145 | |
Aug 05 2016 | MORGAN STANLEY SENIOR FUNDING, INC | NXP B V | PATENT RELEASE | 039707 | /0471 | |
Sep 03 2019 | MORGAN STANLEY SENIOR FUNDING, INC | NXP B V | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 050745 | /0001 |
Date | Maintenance Fee Events |
Sep 27 2006 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Oct 16 2006 | STOL: Pat Hldr no Longer Claims Small Ent Stat |
Jul 23 2008 | ASPN: Payor Number Assigned. |
Oct 25 2010 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Jul 23 2014 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Apr 20 2015 | ASPN: Payor Number Assigned. |
Apr 20 2015 | RMPN: Payer Number De-assigned. |
Date | Maintenance Schedule |
May 20 2006 | 4 years fee payment window open |
Nov 20 2006 | 6 months grace period start (w surcharge) |
May 20 2007 | patent expiry (for year 4) |
May 20 2009 | 2 years to revive unintentionally abandoned end. (for year 4) |
May 20 2010 | 8 years fee payment window open |
Nov 20 2010 | 6 months grace period start (w surcharge) |
May 20 2011 | patent expiry (for year 8) |
May 20 2013 | 2 years to revive unintentionally abandoned end. (for year 8) |
May 20 2014 | 12 years fee payment window open |
Nov 20 2014 | 6 months grace period start (w surcharge) |
May 20 2015 | patent expiry (for year 12) |
May 20 2017 | 2 years to revive unintentionally abandoned end. (for year 12) |