> I interpreted your email as if the new fi.ssbf is always "better" than > hilbert = _ <: H(a1)', H(a2) with ...
I did not mean to imply that. You can use whatever bandpass filter you want, and that choice should of course be adapted to your anticipated input signal(s). If you know the input is a sinusoid at a known frequency, for example, then you can get by (perfectly) with a quarter-cycle delay at that frequency. Many people use this approximation for narrowband signals (such as in microwave engineering). I would strongly object to the name "hilbert" as defined, however, because it has two outputs instead of one. - Julius On Sun, Jun 23, 2019 at 2:34 PM Julius Smith <j...@ccrma.stanford.edu> wrote: > > > Agreed, but I was talking about fi.hilbert. Ideally it should turn cos() > > into sin(), at least according to its name/documentation, not into sin/2. > > I suppose a name change such as "half_hilbert" could be helpful to > avoid confusing "engineering" and "mathematics" definitions of > "hilbert". However, I cannot think of a good name. > Instead, I suggest we move "hilbert" into a comment in the pospass() > doc (see latest filters.lib). > > As you pointed out earlier, no finite-order filter can be The Hilbert > Transform. Even being sampled in time makes that impossible. > Therefore, avoiding the name entirely makes good sense. However, note > that there are few complaints about "Fast Fourier Transform", which is > not the Fourier Transform, and FFTs are similarly (un)scaled according > to engineering principles (avoid gain terms until they are required in > the application). > > - Julius > > On Sun, Jun 23, 2019 at 8:30 AM Oleg Nesterov <o...@redhat.com> wrote: > > > > On 06/22, Julius Smith wrote: > > > > > > Maybe clearer now? See latest filter.lib. > > > > Thanks, the new doc matches my understanding ;) > > > > > I presently vote against a scaling by 2, but I am open to arguments. > > > Right now, pospass simply passes only positive frequencies, and > > > hilbert is the imaginary part of pospass. To me this is the simplest > > > view. > > > > Agreed, but I was talking about fi.hilbert. Ideally it should turn cos() > > into sin(), at least according to its name/documentation, not into sin/2. > > > > > None of these filters is ideal. By considering lowpass, pospass, > > > hilbert, etc., in Faust, you are considering practical filters, > > > nothing ideal. > > > > Of course. But as for fi.hilbert, I simply can't imagine any practical > > usage of it... > > > > > > And in fact there was another reason why I was confused. I interpreted > > your email as if the new fi.ssbf is always "better" than > > > > hilbert = _ <: H(a1)', H(a2) with { > > a1 = 0.6923878, 0.9360654322959, 0.9882295226860 , > > 0.9987488452737; > > a2 = 0.4021921162426, 0.8561710882420, 0.9722909545651, > > 0.9952884791278; > > H_sect(a) = f ~ _ with { f(y, x) = a^2 * (x + y') - x''; }; > > H(as) = seq(i, outputs(as), H_sect(ba.take(i+1, as))); > > }; > > > > I showed to Dario, at least for frequency shifting. AFAICS, this is not > > necessarily true, this depends. Consider the naive implementations, > > > > freq_shift_yehar(f) = hilbert : *(os.oscrc(f)) - *(os.oscrs(f)); > > > > and > > > > freq_shift_ssbf(f) = fi.ssbf(8) : *(os.oscrc(f)) - *(os.oscrs(f)); > > > > iiuc the first one will work "better" unless the input frequency is "close" > > to SR/4. > > > > Right? > > > > Oleg. > > > > > > > -- > > Julius O. Smith III <j...@ccrma.stanford.edu> > Professor of Music and, by courtesy, Electrical Engineering > CCRMA, Stanford University > http://ccrma.stanford.edu/~jos/ -- Julius O. Smith III <j...@ccrma.stanford.edu> Professor of Music and, by courtesy, Electrical Engineering CCRMA, Stanford University http://ccrma.stanford.edu/~jos/ _______________________________________________ Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-users