For a real time series *x(t)*, its analytic signal *x(t)* is defined as

*x(t) = x(t) – iH[x(t)]*

Let us consider an example of a monochromatic signal 𝑥(𝑡) = 5 sin(10𝑡 + 3).

Figure 1

Now, let us consider a more complex function

*x(t) = 1*sin(2𝜋10𝑡 + 0.3) + 2*sin(2𝜋20𝑡 + 0.2) + 3*sin(2𝜋30𝑡 + 0.4).*

Figure 2

We can clearly observe that the Hilbert transform estimates the instantaneous frequency of a signal for monocomponent signals only.

Matlab Codes:

clear; close all; clc
fs = 1e4;
t = 0:1/fs:1;
f1=10;
f2=20;
f3=30;
x=1*sin(2*pi*f1*t+0.3)+2*sin(2*pi*f2*t+0.2)+3*sin(2*pi*f3*t+0.4);
%x=5*sin(2*pi*10*t+3);
y = hilbert(x);
figure(1)
plot(t,real(y),t,imag(y))
%xlim([0.01 0.03])
legend('real','imaginary')
title('Hilbert Function')
figure(2)
subplot(3,1,1)
env=abs(y);
plot(t,x)
xlabel('Time')
title('Envelope')
hold on
plot(t,env)
legend('original','envelope')
subplot(312)
instph=fs/(2*pi)*unwrap(angle(y));
plot(t,instph)
xlabel('Time')
ylabel('Phase (in rad)')
grid on
title('Instantaneous Phase')
subplot(313)
instfreq = fs/(2*pi)*diff(unwrap(angle(y)));
plot(t(2:end),instfreq)
xlabel('Time')
ylabel('Hz')
grid on
title('Instantaneous Frequency')

**Application of Hilbert Transform:**

Figure 3

channel.m Function

—Utpal Kumar (IES, Academia Sinica)

### Like this:

Like Loading...

*Related*