Skip to content

Hilbert Transform

Sambit Paul edited this page Dec 2, 2023 · 6 revisions

We apply the Hilbert Transform on a real signal and to create an analytical signal (a complex-valued function that has no negative frequency components) which helps to compute the amplitude envelope, instantaneous phase and instantaneous frequency.

The examples provided here use this signal: Gaussian Pulse with a Central Frequency of 5 Hz samples at 150 Hz.

signal

CODE
Hilbert h = new Hilbert(signal);
h.transform();
// OR
h.transform(true); //To use DFT instead of FFT
double[][] analytical_signal = h.getOutput();

OUTPUTS

amplitude_env

CODE
double[] envelope = h.getAmplitudeEnvelope();

phase_freq

CODE
double[] phase = h.getInstantaneousPhase();
int Fs = 150; //Sampling Frequency of the original signal
double[] frequency = h.getInstantaneousFrequency(Fs);
Clone this wiki locally