Digital filter

Abstract: Digital data provided in the form of a serial signal (S(i)) is fetched into an N-bit shift register (11) and parallel N-bit data output therefrom is provided as address data to address input terminals of a memory (21). In the memory there are prestored at respective addresses defined by the N-bit data the total sum value of multiplied outputs obtained by multiplying the address values and the bit data of a coefficient h(n-i) defining an impulse response characteristic. The N-bit data is provided to an address input terminal (A₀-A n-1 ) of the memory to read out therefrom a digital value corresponding to the output voltage of a digital filter. The digital value is D/A converted to obtain the output voltage of the digital filter.

Description: BACKGROUND OF THE INVENTION The present invention relates to a digital filter which is commonly referred to as a FIR (Finite Impulse Response) filter and is used, for example, to restrict a digital data signal within a desired frequency band in the case of transmitting the signal. With the use of a method which transmits a speech or image signal in digital form and decodes it to reproduce a speech or image, it is possible to reproduce a speech or image signal of good quality. Hence, attempts are now being made for digitization in the fields of, for example, radiotelephony, portable television cameras, and so forth. According to a conventional digitization method, an analog signal from a signal source is converted by an A/D converter to a digital signal, the thus A/D converted output is further converted by a parallel-serial converter to a serial pulse train signal, which is provided to a modulator, wherein a carrier signal is subjected to an amplitude, frequency or phase modulation, and the modulated signal is transmitted. At the receiving side the transmitted signal is demodulated to obtain the pulse train signal, the pulse train signal is converted to parallel form to obtain parallel digital data, which is further converted by a D/A converter to digital form, thus reproducing an analog speech or image signal. If the carrier is modulated with the pulse train signal held intact at the transmitting side, side bands centering about the carrier frequency will develop over a wide frequency range, because the pulse signal contains many higher harmonics. Hence the transmission occupies a wide frequency band. This defect could be overcome by restricting the frequency bandwidth of the modulation signal through use of an analog filter. With the analog filter, however, it is difficult to obtain a sharp attenuation characteristic. Moreover, even if a filter of a sharp attenuation characteristic is formed by, for example, a crystal resonator, the phase rotation will become more and more prominent as the attenuation characteristic becomes steeper. When the pulse train signal is applied to a circuit of excessive phase rotation, jitters markedly develop owing to the phase rotation, resulting in the deterioration of transmission quality. In view of this, a digital filter has heretofore been employed to restrict the bandwidth of the digital signal. The digital filter is suitable for use as a transmission line for the digital signal in that a steep attenuation characteristic can be obtained and that even if the attenuation characteristic is steep, no phase rotation will occur. Hence, it is customary in the prior art to utilize, at the transmitting side, an arrangement in which the pulse train signal to be input as a modulation signal into the modulator is applied to a digital filter to eliminate higher harmonics contained in the pulses. In Fig. 1 reference numeral 10 denotes a conventional digital filter, which is made up of an N-stage shift register 11, multipliers 6 0 to 6 N-1 for multiplying the outputs of respective shift stages S 0 to S N-1 of the shift register 11 by coefficients h(n-i), where i = 0, 1, ..., 2n and 2n=N-1, and adders 7 1 to 7 N-1 for sequentially adding the multiplied outputs to obtain a total sum of them. An analog signal from a signal source 13 such as a microphone is converted by an A/D converter 14 to a digital signal, which is converted by a parallel-serial converter 15 to a serial data signal S(i), which is then provided to an input terminal 12. The data signal S(i) is input into the shift register 11 bit by bit upon each occurrence of a clock CK and is shifted through the shift stages S 0 to S N-1 . Pieces of bit data S(0) to S(N-1) in the respective stages S 0 to S N-1 of the shift register 11 are extracted therefrom and provided to the multipliers 6 0 to 6 N-1 at one terminal thereof. The multipliers 6 0 to 6 N-1 are each supplied at the other input terminal with the coefficient h(n-i) defining an impulse response characteristic shown in Fig. 2. The provision of the coefficient h(n-i) defines, for example, the upper limit frequency of the lowpass band of the digital filter 10 and its cutoff characteristic. The multiplied outputs of the multipliers 6 0 to 6 N-1 are added by the analog adders 7 1 to 7 N-1 to obtain a total sum, i.e. and an analog signal of an amplitude equal to the value of the total sum is provided at an output terminal 18. For instance, in the case of forming, as the digital filter 10, a 20-order FIR filter by hardware, one 20-bit shift register 11, 20 multipliers 6 0 to 6 N-1 and 19 adders 7 1 to 7 N-1 are needed and the circuit scale is large. This hardware structure is not particularly suitable for portable communication equipment. On this account, it is a general practice in the prior art to implement the FIR filter by forming the shift register 11, the multipliers 6 0 to 6 N-1 and the analog adders 7 1 to 7 N-1 by a microcomputer. In the case of the digital filter 10 being formed by a microcomputer, it is hard to speed up its operation, because the microcomputer needs to repeatedly execute as many as 20 steps of multiplications and analog additions each time the data of the shift register 11 is shifted one bit position. Consequently, in the case of forming a lowpass filter, its treble cutoff frequency cannot be set high, that is, a relatively high-speed digital signal cannot be transmitted. Moreover, since the throughput of the microcomputer is consumed in association with the digital filter alone, the time for executing other control programs is reduced, and hence the control function cannot be improved. The document AT&T Technical Journal, Vol.69 (1990) Sept./Oct., No. 5, New York, US, pages 100-115, discloses a memory based digital filter wherein addresses defined from a binary bit stream are used to look up pre-computed summed outputs that correspond to symbol weighting of a characteristic truncated impulse function. In a specific embodiment of this prior art symbols each comprising two bits are embedded in the binary stream which is supplied to a serial-to-parallel converter converting the binary stream into two parallel substreams one containing the high order bits and the other the low order bits of each symbol. Each binary substream is applied to a respective symbol rate clocked shift register The symbol rate data from the shift stages from each shift register are applied in parallel to address each of two read-only memories. This memory pair provides two outputs required within each symbol period as stipulated by the Nyquist sampling condition. The outputs from the two memories are combined and applied to a D/A converter which operates at a rate twice the symbol rate. The analog output from the D/A converter is passed through a low pass filter. SUMMARY OF THE INVENTION It is an object of the present invention to provide a digital filter which is free from the necessity of employing a microcomputer, is capable of high-speed operation and does not or only little suffer from aliasing noise. This object is achieved with a digital filter as claimed in claim 1. Preferred embodiments of the invention are subject-matter of the dependent claims. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a block diagram showing a conventional digital filter; Fig. 2 is a graph showing an example of an impulse response characteristic which is provided as a coefficient to the digital filter; Fig. 3 is a block diagram illustrating another embodiment of a digital filter; Fig. 4 is a block diagram illustrating still another embodiment of a digital filter which employs a split memory structure; Fig. 5 is a block diagram illustrating a first embodiment of the digital filter of the present invention which employs an oversampling scheme; Fig. 6 is a block diagram illustrating a second embodiment of the digital filter of the present invention which employs both of the split memory structure and the oversampling scheme; Fig. 7 is a block diagram showing an example of a transmitter utilizing the digital filter of the present invention; and Fig. 8 is a graph showing the band characteristic of an electric wave that the transmitter shown in Fig. 7 transmits. Fig. 3 illustrates an example of the construction of another digital filter 10. Reference numeral 11 indicates an N-bit shift register, 21 a memory, 22 a D/A converter and 23 a smoothing circuit formed of a lowpass filter. As is the case with the prior art example of Fig. 1, an analog signal from the signal source 13 is converted by the A/D converter 14 to a digital signal, which is, in turn, converted by the parallel-serial converter 15 to the serial data signal S(i), which is applied to the input terminal 12 of the N-bit shift register 11. The serial signal S(i) applied to the input terminal 12 is fetched into the shift register 11 on a bitwise basis in synchronization with the clock CK. The shift register 11 has output terminals Q 0 to Q N-1 connected to the N shift stages, respectively, and provides thereto as a set of parallel data a sequence of N-bit data Q(0) to Q(N-1) in the serial signal, as in the case of Fig. 1. The set of N-bit data Q(0) to Q(N-1) are input as address data into address input terminals A 0 to A N-1 of the memory 21. In the memory 21 there is prestored at each address a value obtained by multiplying the value (1 or 0) of each bit of the N-bit data, indicating the address, by the corresponding one of the N coefficients h(n-i), where i = 0, 1, ..., N-1 and N = 2n+1. Letting the N-bit address data be represented by {Q(0), ..., Q(N-1)}, a value computed by the following equation is prestored at each address {Q(0), ..., Q(N-1)}: Thus, by providing as address signals the N-bit data to the address input terminals A 0 to A N-1 , it is possible to provide at output terminals D 0 to D j-1 the total sum Ω of values obtained by multiplying the respective pieces of the N-bit data by the corresponding coefficients h(n-i). The total sum value Ω thus provided at the output terminals D 0 to D j-1 of the memory 21 is converted by the D/A converter 22 to an analog voltage and the stepwise-varying analog output voltage is provided to the output terminal 18 after being smoothed by the lowpass filter 23. As will be appreciated from the above, only the time for accessing the memory 21 and the time for the D/A conversion by the D/A converter 22 are needed to obtain the output voltage from the digital filter 10 of Fig.3. In other words, the time from the input of the N-bit digital data to the terminal 12 to the output of the output voltage can be reduced. Hence, it is possible to form a digital filter which has a high treble cutoff frequency and is capable of high-speed operation. Fig. 4 illustrates another embodiment of the digital filter. In this embodiment the shift register 11 is split either actually or figuratively into shift register parts 11 1 to 11 m of M 1 to M m bits and pieces of data Q(0) to Q(M 1 -1), Q(0) to Q(M 2 -1), ..., Q(0) to Q(M m -1) of M 1 , M 2 , ..., M m bits from shift stages of the shift register parts 11 1 to 11 m are respectively output as address data. The memory 21 is also split into memory blocks 21 1 to 21 m of the same number as the shift register parts 11 1 to 11 m . The memory blocks 21 1 to 21 m are each formed by a ROM and are supplied with the outputs from shift stages of the shift registers 11 1 to 11 m as addresses. The coefficient h(n-i) which represents the impulse response characteristic shown in Fig. 2 is split into M m coefficient groups in correspondence with the division of the shift register 11 and the memory 21. In the memory blocks 21 1 to 21 m there are prestored at their respective addresses partial sums Ω 1 to Ω m of the results of multiplications which are obtained by multiplying values of the addresses and the coefficients h(n-i) corresponding to the memory blocks and which are given by the following equations. By dividing the memory 21 into such memory blocks 21 1 to 21 m the total storage capacity needed can be reduced. In the Fig. 3 embodiment in which the memory 21 is formed by a single memory, the construction of, for example, a 101-order FIR filter calls for a memory having a capacity of 2 101 = 2.535 x 10 30 words in the case where N = 101, that is, the address length is 101 bits long and one-word data is stored at each address. Such a memory is impractical. In contrast thereto, in the case where m = 10, for instance, and the memory 21 is formed by 10 blocks consisting of memories 21 1 to 21 9 (that is, M 1 = M 2 = ... = M 9 = 10) of 10 bits long addresses, for example, and one memory 21 10 (that is, M = 11) of 11 bits long addresses, nine ROMs having a capacity of 1K words and one ROM having a capacity of 2K words are used and the total storage capacity is 9 x 2 10 + 2 11 = 11264 words, i.e. 11 K words. The outputs of the memory blocks 21 1 to 21 m are respectively added by adders 24 1 to 24 m-1 , and the added output is converted by the D/A converter 22 to analog form and smoothed by the lowpass filter 23, thereafter being provided to the output terminal 18. In the above-described example in which m = 10 the memory blocks 21 1 to 21 9 are described to have the 1K words capacity and the memory block 21 10 is described to have the 2K words capacity, but all the memory blocks may be formed by memories of the same 2K words capacity. Moreover, although the memory blocks 21 1 to 21 m are described to be formed by ROMs, it is also possible to implement a digital filter whose characteristic can properly be switched by using DRAMs or SRAMs to form the memory blocks 21 1 to 21 m so that a desired coefficient h(n-i) can be re-written. The same is true of the Fig. 3 embodiment. DESCRIPTION OF THE PREFERRED EMBODIMENT In the embodiment of Fig. 3 one symbol (one bit represented by the H or L level) of the input serial data signal S(i) from the terminal 12 is fetched into the shift register 11 upon each occurrence of the clock CK. This is equivalent to the sampling of the input signal by the clock CK of the same rate as its symbol rate (or bit rate), but this is not preferable because folding noise (i.e. aliasing noise) enters the frequency band of the input signal as the result of sampling. To avoid this, provision is made for transferring the folding noise to a frequency region sufficiently higher than that of the input signal S(i), by fetching the input signal into the shift register after sampling it by a clock of a rate sufficiently higher than the symbol rate of the input data signal through use of a method called oversampling. Through utilization of such an oversampling method the storage capacity necessary for the digital filter of the present invention can be reduced as described below in connection with Fig. 5. Fig. 5 shows a structure for performing, for example, 129-order FIR filtering at a sampling rate 16 times higher than the bit rate of the input serial data signal S(i). The 16-times oversampling of the input signal S(i) is to fetch the input signal S(i) into the shift register while sampling it 16 times for each symbol (or bit), and the 16 pieces of sample data have the same value. Hence, if a 129-stage shift register is employed to form a 129-order digital filter in Fig. 3 or 4, only pieces of data of one bit of the input signal data and the preceding eight bits are held in the 129 shift stages of the shift register 11 while the same bit of the input signal is sampled 16 times and input into the shift register 11, and the input signal data does not change during the 16 sampling periods. Upon each occurrence of an oversampling clock CK2 the input signal data of these nine bits are phase shifted in the 129-stage shift register by 1/16 of one symbol (bit) width of the input signal. Letting the quotient and remainder of the division of N by K, for example, be represented by M' and R respectively, that is, N/K = M'+(R/K) (where 0 ≦ R < K). In the case of performing N-order filtering of the input data signal S(i) through the N-stage shift register 11 at a clock rate K times higher than the bit rate of the input signal in the Fig. 3 embodiment, if R > 0, then a complete symbol waveform of a maximum of M' bits and a partial symbol waveform of R/K bits of the input data are held in the N-stage shift register 11, and these pieces of data are output as N-bit data from the N shift stages and used for filtering processing. It is therefore necessary, in the Fig. 5 embodiment, that the input signal data of M'+1 bits be always held in the shift register 11. With R = 0, if the pieces of input signal data are sequentially fetched into the N-stage shift register 11 at the clock rate K times higher than the bit rate of the input data signal in Fig. 3, the input signal data of the full M' bits is just held in the shift register 11 at the time of occurrence of a certain one of a series of K clock pulses. Upon the occurrence of the next clock CK, the first 1/K symbol portion of the next bit of the input signal data is sampled and fetched into the first shift stage of the shift register 11, and at the same time, the first 1/K symbol portion of the oldest bit of the input signal data in the last shift stage of the shift register 11 is discarded. As the result of this, there is held in the N-bit shift register 11 a sequence of input signal data of M'+1 bits including incomplete symbol bits at both ends thereof, and this number (M'+1) does not change while the clock is further provided (K-1) times. These bits are all used for filtering processing. That is, even in the case where R = 0, input signal data of M'+1 bits is needed for N-order filter processing by the K-times oversampling. It is therefore necessary, in either of the cases where R ≠ 0 and R = 0, that input signal data of M'+1 bits be held in the shift register 11A upon each occurrence of the clock CK in the Fig. 5 embodiment. In other words, the construction of the N-order filter for the K-times oversampling operation calls for the M-bit shift register 11A and a K-nary counter 11B (a counter which is reset upon each occurrence of the K-th clock CK2), and M is a minimum integer which is greater than N/K represented as M = N/K . In the embodiment of Fig. 5 the input signal data S(i) is input into the shift register 11A having M = 9 shift stages, in synchronization with the clock CK1 equal to the bit rate of the input signal data S(i), and the input data is shifted through the respective shift stages. On the other hand, there is provided the K = hexadecimal counter 11B, which counts the clock CK2 of the rate 16 times higher than that of the clock CK1; namely, the counter 11B counts the clock CK2 16 times each time the input serial signal S(i) is shifted one bit position in the shift register 11A. The respective count values of the hexadecimal counter 11B represent the state in which the 9-bit input signal data input into the shift register 11A has virtually been phase shifted by 1/16 symbol width upon each occurrence of the sample clock CK2. Hence, by a combination of data available at output terminals Q 0 to Q 8 of the shift register llA and data available at output terminals C 0 to C 3 of the hexadecimal counter 11B, it is possible to define the states of output data Q(0) to Q(128) from 129 shift stages in the case where the input signal data S(i) has virtually been input into a shift register of 129 shift stages through use of the 16-times oversampling technique. That is to say, a virtual N-bit shift register is implemented by the M-bit shift register 11A and the K-nary counter 11B. The outputs Q(0) to Q(8) of the shift register 11A and the output C(0) to C(3) of the hexadecimal counter 11B are provided as address data to the memory 21. In the memory 21 there is prestored at each 13-bit address {Q(0), ..., Q(8), C(0), ..., C(3)) the result of calculation determined as described below. Letting the output from an i-th (where i = 0, 1, ..., 128) shift stage of the virtual shift register of 129 shift stages be represented by q(i) and the decimal value C of the count value of the K-nary counter 11B be represented by C = C(0) + C(1) × 2 + C(2) x4 + C(3) × 8 then q(i) can be expressed by the following equation: In the above, when 0 ≦ i < C, it holds that (i-C)/16 = 0, that is, q(i) = Q(0). The value to be stored at the address {Q(0), ..., Q(8), C(0), ..., C(3)) is calculated by In general, in the case of performing the N-order (where N = 2n+1) filtering through use of the K-times oversampling, the shift register 11A of M = N/K shift stages and the K-nary counter llB are used and the value Ω which is calculated by the following equation is prestored at each address {Q(0), ..., Q(M-1), C(0), ..., C(K-1)} of the memory 21. In the case where N = 129 and K = 16, the required capacity of the memory 21 is 2 13 = 8192 words, i.e. only 8K words, since the number of address bits used is 9 + 4 = 13. In contrast to this, the realization of a similar filter through utilization of the construction shown in the Fig. 3 calls for a memory of as large a capacity as 2 129 ≃ 6.8 × 10 38 words, and hence is almost impossible. Fig. 6 illustrates a modified form of the Fig. 5 embodiment, in which the memory 21 is made up of two memories 21 1 and 21 2 by the application of the memory splitting method used for the Fig. 4 embodiment. Accordingly, the shift register 11A is also formed by a series connection of a 4-bit shift register 11A 1 and 5-bit shift register 11A 2 . It is a matter of course that the combination of the shift registers 11A 1 and 11A 2 may be replaced with one 9-bit shift register. A set of 4-bitshift stage outputs Q(0) to Q(3) of the shift register 11A 1 and 4-bit output C(0) to C(3) of the hexadecimal counter 11B is provided as 8-bit address data to address terminals A 0 to A 7 of the memory 21 1 , and 5-bitshift stage outputs Q(4) to Q(8) of the shift register 11A 2 and the 4-bit outputs C(0) to C(3) of the hexadecimal counter 11B is provided as 9-bit address data to address terminals A 0 to A 8 of the memory 21 2 . In the memory 21 1 there is prestored at each address {Q(0), ..., Q(3), C(0), ..., C(3)} a value given by Similarly, there is prestored in the memory 21 2 at each address {Q(4), ..., Q(8), C(0), ..., C(3)} a value given by Values read out of the memories 21 1 and 21 2 are added together by the adder 24 and the added output is provided as a piece of sampled data of filtered output to the D/A converter 22. In the embodiment of Fig. 6 the required capacities of the memories 21 1 and 21 2 are 2 8 = 256 words and 2 9 = 512 words, respectively, and the total capacity is only 768 words. This is less than 1/10 that needed in the Fig. 5 embodiment. Fig. 7 illustrates an example of a transmitter utilizing the digital filter 10 of the present invention. This example shows a structure for transmitting an amplitude-modulated carrier. A modulator 32 is supplied at a carrier input terminal 34 with a carrier CW from an oscillator 31 and at a modulation signal input terminal 33 with a modulation signal MS from a modulation signal source 30. The modulation signal source 30 comprises an analog signal source 13, an A/D converter 14 for converting an analog signal thereto to a digital signal, an encoder 19 which converts the digital signal to a serial signal and, if necessary, encodes the serial signal by appending thereto packet information or the like, and the digital filter 10 of the present invention which restricts the encoded serial signal within a predetermined bandwidth. The digital filter 10 is set to a low-pass characteristic having a required treble cutoff frequency, by which the frequency component of the modulation signal MS to the modulation signal input terminal 33 of the modulator 32 is restricted within a predetermined bandwidth. By applying such a band-restricted modulation signal MS to the modulator 32, the bandwidth of the electric wave that is emitted from a high-frequency amplifier 35 via an antenna 36, i.e. the bandwidth Δf of side bands centering about the carrier f 0 as shown in Fig. 8, is restricted by the bandwidth of the digital filter 10. Incidentally, at the receiving side the received signal is shaped by a waveform shaper to pulse form, the pulse signal is converted by a serial-parallel converter to parallel form, and the thus converted digital signal is subjected to D/A conversion, by which the original analog signal can be reproduced. As described above, according to the present invention, it is possible to provide a digital filter which is capable of a high-speed operation corresponding to high-speed digital data. Besides, the bandwidth of data can be limited as desired. In addition, the treble cutoff frequency of the filter can freely be set by a suitable selection of the coefficient h(n-i) and the cutoff characteristic can be set to be steep. This increases the ratio of elimination of signals in unnecessary bands. Furthermore, the digital filter of the present invention does not suffer from excessive phase rotation, and hence permits the transmission of almost jitter-free signals.

Claims: A digital filter comprising: M-bit shift register means (11A) to which a serial data signal (S(i)) is applied and fetched on a bitwise basis in synchronization with a first clock (CK1) of a rate equal to the bit rate of said serial data signal, said shift register means providing output data of each of its shift stages to respective output terminals (Q 0 -Q 8 ); counter means (11B) for counting a second clock (CK2) of a rate K times higher than that of said first clock, the counter means being reset upon each counting of K pulses of the second clock; memory means (21) adapted to receive, as readout address data, a combination of the output data from said output terminals and data representing the count value of said counter means (11B), said memory means (21) having stored at each address a respective value equal to the sum of N products, where N is defined by M being the smallest integer larger that N/K, said products corresponding to virtual products such as would be obtained if said serial data were fetched on a bitwise basis in synchronization with said second clock into a virtual N-bit shift register and, for each second clock, the virtual output data from the N virtual shift stages of such virtual N-bit shift register were respectively multiplied by N coefficients defining an impulse response; and D/A converting means (22, 23) for converting said value read out of said memory means to an analog signal. The digital filter of claim 1 wherein said shift register means (11) is formed by m shift-stage groups (11A 1 , 11A 2 ), said memory means (21) which includes m split memories (21 1 , 21 2 ) to each of which a combination of output data from a corresponding one of said shift-stage groups and said counter means (11B) is provided for each second clock (CK2) as a split readout address, each of said split memories having stored therein a partial value equal to the sum of products contained in one of m groups into which said N products are split corresponding to said split addresses, and adding means (24) which calculates the total sum of the partial values read out of said split memories and provides said total sum to said D/A converting means (22, 23). The digital filter of claim 2 wherein said m memories (21 1 , 21 2 ) are reloadable memories. The digital filter of claim 1, 2 or 3 wherein said D/A converting means (22, 23) includes low-pass filter means (23) which smoothes said analog signal.

Inventors: NUKUI YOSHIHIRO, NUKUI, YOSHIHIRO
Applicants: ADVANTEST CORP, ADVANTEST CORPORATION
Application year: 1991
Main classification: H03H17
IPC codes: H03H17, H03H21