If the desired interpolation points are not uniformly spaced
between
Summary: (Blank Abstract)
If the desired interpolation points are not uniformly spaced
between
In the following example, we design a length 19 Type I FIR.
Then
C = cos(wk*[0:M]);
where wk is a column vector containing
the frequency points. To solve the linear system of
equations, 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. For example, 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 a subproblem in the design of optimal minimax (or Chebyshev) FIR filters.
FIR digital filters have several desirable properties.