There has been some confusion about the Sinc-Filter.

I have read descriptions about the Sinc-Filter somewhere, which predicted that it would become unstable, if the frequency of the input stream, happened to correspond to the spacing, between its non-zero coefficients. As far as I can tell, this prediction was based on a casual inspection of the Sinc Function, but overlooks something which is easy to overlook about it. This case also happens to correspond, to the input stream having a frequency equal to the Nyquist Frequency, of certain practical applications, such as over-sampling.

The Sinc Function has zero-crossings at regular intervals, including the center-point, where its coefficient is stated as being equal to (1.0) . This happens because the value at the center-point, is the solution to a limit equation, that corresponds to (0/0) .

This center coefficient is symmetrically flanked by two positive ones, one of which is only positive, because it forms as a division of the sine of x by the corresponding negative value of x. At frequencies below the Nyquist Frequency, the sum of their products starts to reinforce the center element. Above Nyquist, they start to cancel the product with the center coefficient.

sincplot_2

This can be complicated to plot using Computer Algebra Systems, because plotting functions are always numerical, and at (x=0), there is no numerical solution (only the Algebraic solution given lHôpitals Rule). So, a CAS typically needs to have the Sinc Function defined as a special case, to be able to plot it, otherwise requiring a complex workaround.

So it is possible that the frequency of the incoming stream aligns to the spacing between the maxima and minima of the Sinc Function. If that happens, there are two behaviors to bear in mind:

  1. The peak of the input stream could be aligned with the center-point. In that case, all the other waves will have zero-crossings, where the Sinc Function has maxima. The fact that the single input-sample seems to produce (1.0) as the output amplitude, is due to how the function is frequently normalized for practical use. According to that, maximum output should reach (2.0) at a frequency of zero…
  2. The input stream could have a zero-crossing, at the center-point of the Sinc Function, so that its product from there should equal (0.0) . In that case, the input stream will have positive peaks on one side of the center-point, that all correspond to negative peaks on the other side of the center-point. According to that, the instantaneous output should equal (0.0) .

All of this would suggest to me, that the Sinc-Filter will work properly.

sincplot_3

One way in which people can misinterpret the plot of the curve, would be to notice it has a positive peak in the center, to notice that after a zero-crossing, it forms two negative peaks, and then to conclude that those negative peaks are also the two closest non-zero coefficients to the center.

An astute reader will notice an inconsistency, in the ways in which this Sinc Function should be normalized, for use in a filter. The reason for this is the fact, that the integral of what appears to be a continuous function is not the same, as the sum, of a discrete set of coefficients taken from that function.

According to what I wrote above, the normalization should just be to multiply all the coefficients by (1/2). This might be correct in the case of a Half-Band Filter, which is the special case where every second coefficient is taken to be a zero, but if the domain of samples nevertheless spanned from (± ∞).

If this function was taken to be a continuous one, then the normalization would neither be a (1) nor a (1/2), but I believe (1/π).

And there also exist working cases, in which only every 4th coefficient was a zero, which again need to be normalized, to account for the fact that then, from (x=0) until (x=π), there will be three non-zero coefficients – not an infinite number – but three in that case.

Dirk

(Edit 03/10/2017 : )

Another complaint which some people seem to have written about the Sinc Filter is, that it becomes unstable when fed a steady stream corresponding to the function ‘sgn(sinc(x))‘.

The problem with this complaint is, that while one buffer full of samples is possible, that contain this set of values (+1, -1, 0), such a buffer does not correspond to a steady stream.

The Sign of the Sinc Function alternates every interval of ‘π’ in the domain of the pure function, except between the intervals (-π, 0) and (0, +π). At the transition between these two intervals, as the curve above clearly shows, the sign remains the same once. In other words, the sign-function reverses once at the center-point of the Sinc Function.

So what steady-stream of sign functions would satisfy this condition?

I suppose that somebody could feed this filter a sequence of waves at the cutoff frequency, and then suddenly phase-shift them. After the point of phase-shift has been communicated along the length of the buffer, to the center-point, an excursion would result in the output-stream.

And, simply having the realistic types of analog filters in front of the Sinc-Filter, does not by itself guarantee that it will never receive such a stream.

 

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *

Please Prove You Are Not A Robot *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>