在 Matlab 中应用 cwt

Apply cwt in Matlab

我正在尝试实现一种已在论文中描述的算法。它处理必须过滤和区分的加速度计数据。我的输入是一个向量(1 列,多行)。

As described here

必须使用具有 MatLab 函数的高斯 CWT 对向量进行微分 cwt。尺度必须是 'scale10' 和小波 'gaus1'.

当我尝试在 MatLab 中执行指令时,我键入以下内容:

    dudx=cwt(vector,'scale10','gaus1');        

这是我得到的错误:

    Undefined function 'sqrt' for input arguments of type 'char'.

    Error in cwt (line 278)
    coefs(ind,:) = -sqrt(a)*wkeep1(diff(wconv1(ySIG,f)),lenSIG);

因为它实际上应该与输入一起工作,所以我真的不知道我可以改变什么。我还浏览了 cwtwavefun 的 mathworks 页面,但没有任何解决方案。

我以前从未使用过 CWT,因此我认为我可能误解了某些内容并错误地应用了说明。谁能帮我解决这个问题?

您没有正确使用该功能。第二个参数是比例向量,其中每个数字都是您想要的比例。 scale10 没有任何意义。你想要 10th 比例吗?

这样做:

dudx=cwt(vector,10,'gaus1'); 

请阅读此处的文档:http://www.mathworks.com/help/wavelet/ref/cwt.html