Support

If you have a problem or need to report a bug please email : support@dsprobotics.com

There are 3 sections to this support area:

DOWNLOADS: access to product manuals, support files and drivers

HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects

USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here

NEW REGISTRATIONS - please contact us if you wish to register on the forum

Hilbert Shifter

Post any examples or modules that you want to share here

Hilbert Shifter

Postby martinvicanek » Wed Dec 24, 2014 7:53 am

A Hilbert shifter creates two signals with a relative phase shift of 90 degrees for all Fourier components in the audible range. It can be used for e.g. single-sided modulation or frequency shifting. As opposed to pitch shifting, frequency shifting alters harmonic overtones so the result may not always sound musical. :mrgreen:

This Hilbert shifter is based on Tronic's coefficients calculator. 8-) It is rather high quality: covered range is from 30 Hz to 22 kHz (at 44k sample rate), sideband suppression is around 90 dB. However, the implementation is optimised so the CPU load is not at all critical.

Merry Christmas!
MV
Attachments
HilbertShifter.fsm
(101.81 KiB) Downloaded 1515 times
Last edited by martinvicanek on Wed Dec 24, 2014 12:20 pm, edited 1 time in total.
User avatar
martinvicanek
 
Posts: 1315
Joined: Sat Jun 22, 2013 8:28 pm

Re: Hilbert Shifter

Postby MyCo » Wed Dec 24, 2014 8:17 am

Dammit, crashs 3.0.7 immediately.

EDIT: Not related to 3.0.7, happens in 3.0.6 as well
Last edited by MyCo on Wed Dec 24, 2014 9:08 am, edited 1 time in total.
User avatar
MyCo
 
Posts: 718
Joined: Tue Jul 13, 2010 12:33 pm
Location: Germany

Re: Hilbert Shifter

Postby steph_tsf » Wed Dec 24, 2014 8:33 am

I'm on Win7 now.
I faced the same instant crash when double clicking the .fsm.
There is no crash when opening Flowstone, then "File" then "Open".
Nice piece of art, indeed.
What kind of instructions are : fld a00[0]; fstp a1[0]; fld a01[0]; fstp a1[1];

Say I build an envelope detector using the sqrt(sin^2 + cos^2) identity.
Will I get a proper result, knowing that both sides (odd and even) get phase-shifted, hence time-domain modified?

many thanks,
and happy Christmas,
Steph
steph_tsf
 
Posts: 249
Joined: Sun Aug 15, 2010 10:26 pm

Re: Hilbert Shifter

Postby Tronic » Wed Dec 24, 2014 9:04 am

THX...
Tronic
 
Posts: 539
Joined: Wed Dec 21, 2011 12:59 pm

Re: Hilbert Shifter

Postby MyCo » Wed Dec 24, 2014 9:06 am

Weird, as Steph wrote, loading it from within FS doesn't crash.

What kind of instructions are : fld a00[0]; fstp a1[0]; fld a01[0]; fstp a1[1];


fld x[y] loads a float value from x (sse channel y) on a stack
fstp x[y] stores the latest stack value into x (sse channel y) and removes it from stack
User avatar
MyCo
 
Posts: 718
Joined: Tue Jul 13, 2010 12:33 pm
Location: Germany

Re: Hilbert Shifter

Postby martinvicanek » Wed Dec 24, 2014 12:16 pm

Ouch, that's bad. No problems here, though. :? I am still with FS 3.0.3. No backward cpmpatibility? :(
P.S. I had forgotten to eliminate denormals in the original schematic. :oops: Fixed now.
User avatar
martinvicanek
 
Posts: 1315
Joined: Sat Jun 22, 2013 8:28 pm

Re: Hilbert Shifter

Postby KG_is_back » Wed Dec 24, 2014 12:42 pm

Is it possible to create an allpass filter with 90° phase shift form the original signal?
I know Nyquist and DC components can't get phase shifted, but perhaps if the filter was also HLP/LPF to remove these elements. It would be very useful in phase-alignment tools (making 0-360° phase shifter).
KG_is_back
 
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: Hilbert Shifter

Postby martinvicanek » Wed Dec 24, 2014 1:03 pm

KG_is_back wrote:90° phase shift form the original signal
Yes, you can do that with a FIR filter, however at the cost of more latency and much more CPU load.
User avatar
martinvicanek
 
Posts: 1315
Joined: Sat Jun 22, 2013 8:28 pm

Re: Hilbert Shifter

Postby tester » Wed Dec 24, 2014 2:45 pm

Confirming. DbClick on schematic - crashes Flowstone. Opening schematic from within Flowstone - opens it normally. Some initialization problem was probably introduced in FS. Sent to Malc.
Need to take a break? I have something right for you.
Feel free to donate. Thank you for your contribution.
tester
 
Posts: 1786
Joined: Wed Jan 18, 2012 10:52 pm
Location: Poland, internet

Re: Hilbert Shifter

Postby cbbuntz » Sun Dec 28, 2014 11:46 pm

Are you using the same filter structure that Olli Niemitalo used? I tried plugging the coefficients into an existing allpasses and it didn't work. I'm having trouble deciphering the code.

The performance is very impressive.
cbbuntz
 
Posts: 10
Joined: Sat May 07, 2011 5:50 pm

Next

Return to User Examples

Who is online

Users browsing this forum: Google [Bot] and 36 guests