[LAD] Phase rotation
robin at gareus.org
Sun Aug 29 22:03:20 CEST 2021
During the last days, I looked into phase-ration: components of a signal
are delayed differently depending on their frequency.
A good write up on the subject can be found at , and a commercial
tool is available from .
The interesting aspect is that phase rotation does not alter the sound
of the signal nor the loudness. However changing the phase vs. frequency
relationship between lower and upper harmonics changes the waveform and
can affect where the digital peak occurs.
For this reason phase rotation is commonly used by radio stations to
reduce the signal peak, and make the signal more symmetrical. Phase
rotation circuits are also used during mastering to increase headroom.
To implementing this, the following operations are performed:
* rotate phase, retain magnitude
* inverse FFT
This works well, except for the first FFT bin: 0 Hz, DC offset. If the
phase-shift changes the average DC level of the signal there is a
I could use some of the collective expertise of this list.
Has anyone looked into this before?
Is it even possible with piecewise block processing?
Is there a way to calculate the DC offset?
Since the overall magnitude does not change simply summing up the bins
results in the same 0th bin. I considered to low-pass filter the DC
offset, or simply remove the DC offset using a high-pass before the FFT
to mitigate the issue. But either introduces different artifacts. If I
understand correctly, a Hilbert transform as mentioned at  has the
I've condensed the DSP into a simple test tool to toy around with the
with low frequencies, the differences are obvious:
* https://i2.paste.pics/cc32f6c5d622e31ab0e830ab1ce205e9.png (2.5 *
* https://i2.paste.pics/3e6eb827148b90800569843c11da2e48.png (0.37 *
I'd appreciate any insights.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 840 bytes
Desc: OpenPGP digital signature
More information about the Linux-audio-dev