0% found this document useful (0 votes)
1K views8 pages

Hilbert-Huang Transform - File Exchange - MATLAB Central

This file provides code to implement the Hilbert-Huang transform (HHT) in MATLAB. The HHT decomposes signals into intrinsic mode functions (IMFs) and obtains instantaneous frequency data. The file includes functions for empirical mode decomposition, finding peaks, and plotting the HHT. It is designed for nonstationary and nonlinear signals.

Uploaded by

Jod JD
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1K views8 pages

Hilbert-Huang Transform - File Exchange - MATLAB Central

This file provides code to implement the Hilbert-Huang transform (HHT) in MATLAB. The HHT decomposes signals into intrinsic mode functions (IMFs) and obtains instantaneous frequency data. The file includes functions for empirical mode decomposition, finding peaks, and plotting the HHT. It is designed for nonstationary and nonlinear signals.

Uploaded by

Jod JD
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

30/7/2015

HilbertHuangTransformFileExchangeMATLABCentral
Search:

FileExchange

CreateAccount

FileExchange

Answers

Newsgroup

LinkExchange

Blogs

Trendy

Cody

Contest

MathWorks.com

DownloadZip

HilbertHuangTransform

4.82609
4.8|25ratings

byAlanTan
23Apr2008(Updated28Apr2008)

NoBSDLicense

Ratethisfile

ThissubmissionisarealizationoftheHilbertHuang
transform(HHT).
|

LogIn

323Downloads(last30days)
FileSize:995KB
FileID:#19681
Version:1.0

WatchthisFile

Highlightsfrom

HilbertHuangTransform
emd(x)
EmpiricialModeDecomposition
(HilbertHuangTransform)
findpeaks(x)
Findpeaks.
plot_hht(x,Ts)

