Reply by Jerry Avins July 17, 20062006-07-17
Andor wrote:

    ...

> The Hilbert transform is a bandpass operation. For a full band signal, > applying the HT twice will be different than multiplying by -1 [1]
... That's only because most of us aren't willing or able to wait for 90 degrees of shift at 1E-21 Hz, let alone DC. As always, we have to distinguish between the theoretical and the practical when making pronouncements. If Ingressman's filter had 1E-21 coefficients, it might come closer to meeting his expectations. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
Reply by Andor July 17, 20062006-07-17
ingresman wrote:
> Hi All, > > Sorry to be away for time. I've pulled together some code to do a > hilbert transform (from the university of york site) which i'll include > below in case anyone will find it usefull.If put a sample trought the > transform and then again will you get an invrerted signal i.e. > 180degree shift. This code doesn't seem to do that si I'd be interested > in comments
[code snipped] The Hilbert transform is a bandpass operation. For a full band signal, applying the HT twice will be different than multiplying by -1 [1]. Try testing your implementation with a single sine wave and see if you get the expected result. Be careful to align the input and output according to the delay of the HT filter. Regards, Andor [1] To find out whether multiplying by -1 is indeed a 180=B0 phase shift, read this thread (beware: 2 hours spare time needed :-): http://groups.google.com/group/comp.dsp/browse_frm/thread/af1b4caf51d6c239/= 6c8e066df0ec0daf?#6c8e066df0ec0daf
Reply by ingresman July 15, 20062006-07-15
Hi All,

Sorry to be away for time. I've pulled together some code to do a
hilbert transform (from the university of york site) which i'll include
below in case anyone will find it usefull. If put a sample trought the
transform and then again will you get an invrerted signal i.e.
180degree shift. This code doesn't seem to do that si I'd be interested
in comments
cheers

#define NZEROS 500
#define GAIN   1.571116176e+00

static float xv_left[NZEROS+1];

