# Stability of IIR Filters

Started by December 5, 2015
Tim Wescott <tim@seemywebsite.com> writes:

> On Sat, 05 Dec 2015 11:50:24 -0500, Randy Yates wrote:
>
>> Tim Wescott  <Tim@seemywebsite.com> writes:
>>
>>> Randy Yates <yates@digitalsignallabs.com> Wrote in message:
>>>> Tim Wescott <tim@seemywebsite.com> writes:
>>>>
>>>>> On Fri, 04 Dec 2015 23:07:05 -0500, Randy Yates wrote:
>>>>>
>>>>>> Folks,
>>>>>>
>>>>>> First let me ask this: Does the Fs/2-wide sinc function,
>>>>>> interpolating at some fractional sample offset, have a z-transform?
>>>>>> I don't think so,
>>>>>> but I thought I'd verify.
>>>>>
>>>>> If it's a sinc in time, it would be sinc(<mumble-mumble>k)/z^k,
>>>>> wouldn't it?  Presumably if you have a fractional shift there would
>>>>> still be some closed-form function you could write.
>>>>>
>>>>>> Now it can be shown that a fractionally interpolating sinc function
>>>>>> can generate an infinite output with bounded input. This is commonly
>>>>>> described as an unstable filter. BI does not imply BO.
>>>>>
>>>>> Are you implying that only straight people start to smell after a
>>>>> while?
>>>>
>>>> <snicker>
>>>>
>>>>> A sinc filter is still BIBO stable.  Having an infinite response
>>>>> doesn't mean something isn't BIBO stable.
>>>>
>>>> Er, what?!!!!?
>>>>
>>>>
>>> Oops. Having a response that's infinite in time doesn't make
>>>  something unstable. Better?
>>
>> Tim,
>>
>> Oh, well yes, sure. But a sinc is not BIBO stable. I'll have to search
>> for it, but I proved that (here on comp.dsp) quite a few years back.
>> Namely, I proved that with a bounded input, the sinc filter can produce
>> an infinite output, at least at one point in time.
>
> I'd be interested in seeing the proof if you can dig it out.

Hey Tim,

I couldn't find the original, but here's a copy of a post that has the
original embedded:

Posted June 9, 2007:

p.kootsookos@remove.ieee.org (Peter K.) writes:

