protected void update() { ShortTermPhaseSpectrumAnalyser spectrumAnalyser = new ShortTermPhaseSpectrumAnalyser( new BufferedDoubleDataSource(signal), fftSize, window, windowShift, samplingRate); spectra = new ArrayList(); // Frequency resolution of the FFT: deltaF = spectrumAnalyser.getFrequencyResolution(); long startTime = System.currentTimeMillis(); FrameBasedAnalyser.FrameAnalysisResult[] results = spectrumAnalyser.analyseAllFrames(); for (int i = 0; i < results.length; i++) { double[] phaseSpectrum = (double[]) results[i].get(); spectra.add(phaseSpectrum); } long endTime = System.currentTimeMillis(); System.err.println("Computed " + spectra.size() + " phase spectra in " + (endTime - startTime) + " ms."); spectra_indexmax = (int) (FREQ_MAX / deltaF); if (spectra_indexmax > fftSize / 2) spectra_indexmax = fftSize / 2; // == spectra[i].length super.updateData(0, (double) windowShift / samplingRate, new double[spectra.size()]); // correct y axis boundaries, for graph: ymin = 0.; ymax = spectra_indexmax * deltaF; repaint(); }
protected void update() { ShortTermPhaseSpectrumAnalyser spectrumAnalyser = new ShortTermPhaseSpectrumAnalyser( new BufferedDoubleDataSource(signal), fftSize, window, windowShift, samplingRate); spectra = new ArrayList(); // Frequency resolution of the FFT: deltaF = spectrumAnalyser.getFrequencyResolution(); long startTime = System.currentTimeMillis(); FrameBasedAnalyser.FrameAnalysisResult[] results = spectrumAnalyser.analyseAllFrames(); for (int i = 0; i < results.length; i++) { double[] phaseSpectrum = (double[]) results[i].get(); spectra.add(phaseSpectrum); } long endTime = System.currentTimeMillis(); System.err.println("Computed " + spectra.size() + " phase spectra in " + (endTime - startTime) + " ms."); spectra_indexmax = (int) (FREQ_MAX / deltaF); if (spectra_indexmax > fftSize / 2) spectra_indexmax = fftSize / 2; // == spectra[i].length super.updateData(0, (double) windowShift / samplingRate, new double[spectra.size()]); // correct y axis boundaries, for graph: ymin = 0.; ymax = spectra_indexmax * deltaF; repaint(); }