Signal processor for sampling rate conversion

Abstract: A signal processor is described for sampling rate conversion of a digitally sampled analog signal, the signal processor comprising: means for generating an output sampled value for each output sampling instant, the output sampled value being equal to the input sampled value at the last input sampling instant if an input sampling instant has not occurred since the last output sampling instant and being calculated as an interpolation of input values at successive input sampling instants if an input sampling instant has occurred since the last output sampling instant. An virtual, analytic A/D-D/A conversion is employed using digital processing to convert from a given sampling rate to an arbitrary desired rate.

Description: The invention relates to signal processors for sampling rate conversion of digitally sampled analog signals. In digital signal processing it is sometimes necessary to convert data sampled at one rate to an arbitrary higher sampling rate. For example, speech data sampled at the standard 8KHz sampling rate might have to be converted to the 44.1KHz CD rate in order to be saved on a compact disc. It is important, in such a rate conversion process, to preserve the fidelity of the original analog waveform. Prior art techniques can be classified into two main categories, digital interpolation techniques and analog interpolation techniques. Digital interpolation techniques operate on the digital stream of samples to yield a new sequence with the desired number of samples in a given time unit. Signal fidelity is controlled by the shape and size of the digital interpolation filter applied to the modified source sequence. Due to the discrete nature of the approach, it is viable only if the source and destination rates exhibit either an integer ratio or a rational ratio M/N with 'small' values of M and N. For large M and/or N these techniques suffer from excessive memory and computational requirements. Also, if either the source or the destination rates M and N deviate from their nominal values, as can happen in cases where the respective clocking systems are independent, these techniques fail to provide synchronous operation. In analog interpolation techniques the sampled data is converted to an analog signal via a D/A device and an associated anti-alias filter and then resampled by an A/D device at the desired destination rate. The main advantage of this scheme is the flexibility of converting the source stream to any desired rate. The main disadvantage is that the analog electronics introduce distortion and noise and thus adversely affect signal fidelity. Examples of prior art interpolation techniques are shown in US-A-4 109 110, GB-A-2 078 406 and in EP-A-0 084 945. According to the invention there is provided a signal processor for sampling rate conversion of a digitally sampled analog signal from an input signal comprising input values representing the analog signal sampled at input sampling instants to an output signal representing the analog signal sampled at output sampling instants, the output sampling rate being higher than the input sampling rate, the signal processor comprising: means for generating an output sampled value for each output sampling instant, the output sampled value being equal to the input sampled value at the last input sampling instant if an input sampling instant has not occurred since the last output sampling instant and being calculated as an interpolation of input values at successive input sampling instants if an input sampling instant has occurred since the last output sampling instant. The invention provides a hybrid technique which combines the benefits of both prior art approaches while alleviating their respective drawbacks. According to the invention a D/A-A/D conversion is realised in an analytic form using digital processing. Hence, the flexibility of supporting an unlimited range of source and destination rates is maintained while avoiding the distortion and noise associated with true analog conversion. In addition, the cost and complexity associated with providing physical D/A and A/D components is saved. In a preferred form of the invention this virtual, analytic D/A-A/D conversion process is supplemented by a conventional digital interpolation filter in order to suppress spectral components outside the frequency range of interest and further ensure the fidelity of the signal. The analog signal can be an audio signal and the signal processor can be in the form of a audio capture and playback adapter for use with a general purpose computer workstation. Another aspect of the invention provides a method for conversion of a digitally sampled analog signal from an input signal comprising input values representing the analog signal sampled at input sampling instants to an output signal representing the analog signal sampled at output sampling instants, the output sampling rate being higher than the input sampling rate, the method comprising generating, for each output sampling instant, an output sampled value, the output sampled value being equal to the input sampling value at the last input sampling instant, if an input sampling instant has not occurred since the last output sampling instant and being calculated as an interpolation of input values at successive input sampling instants if an input sampling instant has occurred since the last output sampling instant. There is also provided a method for sampling rate conversion of a digitally sampled analog signal from an input sampling rate to an output sampling rate, the method comprising: converting the signal to an intermediate sampling rate using a method as set out above, the intermediate sampling rate being an integer multiple of the output sampling rate; and converting the signal sampled at the intermediate sampling rate to the output sampling rate. Such a method is advantageous if the output sampling rate is not much greater than the input sampling rate. An embodiment of the invention will now be described, by way of example, with reference to the accompanying drawing, wherein: Fig. 1 illustrates the sampling rate conversion process of the present invention in the time domain; Fig. 2 is a schematic diagram broadly outlining the steps of the sampling rate conversion process; Fig. 3 illustrates the timing method used in the embodiment of the invention; Fig. 4 is a schematic diagram showing a signal processor according to the present invention; Fig. 5 illustrates, in the frequency domain, the sampling rate conversion process and the various filter envelopes used; Fig. 6 is a graph showing the maximum intensity of aliased frequencies in the base band vs the ratio of the sampling rates. Referring to figure 1, the invention provides for the sampling rate conversion of an input signal x(n) to an output signal x f (k) using a virtual D/A-A/D process. The signal at the output of a virtual D/A is generated from the input sequence x(n) shown in Fig. 1a using a Zero-Order-Hold (ZOH) kernel. This results in the continuous staircase function x z (t) shown in Fig. 1b whose shape is uniquely determined by the values of the input sequence at the input sampling instants. Then, x z (t) is virtually resampled at the desired destination rate using a Sample-and-Hold (S&H) kernel embedded in the virtual A/D converter. The resulting sequence x s (k) shown in Fig. 1c is subsequently filtered, to remove spectral components outside of the desired frequency range, by a low pass digital interpolation filter, having a bandwidth of the order of the input sampling rate. This filter can be realised using any of the current known techniques for digital filtering. The output sequence x f (k) is shown in Fig 1d. These steps are shown schematically in Fig. 2. The virtual ZOH task depicted in Fig. 1a is realised by holding the value of the last sample at the input rate until a new sample arrives. For the given staircase function x z (t), the S&H function, i.e. the integral over a sampling period, is computed analytically at each output sampling instant yielding the value of the last received input sample when there has been no input sampling instant since the last output sampling instant, i.e there is no signal transition in x z (t). If there has been an input sampling instant since the last output sampling instant, i.e there has been a signal transition in x z (t), the S&H function is calculated as a weighted sum of successive input samples before and after the input sampling instant. This involves a very small amount of computation, namely one multiplication and two additions. These computations take place at the input rate. At each output sampling instant the output value is evaluated analytically as follows: x s (k) = x(n), if an input sampling instant has not occurred since the last output sampling instant, and x s (k) = x(n) + d [x(n+1) - x(n)], if an input sampling instant has occurred since the last output sampling instant, where d represents the time elapsed between the transition instant and the following output sampling instant. It will be clear to those skilled in the art that this is a very simple interpolation scheme and that a more complex scheme involving values of the input signal at other input sampling instants, i.e integration over a larger time interval, could also be used. The timing information is obtained in the following way. If the input rate is iN Hz and the output rate is iM Hz, where i, M and N are integers, i being the highest common factor of the input and output rates, the input rate clock interval can be divided into N time units and then the time between output sampling instants will be precisely M such time units. In the embodiment of the invention a counter is updated at each output sampling instant by an increment M. At any given time, the value of the counter divided by N represents the exact timing of the output sampling instants relative to the most recent input sampling instant. When the counter exceeds N, N is subtracted from its value and an input sampling instant is deemed to have occurred for the purposes of calculating the output value at the next output sampling instant. Fig 3a is flow chart showing this process. The time elapsed between the transition instant and the next output sampling instant, d is equal to (1 - (Count - N)/M). Since M and N are integers, the counting is done precisely without loss of accuracy. For example, if the input rate is 9.6 KHz and the output rate is 44.1 KHz then the smallest M can be is M = 32 with N = 147, the highest common factor of M and N being 300. The output sampling instants will occur with the counter at 0,32,64,96,128, and then after the next input sampling instant with the counter at 13,45,77, and so on. This is shown in Figure 3b. If the two clocks drift in time then the values of M and/or N can be dynamically adjusted to maintain synchronism of the clocks. Fig 4. is a schematic diagram showing a signal processor in this embodiment of the present invention. The input samples are clocked into a wrap-around buffer 2 via a write pointer 4 whose position is incremented on each input clock pulse. These samples are read at every output sampling instant by output sample generator 6 via a read pointer 8. Output samples are generated at the output rate governed by output clock 10. Counter 12 is incremented on every pulse of the output clock 10 by an increment M. The output sample generator 6 determines, using the counter value, whether or not an input sampling instant has occurred since the last output sampling instant and generates the output sample accordingly, as described above. The position of the read pointer 8 is incremented by the output sample generator every time it is determined that an input sampling instant has occurred. Any divergence or convergence between the relative positions in the buffer of the read and write pointers can be tracked and remedied by appropriately adjusting the values of M and N used to increment the counter. In this embodiment of the invention the signal processor is in the form of a dedicated audio capture and playback adapter for use with a general purpose computer. The adapter operates under the control of a suitable computer program running on the workstation to capture and store, or, alternatively, retrieve from storage and provide to a suitable playback device, data representing an audio signal. However it should be noted that the signal processor of the invention could be implemented as a computer program running on a general purpose computer, or as a dedicated piece of hardware or, indeed, any other combination of hardware and software. The sampling rate conversion process is shown in the frequency domain in Fig. 5. Fig. 5a shows the original frequency spectrum, the envelope of the ZOH filter and the frequency spectrum of the staircase function x z (t). Fig 5b shows the envelope of the S&H filter along with the frequency spectrum of the staircase function x z (t). The resulting function X s (f) is shown in Fig 5c, along with the filter envelope of the final digital filter stage. The frequency analysis shown in Fig. 5 indicates that the combined response of the D/A-A/D section is characterised by its rather flat response inside the base-band, especially at the low frequency end, and by a broad bandwidth outside the base-band. Note that the combined frequency response around multiples of the destination frequency has a very low value. The scheme described above works best if the destination frequency is of the order of several times the source frequency. If this condition is not met best results can be obtained by selecting an intermediate frequency which is a large (x5-10) integer multiple of the final destination frequency, converting the sampling rate to this frequency using the above scheme and using a simple digital division to convert the rate back down to the desired rate. This way the S&H function will guarantee that only negligible energy will alias into the base-band of interest. The maximum amplitude of the aliased frequencies is given in Fig. 6, which shows the alias amplitude when converting 8KHz samples to the 44.1KHz CD rate. As long as the intermediate rate conversion ratio is above 4, the aliased frequency amplitude is bounded by -40dB at most.

