- A brief introduction on how to filter digital signals.
Because of the Sampling Theorem, we can process, in particular filter, analog signals "with a computer" by constructing the system shown in Fig. 5.16.1. To use this system, we are assuming that the input signal has a lowpass spectrum and can be bandlimited without affecting important signal aspects. Bandpass signals can also be filtered digitally, but require a more complicated system. Highpass signals cannot be filtered digitally. Note that the input and output filters must be analog filters; trying to operate without them can lead to potentially very inaccurate digitization.
must be filtered with an anti-aliasing filter (to ensure a bandlimited signal) before A/D conversion. This lowpass filter (LPF) has a cutoff frequency of W Hz, which determines allowable sampling intervals Ts. The greater the number of bits in the amplitude quantization portion of the A/D converter, the greater the accuracy of the entire system. The resulting digital signal x(n) can now be filtered in the time-domain with a difference equation or in the frequency domain with Fourier transforms. The resulting output y(n) then drives a D/A converter and a second anti-aliasing filter (having the same bandwidth as the first one).Fig. 5.16.1 To process an analog signal digitally, the signal
Another implicit assumption is that the digital filter can operate in real time: The computer and the filtering algorithm must be sufficiently fast so that outputs are computed faster than input values arrive. The sampling interval, which is determined by the analog signal's bandwidth, thus determines how long our program has to compute each output The computational complexity for calculating each output with a difference equation is O(p+q). Frequency domain implementation of the filter is also possible. The idea begins by computing the Fourier transform of a length-portion of the input multiplying it by the filter's transfer function, and computing the inverse transform of the result. This approach seems overly complex and potentially inefficient. Detailing the complexity, however, we have O(N log N) for the two transforms (computed using the FFT algorithm) and for the multiplication by the transfer function, which makes the total complexity O(N log N) for N input values. A frequency domain implementation thus requires O( log N) computational complexity for each output value. The complexities of time-domain and frequency-domain implementations depend on different aspects of the filtering: The time-domain implementation depends on the combined orders of the filter while the frequency-domain implementation depends on the logarithm of the Fourier transform's length.
It could well be that in some problems the time-domain version is more efficient (more easily satisfies the real time requirement), while in others the frequency domain approach is faster. In the latter situations, it is the FFT algorithm for computing the Fourier transforms that enables the superiority of frequency-domain implementations. Because complexity considerations only express how algorithm running-time increases with system parameter choices, we need to detail both implementations to determine which will be more suitable for any given filtering problem. Filtering with a difference equation is straightforward, and the number of computations that must be made for each output value is 2(p+q).
Derive this value for the number of computations for the general difference equation.
We have multiplications and additions. Thus, the total number of arithmetic operations equals 2(p+q).