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
> 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!
> :)
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