Используя выходные данные JTransform или JWave, как следует вычислять фазовый спектр?
Я просто пишу аналогичный метод, но вместо этого вычисляю фазу, используя: Math.atan2(im / re) * Math.PI * 180
?
Я использовал следующее для расчета спектра величины:
@Override
public void computeSpectrum()
{
// The spectrum into which we store the data
super.spectrum = new double[signal.getSampledAmplitudes().length >> 1];
// Compute the magnitude spectrum of the signal
double re = 0, im = 0;
for (int bin = 0; bin < spectrum.length - 1; ++bin) {
re = super.frequencyDomain[2 * bin];
im = super.frequencyDomain[2 * bin + 1];
super.spectrum[bin] = Math.sqrt(re * re + im * im);
}
}