3
$\begingroup$

In another question on dsp.stackexchange, a statement was made that the output of MATLAB firpm() or firls() for an anti-alias low-pass filter was "close" to the coefficients of a windowed-Sinc low-pass filter.

If so:

What window (applied to a Sinc "perfect" reconstruction waveform) would provide low-filter kernel coefficients closest (In least squared error or other commonly used metric) to those of a same-length FIR filter designed by the Parks–McClellan or Remez-exchange methods? Is it one of the well-known named window functions (Nuttall et.al.)? Or is there a good numerical or tractable equation approximation to this window?

$\endgroup$
  • 2
    $\begingroup$ Perhaps you can derive some optimally-matched window to what you would get from Parks-McClellan (I doubt it), but the "classic" window that seems to have the most similar behavior to me would be the Dolph-Chebyshev window. It has equiripple behavior in the stopband, although not in the passband. $\endgroup$ – Jason R May 18 '15 at 12:28
  • $\begingroup$ one thing i tried to do about 25 years ago was, by using the Remez exchange algorithm attached to a different set of basis functions, to design an optimal window that would multiply a $\text{sinc}(\cdot)$ function to get minimax error on a brick-wall target. assuming zero-phase (fix the delay later) it was like $$ \text{sinc}(t) w(t) = \text{sinc}(t) \sum\limits_{n=0}^{N} a_n t^{2n} \text{rect}(Bt)$$ where $\frac{1}{B}$ is the length of the FIR kernel and $B$ is related to the transition bandwidth of the brick-wall LPF kernel. my attempt was not successful. $\endgroup$ – robert bristow-johnson May 19 '15 at 18:26
  • $\begingroup$ above, the basis functions for the Remez exchange algorithm would be $$ H_n(f) = \mathcal{F} \left\{ \text{sinc}(t) t^{2n} \text{rect}(Bt) \right\} $$ for $0 \le n \le N$ and the $a_n$ would be the coefficients that Remez would optimally be looking for (to fit the sum to an ideal brickwall $\text{rect}(f)$ function) like $$ H(f) = \sum\limits_{n=0}^{N} a_n H_n(f) \approx \text{rect}(f) $$ i actually asked this of Jim McC once and he had an explanation for why it wouldn't work that i did not understand. $\endgroup$ – robert bristow-johnson May 19 '15 at 18:45
  • $\begingroup$ it seems to me that Tchebyshev polynomials could be set up to work for this, and i don't remember exactly how this failed, but i remember i was not successful. $\endgroup$ – robert bristow-johnson May 19 '15 at 18:49
1
$\begingroup$

none.

what you're asking for is what window, which multiplies a sinc() function, will get you an optimal impulse response kernel, like you might get from Parks-McClellan. well, to get that window, you must undo the multiplication.

the problem is that you cannot divide by zero. any of these "sinc-like" functions that come out of P-McC will pass through 0. but not necessarily at the same place that the sinc() function goes through zero.

$\endgroup$
  • $\begingroup$ but probably the most optimal window is the Kaiser window. and when using a linear-phase FIR design to do upsampling, i have found using a Kaiser windowed *sinc*() to be more optimal than P-McC for an upsampling factor of 2. this is because, in the upsampling process, one of the two samples need only be copied from the input. no FIR dot-product needed except for upsampled samples that exist in between the original samples. $\endgroup$ – robert bristow-johnson May 19 '15 at 18:14
  • $\begingroup$ but it's not the case for upsampling by 3 or 4 or more. that's because the price paid for a longer FIR kernel of the 2 or 3 in betweeners is worse than what is saved by copying 1 sample. $\endgroup$ – robert bristow-johnson May 19 '15 at 18:16
  • $\begingroup$ Note that I am not asking for a window that would create exactly the same result (an impossibility as you noted, given the zero locations), but which window (perhaps of the named window families or other realistically computable functions) might generate a "closest fit" by common fit metrics. $\endgroup$ – hotpaw2 May 19 '15 at 19:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.