Phase rotation in FFT ?

Cheng Chien-Wen's icon

Hi,
I thought phase rotation in FFT is just change the phase of the input signal within pfft subpatch.
The original subpatch which I learned from Cort Lippe's paper is look like this which works fine, but complicated in math.
Something like this:
(a+bi)* (cosX + i sinX) = (a cosX -b sinX) + (a sinX + b cos X)i

but since it is just adding some angle to the original phase, I made another patch use cartopol~ object in which I just add the numbers to the original phase angle. However, the output does not seem to be as effective as the first one. Am I misunderstood the theory ?

The codes of the correct one and the simplified one ("wrong" one) are as follows. Can anyone let me know why the 2nd patch does not work well ?

Thank you very much.

Max Patch
Copy patch and select New From Clipboard in Max.

Max Patch
Copy patch and select New From Clipboard in Max.

AlexHarker's icon

OK

Not really sure what you're trying to do here, but anyway.....

The two patches do different things. The first adds a variable phase (according to the frequency of the cycle~ objects) - the second adds a fixed phase, which won't make it sound any different to the original (except as you alter it). In the first the phase rotation will vary between 0 and two pi. My corrected version of the second patch is below. I haven't checked it, but i think it does the same thing.

The first patch is more efficient in terms of CPU though, so i can't see any good reason to do the second unless its just to try and figure out what's going on in this case, or unless you will need the polar representation later. The maths may seem more complex this way, but multiplication + addition is much cheaper on CPU than the trigonometry needed in cartopol~ or poltocar~ Anyway, if you really want to do it the polar way i believe below is an equivalent patch. Sorry if it doesn't work. I did it quite quickly.....

Alex

Max Patch
Copy patch and select New From Clipboard in Max.

Cheng Chien-Wen's icon

They generate the same effects now.
But I still have no idea about the math in it. I think I can imagine the cos~ in the first patch keeps "modulate" the parameters from fftin~, but I don't quite understand why your modified version equals to the first. For me, phasor~ is just a saw tooth oscillator. I am completely lost.

Any math or physics readings I should review ?

Thank you very much.