what is the use of Hilbert function?

조회 수: 23 (최근 30일)
GOURANG UPADHYAY
GOURANG UPADHYAY 2022년 7월 11일
댓글: GOURANG UPADHYAY 2022년 10월 23일
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])

답변 (1개)

Ajay Gajulapally
Ajay Gajulapally 2022년 10월 21일
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;
  댓글 수: 1
GOURANG UPADHYAY
GOURANG UPADHYAY 2022년 10월 23일
Please check my code,is it correct or not?

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Hilbert and Walsh-Hadamard Transforms에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by