static float xcoeffs[] =
  { +0.0000000000, +0.0003214310, +0.0000000000, +0.0003252099,
    +0.0000000000, +0.0003302355, +0.0000000000, +0.0003365372,
    +0.0000000000, +0.0003441444, +0.0000000000, +0.0003530868,
    +0.0000000000, +0.0003633944, +0.0000000000, +0.0003750973,
    +0.0000000000, +0.0003882260, +0.0000000000, +0.0004028113,
    +0.0000000000, +0.0004188840, +0.0000000000, +0.0004364757,
    +0.0000000000, +0.0004556178, +0.0000000000, +0.0004763424,
    +0.0000000000, +0.0004986818, +0.0000000000, +0.0005226689,
    +0.0000000000, +0.0005483367, +0.0000000000, +0.0005757189,
    +0.0000000000, +0.0006048495, +0.0000000000, +0.0006357632,
    +0.0000000000, +0.0006684951, +0.0000000000, +0.0007030809,
    +0.0000000000, +0.0007395569, +0.0000000000, +0.0007779600,
    +0.0000000000, +0.0008183281, +0.0000000000, +0.0008606994,
    +0.0000000000, +0.0009051133, +0.0000000000, +0.0009516098,
    +0.0000000000, +0.0010002299, +0.0000000000, +0.0010510155,
    +0.0000000000, +0.0011040098, +0.0000000000, +0.0011592568,
    +0.0000000000, +0.0012168018, +0.0000000000, +0.0012766915,
    +0.0000000000, +0.0013389738, +0.0000000000, +0.0014036982,
    +0.0000000000, +0.0014709156, +0.0000000000, +0.0015406788,
    +0.0000000000, +0.0016130421, +0.0000000000, +0.0016880620,
    +0.0000000000, +0.0017657969, +0.0000000000, +0.0018463073,
    +0.0000000000, +0.0019296564, +0.0000000000, +0.0020159096,
    +0.0000000000, +0.0021051351, +0.0000000000, +0.0021974040,
    +0.0000000000, +0.0022927905, +0.0000000000, +0.0023913723,
    +0.0000000000, +0.0024932304, +0.0000000000, +0.0025984499,
    +0.0000000000, +0.0027071199, +0.0000000000, +0.0028193341,
    +0.0000000000, +0.0029351907, +0.0000000000, +0.0030547934,
    +0.0000000000, +0.0031782511, +0.0000000000, +0.0033056791,
    +0.0000000000, +0.0034371988, +0.0000000000, +0.0035729386,
    +0.0000000000, +0.0037130347, +0.0000000000, +0.0038576311,
    +0.0000000000, +0.0040068807, +0.0000000000, +0.0041609461,
    +0.0000000000, +0.0043200000, +0.0000000000, +0.0044842264,
    +0.0000000000, +0.0046538214, +0.0000000000, +0.0048289944,
    +0.0000000000, +0.0050099691, +0.0000000000, +0.0051969851,
    +0.0000000000, +0.0053902989, +0.0000000000, +0.0055901856,
    +0.0000000000, +0.0057969412, +0.0000000000, +0.0060108836,
    +0.0000000000, +0.0062323557, +0.0000000000, +0.0064617271,
    +0.0000000000, +0.0066993973, +0.0000000000, +0.0069457986,
    +0.0000000000, +0.0072013994, +0.0000000000, +0.0074667084,
    +0.0000000000, +0.0077422784, +0.0000000000, +0.0080287117,
    +0.0000000000, +0.0083266658, +0.0000000000, +0.0086368590,
    +0.0000000000, +0.0089600787, +0.0000000000, +0.0092971888,
    +0.0000000000, +0.0096491399, +0.0000000000, +0.0100169797,
    +0.0000000000, +0.0104018664, +0.0000000000, +0.0108050829,
    +0.0000000000, +0.0112280539, +0.0000000000, +0.0116723666,
    +0.0000000000, +0.0121397934, +0.0000000000, +0.0126323203,
    +0.0000000000, +0.0131521795, +0.0000000000, +0.0137018887,
    +0.0000000000, +0.0142842976, +0.0000000000, +0.0149026446,
    +0.0000000000, +0.0155606252, +0.0000000000, +0.0162624744,
    +0.0000000000, +0.0170130694, +0.0000000000, +0.0178180552,
    +0.0000000000, +0.0186840011, +0.0000000000, +0.0196185982,
    +0.0000000000, +0.0206309077, +0.0000000000, +0.0217316805,
    +0.0000000000, +0.0229337690, +0.0000000000, +0.0242526657,
    +0.0000000000, +0.0257072177, +0.0000000000, +0.0273205841,
    +0.0000000000, +0.0291215436, +0.0000000000, +0.0311463069,
    +0.0000000000, +0.0334410798, +0.0000000000, +0.0360657647,
    +0.0000000000, +0.0390994399, +0.0000000000, +0.0426486966,
    +0.0000000000, +0.0468607407, +0.0000000000, +0.0519447683,
    +0.0000000000, +0.0582084316, +0.0000000000, +0.0661234757,
    +0.0000000000, +0.0764519642, +0.0000000000, +0.0905102051,
    +0.0000000000, +0.1107845781, +0.0000000000, +0.1426030657,
    +0.0000000000, +0.1998184590, +0.0000000000, +0.3332243858,
    +0.0000000000, +0.9999636803, +0.0000000000, -0.9999636803,
    -0.0000000000, -0.3332243858, -0.0000000000, -0.1998184590,
    -0.0000000000, -0.1426030657, -0.0000000000, -0.1107845781,
    -0.0000000000, -0.0905102051, -0.0000000000, -0.0764519642,
    -0.0000000000, -0.0661234757, -0.0000000000, -0.0582084316,
    -0.0000000000, -0.0519447683, -0.0000000000, -0.0468607407,
    -0.0000000000, -0.0426486966, -0.0000000000, -0.0390994399,
    -0.0000000000, -0.0360657647, -0.0000000000, -0.0334410798,
    -0.0000000000, -0.0311463069, -0.0000000000, -0.0291215436,
    -0.0000000000, -0.0273205841, -0.0000000000, -0.0257072177,
    -0.0000000000, -0.0242526657, -0.0000000000, -0.0229337690,
    -0.0000000000, -0.0217316805, -0.0000000000, -0.0206309077,
    -0.0000000000, -0.0196185982, -0.0000000000, -0.0186840011,
    -0.0000000000, -0.0178180552, -0.0000000000, -0.0170130694,
    -0.0000000000, -0.0162624744, -0.0000000000, -0.0155606252,
    -0.0000000000, -0.0149026446, -0.0000000000, -0.0142842976,
    -0.0000000000, -0.0137018887, -0.0000000000, -0.0131521795,
    -0.0000000000, -0.0126323203, -0.0000000000, -0.0121397934,
    -0.0000000000, -0.0116723666, -0.0000000000, -0.0112280539,
    -0.0000000000, -0.0108050829, -0.0000000000, -0.0104018664,
    -0.0000000000, -0.0100169797, -0.0000000000, -0.0096491399,
    -0.0000000000, -0.0092971888, -0.0000000000, -0.0089600787,
    -0.0000000000, -0.0086368590, -0.0000000000, -0.0083266658,
    -0.0000000000, -0.0080287117, -0.0000000000, -0.0077422784,
    -0.0000000000, -0.0074667084, -0.0000000000, -0.0072013994,
    -0.0000000000, -0.0069457986, -0.0000000000, -0.0066993973,
    -0.0000000000, -0.0064617271, -0.0000000000, -0.0062323557,
    -0.0000000000, -0.0060108836, -0.0000000000, -0.0057969412,
    -0.0000000000, -0.0055901856, -0.0000000000, -0.0053902989,
    -0.0000000000, -0.0051969851, -0.0000000000, -0.0050099691,
    -0.0000000000, -0.0048289944, -0.0000000000, -0.0046538214,
    -0.0000000000, -0.0044842264, -0.0000000000, -0.0043200000,
    -0.0000000000, -0.0041609461, -0.0000000000, -0.0040068807,
    -0.0000000000, -0.0038576311, -0.0000000000, -0.0037130347,
    -0.0000000000, -0.0035729386, -0.0000000000, -0.0034371988,
    -0.0000000000, -0.0033056791, -0.0000000000, -0.0031782511,
    -0.0000000000, -0.0030547934, -0.0000000000, -0.0029351907,
    -0.0000000000, -0.0028193341, -0.0000000000, -0.0027071199,
    -0.0000000000, -0.0025984499, -0.0000000000, -0.0024932304,
    -0.0000000000, -0.0023913723, -0.0000000000, -0.0022927905,
    -0.0000000000, -0.0021974040, -0.0000000000, -0.0021051351,
    -0.0000000000, -0.0020159096, -0.0000000000, -0.0019296564,
    -0.0000000000, -0.0018463073, -0.0000000000, -0.0017657969,
    -0.0000000000, -0.0016880620, -0.0000000000, -0.0016130421,
    -0.0000000000, -0.0015406788, -0.0000000000, -0.0014709156,
    -0.0000000000, -0.0014036982, -0.0000000000, -0.0013389738,
    -0.0000000000, -0.0012766915, -0.0000000000, -0.0012168018,
    -0.0000000000, -0.0011592568, -0.0000000000, -0.0011040098,
    -0.0000000000, -0.0010510155, -0.0000000000, -0.0010002299,
    -0.0000000000, -0.0009516098, -0.0000000000, -0.0009051133,
    -0.0000000000, -0.0008606994, -0.0000000000, -0.0008183281,
    -0.0000000000, -0.0007779600, -0.0000000000, -0.0007395569,
    -0.0000000000, -0.0007030809, -0.0000000000, -0.0006684951,
    -0.0000000000, -0.0006357632, -0.0000000000, -0.0006048495,
    -0.0000000000, -0.0005757189, -0.0000000000, -0.0005483367,
    -0.0000000000, -0.0005226689, -0.0000000000, -0.0004986818,
    -0.0000000000, -0.0004763424, -0.0000000000, -0.0004556178,
    -0.0000000000, -0.0004364757, -0.0000000000, -0.0004188840,
    -0.0000000000, -0.0004028113, -0.0000000000, -0.0003882260,
    -0.0000000000, -0.0003750973, -0.0000000000, -0.0003633944,
    -0.0000000000, -0.0003530868, -0.0000000000, -0.0003441444,
    -0.0000000000, -0.0003365372, -0.0000000000, -0.0003302355,
    -0.0000000000, -0.0003252099, -0.0000000000, -0.0003214310,
    -0.0000000000,
  };
