<< Chapter < Page | Chapter >> Page > |
If the desired interpolation points are not uniformly spaced between and then we can not use the DFT. We must take a different approach. Recall that for a Type I FIRfilter, For convenience, it is common to write this as where and . Note that there are parameters. Suppose it is desired that interpolates a set of specified values: To obtain a Type I FIR filter satisfying these interpolation equations, one can set up a linear system of equations. In matrix form, we have Once is found, the filter is formed as
In the following example, we design a length 19 Type I FIR. Then and we have 10 parameters. We can therefore have 10 interpolation equations. We choose:
C = cos(wk*[0:M]);
where
wk
is a column vector containing
the frequency points. To solve the linear system ofequations, we can use the Matlab backslash command.
N = 19;
M = (N-1)/2;wk = [0 .1 .2 .3 .5 .6 .7 .8 .9 1]'*pi;Ak = [1 1 1 1 0 0 0 0 0 0]';C = cos(wk*[0:M]);a = C/Ak;
h = (1/2)*[a([M:-1:1]+1); 2*a([0]+1); a(1:M]+1)];[A,w] = firamp(h,1);plot(w/pi,A,wk/pi,Ak,'o')
title('A(\omega)')xlabel('\omega/\pi')
The general interpolation problem is much more flexible than the uniform interpolation problem that the DFT solves. Forexample, by leaving a gap between the pass-band and stop-band as in this example, the ripple near the band edge is reduced(but the transition between the pass- and stop-bands is not as sharp). The general interpolation problem also arises as asubproblem in the design of optimal minimax (or Chebyshev) FIR filters.
FIR digital filters have several desirable properties.
Notification Switch
Would you like to follow the 'Intro to digital signal processing' conversation and receive update notifications?