On 29 Jul., 18:53, robert bristow-johnson <r...@audioimagination.com> wrote:> On Jul 29, 3:58�am, Andor <andor.bari...@gmail.com> wrote: > > > > > > > On 29 Jul., 05:49, robert bristow-johnson <r...@audioimagination.com> > > wrote: > > > > On Jul 28, 3:56�am, Andor <andor.bari...@gmail.com> wrote: > > > > > On 28 Jul., 01:11, robert bristow-johnson <r...@audioimagination.com> > > > > wrote: > > > > > > On Jul 27, 2:42�pm, Neu <ikarosi...@hotmail.com> wrote: > > > > > > > This seems like the exact approach of the matlab's FILTFILT function > > > > > > for 0 phase filtering > > > > > > yeah, i knew that's what they called it, but i didn't remember where > > > > > it was. �i though it might have been an old unix tool that those C- > > > > > sound guys were using. �i knew what it was and had never actually used > > > > > it. �i first learned of it when i was talking with a guy named Avery > > > > > Wang who wrote, with Julius Smith, an interesting paper about > > > > > Truncated IIR filters (TIIR) that are recursive ways to do FIR > > > > > filters. �(a moving-average or moving-sum filter is the simple non- > > > > > trivial example.) �in fact, look at patent 5,548,543. > > > > > > they had a paper where they were using a stable TIIR in cascade with > > > > > the unstable reflection (1/z) TIIR to get zero phase shift and twice > > > > > the magnitude like filtfilt() does (but it does it in real time). > > > > > even though they proved their system works, they can swap out the > > > > > unstable TIIR �i thought that a safer way to do is, after busting the > > > > > signal into blocks to use a two identical and stable TIIR filters to > > > > > filter a block of signal once forward and then reverse. �since TIIRs > > > > > are actually FIRs, the tail attached to the zero-ended block is > > > > > finite, so you can in real time, wait for the tail to end and they > > > > > filter that block in reverse. �lastly, overlap add with the previous > > > > > block. �with a long TIIR impulse respone, you can as close to some > > > > > classic IIR filter magnitude response (squared) as you want. �like > > > > > filtfilt(), you have to design your IIR filter to have half the dB > > > > > response as your real target. > > > > > > >(they set, however, �the filter's initials > > > > > > conditions equal to the DC component of the signal). > > > > > > or a weighted version of the DC component. �that seems like a good > > > > > thing to do for processing a sound file (which is what the utility was > > > > > written to do) to minimize some click, but i *don't* think you want to > > > > > that if you were using a filtfilt-like process to process blocks in a > > > > > continuous steam. �then you want the filter states cleared. > > > > > > listen, i know this TIIR stuff seems a little bit ancillary to filtfilt > > > > > (), but at least one application of TIIR is to accomplish the same > > > > > thing as filtfilt(). > > > > > I remember when you first told me here on comp.dsp how to combine the > > > > Wang/Smith TIIR with the Powell/Chau OLA-Time-Reversal methods (was > > > > that in 2006?) - I thought the idea was tits! In the meantime, I have > > > > found a 2003-paper [1] by a bunch of Japanese guys that spells it out > > > > in excruciating detail. Do you want it? > > > > yeah, sure. �can you email me a pdf? > > > I sent it to your audioimagination e-mail address. > > > > > [1] A. Kurosu et al, A Technique to Tuncate IIR Filter Impuse Response > > > > and Its Application to Real-Time Implementation of Linear-Phase IIR > > > > Filters, IEEE Transactions on Signal Processing Vol 51, May 2003. > > > > well, i was talking with Bill Gardner about this at an IEEE Mohonk > > > conference, and the last one of those i've been to was in 2001. �i > > > wonder where they got the idea. > > > > i gotta think about your idea a little more. > > > DSP riddle: > > > Assume two rational transfer filters with impulse responses > > > g = [g1, g2, ... ] > > > and > > > h = [h1, h2, ...]. > > > How to construct a rational transfer filter with impulse response > > > [g1 h1, g2 h2, ...}? > > you've been using MATLAB too much. �you're counting from 1. > > > :-) > > my thoughts, exactly.You already know the answer? It took me a while to figure it out - that was the first time when I used the residue theorem outside of a school problem ... :-)
removing phase shift - reversing the signal
Started by ●July 26, 2009
Reply by ●July 29, 20092009-07-29
Reply by ●July 29, 20092009-07-29
On Jul 29, 3:57�pm, Andor <andor.bari...@gmail.com> wrote:> On 29 Jul., 18:53, robert bristow-johnson <r...@audioimagination.com> > wrote: > > > > > On Jul 29, 3:58�am, Andor <andor.bari...@gmail.com> wrote: > > > > > DSP riddle: > > > > Assume two rational transfer filters with impulse responses > > > > g = [g1, g2, ... ] > > > > and > > > > h = [h1, h2, ...]. > > > > How to construct a rational transfer filter with impulse response > > > > [g1 h1, g2 h2, ...}? > > > you've been using MATLAB too much. �you're counting from 1. > > > > :-) > > > my thoughts, exactly. > > You already know the answer?well, i didn't know for sure if i was starting from the impulse responses, h[] and g[] (which would have infinite length), or with the numerator and denominator (or zeros and poles) of the rational transfer functions. if the latter, yeah, i would bust them into additive terms (partial fraction expansion, in which the Heaviside residue theorem is useful), then each term corresponds to an exponential (possibly a complex exponential for complex poles) in the time domain, they you have to do pairwise multiplication of the exponentials in h[] against the exponentials in g[] giving you *new* exponentials, then reverse the process (exponentials in impulse response to partial fractions to rational transfer function). that's the only way i know. sounds like a useful grad school problem, actually. otherwise, i am curious of the application. BTW, that paper you sent me, them Japs didn't reference Wang or Smith at all? i wonder if they knew of that previous work? it also seemed more complicated than necessary (but i didn't read it through). about eliminating limit cycles, the whole idea of either the Wang/Smith or Powell/Chau thingies were to clear the TIIR filter states before re- using them for another block or frame of reversed data. r b-j
Reply by ●July 31, 20092009-07-31
On 30 Jul., 00:57, robert bristow-johnson <r...@audioimagination.com> wrote:> On Jul 29, 3:57�pm, Andor <andor.bari...@gmail.com> wrote: > > > > > > > On 29 Jul., 18:53, robert bristow-johnson <r...@audioimagination.com> > > wrote: > > > > On Jul 29, 3:58�am, Andor <andor.bari...@gmail.com> wrote: > > > > > DSP riddle: > > > > > Assume two rational transfer filters with impulse responses > > > > > g = [g1, g2, ... ] > > > > > and > > > > > h = [h1, h2, ...]. > > > > > How to construct a rational transfer filter with impulse response > > > > > [g1 h1, g2 h2, ...}? > > > > you've been using MATLAB too much. �you're counting from 1. > > > > > :-) > > > > my thoughts, exactly. > > > You already know the answer? > > well, i didn't know for sure if i was starting from the impulse > responses, h[] and g[] (which would have infinite length), or with the > numerator and denominator (or zeros and poles) of the rational > transfer functions. �if the latter, yeah, i would bust them into > additive terms (partial fraction expansion, in which the Heaviside > residue theorem is useful), then each term corresponds to an > exponential (possibly a complex exponential for complex poles) in the > time domain, they you have to do pairwise multiplication of the > exponentials in h[] against the exponentials in g[] giving you *new* > exponentials, then reverse the process (exponentials in impulse > response to partial fractions to rational transfer function). � > that's the only way i know.I'm not quite sure if that works. Multiplication in time domain = complex convolution in z-domain (are you proposing multiplication in frequency domain?). And complex convolution = complex path integral, which one can compute with the residue theorem.> sounds like a useful grad school problem, actually. �otherwise, i am > curious of the application.Windowing for truncated IIR filters? :-) Actually, when I did this I was curious about why so many signals could successfully be modeled using linear prediction. So I tried to develop the class of linearly predictable sequences. For example, a periodic sequence is linearly predictable. Any sinusoid or polynomial sampling is also linearly predictable. If you add, convolve, correlate or multiply two linearly predictable sequences, the result will be yet another. The question was, given a transform on one or two such sequences, what do the linear prediction coefficients of the resulting sequence look like?> BTW, that paper you sent me, them Japs didn't reference Wang or Smith > at all? �Yes, it looks like they "invented" the impulse response truncation method as well.> i wonder if they knew of that previous work? �it also seemed > more complicated than necessary (but i didn't read it through). �Well, they had to develop the IIR filter truncation and then apply it to OLA-time reversal. Seems ok to spend 9 pages to write up the whole procedure ...> about > eliminating limit cycles, the whole idea of either the Wang/Smith or > Powell/Chau thingies were to clear the TIIR filter states before re- > using them for another block or frame of reversed data. > > r b-jRegards, Andor
Reply by ●July 31, 20092009-07-31
On Jul 31, 3:48�am, Andor <andor.bari...@gmail.com> wrote:> On 30 Jul., 00:57, robert bristow-johnson <r...@audioimagination.com> > wrote: > > > > > On Jul 29, 3:57�pm, Andor <andor.bari...@gmail.com> wrote: > > > > On 29 Jul., 18:53, robert bristow-johnson <r...@audioimagination.com> > > > wrote: > > > > > On Jul 29, 3:58�am, Andor <andor.bari...@gmail.com> wrote: > > > > > > DSP riddle: > > > > > > Assume two rational transfer filters with impulse responses > > > > > > g = [g1, g2, ... ] > > > > > > and > > > > > > h = [h1, h2, ...]. > > > > > > How to construct a rational transfer filter with impulse response > > > > > > [g1 h1, g2 h2, ...}? > > > > > you've been using MATLAB too much. �you're counting from 1. > > > > > > :-) > > > > > my thoughts, exactly. > > > > You already know the answer? > > > well, i didn't know for sure if i was starting from the impulse > > responses, h[] and g[] (which would have infinite length), or with the > > numerator and denominator (or zeros and poles) of the rational > > transfer functions. �if the latter, yeah, i would bust them into > > additive terms (partial fraction expansion, in which the Heaviside > > residue theorem is useful), then each term corresponds to an > > exponential (possibly a complex exponential for complex poles) in the > > time domain, they you have to do pairwise multiplication of the > > exponentials in h[] against the exponentials in g[] giving you *new* > > exponentials, then reverse the process (exponentials in impulse > > response to partial fractions to rational transfer function). � > > that's the only way i know. > > I'm not quite sure if that works. Multiplication in time domain = > complex convolution in z-domain (are you proposing multiplication in > frequency domain?). And complex convolution = complex path integral, > which one can compute with the residue theorem.i didn't mean to appeal to that (multiplication in time-domain means convolution in the other). g[n] and h[n] both come from finite order, rational transfer functions G(z) and H(z). that means, when you bust up G(z) and H(z) into partial fractions, each g[n] and h[n] are sums of decaying exponentials (perhaps with complex exponents, if the poles are complex conjugate) times u[n] (the unit step function). then when you multiply g[n] to h[n], you get all sorts of cross-products that themselves are also decaying exponentials. those go back to a new transfer function that is rational and higher order than G(z) and H (z). that's all i was thinking.> > sounds like a useful grad school problem, actually. �otherwise, i am > > curious of the application. > > Windowing for truncated IIR filters? :-)that, i don't get. the only "windowing of truncated IIR filters" that i understand, are windowed with rectangular windows. the impulse response is a sum of decaying exponentials (possibly with complex arguments) that cut off suddenly at the truncation point.> > i wonder if they knew of that previous work? �it also seemed > > more complicated than necessary (but i didn't read it through). � > > Well, they had to develop the IIR filter truncation and then apply it > to OLA-time reversal. Seems ok to spend 9 pages to write up the whole > procedure ...it seems even more than that. for the concept i had, it would be just like Powell/Chau, except instead of waiting for the tail of the IIR to come to a virtual end, we wait for the tail of the TIIR to come to (save for numerical roundoff issues) an actual end. so, neglecting roundoff errors, the method is 100% theoretically perfect, where the Powell/Chau technique has a theoretical problem that can only be solved by allowing the tail to decay to 1 LSB.
Reply by ●July 31, 20092009-07-31
On 31 Jul., 15:51, robert bristow-johnson <r...@audioimagination.com> wrote:> On Jul 31, 3:48�am, Andor <andor.bari...@gmail.com> wrote: > > > > > > > On 30 Jul., 00:57, robert bristow-johnson <r...@audioimagination.com> > > wrote: > > > > On Jul 29, 3:57�pm, Andor <andor.bari...@gmail.com> wrote: > > > > > On 29 Jul., 18:53, robert bristow-johnson <r...@audioimagination.com> > > > > wrote: > > > > > > On Jul 29, 3:58�am, Andor <andor.bari...@gmail.com> wrote: > > > > > > > DSP riddle: > > > > > > > Assume two rational transfer filters with impulse responses > > > > > > > g = [g1, g2, ... ] > > > > > > > and > > > > > > > h = [h1, h2, ...]. > > > > > > > How to construct a rational transfer filter with impulse response > > > > > > > [g1 h1, g2 h2, ...}? > > > > > > you've been using MATLAB too much. �you're counting from 1. > > > > > > > :-) > > > > > > my thoughts, exactly. > > > > > You already know the answer? > > > > well, i didn't know for sure if i was starting from the impulse > > > responses, h[] and g[] (which would have infinite length), or with the > > > numerator and denominator (or zeros and poles) of the rational > > > transfer functions. �if the latter, yeah, i would bust them into > > > additive terms (partial fraction expansion, in which the Heaviside > > > residue theorem is useful), then each term corresponds to an > > > exponential (possibly a complex exponential for complex poles) in the > > > time domain, they you have to do pairwise multiplication of the > > > exponentials in h[] against the exponentials in g[] giving you *new* > > > exponentials, then reverse the process (exponentials in impulse > > > response to partial fractions to rational transfer function). � > > > that's the only way i know. > > > I'm not quite sure if that works. Multiplication in time domain = > > complex convolution in z-domain (are you proposing multiplication in > > frequency domain?). And complex convolution = complex path integral, > > which one can compute with the residue theorem. > > i didn't mean to appeal to that (multiplication in time-domain means > convolution in the other). > > g[n] and h[n] both come from finite order, rational transfer functions > G(z) and H(z). �that means, when you bust up G(z) and H(z) into > partial fractions, each g[n] and h[n] are sums of decaying > exponentials (perhaps with complex exponents, if the poles are complex > conjugate) times u[n] (the unit step function). �then when you > multiply g[n] to h[n], you get all sorts of cross-products that > themselves are also decaying exponentials. �those go back to a new > transfer function that is rational and higher order than G(z) and H > (z). �that's all i was thinking.Ah ok.> > > > sounds like a useful grad school problem, actually. �otherwise, i am > > > curious of the application. > > > Windowing for truncated IIR filters? :-) > > that, i don't get. �the only "windowing of truncated IIR filters" that > i understand, are windowed with rectangular windows. �the impulse > response is a sum of decaying exponentials (possibly with complex > arguments) that cut off suddenly at the truncation point.Consider the case of TIIR, where the truncation is achieved by multiplying with a von Hann window instead of a rectangular window. Here are the steps you need to do: 1. Can you come up with a rational transfer function filter that has as impulse response samples of the function h(t/L) = 1/2 (1-cos(2*pi*t/L)), where L is a parameter (length of the window)? The filter will be critically stable/instable, with 3 poles on the unit circle (one complex conjugate pair for the cos-part, on at DC for the offset). Call this filter A. 2. Now use TIIR technique to generate a filter with impulse response like filter A, but truncated at L. Call this filter B. 3. Choose your rational transfer filter whose impulse response you want to window. Call this filter C. 4. Use the complex convolution and residue theorem to construct a filter such that the impulse response is the impulse response of filter B multiplied with the impulse response of filter C. Voila!> > > i wonder if they knew of that previous work? �it also seemed > > > more complicated than necessary (but i didn't read it through). � > > > Well, they had to develop the IIR filter truncation and then apply it > > to OLA-time reversal. Seems ok to spend 9 pages to write up the whole > > procedure ... > > it seems even more than that. �for the concept i had, it would be just > like Powell/Chau, except instead of waiting for the tail of the IIR to > come to a virtual end, we wait for the tail of the TIIR to come to > (save for numerical roundoff issues) an actual end. �so, neglecting > roundoff errors, the method is 100% theoretically perfect, where the > Powell/Chau technique has a theoretical problem that can only be > solved by allowing the tail to decay to 1 LSB.Powell/Chau always has a theoretical problem, because you cannot let the tail ring out. The switching for the onlnine-time-reversal buffering is periodic, which means that the system is not LTI but linear-periodically-time-variant (LPTV?). You can model this with a system that has a periodically modulated impulse response (exactly like a rational sample rate converter). "Your" method (or I guess its Kurosu's method since he published it first) actually gets rid of the periodic modulation of the impulse response, turning the Powell/Chau method into a truly LTI filter. Regards, Andor
Reply by ●July 31, 20092009-07-31
On Jul 31, 11:30�am, Andor <andor.bari...@gmail.com> wrote:> On 31 Jul., 15:51, robert bristow-johnson <r...@audioimagination.com> > wrote: > > > On Jul 31, 3:48�am, Andor <andor.bari...@gmail.com> wrote: > > > > On 30 Jul., 00:57, robert bristow-johnson <r...@audioimagination.com> > > > wrote:...> > > > sounds like a useful grad school problem, actually. �otherwise, i am > > > > curious of the application. > > > > Windowing for truncated IIR filters? :-) > > > that, i don't get. �the only "windowing of truncated IIR filters" that > > i understand, are windowed with rectangular windows. �the impulse > > response is a sum of decaying exponentials (possibly with complex > > arguments) that cut off suddenly at the truncation point. > > Consider the case of TIIR, where the truncation is achieved by > multiplying with a von Hann window instead of a rectangular window.but what is the mechanism for doing that? i still don't get it. the mechanism for the regular-old TIIR is a delayed response (by use of a delay line) IIR that is subtracted from the undelayed IIR output. the poles of the two IIR filters will be the same, but the zeros of the delayed IIR may have to be adjusted so that its output at h[0] (this is before it goes into the delay line) is like the undelayed IIR at som h[L].> Here are the steps you need to do: > > 1. Can you come up with a rational transfer function filter that has > as impulse response samples of the function > > h(t/L) = 1/2 (1-cos(2*pi*t/L)),yes. i've actually been doing this very recently. how about this: we want h[n] = (1/L)*(1 - cos(2*pi/L*n)) * (u[n] - u[n-L]) that is the truncated IIR. that can be represented by the subtraction of two, critically stable IIRs: h[n] = h1[n] - h2[n] where h1[n] = (1/L)*(1 - cos(2*pi/L*n)) * u[n] h2[n] = (1/L)*(1 - cos(2*pi/L*(n-L))) * u[n-L] = h1[n-L] but there is no mechanism for tapering the tail with a non-rectangular window, is there? not for an LTI system, i don't think.> where L is a parameter (length of the window)? The filter will be > critically stable/instable, with 3 poles on the unit circle (one > complex conjugate pair for the cos-part, on at DC for the offset). > Call this filter A. > > 2. Now use TIIR technique to generate a filter with impulse response > like filter A, but truncated at L. Call this filter B. > > 3. Choose your rational transfer filter whose impulse response you > want to window. Call this filter C. > > 4. Use the complex convolution and residue theorem to construct a > filter such that the impulse response is the impulse response of > filter B multiplied with the impulse response of filter C. > > Voila!you can just define the filter as such to begin with, as long as the impulse response is the sum of complex exponentials times some rectangular gating function: u[n]-u[n-L].> > it seems even more than that. �for the concept i had, it would be just > > like Powell/Chau, except instead of waiting for the tail of the IIR to > > come to a virtual end, we wait for the tail of the TIIR to come to > > (save for numerical roundoff issues) an actual end. �so, neglecting > > roundoff errors, the method is 100% theoretically perfect, where the > > Powell/Chau technique has a theoretical problem that can only be > > solved by allowing the tail to decay to 1 LSB. > > Powell/Chau always has a theoretical problem, because you cannot let > the tail ring out. The switching for the onlnine-time-reversal > buffering is periodic, which means that the system is not LTI but > linear-periodically-time-variant (LPTV?). You can model this with a > system that has a periodically modulated impulse response (exactly > like a rational sample rate converter). "Your" method (or I guess its > Kurosu's method since he published it first) actually gets rid of the > periodic modulation of the impulse response, turning the Powell/Chau > method into a truly LTI filter.with truncated tails (which Powell/Chau weren't worrying about), it was, after the OLA, an LTI. just like fast convolution (with its busted up input and OLA) is also LTI. r b-j
Reply by ●July 31, 20092009-07-31
On 31 Jul., 20:06, robert bristow-johnson <r...@audioimagination.com> wrote:> On Jul 31, 11:30�am, Andor <andor.bari...@gmail.com> wrote: > > > > > > > On 31 Jul., 15:51, robert bristow-johnson <r...@audioimagination.com> > > wrote: > > > > On Jul 31, 3:48�am, Andor <andor.bari...@gmail.com> wrote: > > > > > On 30 Jul., 00:57, robert bristow-johnson <r...@audioimagination.com> > > > > wrote: > ... > > > > > sounds like a useful grad school problem, actually. �otherwise, i am > > > > > curious of the application. > > > > > Windowing for truncated IIR filters? :-) > > > > that, i don't get. �the only "windowing of truncated IIR filters" that > > > i understand, are windowed with rectangular windows. �the impulse > > > response is a sum of decaying exponentials (possibly with complex > > > arguments) that cut off suddenly at the truncation point. > > > Consider the case of TIIR, where the truncation is achieved by > > multiplying with a von Hann window instead of a rectangular window. > > but what is the mechanism for doing that? �i still don't get it. �the > mechanism for the regular-old TIIR is a delayed response (by use of a > delay line) IIR that is subtracted from the undelayed IIR output. �the > poles of the two IIR filters will be the same, but the zeros of the > delayed IIR may have to be adjusted so that its output at h[0] (this > is before it goes into the delay line) is like the undelayed IIR at > som h[L]. > > > Here are the steps you need to do: > > > 1. Can you come up with a rational transfer function filter that has > > as impulse response samples of the function > > > h(t/L) = 1/2 (1-cos(2*pi*t/L)), > > yes. �i've actually been doing this very recently.Are you synthesizing modulated periodic tones with IIR filters?> > how about this: �we want > > � �h[n] = (1/L)*(1 - cos(2*pi/L*n)) * (u[n] - u[n-L]) > > that is the truncated IIR. �that can be represented by the subtraction > of two, critically stable IIRs: > > � �h[n] = �h1[n] - h2[n] > > where > > � �h1[n] = (1/L)*(1 - cos(2*pi/L*n)) * u[n] > > � �h2[n] = (1/L)*(1 - cos(2*pi/L*(n-L))) * u[n-L] > > � � � � �= h1[n-L] > > but there is no mechanism for tapering the tail with a non-rectangular > window, is there? �not for an LTI system, i don't think.Of course there is. Just remember that there is a way to marry any two rational transfer function filters such that the resulting rational transfer system hase an impulse response equal to the pointwise product of the impulse responses of the two original filters.> > > > > > > where L is a parameter (length of the window)? The filter will be > > critically stable/instable, with 3 poles on the unit circle (one > > complex conjugate pair for the cos-part, on at DC for the offset). > > Call this filter A. > > > 2. Now use TIIR technique to generate a filter with impulse response > > like filter A, but truncated at L. Call this filter B. > > > 3. Choose your rational transfer filter whose impulse response you > > want to window. Call this filter C. > > > 4. Use the complex convolution and residue theorem to construct a > > filter such that the impulse response is the impulse response of > > filter B multiplied with the impulse response of filter C. > > > Voila! > > you can just define the filter as such to begin with, as long as the > impulse response is the sum of complex exponentials times some > rectangular gating function: u[n]-u[n-L].You can use any of the sum-of-cosine-windows as gating functions is what I'm trying to tell you! Because sum-of-cosine-windows can be computed efficiently with recursive filters.> > > > > > > > it seems even more than that. �for the concept i had, it would be just > > > like Powell/Chau, except instead of waiting for the tail of the IIR to > > > come to a virtual end, we wait for the tail of the TIIR to come to > > > (save for numerical roundoff issues) an actual end. �so, neglecting > > > roundoff errors, the method is 100% theoretically perfect, where the > > > Powell/Chau technique has a theoretical problem that can only be > > > solved by allowing the tail to decay to 1 LSB. > > > Powell/Chau always has a theoretical problem, because you cannot let > > the tail ring out. The switching for the onlnine-time-reversal > > buffering is periodic, which means that the system is not LTI but > > linear-periodically-time-variant (LPTV?). You can model this with a > > system that has a periodically modulated impulse response (exactly > > like a rational sample rate converter). "Your" method (or I guess its > > Kurosu's method since he published it first) actually gets rid of the > > periodic modulation of the impulse response, turning the Powell/Chau > > method into a truly LTI filter. > > with truncated tails (which Powell/Chau weren't worrying about), it > was, after the OLA, an LTI. �just like fast convolution (with its > busted up input and OLA) is also LTI.Powell/Chau, after the OLA, is NOT an LTI system - it is periodically time-variant. To see this, envision the response to an impulse. It depends on where in the time-reversal buffers the impulse resides. Just like SRC, where there are several impulse responses (each phase of the polyphase filter). Kurosu also explains this in his paper and how the periodic modulation of the impulse response of the Powell/Chau structure results in harmonic distortion (which you won't get from an LTI filter). Common, I learned this from you! Regards, Andor
Reply by ●August 1, 20092009-08-01
On Jul 31, 6:27�pm, Andor <andor.bari...@gmail.com> wrote:> > Powell/Chau, after the OLA, is NOT an LTI system - it is periodically > time-variant. To see this, envision the response to an impulse. It > depends on where in the time-reversal buffers the impulse resides. > Just like SRC, where there are several impulse responses (each phase > of the polyphase filter). Kurosu also explains this in his paper and > how the periodic modulation of the impulse response of the Powell/Chau > structure results in harmonic distortion (which you won't get from an > LTI filter).because with the Powell/Chau, the IIR filters were really IIR, not TIIR which are really FIR. because of that an impulse happening a quarter way into the buffer period (for the TIIR, the buffer period is twice as long as the TIIR or FIR impulse response length) will have a different response than the impulse happening halfway through. there should be no stimulus happening beyond halfway through, since that is the time needed for the filter pipeline to empty out. the problem with the Powell/Chau is that, being an IIR, it never fullly empties out, unless you count the nonlinearity of the tail decaying below the LSB. but if you replace the IIR with a TIIR, it should be considered truly LTI. anything that is not LTI is because of crap left over from the finite precision arithmetic. but if the sample words are arbitrarily wide, it should be perfectly LTI, no?> Common, I learned this from you!i don't remember what i learned, i guess. r b-j
Reply by ●August 1, 20092009-08-01
On Jul 31, 6:27�pm, Andor <andor.bari...@gmail.com> wrote:> > > but there is no mechanism for tapering the tail with a non-rectangular > > window, is there? �not for an LTI system, i don't think. > > Of course there is. Just remember that there is a way to marry any two > rational transfer function filters such that the resulting rational > transfer system hase an impulse response equal to the pointwise > product of the impulse responses of the two original filters. >> > > you can just define the filter as such to begin with, as long as the > > impulse response is the sum of complex exponentials times some > > rectangular gating function: u[n]-u[n-L]. > > You can use any of the sum-of-cosine-windows as gating functions is > what I'm trying to tell you! Because sum-of-cosine-windows can be > computed efficiently with recursive filters.you can, but the sum-of-cosine (which are more generally sum-of- exponentials), whether they be TIIR or simply FIR, do not have simply a rational transfer function, do they? what about the delay? i guess FIRs have a rational transfer function, but all of the poles (that aren't cancelled by zeros in the TIIR) live at z=0. r b-j
Reply by ●August 1, 20092009-08-01
On 1 Aug., 06:11, robert bristow-johnson <r...@audioimagination.com> wrote:> On Jul 31, 6:27�pm, Andor <andor.bari...@gmail.com> wrote: > > > > > > > > > > but there is no mechanism for tapering the tail with a non-rectangular > > > window, is there? �not for an LTI system, i don't think. > > > Of course there is. Just remember that there is a way to marry any two > > rational transfer function filters such that the resulting rational > > transfer system hase an impulse response equal to the pointwise > > product of the impulse responses of the two original filters. > > > > you can just define the filter as such to begin with, as long as the > > > impulse response is the sum of complex exponentials times some > > > rectangular gating function: u[n]-u[n-L]. > > > You can use any of the sum-of-cosine-windows as gating functions is > > what I'm trying to tell you! Because sum-of-cosine-windows can be > > computed efficiently with recursive filters. > > you can, but the sum-of-cosine (which are more generally sum-of- > exponentials), whether they be TIIR or simply FIR, do not have simply > a rational transfer function, do they?Of course they do. Maybe I should post an example? Regards, Andor






