3

This question is hard to answer because it depends on your definition of "transform". The Hilbert transform can be written as a convolution with the kernel $$h(t)=\frac{1}{\pi t}\tag{1}$$ and, consequently, it can be represented by a linear time-invariant (LTI) system with an impulse response given by $(1)$. So the application of any LTI system to a signal ...


2

Let me use the notation from Bedrosian's research report "The analytic signal representation of modulated waveforms" in a slightly simplified version: $$s(t)=c(t)m(t)\tag{1}$$ where $s(t)$ is the modulated signal, $c(t)$ is a (not necessarily sinusoidal) carrier function, and $m(t)$ is the message signal. The carrier is assumed to be a relatively narrow-...


2

and then discard the phase data What's gone is gone. You can't reconstruct the phase of the original data unless you have some additional information. in which the Hilbert transform is applied to this magnitude-only data to estimate the analytic signal, from which instantaneous phase is extracted. That's a just mathematical process. You shove data in, and ...


2

I think the confusion comes from the fact that the command hilbert in Scipy (and also in Matlab/Octave) does not just compute the Hilbert transform, but its output is the analytic signal. So if $x(t)$ is the (real-valued) input to such a function, its (complex-valued) output is $$y(t)=x(t)+j\mathcal{H}\{x(t)\}\tag{1}$$ Clearly, if you want to obtain $x(t)$ ...


2

The discrete-time Fourier transform (DTFT) is always periodic. This is also the case for the frequency response of the discrete-time Hilbert transformer. For this reason, the ideal frequency response is not only zero at DC but also at Nyquist, which corresponds to index $2$ for a signal of length $4$. Consequently, the correct way to do what you're trying to ...


2

By definition, the magnitude of the analytic signal $s_a(t)$ can always be considered the envelope of the signal in a purely mathematical sense, simply because the real-valued signal is given by $$s(t)=\textrm{Re}\big\{s_a(t)\big\}=|s_a(t)|\cos\big(\arg\{s_a(t)\}\big)\tag{1}$$ However, this does not mean that $|s_a(t)|$ has necessarily a physical ...


1

It looks like artifacts due to the derivative. I used this code in Octave: fs=300; t=[0:1/fs:2]; c=chirp(t, 20, 2, 100); s=c.*(1+0.5*cos(2*pi*10*t)); h=hilbert(s); m=abs(h); a=diff(unwrap(arg(h)))/2/pi*fs; plot(m,"",a) and this is what comes out: I also tested the equivalent of this in LTspice and, without any form of unwrapping, this is the ...


1

two transfer functions HL and HR can each be represented as a minimum-phase filter (MPF) plus a pure delay. That is generally not true and it's easy enough to disprove it by counter example. Let's simply look at a first order all pass $$H(z) = \frac{p-1/z}{1-p/z} = H_{MP}(z) \cdot H_{AP}(z)$$ which has a pole at $p$ and a zero at $1/p$. The "minimum ...


1

You're right. Whenever you can do things digitally you should because of all the advantages that you've listed. But a long time ago it was expensive to do those low pass filters digitally. If the LPF required is narrow (and requires a steep roll off), it would require many taps (multipliers) and they might require many bits so as to not lose precision to ...


1

Using your notation for the (complex valued) analytic signal; $$s(t) = x(t) + j \hat{x}(t) = |s(t)| e^{j \phi(t)} \tag{1}$$ where $x(t)$ is the message signal and $\hat{x}(t)$ is its continuous-time Hilbert transform. You can see that the following signal $$ z(t) = \mathcal{Re}\{ s(t) \cdot e^{j \omega_c t} \} \tag{2}$$ is $$ z(t) =\mathcal{Re}\{ |s(t)| \...


1

Basically, Hilbert transformers are, by definition, non-causal, always. Any zero-phase filter is non-causal. We can shift the impulse in time but the phase then becomes linear and not flat (a function of frequency). To be implemented, the input signal must be delayed by the amount that is half the length of the filter minus one (N in this case). Or one can ...


1

You're right about the relation between the imaginary part of the frequency response and the odd part of the impulse response: $$\textrm{DTFT}\big\{h_o[n]\big\}=jH_I(e^{j\omega})\tag{1}$$ So from the given $H_I(e^{j\omega})$ you can obtain $h_o[n]$. Now note that the odd part of $h[n]$ is defined by $$h_o[n]=\frac12\big(h[n]-h[-n]\big)\tag{2}$$ The important ...


1

It depends on both on the signal content and on the EMD implementation. EMD can be sensitive to time shifts, especially with strong transients, to noise power. Robust or constrained EMD on single signal or multivariate signals have been developed. Your question relates to signal morphology, processing purpose, and quality metrics. I doubt they can be ...


1

The claim is generally false. This is studied in details in a 1997 paper by B. Picinbono: On instantaneous amplitude and phase of signals Let $m(t)$ be a positive function corresponding to the information o be transmitted. By multiplying the carrier frequency signal $cos(\omega_0 t)$ by $m(t)$, we obtain the signal $x(t) = m(t) > cos(\omega_0 t)$ ...


1

Make sure that you understand the conditions under which $$\mathcal{H}\big\{A(t)\cos(\omega_0 t)\big\}=A(t)\mathcal{H}\big\{\cos(\omega_0 t)\big\}=A(t)\sin(\omega_0t)\tag{1}$$ holds. Eq. $(1)$ holds if $A(t)$ is a low-pass signal with a cut-off frequency smaller than $\omega_0$. This implies that $A(t)\cos(\omega_0t)$ is a band-pass signal with no energy ...


1

It is quite unclear what you're actually asking, and most of your equations have no meaning. But one thing that you need to understand is that the equation $$\mathcal{H}\{x(t)\}=x\left(t-t_0\right),\qquad t_0=\frac{\pi}{2\omega_0}=\frac{1}{4f_0}\tag{1}$$ only makes sense for sinusoidal functions $x(t)$ (of frequency $f_0$). For non-sinusoidal signals $x(t)$...


1

It looks like it's working fine, but your signal contains some content at DC and the Nyquist frequency. DC doesn't survive through the transform, and Nyquist gets altered. If you bandlimit it first, it will work out as expected: import numpy as np from scipy.signal import hilbert, butter, sosfilt import matplotlib.pyplot as plt r = np.random.rand(100) bp ...


1

What you did should work, up to a constant, as mentioned by Dan Boschen in a comment. The Hilbert transform will remove any DC component, so the output of the second Hilbert transform should equal the (negative of the) input, up to a constant, and, of course, up to numerical accuracy. The following example (in Octave) shows this: t = 0:1024; x = sin(pi/7*t)...


1

This elaborates on my comment and my linked FTIR example. Once the FTIR spectrum is obtained, the phase spectrum can be obtained via the Hilbert Transform of the spectrum and that can be performed as a convolution. The Hilbert Transform can be performed by various software packages. In Igor Pro (v. 6.3), the Help text on Hilbert Transforms (page 723 of the ...


1

Indeed, at least in my experience, computing IMFs can be sensitive to borders, impulse signals and noise realizations. As you are interested in wavelets, note that in Empirical mode decomposition as a filter bank a link is made with DWT: we report here on numerical experiments based on fractional Gaussian noise. In such a case, it turns out that EMD ...


1

One possibility is to mirror the extrema near both edges with respect to the edge time values. I think this is one of the best ways to reduce edge effects. This paper explains better the way to do it. https://www.sciencedirect.com/science/article/abs/pii/S0888327007002701 Hope this is helpful to you.


Only top voted, non community-wiki answers of a minimum length are eligible