Comments on: Extract envelope, phase using Hilbert transform: Demo https://www.gaussianwaves.com/2017/04/extract-envelope-instantaneous-phase-frequency-hilbert-transform/ Signal Processing for Communication Systems Sun, 22 Jan 2023 17:40:48 +0000 hourly 1 https://wordpress.org/?v=6.7.2 By: Darau, Blė https://www.gaussianwaves.com/2017/04/extract-envelope-instantaneous-phase-frequency-hilbert-transform/#comment-46976 Sun, 22 Jan 2023 17:40:48 +0000 http://www.gaussianwaves.com/?p=14208#comment-46976 Hello! This article helped me a lot on signal processing, I am trying to develop an open source DSC decoder (FSK 100 baud, like Sitor-B), as there are only freeware, but closed source apps and only for Windows.

In general all is well, but I ran into problem when signal is framed, i.e. arrives in pieces, shorter than the actual DSC message (~9 s). Surely, PCs are powerful and have a lot of RAM these days and by detecting the start I could simply cache enough samples for full one message processing, but, well, I would like to make it work even with joined signals.

So the problem is, that if I process signal e.g. in 1 s frames, my instanteneous frequency does not join nicely. I tried to add a 0.1 s or 0.2 s overlap, but to no avail, I get false center frequency crossings.

Would you have any suggestion, how to join instant frequency response?

I currently do first Hilbert transform, then instantaneous phase and instanteneous frequency for all received frame. I also apply Butterworth filter on final “reconstructed” signal, but it jumps up and down where two frames meet. I.e. the start of the signal is sketchy. And even overlap with previous frame does not alleviate the issue. Maybe there is a better method of tracking instant frequency on such a running signal, doing it maybe just one-by-one sample?

]]>
By: Oishi Halder https://www.gaussianwaves.com/2017/04/extract-envelope-instantaneous-phase-frequency-hilbert-transform/#comment-46764 Sun, 30 Oct 2022 07:58:58 +0000 http://www.gaussianwaves.com/?p=14208#comment-46764 I had two questions if anyone can help me with it, if I want to find the envelope of signal which is not modulated what changes do I need to make in the python code provided. I tried to remove the chirp() statement and I didn’t multiply c_t, so x=a_t only. But I am not getting the correct answer.
Another question is say I want to provide a .wav file and not take input like the one shown, what changes do I need to make?

]]>
By: Mathuranathan https://www.gaussianwaves.com/2017/04/extract-envelope-instantaneous-phase-frequency-hilbert-transform/#comment-46635 Thu, 08 Sep 2022 11:40:57 +0000 http://www.gaussianwaves.com/?p=14208#comment-46635 In reply to Dong Soo Lee.

No problem. Thanks for the comment.

]]>
By: Dong Soo Lee https://www.gaussianwaves.com/2017/04/extract-envelope-instantaneous-phase-frequency-hilbert-transform/#comment-46385 Sun, 12 Jun 2022 01:53:39 +0000 http://www.gaussianwaves.com/?p=14208#comment-46385 I now understand clearly how to get ‘instantaneous phases’ of my data using matlab hilbert.m (z = hilbert(x)).

On my data, sliding window measurement (1 min time bin) of ‘instantaneous phases’ of brain voxel waves will yield, for example 84, phases for a bin,and the next bin will yield another 84 phases, and so on, to the last 280th time bin. Now, I need to confirm that the last phase (radian) of the previous time bin be equal to the first phase of the next time bin. As ‘unwrap’ was used to get ‘inst_phase = unwrap(angle(z)’ stiching phases of each seqential bin is OK without any touch such as shift?

p.s. While mouse roaming, inadvertantly rating was done and system does not allow me to change my rating even I once out and in again with this message “You Had Already Rated This Post. Post ID #14208.” Sorry for under-rating as rating should have been 5.00 from my side.

]]>
By: Mathuranathan https://www.gaussianwaves.com/2017/04/extract-envelope-instantaneous-phase-frequency-hilbert-transform/#comment-44005 Fri, 18 Sep 2020 06:41:59 +0000 http://www.gaussianwaves.com/?p=14208#comment-44005 In reply to Rong Xu.

Thank you for letting me know. The formula display issue is corrected now.

]]>
By: Rong Xu https://www.gaussianwaves.com/2017/04/extract-envelope-instantaneous-phase-frequency-hilbert-transform/#comment-44004 Thu, 17 Sep 2020 15:45:21 +0000 http://www.gaussianwaves.com/?p=14208#comment-44004 Hi, Thank you very much for the great explanation, but I can not see the whole formula , could you please send me a .pdf or word copy? Thank you very much.

]]>
By: Mathuranathan https://www.gaussianwaves.com/2017/04/extract-envelope-instantaneous-phase-frequency-hilbert-transform/#comment-43493 Sat, 20 Jun 2020 10:27:51 +0000 http://www.gaussianwaves.com/?p=14208#comment-43493 In reply to miriam.

The extracted envelope can be smoothed by passing it through a low pass filter (LPF).

Use Matlab’s firpm function or Python Scipy’s remez function to design the LPF.

In the following example, I have added noise to the modulated signal and hence the extracted envelope is noisy. The noisy extracted envelope is passed through a LPF to obtain the smoothed signal.
smoothening extracted envelope using low pass filter LPF

]]>
By: miriam https://www.gaussianwaves.com/2017/04/extract-envelope-instantaneous-phase-frequency-hilbert-transform/#comment-43489 Fri, 19 Jun 2020 22:06:05 +0000 http://www.gaussianwaves.com/?p=14208#comment-43489 Can the envelope be smoothed? , if the answer I would like you to help me please

]]>
By: Mathuranathan https://www.gaussianwaves.com/2017/04/extract-envelope-instantaneous-phase-frequency-hilbert-transform/#comment-35219 Tue, 08 May 2018 06:37:00 +0000 http://www.gaussianwaves.com/?p=14208#comment-35219 In reply to masterpeace tvd.

Hilbert transform has wide range of applications. Two of them are listed here

Electrocardiography: The Hilbert transform is a widely used tool in interpreting electrocardiograms (ECGs).

The Hilbert-Huang transform: In time series analysis the Fourier transform is the dominating tool. However, this method is not good enough for nonstationary or nonlinear data. For this purpose, the Hilbert-Huang transform (HHT) was proposed. This method has gained popularity and is widely used in spectral analysis since it, in contrast to common ”Fourier methods”, suppose that frequency and amplitude of the harmonics are dependent on time. This is achieved by decomposing the time series into so called intrinsic mode functions (IMFs). However, in spite of considerable efforts, the HHT to this day lacks mathematical framework and the method is entirely empirical. Thus, the investigation of this method is carried out numerically in this thesis to try to understand how the method works and what limitations are inherit.

]]>
By: masterpeace tvd https://www.gaussianwaves.com/2017/04/extract-envelope-instantaneous-phase-frequency-hilbert-transform/#comment-35218 Sat, 05 May 2018 15:55:00 +0000 http://www.gaussianwaves.com/?p=14208#comment-35218 Hi, Thanks to your explanation. I have a question that if I have a signal which is composed of many harmonic frequencies, is it possible to use Hilbert transform to see some information from it?

]]>