what is the use of Hilbert function?

25 visualizzazioni (ultimi 30 giorni)
GOURANG UPADHYAY
GOURANG UPADHYAY il 11 Lug 2022
Commentato: GOURANG UPADHYAY il 23 Ott 2022
Does hilbert transform function do demodulation of signal? i am doing signal processing of real time vibration signal i am attaching my code please check.
clc;
clear;
close all;
%%Time Domain Plot
vib1=readtimetable("sing2.txt","SampleRate",1);
tiledlayout(4,1)
nexttile
plot(vib1.Time,vib1.Sing1)
L=length(vib1.Sing1);
N= 2^nextpow2(L);
xlabel("Time(s)")
ylabel("Ampl(mm/s^2)")
%%Envolop analysis
nexttile
yh=hilbert(vib1.Sing1,N);
yz=abs(yh);
plot(vib1.Time,yz)
% % FFt
fs=1;%Sampling Frequency
delt=seconds(1/fs); %time step
Totaltime=(length(yz)-1);
my_fft=2/N*(fft(yz));%FFT of Signal
abs_fft=abs(my_fft); %Absolute value of fft
delf=1/Totaltime; %Frequency Resolution
n2=0:1:N/2-1; %fft results are plotted for N/2 data points
fk=delf*n2;% frequency values
abs_fft(1:N/2)
nexttile
plot(fk,abs_fft(1:N/2))
[v,p]=findpeaks(abs_fft(1:N/2),fk,'MinPeakHeight',0.01);
findpeaks(abs_fft(1:N/2),fk,'MinPeakHeight',0.01)
xlabel("Frequency (Hz)")
ylabel("Ampl(mm/s^2)")
% Spectral density
nexttile
pspectrum(yz,vib1.Time,"spectrogram","FrequencyLimits",[.1005 .2976])

Risposte (1)

Ajay Gajulapally
Ajay Gajulapally il 21 Ott 2022
In a Hilbert transform, the phase angle of all components of the signal are shifted by 90 degrees.
Yes, Hilbert transform can be used in Demodulation (example is phase Demodulation).
In the case of phase demodulation, the Hilbert transform can be used to find the instantaneous phase of the signal and then removing the carrier signal to find the message signal which is represented as phase.
For Example, Let’s assume
x(t)= Acos[fct+β+αsin(fmt)]
where
fc = Carrier frequency,
A = amplitude of carrier,
m(t) = message signal = αsin(fmt)
MATLAB Code for Demodulation:
c = 240; %carrier frequency
fm = 10; %frequency of modulating signal
alpha = 1; %amplitude of modulating signal
theta = pi/4; %phase offset of modulating signal
beta = pi/5; %constant carrier phase offset
fs = 8*fc; %sampling frequency
duration = 0.5; %duration of the signal
t = 0:1/fs:1-1/fs; %time base
m_t = alpha*sin(2*pi*fm*t + theta); %modulating signal
x = cos(2*pi*fc*t + beta + m_t ); %modulated signal
%Add AWGN noise to the transmitted signal
nMean = 0; %noise mean
nSigma = 0.1; %noise sigma
n = nMean + nSigma*randn(size(t)); %awgn noise
r = x + n; %noisy received signal
%Demodulation of the noisy Phase Modulated signal
z= hilbert(r); %form the analytical signal from the received vector
inst_phase = unwrap(angle(z)); %instaneous phase
offsetTerm = 2*pi*fc*t+beta;
demodulated = inst_phase - offsetTerm;

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by