<< Chapter < Page | Chapter >> Page > |
Express the unit-sample response of a FIR filter in terms of difference equation coefficients. Note that thecorresponding question for IIR filters is far more difficult to answer: Consider the example .
The difference equation for an FIR filter has the form
For IIR systems, we cannot use the DFT to find the system's unit-sample response: aliasing of the unit-sampleresponse will always occur. Consequently, we can only implement an IIR filter accurately in the timedomain with the system's difference equation. Frequency-domain implementations are restricted to FIR filters.
Another issue arises in frequency-domain filtering that isrelated to time-domain aliasing, this time when we consider the output. Assume we have an input signal having duration that we pass through a FIR filter having a length- unit-sample response. What is the duration of the output signal? The difference equation for this filter is
In words, we express this result as "The output's duration equals the input's duration plus the filter's duration minusone.". Demonstrate the accuracy of this statement.
The unit-sample response's duration is and the signal's . Thus the statement is correct.
The main theme of this result is that a filter's output extends longer than either its input or itsunit-sample response. Thus, to avoid aliasing when we use DFTs, the dominant factor is not the duration of input or of theunit-sample response, but of the output. Thus, the number of values at which we must evaluate the frequency response's DFTmust be at least and we must compute the same length DFT of the input. To accommodate a shorter signal than DFT length, we simply zero-pad the input: Ensure that for indices extending beyond the signal's duration that the signal iszero. Frequency-domain filtering, diagrammed in [link] , is accomplished by storing the filter's frequency response as the DFT , computing the input's DFT , multiplying them to create the output's DFT , and computing the inverse DFT of the result to yield .
Before detailing this procedure, let's clarify why so many new issues arose in trying to develop afrequency-domain implementation of linear filtering. The frequency-domain relationship between a filter's inputand output is always true: . The Fourier transforms in this result are discrete-time Fourier transforms; for example, . Unfortunately, using this relationship to perform filtering is restricted to the situation when we have analyticformulas for the frequency response and the input signal. The reason why we had to "invent" the discrete Fourier transform(DFT) has the same origin: The spectrum resulting from the discrete-time Fourier transform depends on the continuous frequency variable . That's fine for analytic calculation, but computationally we would have to make anuncountably infinite number of computations.
Suppose we want to average daily stock prices taken over last year to yield a running weekly average(average over five trading sessions). The filter we want is a length-5 averager (as shown in the unit-sample response ), and the input's duration is 253 (365 calendar days minusweekend days and holidays). The output duration will be , and this determines the transform length we need to use. Because we want to use the FFT, we are restricted topower-of-two transform lengths. We need to choose any FFT length that exceeds the required DFT length. As it turns out,256 is a power of two ( ), and this length just undershoots our required length. To use frequency domain techniques, we must uselength-512 fast Fourier transforms.
[link] shows the input and the filtered output. The MATLAB programs that compute the filteredoutput in the time and frequency domains are
Time Domain
h = [1 1 1 1 1]/5;
y = filter(h,1,[djia zeros(1,4)]);
Frequency Domainh = [1 1 1 1 1]/5;DJIA = fft(djia, 512);
H = fft(h, 512);Y = H.*X;
y = ifft(Y);
filter
program has the
feature that the length of its output equals the length ofits input. To force it to produce a signal having the
proper length, the program zero-pads the inputappropriately.fft
function
automatically zero-pads its input if the specified transformlength (its second argument) exceeds the signal's
length. The frequency domain result will have a smallimaginary component — largest value is
—
because of the inherent finite precision nature of computerarithmetic. Because of the unfortunate misfit between signal
lengths and favored FFT lengths, the number of arithmeticoperations in the time-domain implementation is far less
than those required by the frequency domain version: 514versus 62,271. If the input signal had been one sample
shorter, the frequency-domain computations would have beenmore than a factor of two less (28,696), but far more than
in the time-domain implementation.
An interesting signal processing aspect of this example is demonstrated at the beginning and end of theoutput. The ramping up and down that occurs can be traced to assuming the input is zero before it begins and after itends. The filter "sees" these initial and final values as the difference equation passes over the input. These artifacts canbe handled in two ways: we can just ignore the edge effects or the data from previous and succeeding years' last and firstweek, respectively, can be placed at the ends.
Notification Switch
Would you like to follow the 'Discrete-time fourier analysis' conversation and receive update notifications?