недеља, 29. јул 2012. 01.17.46 UTC+2, Les Cargill је написао/ла:
Luxey wrote:
субота, 28. јул 2012. 21.57.27 UTC+2, Les Cargill је написао/ла:
William Sommerwerck wrote:
You need two all-pass filters. One produces a phase shift of phi. The other
producers phi+90 or phi-90.
It is impossible to produce a fixed 90 degree phase shift over a wide
frequency range and have flat response at the same time. You have to create
the 90-degree shift as the difference between two filters' phase responses.
Trust me.
So I just did an experiment which produced a fixed 90 degree phase
shift over the audio range.
I have some 'C' source which produces a Hilbert transform of an
audio file ( using libsndfile and FFTW plus some code of my own,
er code I pretty much swiped off the Internet .
When I run this twice*, I get perfect** cancellation
*Assume files A,B and C. B = Hilbert(A), C = Hilbert(B).
** to the limit of my ability to measure it. I can provide details on
request.
What am I missing?
--
Les Cargill
If you run make 4. one D=hilbert(C) does it, D, cancell out with B?
Yes, as you would suspect.
--
Les Cargill
I think it should not be so. B should be 90deg shift, while D should be 270deg shift. They should not cancel out, if complex signal.
If sine wave, it shoud cancel except for the first 1/4 of the first cycle and the last 1/4 of the last cycle. That's what I think. Very often I'm wrong.