float shiftLeft(float isamp)
{
 float sum; int i;
 for (i = 0; i < NZEROS; i++)       xv_left[i] = xv_left[i+1];
 xv_left[NZEROS] = isamp / GAIN;
 sum = 0.0;
 for (i = 0; i <= NZEROS; i++)
           sum += (xcoeffs[i] * xv_left[i]);
       return sum;
}

Just put a sample in as a parameter and you shoud get a shifted value
out as the result. The code has compiled under Visual C on windows.
Clay wrote:

> ingresman wrote: > > Thanks guys I'll track down that book. > > > > As for the encoding Wendy Carlos has a great deal of info on her site. > > You might remember switched on Back. The link is > > http://www.wendycarlos.com/surround/surround4.html#matrix > > I remember back when "Switched on Bach" was released. It was by Walter > Carlos. > > It seems that more than music may be synthesized ;-) > > Clay
Reply by Clay June 16, 20062006-06-16
ingresman wrote:
> Thanks guys I'll track down that book. > > As for the encoding Wendy Carlos has a great deal of info on her site. > You might remember switched on Back. The link is > http://www.wendycarlos.com/surround/surround4.html#matrix
I remember back when "Switched on Bach" was released. It was by Walter Carlos. It seems that more than music may be synthesized ;-) Clay
Reply by Steve Underwood June 15, 20062006-06-15
Jerry Avins wrote:
> ingresman wrote: >> Thanks for the link Andor, I found it in an earlier post but to be >> honest the hilbert looks a bit odd. It just asks for sample rate and >> the impulse length. The sample rate has no impact on the ouput >> generated so I'm still a little confused. ... > > The sample rate is a standard question that is needed for all the > filters _but_ the HT. It is there only as a vestige. Put in whatever > value will make the frequency axis of output plot "pretty". > > Jerry
I guessed the sample rate would be required merely to format the graphs. However, it doesn't even do that. The graphs are labeled as a fraction of Fs. Its not clear why the sample rate is needed at all. Steve
Reply by Jerry Avins June 15, 20062006-06-15
ingresman wrote:
> Thanks for the link Andor, I found it in an earlier post but to be > honest the hilbert looks a bit odd. It just asks for sample rate and > the impulse length. The sample rate has no impact on the ouput > generated so I'm still a little confused. ...
The sample rate is a standard question that is needed for all the filters _but_ the HT. It is there only as a vestige. Put in whatever value will make the frequency axis of output plot "pretty". Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
Reply by ingresman June 15, 20062006-06-15
Thanks for the link Andor, I found it in an earlier post but to be
honest the hilbert looks a bit odd. It just asks for sample rate and
the impulse length. The sample rate has no impact on the ouput
generated so I'm still a little confused. I've got a really busy
weekend but I'm going to try and fit in some tests. I've also now got a
book (Introductory Digital Signal Processing with Computer Applications
 by Paul A lynn). Looks heavy going but its got code sampes which is
