# Tag Info

35

One application of the Hilbert Transform is to obtain a so-called Analytic Signal. For signal $s(t)$, its Hilbert Transform $\hat{s}(t)$ is defined as a composition: $$s_A(t)=s(t)+j\hat{s}(t)$$ The Analytic Signal that we obtain is complex valued, therefore we can express it in exponential notation: $$s_A(t)=A(t)e^{j\psi(t)}$$ where: $A(t)$ is the ...

17

No, taking the Fourier transform twice is equivalent to time inversion (or inversion of whatever dimension you're in). You just get $x(-t)$ times a constant which depends on the type of scaling you use for the Fourier transform. The inverse Fourier transform applied to a time domain signal just gives the spectrum with frequency inversion. Have a look at ...

16

Whilst taking the Fourier transform directly twice in a row just gives you a trivial time-inversion that would be much cheaper to implement without FT, there is useful stuff that can be done by taking a Fourier transform, applying some other operation, and then again Fourier transforming the result of that. The best-known example is the autocorrelation, ...

12

2D Fourier transform (2D DFT) is used in image processing since an image can be seen as a 2D signal. E.g. for a grayscale image $I$, $I(x,y)=z$, that means that at the coordinates $x$ and $y$ the image has intensity value z. Look at this for example: https://ch.mathworks.com/help/matlab/ref/fft2.html Try this: x=imread('cameraman.tif'); X=fft2(fft2(x)); ...

11

Hilbert envelope, also called Energy-Time Curve (ETC), only works well for narrow-band fluctuations. Producing an analytic signal, of which you later take the absolute value, is a linear operation, so it treats all frequencies of your signal equally. If you give it a pure sine wave, it will indeed return to you a straight line. When you give it white noise ...

11

The error lies in the assumption that if $g(t)$ is the Hilbert transform of $f(t)$, then the Hilbert transform of $f(-t)$ must be $g(-t)$. This is not the case. Let $f^-(t)=f(-t)$. Then we have $$g(t)=\mathcal{H}\{f\}(t)=\frac{1}{\pi}\text{p.v.}\int_{-\infty}^{\infty}\frac{f(\tau)}{t-\tau}d\tau\tag{1}$$ and \begin{align}\mathcal{H}\{f^-\}(t)&=\frac{... 10 In layman terms, the Hilbert transform, when used on real data, provides "a true (instantaneous) amplitude" (and some more) for stationary phenomena, by turning them into "specific" complex data. For instance, a cosine \cos(t) is inherently of amplitude 1, which you do not see directly, since it visually wiggles between -1 and 1, and periodically ... 10 "Is there any practical application?" Definitely yes, at least to check code, and bound errors. "In theory, theory and practice match. In practice, they don't." So, mathematically, no, as answered by Matt. Because (as already answered), \mathcal{F}\left(\mathcal{F}\left(x(t)\right)\right)=x(-t) (up to a potential scaling factor). However, it can be ... 9 Nice question! It uses one of my favorite trig identities (which can also be used to show that quadrature modulation is actually simultaneous amplitude and phase modulation). The impulse response of the system described above is given by: Block diagram: 8 The analytic signal produced by the Hilbert transform is useful in many signal analysis applications. If you bandpass filter the signal first, the analytic signal representation gives you information about the local structure of the signal: phase indicates the local symmetry at the point, where 0 is positive symmetric (peak), \pi is negative symmetric (... 7 The description complex helical sequence indicates that it is a sequence of complex numbers that, when plotted in three dimensions (real part, imaginary part, position in the sequence), resembles a screw, or helix. See this illustration (by RobHar, on Wikimedia Commons): From a mathematical point of view, all signals can be decomposed into complex ... 7 A transform (FT or Hilbert, etc.) doesn't create new information from nothing. Thus, the "information you get", or the added dimension in the resultant analytic complex signal provided by a Hilbert transform of a 1D/real signal, is a form of summarization of the local environment of each point in that signal, joined to that point. Information such as local ... 6 Check out Julius O. Smith III's write up. There is a Hilbert transform relationship between the magnitude response, G(\omega), and the phase response, \theta(\omega), of the associated minimum phase filter. If H(\omega) = G(\omega) \exp(\jmath \theta(\omega)) $$then$$ \ln( H(\omega) ) = \ln(G(\omega)) + j\theta(\omega) $$and$$ \theta(\omega) ...

6

Complex signals are a special case of multidimensonal signals (where the dimension is two). A lossy approach tackling compression of multidimensional signals is vector quantization. A very good resource is the book: "Vector Quantization and Signal Compression", co-authored by Robert M. Gray. Vector Qquantization is a classic lossy source coding technique ...

6

I would use a linear phase FIR Hilbert transformer, and use block processing, such as the overlap-add method. That means that you partition the input signal into contiguous non-overlapping blocks and compute the convolution of each block with your filter impulse response. The results are then overlapped and added. Overlap occurs because the result of the ...

6

It works fine for me: from scipy.signal import hilbert import numpy as np from matplotlib.pyplot import plot sensor = np.loadtxt('signal.txt') plot(sensor) analytical_signal = hilbert(sensor) plot(analytical_signal.real) plot(analytical_signal.imag) amplitude_envelope = np.abs(analytical_signal) plot(amplitude_envelope) What are you doing differently? ...

6

There are several reasons why the two results don't match: the coefficients of the FIR Hilbert transformer are wrong the FIR Hilbert transformer is too short to even come close to the performance of the FFT-based implementation the frequency of the input signal is too low for the FIR Hilbert transformer to perform properly. A FIR Hilbert transformer always ...

6

To answer the second question, in digital communications there is a technique in use in cellphones right now that makes good use of applying the IFFT to a time-domain signal. OFDM applies an IFFT to a time-domain sequence of data at the transmitter, then reverses that with an FFT at the receiver. While the literature likes to use IFFT->FFT, it really makes ...

5

Implementing a Hilbert transform enables us to create an analytic signal based on some original real-valued signal. And in the comms world we can use the analytic signal to easily and accurately compute the instantaneous magnitude of the original real-valued signal. That process is used in AM demodulation. Also from the analytic signal we can easily and ...

5

The Hilbert transform can be applied to complex functions of a real variable. E.g., the Hilbert transform of the complex exponential $e^{j\omega_0t}$, $\omega_0>0$, is given by $$\mathcal{H}\{e^{j\omega_0t}\}=-je^{j\omega_0t},\qquad\omega_0>0$$ The problem you encounter has to do with Matlab's implementation of the function hilbert.m. It is designed ...

5

This is achievable with two parallel all pass filters. The two all pass filters synthesize an odd ordered low pass filter whose pass band extends from -90º to +90º in the z-domain. (I will discuss this below). $$G_{lowpass}(z) = \frac{A_0(z)+z^{-1}A_1(z)}{2}$$ The low pass filter is then rotated by +90º so that its pass band extends from 0º to 180º, which ...

5

So the point is that "classically", communications theory tends to be done in complex baseband, i.e. signals centered around 0 Hz, but not necessarily symmetric in spectrum. When you want to represent such signals, you need complex values. When you want to transmit such signals over the air, you need to: Convert them from digital to analog, mix the I(...

4

A system that shifts the input signal by 90 degrees is a Hilbert transformer. For a single sine wave, a 90 degree phase shift is simple (e.g., sine becomes cosine), but for a general signal you need a Hilbert transformer. Check the basics here. It can be implemented using an FIR (finite impulse response) digital filter. Such a filter can be designed in ...

4

The short answer: with a finite convolution you can't calculate the Hilbert transform exactly. The long answer: You will have to make approximations and decide what types and amounts of error you can live with. This will depend heavily on the application, the signals itself and what you are trying to do with the results. This paper may give good guidance on ...

4

The analytical signal approach works very well for chirp signals. It stops working for mixtures of different tones. Taking the absolute value is a nonlinear operation that introduces cross terms and thus distorts you envelope. I'd say that the envelope of a broad band signal as a property that is not well defined. First you need to define what you actually ...

4

Not really an answer but maybe helpful: Personally I found that the concept of instantaneous frequency is only useful for sufficiently narrow band signals. Consider the simple example of two steady sine waves, say 100Hz and 934Hz. In this case you can certainly define and calculate the instantaneous frequency (in whatever way you want) but what should the ...

4

At least f2 and f3 seem to work appropriate on a pure chirp signal, but all methods, including f2 and f3 seem to fail horrible, when it comes to more than one frequency in the signal. In reality having more than one frequency in a signal is rather always the case. So how can one get the (more or less) correct instantaneous frequency? as Hilmar suggests, the ...

4

As you already know, the two methods are theoretically identical if there's no noise. If there is out-of-band noise then the low pass filters in method A will further suppress the out-of-band noise, whereas there's no such noise suppression with method B. This would be one advantage of method A over method B. Note, however, that the phase splitter in method ...

4

I agree that one of the easiest ways to compute the Hilbert transform in this case is to use the analytic signal. This is most easily obtained via the Fourier transform. Note that the Fourier transform of $$f(t)=\frac{\sin(at)}{at}\tag{1}$$ is $$F(j\omega)=\frac{\pi}{a}\text{rect}\left(\frac{\omega}{2a}\right)\tag{2}$$ i.e., a rectangular function with ...

4

Clay Turner has an interesting couple of papers. what you want to do is compute (using MATLAB firpm() or firls()) two filters that shift the phase, one at -45° and the other at +45° relative to some linear phase angle that corresponds to a constant delay. you design one and then flip the coefficients around for the other. they will both have the same ...

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