FileInformation
Description Thefunctionplot_hhtisarealizationoftheHilbertHuangtransform(HHT).TheHHTdecomposesasignal
intointrinsicmodefunctions(orIMFs),andobtaintheinstantaneousfrequencydata.Itisdesignedtowork
wellfordatathatarenonstationaryandnonlinear(http://en.wikipedia.org/wiki/HilbertHuang_Transform).
LearnmoreabouttheHHTfromtheattachedpdf.

Viewallfiles

Thefunctionplot_hhtisbestusedwithspsnip_guiavailableat
http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=11002&objectType=FILE.
Essentialfiles:plot_hht.m,emd.m,findpeaks.m
Accompanyingfiles:Hum.wav,HHT.pdf
Acknowledgements ThisfileinspiredImfForBearingFaultDiagnosis.
RequiredProducts SignalProcessingToolbox
SplineToolbox
MATLABrelease MATLAB5.3.1(R11.1)

Pleaselogintotagfiles.

TagsforThisFile
audio
audioprocessing
dsp
frequency

hilberthuangtransformhht
nora
signalprocessing
videoprocessing

Save Cancel

Pleaselogintoaddacommentorrating.

CommentsandRatings (63)
22Jun2015

renu

dearfrnds
thanksforguidingme.

Commentonly

pleasehelpmehowcaniusewavelettransformforanalsingecg
signals.
20Jun2015

TudorSascau

chenggheelim

Commentonly

03Jun2015

chenggheelim

Iamhavingissueonhowtoprocessthehilberthuangspectralanalysis.
Belowismycodefortheemd,cansomebodyhelpme???

Commentonly

sig=csvread('1bar.csv')
sig1=sig(:,1)%Time
sig2=sig(:,2)%Data
a=decimate(sig1,4)
b=decimate(sig2,4)
t=a
x=b
figure(1)
plot(t,x)
axistight

http://www.mathworks.com/matlabcentral/fileexchange/19681hilberthuangtransform?s_tid=srchtitle

1/8

30/7/2015

HilbertHuangTransformFileExchangeMATLABCentral
title('OriginalResponse')
xlabel('time')
ylabel('amplitude')
%%%%%%EMD%%%%%%%%
imfs=eemd(x,0,1)
imfs=imfs'%foremdandeemdonly
num=size(imfs,1)%NumberofIMFs
figure(2)
subplot(6,2,1)
plot(t,imfs(1,:))
axistight
subplot(6,2,2)
plot(t,imfs(2,:))
axistight
subplot(6,2,3)
plot(t,imfs(3,:))
axistight
subplot(6,2,4)
plot(t,imfs(4,:))
axistight
subplot(6,2,5)
plot(t,imfs(5,:))
axistight
subplot(6,2,6)
plot(t,imfs(6,:))
axistight
subplot(6,2,7)
plot(t,imfs(7,:))
axistight
subplot(6,2,8)
plot(t,imfs(8,:))
axistight
subplot(6,2,9)
plot(t,imfs(9,:))
axistight
subplot(6,2,10)
plot(t,imfs(10,:))
axistight
subplot(6,2,11)
plot(t,imfs(11,:))
axistight
subplot(6,2,12)
plot(t,imfs(12,:))
axistight
%%%%%%%Instantaneousfrequency%%%%%%%
imfs=imfs'
omega_m1=ifndq(imfs(:,2),1)%IMFusingforinstantaneousfrequency
omega_m2=ifndq(imfs(:,3),1)%IMFusingforinstantaneousfrequency
omega_m3=ifndq(imfs(:,4),1)%IMFusingforinstantaneousfrequency
omega_m4=ifndq(imfs(:,5),1)%IMFusingforinstantaneousfrequency
omega_m5=ifndq(imfs(:,6),1)%IMFusingforinstantaneousfrequency
omega_m6=ifndq(imfs(:,7),1)%IMFusingforinstantaneousfrequency
omega_m7=ifndq(imfs(:,8),1)%IMFusingforinstantaneousfrequency
omega_m8=ifndq(imfs(:,9),1)%IMFusingforinstantaneousfrequency
omega_m9=ifndq(imfs(:,10),1)%IMFusingforinstantaneousfrequency
omega_m10=ifndq(imfs(:,11),1)%IMFusingforinstantaneous
frequency
omega_m11=ifndq(imfs(:,12),1)%IMFusingforinstantaneous
frequency
omega_m12=ifndq(imfs(:,13),1)%IMFusingforinstantaneous
frequency
figure(3)
subplot(4,2,1)
plot(t,imfs(:,2))
grid
title('IntrinsicModeFunction1')
subplot(4,2,2)
plot(t,imfs(:,3))
grid
title('IntrinsicModeFunction2')
subplot(4,2,3)
plot(t,imfs(:,4))
grid
title('IntrinsicModeFunction3')
subplot(4,2,4)
plot(t,imfs(:,5))
grid
title('IntrinsicModeFunction4')
subplot(4,2,5)
plot(t,imfs(:,6))
grid
title('IntrinsicModeFunction5')
subplot(4,2,6)
plot(t,imfs(:,7))
grid
title('IntrinsicModeFunction6')
figure(4)

http://www.mathworks.com/matlabcentral/fileexchange/19681hilberthuangtransform?s_tid=srchtitle

2/8

30/7/2015

HilbertHuangTransformFileExchangeMATLABCentral
subplot(4,2,1)
plot(t,imfs(:,8))
grid
title('IntrinsicModeFunction7')
subplot(4,2,2)
plot(t,imfs(:,9))
grid
title('IntrinsicModeFunction8')
subplot(4,2,3)
plot(t,imfs(:,10))
grid
title('IntrinsicModeFunction9')
subplot(4,2,4)
plot(t,imfs(:,11))
grid
title('IntrinsicModeFunction10')
subplot(4,2,5)
plot(t,imfs(:,12))
grid
title('IntrinsicModeFunction11')
subplot(4,2,6)
plot(t,imfs(:,13))
grid
title('IntrinsicModeFunction12')
figure(5)
plot(t,omega_m1/2/pi,'r',t,omega_m2/2/pi,'r',t,omega_m3/2/pi,'r',t,
omega_m4/2/pi,'r',t,omega_m5/2/pi,'r',t,omega_m6/2/pi,'r',t,
omega_m7/2/pi,'r',t,omega_m8/2/pi,'r',t,omega_m9/2/pi,'r',t,
omega_m10/2/pi,'r',t,omega_m11/2/pi,'r',t,omega_m12/2/pi,'r')
grid
title('AllInstantaneousFrequency')
figure(6)
subplot(6,1,1)
plot(t,omega_m1/2/pi,'r')
grid
title('InstantaneousFrequencyIMF1')
subplot(6,1,2)
plot(t,omega_m2/2/pi,'r')
grid
title('InstantaneousFrequencyIMF2')
subplot(6,1,3)
plot(t,omega_m3/2/pi,'r')
grid
title('InstantaneousFrequencyIMF3')
subplot(6,1,4)
plot(t,omega_m4/2/pi,'r')
grid
title('InstantaneousFrequencyIMF4')
subplot(6,1,5)
plot(t,omega_m5/2/pi,'r')
grid
title('InstantaneousFrequencyIMF5')
subplot(6,1,6)
plot(t,omega_m6/2/pi,'r')
grid
title('InstantaneousFrequencyIMF6')
figure(7)
subplot(6,1,1)
plot(t,omega_m7/2/pi,'r')
grid
title('InstantaneousFrequencyIMF7')
subplot(6,1,2)
plot(t,omega_m8/2/pi,'r')
grid
title('InstantaneousFrequencyIMF8')
subplot(6,1,3)
plot(t,omega_m9/2/pi,'r')
grid
title('InstantaneousFrequencyIMF9')
subplot(6,1,4)
plot(t,omega_m10/2/pi,'r')
grid
title('InstantaneousFrequencyIMF10')
subplot(6,1,5)
plot(t,omega_m11/2/pi,'r')
grid
title('InstantaneousFrequencyIMF11')
subplot(6,1,6)
plot(t,omega_m12/2/pi,'r')
grid
title('InstantaneousFrequencyIMF12')

12May2015

Dulip

functionhilbertisincludedinmatlabsignalprocessingtoolbox.hopethis
helps.

Commentonly

10May2015

Mhammadali

functionhilbertisnotdefined..cananyoneexplain??

Commentonly

http://www.mathworks.com/matlabcentral/fileexchange/19681hilberthuangtransform?s_tid=srchtitle

3/8

30/7/2015

HilbertHuangTransformFileExchangeMATLABCentral

26Apr2015

nerminemonla

hi,pleasecananyonetellmehowtoget3Dplot(amplitudetime
frequency)afterhilbertspectrumanalysisofIMF?

Commentonly

26Apr2015

omid

Hum.wav

Commentonly

11Apr2015

J.Hax

I'mhavingissueswiththisusingMatlabR2012astudentversion.The
issueintheEMDfileisthegetsplinecommand.Anyoneelsehavingthe
sameissueswiththis?

Commentonly

01Apr2015

MahmoudHassan

29Mar2015

renu

IwanttoknowhowwecananalyseacompositesignalusingHHT.and
howHMSisusedtoanalysethesignal.Pleasesendmethecodefor
findingHilbertMarginalspectrum.Iwouldbethankfultoyou

Commentonly

12Mar2015

Baha

Areintrinsicmodescorrespondto"naturalmodes"ofastructure?For
example,ofanonlineartimehistoryofabuilding,ifIuseaccelerationor
displacementresponseandusethiscodeHilbertHuangTransform,am
Igonnagetresponseseachcorrespondingtonaturalmodesofthe
structure?

Commentonly

Thanks,
18Dec2014

DavidBurton

...andnoise.Lotsofnoise.

Commentonly

Iwrote,"thereisprobablyanNyearperiodiccomponent,some
shorterperiodcomponents,andalineartrend."
Ishouldhavewritten,"thereisprobablyanNyearperiodiccomponent,
someshorterperiodcomponents,alineartrend,andnoise."
18Dec2014

DavidBurton

IhaveaquestionabouttheapplicabilityofHHT/EMD.

Commentonly

SupposeIhaveatimeseriesdatasetinwhichthereisprobablyanN
yearperiodiccomponent,someshorterperiodcomponents,anda
lineartrend.Unfortunately,mydatasetisconsiderablyshorterthanN
years.Mygoalisnottofindtheperiodiccomponents(thoughthatwould
bemildlyinteresting),buttomoreaccuratelyfindthelineartrend,by
removingtheinfluenceoftheperiodiccomponents.
IsHHT/EMDusefulforthis?Canithelpmemakeamoreaccurate
determinationofthelineartrendthansimplelinearregressionanalysis
woulddo?
03Nov2014

ChingKevin

30Oct2014

mira

hi,
ihaveonequestion.whatisthefrequencylabelintimefrequencyplot
referto?isitinHzorrad/sec?
thankyou.

10Oct2014

lu

13Sep2014

Le

09Sep2014

kai

Thanks!

01Aug2014

dimplekhanna

02Jul2014

lin

28Jun2014

TraianPreda

Hi,

Commentonly

Commentonly

Ihaveaquestion,regardinghowIcanidentifyinthelastplotwhich
frequenciesareplottedintime?
Thankyou
16Jun2014

nd

isthiscodehelpfulinvideostabilizationusingHHT

11Jun2014

francesco

thankforthetool,

21Apr2014

AlanTan

HiLeon,thanksforpointingout.Itriedfindpeaksinthesignal
processingtoolbox,andbutitreturned"Nopeaksfound."Possibly,in
thelaterversions(versionIamusingnowiskindaold),thefunctionhas
beencorrectedtolocatethepeak.Actually,Iamnotsoconcerned
abouttheerrorbecauseitonlyariseswhenthereareinstancesof
adjacentsampleshavingexactlythesamevalueontheleftsideofthe
peak,e.g.,findpeaks([122.0013321])returnsthecorrectanswer.In
mostcases,atleastinthecontextofHHT/EMDorgeneralsignal
processing,suchoccurrencesarerare.SorryIcouldnotbemore
helpful.

Commentonly

21Apr2014

Leon

The"findpeaks"functioniswrong.Forsignalssuchas[1,2,2,3,3,2,1],it
returnboth2ndandthe4thtimepointsaslocalpeaks,whileonlythe
4thshouldbeconsideredapeak.TheMATLABfindpeaksfunction(in
SignalProcessingToolbox),meanwhile,doesnotshowthisfallacy.

Commentonly

25Jul2013

jianning

Iamastudentintheuniversity.Millionsofthankswillgotoyouifyou
sentmethisfile.

21Dec2012

junqua

30Mar2012

RAMKINKERMISHRA

AlanTan,Ihadaqueryinemddecompositionyouhaveassigned
'SD=inf'butinmyopinioninsteadofthatsdshouldbecalculatedby

http://www.mathworks.com/matlabcentral/fileexchange/19681hilberthuangtransform?s_tid=srchtitle

Commentonly

Commentonly

4/8

30/7/2015

HilbertHuangTransformFileExchangeMATLABCentral
usingintermediateIMFfromstartingonwards.

26Mar2012

JaidevDeshpande

HiAlan,

Commentonly

IhaveproposedtocomeupwithaPythonimplementationoftheHHT
undertheGoogleSummerofCodeprogramme.ButI'mworriedabout
thepatentedstatusoftheHHT.
IseemanyimplementationsoftheHHTthatarefreelyavailable,anda
lotofresearchpapersarebasedonHHTtoo.Iftheinterestispurely
academicandnoncommercial,canHHTbeusedfreely?
Pleasehelpmeout.
Thanks
22Mar2012

dedenlaut

Howtoplotthisresultinenergyfrequencytimedomain?

08Feb2012

SergiAndruschenko

04May2011

RAMKINKERMISHRA

Thisisthecodeiamusing.

Commentonly

functionhht_meanfreq(x,Ts)
imf=emd(xsin)
%emdfindsthedecomposedsegments
fori=1:length(imf)
imf1=cell2mat(imf(i))
%conversionofcelltomatrixasiam%usetoworkwithmatrix
a1(i,:)=imf1
a(i,:)=abs(hilbert(a1(i,:)))
%absolutevalueofeachhilbert%transformedIMF
th(i,:)=angle(hilbert(a1(i,:)))
%fINDINGPHASEOFEACHIMF
d(i,:)=diff(th(i,:))/Ts/(2*pi)
%CALCULAIONOFINSTANTANEOUSFREQUENCY
end
forj=1:length(imf)
mnf1(j)
=sum(d(j,:).*(a(j,1:end1)).^2)/norm(a(j,1:end1))^2
%CALCULATIONOFMEAN%INSTATNTANEOUS%FREQUENCY
OFEACHIMF
end
forz=1:length(imf)
mnf=sum(norm(a(z,:).*mnf1(z)))/sum(norm(a(z,:)))
%FINDINGMEANFREQUENCY
end
02May2011

MANOJKUMARPALO

pleaseprovidemethematlabcodeofhilberttransform

11Apr2011

RAMKINKERMISHRA

MyaimistofindthemeanfrequencyderivedviaHilbertHuang
transform.
Algorithm
1.firstfindthemeaninstantaneousfrequencyforeachIMF.
2.Thenusingtheseinstantaneousfrequenciesiwillfindoutthemean
frequencyoftheoverallsignal.
Ihavetriedtoimplementthealgorithmintheaboveprogrambutiam
notabletogettheresultproperly.

11Apr2011

RAMKINKERMISHRA

functionhht_meanfreq(x,Ts)
imf=emd(xsin)
%emdfindsthedecomposedsegments
fori=1:length(imf)
imf1=cell2mat(imf(i))
%conversionofcelltomatrixasiamusetoworkwithmatrix
a1(i,:)=imf1
a(i,:)=abs(hilbert(a1(i,:)))
%absolutevalueofeachhilberttransformedIMF
th(i,:)=angle(hilbert(a1(i,:)))
%fINDINGPHASEOFEACHIMF
d(i,:)=diff(th(i,:))/Ts/(2*pi)
%CALCULAIONOFINSTANTANEOUSFREQUENCY
end
forj=1:length(imf)
mnf1(j)=sum(d(j,:).*(a(j,1:end1)).^2)/norm(a(j,1:end1))^2
%CALCULATIONOFMEANINSTATNTANEOUSFREQUENCYOF
EACHIMF
end
forz=1:length(imf)
mnf=sum(norm(a(z,:).*mnf1(z)))/sum(norm(a(z,:)))
%FINDINGMEANFREQUENCY
end

16Feb2011

AliObodi

ToAuthor,

Commentonly

whenirunplot_hht.m,ihadfollowingmessageappearedoncommand
window:
???Maximumrecursionlimitof500reached.Use
set(0,'RecursionLimit',N)tochangethelimit.Beawarethatexceeding
youravailablestackspacecancrashMATLABand/oryourcomputer.

http://www.mathworks.com/matlabcentral/fileexchange/19681hilberthuangtransform?s_tid=srchtitle

5/8

30/7/2015

HilbertHuangTransformFileExchangeMATLABCentral
Errorin==>fileparts
Then,iused
set(0,'RecursionLimit',1000)(maximumvalue1000)andcomputer
crasheseverytime!wheniusedlowervaluesihadthesameprevious
message.
Pleaseneedadviceregardingthisproblem.Manythanks

30Nov2010

pankajbadoni

hipleaseanyonetellhowtoapplythisoneonimagesespofmedical
images.

Commentonly

plz..replyfast.
26Oct2010

aami

cudanyoneplzgivemethelinktothecodefordecomposinganimage
usingEMD...
Thanxinadvance...

Commentonly

Meenu
17Oct2010

Lukasz

Shouldn'tyouunwraptheanglethbeforesendingittodiff?

26Aug2010

Omar

I'minterestedinusingtheenvelopeofmysignalthatmightIgetusing
yourcodeforfurtheranalysis.But,byplottingbothoriginalsignalandits
envelopeonthesamefigure,itdoesnotshowmethattheenvelope
followthepeaksofmyoriginalsignalasshowninfigure1.2(upper
envelope)intheHHT.pdffile.So,couldyoupleasesuggestmeanidea
howtomaketheenvelopefollowthelocalmaxima.

Commentonly

Thanksagain,
Omar
26Aug2010

Omar

14Jun2010

BuboBubic

Hi,
Igotnextmessagetryingtorunplot_hht.m:
???Maximumrecursionlimitof500reached.Use
set(0,'RecursionLimit',N)tochangethelimit.Beawarethatexceeding
youravailablestackspacecancrashMATLABand/oryourcomputer.
Errorin==>fileparts
ThenIrunfromcommandline
set(0,'RecursionLimit',2600)(maximumvalue2600)andcomputer
crasheseverytime!Forlowervaluesgotthesameabovemessage.
Pleasehelpwithsuggestionoradvices.
Thanks

06Jun2010

PaulHarfas

Hi.
First,Imustsaythispieceofcodehelpedmewithmywork,thankyou
foryoureffort.
Iamcurrentlyworkingonimprovingyourcodebyaddingextremaatthe
beginningandendofthedataseriesbasedontheactualdatapoints
(slopebasedmethod),notjustaddingzeros.Addingzeroswillresultin
"fake"(artificiallyinduced)oscillationsthatwillpropagatethrough
adjacentmodes(IMFs)andinduceerrors.IwillpostbackwhenIreach
aresult.
@rakesh:toobtainasurface(3D)plotofthetimefrequencyenergy
distribution,youshouldplotabs(hilbert(imf{k})).^2asthevalueontheZ
axis(plot_hht.mline15).

31May2010

AlanTan

@Rakesh:Notsurewhatyoumeantwiththe3dplotandverticalaxis.
Sorry.
@Hans:Ihavenotexperimentedwithfilesof.edfextensionIcan'thelp
muchwiththatsorry.

Commentonly

11Mar2010

Hans

ToAuthor,

Commentonly

Ihaveanotheronemorequestionisthat,mydatais.edfbutonceiplot
thehhtusinghht_plot.m,theresultcameoutisemptybutIMFis
runningandnotempty,istheresomethingwrongwithmydata?
24Feb2010

Rakesh

The1sttwoplotsaretheplotsof2imfswithhighestengerycontent.
However,accordingtothetheory,allimfs(andhencetheirfrqs)are
plottedwithrespecttotime.Idid"holdon"andhaveplottedtimefreq
distributionforalltheimfs.theplotlookskindofcrowdedbutstillgives
enoughinformation.Howeveristillhavfollowingquestions,
1.inhilbertspectrum,in3Dplot,verticalaxisamplitudeisfunctionof
time.butuhaveobtainedasinglevalueofenergyforeachimf.but
actuallyitshouldhavebeenfunctionoftime.Amiright?
2.HowshouldIgetSpactrogramtypeofplot?

21Feb2010

MarkShore

Justtriedthis,nocommentsyetexceptthatthesplinetoolboxisnot
required(atleastfor2009b).Acallismadetospline.mwhichisfoundin
MATLAB'sstandardtoolboxinthepolyfundirectory.

Commentonly

04Jan2010

AlanTan

HiJaime,thankyouforthecomment.

Commentonly

http://www.mathworks.com/matlabcentral/fileexchange/19681hilberthuangtransform?s_tid=srchtitle

6/8

30/7/2015

HilbertHuangTransformFileExchangeMATLABCentral
FromMatlab'shelponthesuppliedhilbert.mfunction,itappearsthat
thereisnonormalizationinvolved.Ihadnoparticularreasononthe
choiceofthefigurecoloursyoucanalwayschangethecolourofthe
plotbymodifyingLine25oftheplot_hht.mfunction.

29Dec2009

JaimeDelgadoSaa

Hello,Thanksforthistool,Itworksfineforme.Onequestion:doyou
usenormalizedhilberttransformforthecalculationoftheinstantaneous
frequencyoftheimf's.
justcurious:whythepicturesareblackandwhite?

16Nov2009

AlanTan

ThefollowingreplyisgiventoAgnesoveremail.

Commentonly

HiAgnes,The2initialplotsarethetimefrequencyplotsoftheHHT
correspondingtothe2IMFswithofthehighestenergy.Subsequent
plotsaretheIMFs,plottedagainsttime.
15Nov2009

Agnes

Pleasedescribemewhattheplotsareexactelly.Isupposethatthefirst
istheHHTofthedatas,butwhatisthesecond?whatisthedifference
betweenthem?Andtheotherplotsarethevariousenvelopes?
AndifIhavea0.7KHzsamplingrate,thanIhavetogive700astheTs
or1/700?
Thanksforyourhelp!

16Oct2009

RaymondCheng

Thanksforyoursharing.

15May2009

delindahe

WouldyouguyspleasehelpmetofigureouthowdoestheHilbert
transformwork??
functionplot_hht(x,Ts)
%PlottheHHT.
%plot_hht(x,Ts)
%::Syntax
%ThearrayxistheinputsignalandTsisthesamplingperiod.
%Exampleonuse:[x,Fs]=wavread('Hum.wav')
%plot_hht(x(1:6000),1/Fs)
%Func:emd

Commentonly

Commentonly

%GetHHT.
imf=emd(x)%emdisafunction,itreturnstheIMF(intrinsicmode
functions)
%%%%%%%ThefollowingoneistocalculateHilberttransformfor
eachIMFs,butIdonoknowhowitworks???????@#$%%
fork=1:length(imf)
b(k)=sum(imf{k}.*imf{k})
th=angle(hilbert(imf{k}))
d{k}=diff(th)/Ts/(2*pi)
end
[u,v]=sort(b)
b=1b/max(b)
%Settimefrequencyplots.Idonothowitplotthetimefrequency
figurestoo
N=length(x)
c=linspace(0,(N2)*Ts,N1)
fork=v(1:2)
figure,plot(c,d{k},'k.','Color',b([kkk]),'MarkerSize',3)
set(gca,'FontSize',8,'XLim',[0c(end)],'YLim',[01/2/Ts])xlabel('Time'),
ylabel('Frequency')
end
Thanksforyourhelp.
01Apr2009

AlanTan

Forthebenefitofotherreaders,thefollowingisthereplygiventoYu
overemail.

Commentonly

HiYu,Iamassumingthesyoumentionedisoutputofthegetspline
function.ThearraysisformedbyinvokingMatlab'ssplinefunction,i.e.,
spline([0pN+1],[0x(p)0],1:N).You'dnotethatadditionalendpoint
conditions(looselyput,thesplineshouldsettletowards0atthe
endpoints)havebeenimposedasameanstocontaintheendpoints(of
theresultingspline)towithinreasonablebounds.Removingthese
conditionsmayresultinthe'extremepeaks'youmentioned.Ihopethat
clearsyourdoubt.
30Mar2009

Yu

toAuther,
hi,youdidaverygoodjob,andwithyourfunctionisavedalotoftime.i
haveaquestionaboutthd's'sensitivity.igotdifferentextremepeaks,
whenichangethe's'.canyoutellmewhatsthemeaningof's'?
thankyou

29Mar2009

AlanTan

HiAsim,Tsisasinglenumber(notacolumnofnumbers)denotingthe
samplingtime.Ifyouhavesamplescollectedevery,say1day,thenset
Ts=1.Pleasesendmeanemailifyouhaveotherdoubtsdonotpost
yourquestionsheresinceIdonotmonitorthissiteregularly.Thankyou.

Commentonly

26Mar2009

Asim

ToAuthor,canyoupleaseexplainhowwearedefiningthevariable
'Ts'?IfIhaveadataseriescollectedeverydayfor45years,willthis
column1willbeTsorjustthevalue1?InmydatasetIhavetwocolumn
withsecondwithdatasetandfirstwithdayofmeasurement(regular

Commentonly

http://www.mathworks.com/matlabcentral/fileexchange/19681hilberthuangtransform?s_tid=srchtitle

7/8

30/7/2015

HilbertHuangTransformFileExchangeMATLABCentral
basis).

06Jan2009

SQYuan

05Oct2008

KechangFu

03May2008

LegolasLong

whycan'tiuseitcorrectly?

Commentonly

25Apr2008

ChianWong

TheuserwouldalsoneedtheSignalProcessingToolboxtoperformthe
HilbertTransformitself,thoughthisiselementarytocode.

Commentonly

24Apr2008

TheAuthor

Ifyoudon'thavephase.minyourversionofMatlab(Ihaveinmine!),
youcansubstitutewithangle.mintheplot_hhtfunction.

Commentonly

24Apr2008

TheAuthor

ForgottoaddthatyouwillneedtohavetheSplineToolboxtorunthis
one.

Commentonly

Updates
24Apr2008

AddedrequirementfortheSplineToolbox.

24Apr2008

Replacedphase()withangle()inplot_hht().

Contactus

Patents Trademarks PrivacyPolicy PreventingPiracy TermsofUse

19942015TheMathWorks,Inc.
FeaturedMathWorks.comTopics:

NewProducts Support Documentation Training Webinars Newsletters MATLABTrials Careers

http://www.mathworks.com/matlabcentral/fileexchange/19681hilberthuangtransform?s_tid=srchtitle

8/8

You might also like