Articles
CWT matlab-functie [gesloten]
Geplaatst op februari 17, 2021 door admin Gesloten. Deze vraag is off-topic . Het accepteert momenteel geen antwoorden.
Reacties
- Spaghetti ontstaat door de complexe houding van een CWT, die je al met Fourier hebt gedaan.
- betekent dit dat het toepassen van cwt naar dit signaal is niet mogelijk?
- Dat is mogelijk, en mogelijk meer informatief dan met Fourier, aangezien het signaal niet stationair is.
- je spaghetti is waarschijnlijk een artefact van je plotoproep , niet de cwt
- Ik heb ' m gestemd om deze vraag als off-topic af te sluiten, omdat het probleem te maken heeft met het aanroepen van de plotfunctie van matlab met complexe waarden en niet een probleem met wavelets
Answer
Proberen te raden welk signaal je analyseert, en het doel, hier is een demo, op een echt signaal, met de helft van het Fourier-spectrum en het bijbehorende continue wavelet-transformatie-scalogram.
Hier vermoed ik dat het signaal te kort is (zonder verdere doelstellingen) voor FFT en CWT om interpreteerbare resultaten op te leveren. De Matlab-code is:
nsample = 64; % An odd number timeSampling = 1/nsample; time = (0:nsample-1)*timeSampling; ratioSecondHalf = 20; data = zeros(nsample,1); data(1:nsample/2,1) = rand(nsample/2,1)-0.5; data = medfilt1(data,5); data(nsample/2+1:end,1) = rand(nsample/2,1)/ratioSecondHalf; [fftR,fftAxe] = FFTR(data,timeSampling); [cwtCoeff,cwfFreq] = cwt(data,1:64,"morl",timeSampling); figure(1);clf subplot(3,1,1) plot(time,data,"x-");;axis tight xlabel("Time (a. u.)") ylabel("Amplitude (a. u.)") subplot(3,1,2) plot(fftAxe,fftR,"x-");axis tight xlabel("Frequency (a. u.)") ylabel("Amplitude (a. u.)") subplot(3,1,3) h=imagesc("XData",time,"YData",2*cwfFreq/pi,"CData",abs(cwtCoeff));axis tight xlabel("Time (a. u.)") ylabel("Frequency (a. u.)")
FFTR.m wordt verkregen van hier .
Reacties
- i ' heb dit ook op een langer signaal geprobeerd, maar het gaf me nog steeds spaghetti, ik denk dat het ' s omdat het ' s niet-stationair is, zoals je zei.
- Abslute-waarde ontbreekt ergens
- EN de langere lengte gaat over interpreteerbaarheid, niet over spaghetti
- ik deed het met absolute waarde en ik kreeg betere resultaten, geen spaghetti meer.
- Goed, spaghetti komt voort uit het plotten van complex waarden als 2D-punten (echt + denkbeeldig)
Geef een reactie