Reply by December 6, 20152015-12-06
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
Reply by Piergiorgio Sartor December 5, 20152015-12-05
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
Reply by Randy Yates December 5, 20152015-12-05
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
Reply by December 5, 20152015-12-05
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
Reply by Randy Yates December 5, 20152015-12-05
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[1] = 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[1] = 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[1] = 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[1] 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
Reply by Randy Yates December 5, 20152015-12-05
See the section on Stability here:

https://en.wikipedia.org/wiki/Sinc_filter

--Randy

Randy Yates <yates@digitalsignallabs.com> writes:

> Tim Wescott <tim@seemywebsite.com> writes: > >> On Fri, 04 Dec 2015 23:07:05 -0500, Randy Yates wrote: >>> 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? >> >> Ah ha -- I can see the error in your thinking from here. If you can >> straddle the point where it "blows up" then you are, ipso facto, sampling >> too slowly. > > Nope. Try this gedanken: Take a specific bounded (input) sequence > which causes a T/2 fractional sinc filter to blow up. (I can provide > just such a sequence). Convert that to the ideal analog signal using > the ideal interpolating filter (i.e., the sinc() function). Then sample > that. You will get the original sequence, no? > >>> 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? >> >> Yes. > > Oh, well that settles it! If Tim Wescott says so, it MUST be true! > :)
-- Randy Yates, DSP/Embedded Firmware Developer Digital Signal Labs http://www.digitalsignallabs.com
Reply by Piergiorgio Sartor December 5, 20152015-12-05
On 2015-12-05 18:49, Tim Wescott wrote:
[...]
>> 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.
Could it be using an input signal like: -sgn(sinc) ? bye, -- piergiorgio
Reply by Evgeny Filatov December 5, 20152015-12-05
On 05.12.2015 20:47, Tim Wescott wrote:

>> Kinda like Dirichlet's test? > > Yes. I had to look it up, but yes. > > I'm pretty sure that a sinc filter has a finite response for _any_ input > sequence, but I'm not sure I want to do the math right now. >
I admit that I looked it up, too. My question was not to show off but to find out if that's it or whether a stronger statement was implied. Thanks! -- Evgeny.
Reply by Tim Wescott December 5, 20152015-12-05
On Sat, 05 Dec 2015 11:47:33 -0600, Tim Wescott wrote:

> On Sat, 05 Dec 2015 19:44:27 +0300, Evgeny Filatov wrote: > >> On 05.12.2015 19:31, Tim Wescott wrote: >>> radams2000@gmail.com Wrote in message: >>>> It's true that if you apply abs(sinc(x)) as an input to a sinc filter >>>> you will get an unbounded output but only when the alignment between >>>> input and filter taps is in a certain range. So like you say it's >>>> infinite for a short time but then comes back to earth again. My >>>> understanding of an unstable filter is that the output continues to >>>> grow after the input goes to zero, which implies a pole in the RHP or >>>> outside the unit circle. So I don't know that I would call this an >>>> unstable filter. >>>> >>>> >>>> Bob >>>> >>>> >>> Nope. Sinc (p*n) has a finite sum, so its response to any >>> all-positive sequence will be finite. >>> >>> >> Kinda like Dirichlet's test? > > Yes. I had to look it up, but yes. > > I'm pretty sure that a sinc filter has a finite response for _any_ input > sequence, but I'm not sure I want to do the math right now.
Oops -- no, I'm wrong. Feed sign(sinc) into a sinc filter and it has at least one infinity. Thank you radams. Good thing I wasn't jumping up and down and insisting I was right. -- www.wescottdesign.com
Reply by Tim Wescott December 5, 20152015-12-05
On Sat, 05 Dec 2015 11:53:27 -0500, Randy Yates wrote:

> Tim Wescott <tim@seemywebsite.com> writes: > >> On Fri, 04 Dec 2015 23:07:05 -0500, Randy Yates wrote: >>> 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? >> >> Ah ha -- I can see the error in your thinking from here. If you can >> straddle the point where it "blows up" then you are, ipso facto, >> sampling too slowly. > > Nope. Try this gedanken: Take a specific bounded (input) sequence which > causes a T/2 fractional sinc filter to blow up. (I can provide just such > a sequence). Convert that to the ideal analog signal using the ideal > interpolating filter (i.e., the sinc() function). Then sample that. You > will get the original sequence, no? > >>> 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? >> >> Yes. > > Oh, well that settles it! If Tim Wescott says so, it MUST be true! > :)
Yup. And I say it, so it MUST be true! -- www.wescottdesign.com