where I'm most cosy with,although putting real samples in looks like it
might need a little work. As I say the challenge is now to understand
the output from the hilbert code, i was expecting the parameters to
contain at least frequency rate.
It was sad to see that the man who did the code passed away some years
ago but york universty have kept his page going.
Anyhow, hopefully I can report back with some positive news soon !
Regards
Kevin


Andor wrote:
> ingresman wrote: > > Thanks guys I'll track down that book. > > I just saw an online page which computes the coefficients and the C > code for you: > > http://www-users.cs.york.ac.uk/~fisher/mkfilter/hilbert.html > > Regards, > Andor
Reply by Andor June 14, 20062006-06-14
ingresman wrote:
> Thanks guys I'll track down that book.
I just saw an online page which computes the coefficients and the C code for you: http://www-users.cs.york.ac.uk/~fisher/mkfilter/hilbert.html Regards, Andor
Reply by ingresman June 13, 20062006-06-13
Thanks guys I'll track down that book.

As for the encoding Wendy Carlos has a great deal of info on her site.
You might remember switched on Back. The link is
http://www.wendycarlos.com/surround/surround4.html#matrix


Greg Berchin wrote:
> On 12 Jun 2006 12:33:58 -0700, "ingresman" <ingresman1961@hotmail.co.uk> > wrote: > > >If someone could do the coefficients for me that woud be great, > > Oppenheim & Shafer: Figure 7.10 (original orange book); Figure 10.6 > (later gray book). > > Greg
Reply by Greg Berchin June 12, 20062006-06-12
On 12 Jun 2006 12:33:58 -0700, "ingresman" <ingresman1961@hotmail.co.uk>
wrote:

>If someone could do the coefficients for me that woud be great,
Oppenheim & Shafer: Figure 7.10 (original orange book); Figure 10.6 (later gray book). Greg