Claims: Signal processor for conversion of a digitally sampled analog signal from an input signal comprising input values representing the analog signal sampled at input sampling instants to an output signal representing the analog signal sampled at output sampling instants, the ouput sampling rate being higher than the input sampling rate, the signal processor comprising: means for generating an output sampled value for each output sampling instant, the output sampled value being equal to the input sampled value at the last input sampling instant if an input sampling instant has not occurred since the last output sampling instant and being calculated as an interpolation of input values at successive input sampling instants if an input sampling instant has occurred since the last output sampling instant. Signal processor as claimed in Claim 1 comprising: means for storing a count variable, the count variable being incremented at each output sampling instant by an increment representing the time period between successive output sampling instants; means for determining, at each output sampling instant, whether or not the count variable exceeds a value representing the time period between successive input sampling instants and, if so, subtracting the value from the count variable, whereby when the count variable exceeds the value it is determined that an input sampling instant has occurred since the last output sampling instant. Signal processor as claimed in Claim 2 wherein the input and output sampling instants occur in synchronisation with input and output clocks respectively, the increment of the count variable and/or the constant value being adjusted in order to take into account variations in the relative input and output clock rates. Signal processor as claimed in any preceding claim further including a digital filter having a bandwidth of the order of the input sampling rate for filtering the output signal. Signal processor as claimed in any preceding claim wherein the analog signal is an audio signal. Signal processor as claimed in any preceding claim in the form of a audio capture and playback adapter for use with a general purpose computer workstation. Method for conversion of a digitally sampled analog signal from an input signal comprising input values representing the analog signal sampled at input sampling instants to an output signal representing the analog signal sampled at output sampling instants, the output sampling rate being higher than the input sampling rate, the method comprising generating, for each output sampling instant, an output sampled value, the output sampled value being equal to the input sampling value at the last input sampling instant, if an input sampling instant has not occurred since the last output sampling instant and being calculated as an interpolation of input values at successive input sampling instants if an input sampling instant has occurred since the last output sampling instant. Method for sampling rate conversion of a digitally sampled analog signal from an input sampling rate to an output sampling rate, the method comprising: converting the signal to an intermediate sampling rate using a method as claimed in claim 7, the intermediate sampling rate being an integer multiple of the output sampling rate; and converting the signal sampled at the intermediate sampling rate to the output sampling rate.

Inventors: MEDAN YOAV, SHVADRON UZI, MEDAN, YOAV, SHVADRON, UZI
Applicants: IBM, INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1992
Main classification: G06F15
IPC codes: G10L21, H03M1, H04B14, G06F3, H03H17, G06F17