Multi-channel sample rate conversion method
AssigneeAnalog Devices, Inc.
InventorsPaul E. Beckmann, Timothy S. Stilson
Life of this patent
Estimating the term…
Abstract
A sampling-rate conversion method receives N input channels which have been digitized at an input sampling rate, and converts the sampling rate of each input channel to produce N output channels at an output sampling rate. The method comprises computing a common FIR interpolating function which depends upon the input and output sample clocks and the instantaneous output time, and applying the common FIR interpolating function to all N input channels to compute all N output channels.
Claims12
A method of converting the sampling rate of multiple input channels, comprising:
- digitizing N input channels at a first sampling rate;
- and
- converting the sampling rate of each of said N input channels to produce N output channels at a second output sampling rate;
- said sampling rate conversion comprising:
- computing with one or more microprocessors a common FIR interpolating function which depends upon the input and output sample clocks and the instantaneous output time;
- and
- applying said common FIR interpolating function to all N input channels to compute all N output channels;
- wherein said computing of a common FIR interpolating function comprises:
- decomposing instantaneous output time (Tout) into integer and fractional portions where Tout=N+tout, where N=floor(Tout) and tout=Tout−N;
- providing a set of M precomputed FIR filter coefficient sets, each of said filter sets denoted as hk[n] and arranged to calculate a fractionally-delayed output at time k/M , with k=0,1, . . . , M−1;
- choosing the x filter coefficient sets nearest Tout:hk[n], hk+1[n], hk+2[n], . . . , hk+(x−1)[n] where k=floor(tout*M)−2;
- decomposing tout into integer and fractional portions where tout=TM+tt,
- T
- M
- =
- 1
- M
-
-
- floor
-
- (
- t
- out
-
- M
- )
- =
- k
- M
- ,
- and tt=tout−TM;
- scaling tt to obtain the quantity tc which lies in the range 0≦tc<1, where tc=M tt;
- and
- using polynomial interpolation to compute the desired interpolating function hnet[i] from a linear weighted sum of the filter coefficient sets hk[n], hk+1[n], hk+2[n] , . . . , hk+(x−1)[n] in which the weighting coefficients depend solely on tc:
- hnet[i]=wa(tc)hk[i]+wb(tc)hk+1[i]+wc(tc)hk+2[i]+ . . . +wx(tc)hk+(x−1)[i],
- hnet[i] being said common FIR interpolating function.
A method of converting the sampling rate of multiple input channels, comprising:
- digitizing N input channels at a first sampling rate;
- and
- converting the sampling rate of each of said N input channels to produce N output channels at a second output sampling rate;
- said sampling rate conversion comprising:
- computing with one or more microprocessors a common FIR interpolating function which depends upon the input and output sample clocks and the instantaneous output time;
- and
- applying said common FIR interpolating function to all N input channels to compute all N output channels, wherein said computing of a common FIR interpolating function comprises:
- decomposing instantaneous output time (Tout) into integer and fractional portions where Tout=N+tout, where N=floor(Tout) and tout=Tout−N;
- providing a set of M precomputed FIR filter coefficient sets, each of said filter sets denoted as hk[n] and arranged to calculate a fractionally-delayed output at time k/M, with k=0,1, . . . , M−1;
- choosing the four filter coefficient sets nearest Tout:
- hk[n], hk+1[n], hk+2[n] , . . . , hk+3[n] where k=floor(tout*M);
- decomposing tout into integer and fractional portions where tout=TM+tt,
- T
- M
- =
- 1
- M
-
- floor
-
- (
- t
- out
-
- M
- )
- =
- k
- M
- ,
- and tt=tout−TM;
- scaling tt to obtain the quantity tc which lies in the range 0≦tc<1, where tc=M tt;
- using polynomial interpolation to compute the desired interpolating function hnet[i] from a linear weighted sum of the filter coefficient sets hk[n], hk+1[n], hk+2[n], . . . , hk+3[n] in which the weighting coefficients depend solely on tc:
- hnet[i]=wa(tc)hk[i]+wb(tc)hk+1[i]+wc(tc)hk+2[i]+wd(tc)hk+3[i], where:
- w
- a
- =
- -
- 1
- 6
-
- t
- c
- 3
- +
- 1
- 2
-
- t
- c
- 2
- -
- 1
- 3
-
- t
- c
- w
- b
- =
- 1
- 2
-
- t
- c
- 3
- +
- -
- t
- c
- 2
- -
- 1
- 2
-
- t
- c
- +
- 1
- w
- c
- =
- -
- 1
- 2
-
- t
- c
- 3
- +
- 1
- 2
-
- t
- c
- 2
- +
- t
- c
- w
- d
- =
- 1
- 6
-
- t
- c
- 3
- -
- 1
- 6
-
- t
- c
- ;
- hnet[i] being said common FIR interpolating function;
- and
- applying hnet[i] separately to each input channel to calculate one sample of each output channel.
Dependencies are inferred from the claim text.