ARCHITECTURE FOR EFFICIENT INTERPOLATOR
Field of the Invention This invention relates generally to the field of digital filters used for digital signal processing and communications. In particular, it pertains to a digital architecture for performing high-speed interpolation of oversampled signals without relying upon multipliers, and by using filter coefficients that are powers of two.
Background of the Invention In general, the purpose of a communication system is to transmit information-bearing message signals from a source to a user destination. A communication system generally consists of three basis components: transmitter, channel, and receiver. The transmitter has the function of processing the message signal into a form suitable for transmission over the channel. This processing of the message signal is referred to as modulation. In any communication system, the "channel bandwidth" defines the range of frequencies that the channel can handle for the transmission of signals with satisfactory fidelity. Channel bandwidth is important because, for a prescribed band of frequencies characterizing a message signal, the channel bandwidth determines the number of such message signals that can be multiplexed over the channel. In other words, for a prescribed number of independent message signals that have to share a common channel, the channel bandwidth determines the band of frequencies that may be allotted to the transmission of each message signal without discernible distortion.
Analog and digital transmission methods are used to transmit a message signal over acommunication channel. The use of digital methods offers several operational advantages over analog methods, including but not limited to: increased immunity to channel noise and interference, flexible operation of the system, and a common format for the transmission of different kinds of message signals.
In high-speed digital transmitters, the task of creating wideband communication channels often involves producing a frequency-division multiplexed (FDM) wideband signal
from input narrowband baseband signals. For example, the input signals may comprise many voice channels with bandwidths of only a few kilohertz, which prior to transmission are combined into a wideband signal spanning many megahertz. In order to prevent aliasing of the information included within the wideband signal, it will generally be necessary that the sample rate of the voice channels be significantly increased during conversion of the narrowband signal to a wideband signal.
The process of increasing the sample rate is typically performed by "interpolating" the sampled information in one or more stages. At each stage of interpolation, a higher sample rate is achieved by effectively inserting one or more zero samples between each incoming sample of the incident lower-rate data stream. Following this zero-padding operation, the data stream is filtered in order to suppress spurious signal energy created by the zero-padding. This filtering has often been performed using finite impulse response (FIR) digital filters.
The conventional hardware implementation of an FIR digital filter utilizes delay units, multipliers, and adders. Among these filter components, multipliers often occupy a relatively large circuit area, which tends to increase the cost of the filter. Moreover, cost is often not the only significant factor of interest, and operational speed may often be of even greater significance at the high sample rates required during the later stages of interpolation. In the conventional FIR digital filter, the maximum sample rate is often determined by the speed of the multipliers. Accordingly, to improve operational speed and reduce cost, it is desirable to eliminate multipliers from FIR filters.
One such "multiplierless" FIR digital filter is described by Benvenuto et al., Dynamic Programming Methods for Designing FIR Filters Using Coefficients -1, 0 and +1; IEEE Transactions on Acoustics, Speech and Signal Processing, Volume ASSP-34, Number 4, August 1986. These filters are comprised of a transversal filter with tap coefficients restricted to a coefficient space of -1 , 0 and + 1 , and cascaded with simple recursive sections. This type of filter is well-suited to high-speed (i.e., high sample rate) filtering applications since the integral tap coefficients are easily implemented in digital hardware. However, improved performance can be achieved, while maintaining ease of implementation, through a multiplierless filter characterized by a coefficient space of 2 n.
Objects of the Invention
Accordingly, it is an object of the present invention to provide an efficient architecture for interpolating oversampled data.
Summary of the Invention
In summary, the present invention comprises an efficient architecture for interpolating oversampled data, such as a stream of digitized voice data. The efficient interpolator includes an input divider circuit, which receives an input data word over an input data line. A register is provided for latching the divided input data word from the divider. The divided input data word is added within a summer to the previously latched data word from the register, thereby forming a summed data word. A multiplexer produces an interpolated output by multiplexing the summed data word with the input data word.
In a preferred implementation the register is latched at a first clock rate, and the multiplexer is clocked at twice the first clock rate.
The efficient interpolator architecture allows interpolation to be performed in the absence of multipliers, and simultaneously allows filtering to be achieved using coefficients equivalent to powers of two. This enables the interpolator to be realized inexpensively, and renders the interpolator particularly suitable for implementation within integrated circuits.
Brief Description of the Drawings Additional objects and features of the invention will be more readily apparent from the following detailed description and appended claims when taken in conjunction with the drawings, in which:
FIG. 1 shows a simplified block diagrammatic representation of the architecture of an interpolator using a conventional 3-tap filter.
FIG. 2 shows a block diagram of the architecture of an interpolator of the present invention.
FIG. 3 depicts a specific hardware realization of an interpolator of the present invention.
FIG. 4 is a block diagram of an interpolator network designed to interpolate by a factor of thirty two. FIG. 5 is a block diagram of a specific hardware implementation of an interpolating filter which does not require an output multiplexer.
Detailed Description of the Preferred Embodiment In order to provide appropriate context for a description of the present invention, an overview is initially provided of a conventional manner in which the sample rate of a digital sequence is increased by a factor of 2 through a zero-padding and filtering process. In particular, consider an infinite sample sequence x(k), where x(k) = ..., x(-2), x(-l), x(0), x(l), x(2), x(3), ..., which may be represented in the digital frequency domain as X(w), where co X(w) = Σ x(k)ejwk k = -oc
Assuming the samples x(k) to be of a sample rate fs, increasing the sample rate to 2f, by zero padding yields the sample sequence y(k), where y(k) = ..., x(-2), 0, x(-l), 0, x(0), 0, x(l), 0, x(2),... That is, y(k) •= x(k/2), k even y(k) = 0, k odd. In the digital frequency domain,
OO CO
Y(w) = Σ y(k)ejwk = Σ y(k)e"jwlc k = -co k=-co k,even
CO = Σ y(2k)e"j wk k =- oo
= X(2w)
It is observed that X(w) is periodic with a period of 2τ radians, and that Y(w) is periodic with a period of T radians. This results in an image of the input frequency domain response appearing within the frequency domain representation of the zero-padded output, i.e. , within Y(w) centered at a frequency equivalent to the sample rate of the input sequence x(k). In order to eliminate the unwanted high-frequency "image" arising within Y(w) due to zero padding, the sequence y(k) will typically be passed through a low-pass filter having
an impulse response represented by h(k). The resultant filtered sequence, yLp(k), may be expressed as: co co co yLP(k) = Σ y(i) (k-i) = Σ y(ι)h(k-/) = Σ y(2 )h(k-2/) = - CO = - co = - co i even o
J = - 00
The low-pass filter employed to obtain yLP(k) is typically realized using two distinct filters. A first filter, characterized by impulse response he(k) is applied to the samples of the sequence x(k); and a second filter, having an impulse response h0(k), is also utilized to filter the samples of x(k). Specifically, if he(k) = h(2k) h0(k) = h(2k+ l), then the even samples in the low-pass filtered sequence may be represented by: co yLP(2p) = Σ x(j)h(2p-2j) j = -co
00
= Σ x(j)h(2(p-j)) j = -oo
and the odd samples in the low-pass filtered output sequence may be expressed as:
co yLP(2p+ l) == Σ J , xx(Gi))hh((22pp++ ll--22j) j = -∞
co
= ∑ x(j)h(2(p-j) + l), j = -∞
Accordingly, co yLP(2p) = Σ x(j)he(p-j), j = -•» where yLP(2p) corresponds to the sequence x(k) filtered by he(k). Similarly, co yLP(2p+ l) = Σ x(j)h0(p-j), j = -co which corresponds to the sequence x(k) filtered by h0(k).
Turning now to FIG. 1 , a simplified block diagrammatic representation is provided of the architecture of a 3-tap interpolating filter 10 designed to effect the zero padding and low-pass filtering operations described above. The interpolating filter 10 includes a switch 14, which alternately couples the even, i.e., yLP(2p), and odd, i.e., yLP(2p+ l), low-pass filtered samples to the filter output. As is indicated by FIG. 1 , the input sample sequence is provided to an input shift register 18, which stores consecutive input samples x(p) and x(p-l). Input register 18 provides the sample x(p) to first and second multipliers 20 and 22, and provides the sample x(p-l) to a third multiplier 24. The "even" filter coefficients he(0) and he(l) are stored within a first filter register 28, and are respectively provided to the multipliers 20 and 24. The "odd" filter coefficient, ho(0), is stored within a second filter register 32 connected to multiplier 22.
The scaled sample values x(p) and x(p-l) produced by multipliers 20 and 24 are summed within adder 36, which produces the "even" low-pass filtered output samples yLP(2p). The "odd" low-pass filtered output samples, yLp(2p+ 1), are produced by multiplier 22. The complete low-pass filtered output sequence is obtained by toggling the switch 14 between the outputs of adder 36 and multiplier 22.
Unfortunately, implementation of the filter architecture of FIG. 1 at a high sample rate is relatively expensive, as it is necessary to realize digital multipliers. Moreover, the large wafer area, or "real-estate" generally required by digital multipliers renders the architecture of FIG. 1 particularly disadvantageous for integrated circuit implementations. Referring to FIG. 2, a block diagram is provided of the architecture of the interpolating filter 100 of the present invention. The interpolating filter 100 is seen to not include any digital multipliers, thereby enabling cost-effective integrated circuit
implementation. As is indicated by FIG. 2, the input sample sequence x(m) impressed upon input terminal 102 is received by a divide-by-two circuit 104. The divided samples of the input sequence are sequentially latched, at the clock rate of the input sequence x(m), by a register 108. Each consecutive pair of divided samples, i.e. , x(m)/2 and x(m-l)/2, are combined within adder 112. The output of adder 112 forms the "even" terms of the interpolated output sequence applied to a first input terminal 114 of the multiplexing output switch 116. The sequence of even terms is denoted as yLP(2m), and the sequence of odd terms as yLP(2m + l), where m = ... -2, -1 , 0, 1 , 2, ... The output multiplexing switch
116 operates to multiplex, at twice the input clock rate, the sequences of even and odd terms applied to the switch terminals 114 and 118.
The output sequence yLP(n) may be viewed as comprising an interpolated (by a factor of two) version of the input sequence x(n). Specifically, the filtering of the sequence y(n) during the interpolation process is performed in accordance with the impulse response function h(n), wherein: h(n) = 1/2, n = 0
1 , n = 1
1/2, n = 2 0, else
Alternately, h(n) may be expressed as: h(n) = he(n/2), for even values of n, h0([n-l]/2), for odd values of n, where even and odd samples of the input sequence x(n) are processed by a filter having an impulse response specified by he(n) and h0(n), respectively. Recall he(n) = h(2n) and h0(n)=h(2n + l), so: he(n) = 1/2, n = 0
1/2, n = 1 0, else, and, h0(n) = 1, n = 0
0, else
The filtering of x(n) in accordance with the impulse response he(n), yields a filtered output sequence yLP(2m):
co yLP (2m) -= Σ xO)he( -j) = x(m)he(0) + x(m-l) he(l) j = -°°
= [1/2] • x(m) + [1/2] • x(m-l)
= [1/2] • [x(m) + x(m-l)] wherein "•" denotes multiplication. Similarly, the output samples of the output sequence yLP(2m + 1) may be expressed as: co yLp(2m + l) = Σ x(j)h0(m-j) = x(m)ho(0) =x(m)l j = -oo = x(m) That is, the "odd" samples within the output sequence yLP(m), i.e., yLP(2m + 1), correspond to the input sequence. This correspondence is seen to be manifested within the filter architecture of FIG. 2, since the switch terminal 118 is directly connected to the input terminal 102. Similarly , direct correspondence is also seen to exist between this expression for yLP(2m) and the architecture of the filter 100. Namely, the divide-by-two circuit 104 introduces the factor of (1/2) and the register 108 is used to provide the samples [1/2] • x(m) and [1/2] • x(m-l), the adder 112 performs the required addition operation. Turning now to FIG. 3, there is shown a specific hardware realization of an interpolating filter 200 of the present invention. In the embodiment of FIG. 3, the filter 200 processes the 14-bit samples comprising the input sequence x(n). The thirteen most significant bits (MSBs) of each 14-bit input sample are simultaneously clocked, at the input sample rate fs, into a 13-bit register 204. Since each 14-bit input sample corresponds to a binary number, the extraction of the thirteen MSBs from each sample effectively results in division by two. The 13-bit register 204 will generally be comprised of a set of thirteen D-type flip-flops, each of which latches one of the thirteen MSBs of each input sample. The thirteen MSBs of each pair of consecutive samples are added within 13-bit adder 208, and the 14-bit result provided to an output multiplexer 212. The multiplexer 212 operates to produce the output sequence yLP(m) by multiplexing, at the output sample rate of twice f„ the sequence of 14-bit values from the adder 208 with the 14-bit input sequence x(n). In a preferred implementation , the "even " output sample component associated with a given input sample is output by the filter 200 before the corresponding "odd" sample component.
The filter 200 is seen to be capable of being realized very efficiently, in that it requires only a register comprised of 13 flip-flops, a 14-bit adder, and a multiplexer. Using terminology familiar to those skilled in the art, the filter 200 may be described as functioning as a 3-tap finite impulse response (FIR) half-band filter having coefficients of 1/2, 1, 1/2.
Turning now to FIG. 4, there is shown an interpolating filter network 300 designed to interpolate by a factor of thirty-two. The filter network 300 is comprised of a set of five serially-connected interpolation-by-two filters of the present invention (see, e.g. , FIG. 3). The filter network 300 may be included within, for example, a digital transmitter disposed to convert multiple low data rate, oversampled, narrowband input sequences into a high data rate, wideband output sequence. For example, in a specific embodiment input data having a baseband bandwidth of approximately 14 kHz is applied at a rate of 960 Ksps to the network 300. The oversampled characteristic of the input data (i.e., high sampling rate relative to the Nyquist rate) allows each interpolation-by-two stage to be realized using the half-band architecture of FIG. 3. In this exemplary application each interpolation-by-two stage provides a low-pass filtering function characterized by a -3 dB frequency of approximately 14 kHz, passband ripple of less than approximately 0.25 dB, and image rejection on the order of 67dB.
Referring to FIG. 5, a block diagram is provided of an alternate realization of an inteφolating filter 400 of the present invention. In the embodiment of FIG. 5, the filter 400 processes the 14-bit samples comprising the input sequence x(n) of sample rate fs. The bits of each 14-bit input sample are simultaneously clocked, at a rate of 2fs, into a 14-bit register 404. The 14-bit register 404 will generally be comprised of a set of fourteen D-type flip-flops, each of which latches one of the bits of each input sample. The fourteen bits of each pair of consecutive samples are added within 14-bit adder 408, and the 14 MSBs from the result of each addition comprise the output of the filter 400. In particular, the output of the filter 400 may be represented as:
... x(n), l/2[x(n) + x(n-l)], x(n-l), l/2[x(n-l) + x(n-2)], x(n-2), ... The filter 400 may be described as functioning as a 3-tap finite impulse response (FIR) half-band filter having coefficients of 1/2, 1, 1/2, which is disposed to operate upon a zero-padded sample sequence (i.e. , one "padding" zero per sample).
While the present invention has been described with reference to a few specific embodiments, the description is illustrative of the invention and is not to be construed as limiting the invention. Various modifications may occur to those skilled in the art without departing from the true spirit and scope of the invention as defined by the appended claims.