> Tim Wescott <tim@seemywebsite.com> writes:
>
>> Why do you say that the ideal low-pass filters are not BIBO stable?
>> The impulse response you give has a finite amount of energy in it, and
>> it goes to zero over time -- that says "BIBO stable" to me.
>
> For BIBO stability, the impulse response has to be absolutely summable
> (http://en.wikipedia.org/wiki/BIBO_stability).
>
> The sinc function is not absolutely summable (or integrable in
> continuous time http://en.wikipedia.org/wiki/Sinc_function), so the
> ideal low pass filter is not BIBO stable. :-)

Ayup. Here's a copy of the post (from Google Groups) on a proof I made a few years
back:

---------- copied message ----------
From: y...@ieee.org (Randy Yates)
Date: Jan 6 2003, 6:14 pm
Subject: Reconstruction of a signal from discrete-time samples.
To: comp.dsp

"John Leonard" <JLeona...@si.rr.com> wrote in message
<news:Mi6S9.4396$yi6.1300707@twister.nyc.rr.com>... > Basically, convolving the Sinc function with the original sequence seems > to interpolate the original sequence by acting as a weighting function. The > greatest weight is thrown to the points closest to the interpolated point. > The Sinc function is proportional to the <sine function divide by x>. The > interpolated value is the infinite sum of terms which are the product of the > Sinc function and the given sequence. In order for this to work the sum must > converge. It has been some time since I studied Calculus but I do not > understand how a Harmonic series (if that is what this is) converges? I am > sure you can direct me to a text where this property is demonstrated. > John Hello John, You are correct - the series does not, in general, converge. Here's a proof: The ideal interpolation filter for upsampling at an integer ratio L is given by h[n] = sin(pi*n/L) / (pi*n/L) = sinc(n/L). This interpolation filter is convolved with the input signal to get the output, y[n] = h[n] # x[n] = sum_{m = -\infty}^{+\infty} x[m] * h[n-m], where "#" denotes convolution and x[n] is the upsampled input signal. Since the upsampled input signal has L-1 zeros for every sample in the input signal, then only every Lth sample in the the interpolation filter is used to generate an output. Therefore y[n] = sum_{m = -\infty}^{+\infty} x[L*m] * h[n-L*m]. Now assume x[L*m] = sgn(h[1-L*m]). Then y = sum_{m = -\infty}^{+\infty} x[L*m] * h[1-L*m] = sum_{m = -\infty}^{+\infty} x[L*m] * sinc((1-L*m)/L) = sum_{m = -\infty}^{+\infty} sgn(sinc((1-L*m)/L)) * sinc((1-L*m)/L) = sum_{m = -\infty}^{+\infty} !sinc((1-L*m)/L)!. For a specific case, let L = 2. Then y = sum_{m = -\infty}^{+\infty} !sinc((1-2*m)/2)! = sum_{m = -\infty}^{+\infty} !sinc(1/2-m)! = sum_{m = -\infty}^{+\infty} |sin(pi*(1/2-m))/(pi*(1/2-m))| = sum_{m = -\infty}^{+\infty} |sin(pi*(1/2-m))|/|(pi*(1/2-m))|. Since sin(pi*(1/2 - m)) = +/- 1, |sin(pi*(1/2 - m))| = 1. Thus y = sum_{m = -\infty}^{+\infty} 1/|(pi*(1/2-m))| = (1/pi) * sum_{m = -\infty}^{+\infty} 1/|(1/2-m)| = (1/pi) * [sum_{m = -\infty}^{0} 1/|(1/2-m)| + sum_{m = 1}^{+\infty} 1/|(1/2-m)|] = (1/pi) * [sum_{m = -\infty}^{0} 1/(1/2-m) + sum_{m = 1}^{+\infty} 1/|(1/2-m)|]. Now since both terms are positive, if either term diverges, the entire sum diverges. Also note that the 1/pi factor up front is irrelevent in terms of determining convergence. Therefore consider this series: y = sum_{m = -\infty}^{0} 1/(1/2-m) = sum_{m = 0}^{+\infty} 1/(1/2+m) >= sum_{m = 0}^{+\infty} 1/(1+m) = 1 + sum_{m = 1}^{+\infty} 1/m. Therefore since the second term of this expression (the so-called harmonic series) diverges, this entire expression diverges. Since this expression diverges, the entire expression for y also diverges. -- Randy Yates DSP Engineer, Sony Ericsson Mobile Communications Research Triangle Park, NC, USA randy.ya...@sonyericsson.com, 919-472-1124 -- % Randy Yates % "How's life on earth? %% Fuquay-Varina, NC % ... What is it worth?" %%% 919-577-9882 % 'Mission (A World Record)', %%%% <yates@ieee.org> % *A New World Record*, ELO http://home.earthlink.net/~yatescr -- Randy Yates, DSP/Embedded Firmware Developer Digital Signal Labs http://www.digitalsignallabs.com  I've designed lots of audio chips with sinc filters. I sure hope there is no musical track that accidentally contains a sign(sinc) signal. Who knows what might happen? Bob  radams2000@gmail.com writes: > I've designed lots of audio chips with sinc filters. Where did you get those infinite memories from? :) -- Randy Yates, DSP/Embedded Firmware Developer Digital Signal Labs http://www.digitalsignallabs.com  On 2015-12-05 22:26, Randy Yates wrote: > radams2000@gmail.com writes: > >> I've designed lots of audio chips with sinc filters. > > Where did you get those infinite memories from? :) Not to mention the infinite time for the integration... :-) bye, -- piergiorgio  On Saturday, December 5, 2015 at 5:07:11 PM UTC+13, Randy Yates wrote: > Folks, > > First let me ask this: Does the Fs/2-wide sinc function, interpolating > at some fractional sample offset, have a z-transform? I don't think so, > but I thought I'd verify. > > Now it can be shown that a fractionally interpolating sinc function can > generate an infinite output with bounded input. This is commonly > described as an unstable filter. BI does not imply BO. > > For the class of IIRs which have rational z-transforms, we can factor > the denominator and find all the poles, and it is common knowledge that > if the poles are inside the unit circle, the filter is called "stable." > Bounded input ==> bounded output. > > Now here's the$64,000 question: Is bounded input ==> bounded output
> stability only valid for digital signals?
>
> Asked another way, consider an analog (continuous-time) signal that
> blows up at some point in time t_bu, but is finite otherwise. Assume
> we sample that signal with a sample phase that avoids t_bu. Then the
> resulting digital signal is bounded, right?
>
> So now let's say we run this signal through an IIR with rational
> z-transform. I think we can certainly say that the result is always
> bounded if there are no poles on or outside the unit circle. Right? But
> if we convert that signal back to continuous-time using the ideal
> interpolator, can we say the resulting continuous-time signal is also
> bounded?
>
> Inquiring minds want to know...
> --
> Randy Yates, DSP/Embedded Firmware Developer
> Digital Signal Labs
> http://www.digitalsignallabs.com

You mean (1-z^-1) = (z-1)/z  substitute z=exp(j theta) and you should get the sinc