Discrete wavelet decomposition (wavedec) using less than 365 days per year

15 views (last 30 days)
Hi!
I am trying to run a wavelet coherence analysis of daily streamflow from two gage stations. I have for each year daily streamflow from October and November (61 days) over a period of 75 years, that means that I have daily flow only for 61 days a year. This results on 4575 daily flows (75 years x 61 days) in each station.
When I run the wavelet coherence analysis using the 4575 samples I got the following image
However, I do not know how to convert the Normalized Frequency (cycles/sample) to period of years?
I want to understand how coherent were the daily streamflow data for October and November (the fall season) of each year for different periodicities of 1 year, 2years, 4years, and 8years.
How can i understand this normalized frequency?
Thank you for the help!
  10 Comments
Sara Alonso Vicario
Sara Alonso Vicario on 29 Jun 2022
Edited: Sara Alonso Vicario on 29 Jun 2022
Hi Jonas!
Thank you for the feedback!
About the first approach to try, do you mean to multiply the nHz of the y axis in the frist Figure by 6, this will mean then 512 nHz * 6 = 3072 nHz?
I have tried to run the wcoherence function using 6 samples/year (365/61) with a frequency equal to:
6 (samples / year) * (1 year / 365 days) * (1 day / 24 hours) * (1 hour / 3600 seconds) = 1.9024E-7
wcoherence(upstream,downstream,0.000000190259)
and this is the resul I got, it is not correct because I got a time period of 700 years in the axis x.
I am not sure why you say "another thing is your sampling frequency, you cut the 365 part here. sampling frequency in the second case is 1/d which equals 1/(24*60*60). you can see also that there must be an error since the x axis range is not correct".
You are right on this affirmation, do you know where the problem may it come? I have 55 years, when I should have 75 years. I checked and I have as input 27394 days of streamflow that are equal to 75 years. I think the sampling frequency is correct that it is 1/(24*60*60) = 0.000015741
I am not into the idea of delete the part where I padded the zero values, I do not think I am going with that option.
I am not sure which approach to take now with these data.
Jonas
Jonas on 30 Jun 2022
I have re-run the wavelet coherence function over this new data but with the new frequency:
365 (samples / year) * (1 year / 365 days) * (1 day / 24 hours) * (1 hour / 3600 seconds) = 1.1574E-5
using the following expresion:
wcoherence(upstream,downstream,0.0000157431)
just an error from typing you forgot a 1
num2str(1/(24*60*60),'%.12f')
ans =
'0.000011574074'
About the first approach to try, do you mean to multiply the nHz of the y axis in the frist Figure by 6, this will mean then 512 nHz * 6 = 3072 nHz?
Yes, the first figure and the yticklabels changed by factor of 6 to compensate for the fact, that the data were taken ober two months only and not over a whole year. in addition, you can also change the yticklabels by your formular from nano Herz to years, to make it better readable
I have tried to run the wcoherence function using 6 samples/year (365/61) with a frequency equal to:
6 (samples / year) * (1 year / 365 days) * (1 day / 24 hours) * (1 hour / 3600 seconds) = 1.9024E-7
i think this does not make sence.

Sign in to comment.

Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!