我正在使用Morlet小波对MATLAB中的数据进行连续小波分析。但默认小波的中心频率是5,正如我所希望的那样6.因此,我使用不同的方法使用psi函数构建所需的小波,即
[PSI中,x] = cmorwavf(LB,UB,N5,FB,FC)
卷积后我得到了小波功率谱。但我被困在COI,即影响力的锥体。
我发现需要零填充,之后我可以使用conofinf。但是这个' conofinf'需要一个默认小波的字符串。
所以我指出了我的问题: 1.如何对我的数据进行零填充以进行小波分析(如果有任何特定方法)? 2.如何在小波功率谱中指定COI?
任何帮助都会很棒!!
答案 0 :(得分:2)
零填充不是强制性的,但建议使用。通常,您将信号填充到大于信号长度的下一个2的幂。您可以手动执行此操作,例如:
newSignal = [zeros(1,floor(n)), oldSignal, zeros(1,ceil(n))];
其中n
是所需零填充的长度除以2:
n = ( 2^nextpow2(length(oldSignal)) - length(oldSignal) ) / 2;
不一定是双方都有;它可以从右边填充。它也不应该是零填充;它可以是对称的,重复的等等,对于减少边缘效应更好。您可以阅读有关信号填充的更多信息,例如在this paper,第2部分。
你应该注意零(和任何类型)填充,它还会引入伪像,例如零填充会降低边缘的功率。
零填充与COI无关。即使没有填充零也应该能够计算它。
使用MATLAB的conofinf
非常方便,但由于你无法做到,你可以尝试使用MATLAB帮助中的公式自己计算COI:
|t-u| <= sB
其中u是小波的平移参数,s是小数参数,[ - B,+ B]是小波的有效支持。
基本上,这意味着在小波变换的边缘(在时间t1和趋势),COI等于每个尺度的小波长度的一半。您可以为每个比例计算它并逐点绘制。
最后注意:无论您选择哪种类型的填充,都不要忘记在生成的小波变换中剪切它(在计算COI之后)。
希望它有所帮助。