Hi Julius, sorry for late reply, I was busy and didn't read emails from this list.
On 06/17, Julius Smith wrote: > > Hi Oleg, > > I just now added a hilbert filter to filters.lib, and (probably what > you really want) ssbf Me? ;) Heh. I know almost nothing about digital filters, to the point I don't even know the terminology. Plus I forgot all the math I studied a long ago. So it was not easy to me to understand what fi.ssbf does and how it works. But what I absolutely fail to understand is the new fi.hilbert filter. It simply makes no sense to me, could you please explain? ------------------------------------------------------------------------- So iiuc we have the "complex" (c,s) osscillator running at ma.SR/4 frequency and ssbf = _,0 : si.cmul(c,-s) // *conj(c,s), shift the spectrum by -SR/4 : LPF(SR/4) // remove the negative part : si.cmul(c,s); // shift it back by SR/4 OK, but how this // The Hilbert transform creates the imaginary part of an // "analytic signal" $x(n)+j y(n)$ from its real part $x(n)$. // hilbert = ssbf : !,_; can work? Unless LPF above is ideal. And even if it was ideal, I think the correct definition would be hilbert = ssbf : !,*(2); no? But it is not ideal, so I simply can't understand how/why this "hilbert" can be used. Suppose that LPF above has FR(f) frequency response. To simplify, suppose that FR(f) = 0 if f > SR/4. Then afaics cos(2*pi*F * t) : hilbert; will output abs(FR(SR/4 - F))/2 * sin(2*pi*F*t - arg(FR(SR/4 - F))); even if LPF is "flat", how can we avoid the phase error == arg(FR(SR/4 - F)) ? Thanks, Oleg. _______________________________________________ Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-users