关于c语言实现cwt函数的信息

cwt输入的f依据什么

小波变换原理。

目前创新互联已为上千的企业提供了网站建设、域名、网站空间、网站改版维护、企业网站设计、都江堰网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

CWT的变换过程是把小波ψt和原始信号ft的开始部分进行比较,计算系数为c。该系数表示该部分信号与小波的近似程度。系数c的值越高表示信号与小波越相似,因此系数c可以反映这种波形的相关程度把小波向右移,距离为k,得到的小波函数为ψt-k,然后重复步骤1和2。再把小波向右移,得到小波ψt-2k,重复步骤1和2。按上述步骤一直进行下去,直到信号ft结束扩展小波ψt,例如扩展一倍,得到的小波函数为ψt/2重复步骤1~4。

小波变换其实使用一个小波基取代了傅里叶变换中的三角函数。

一维连续小波变换cwt调用方式

(1)coefs=cwt(s,scales,‘wname’)

(2)coefs=cwt(s,scales,‘wname’,‘plot’)

说明:该函数为一维连续小波分析函数,其中coefs为连续小波变换后的返回系数Wf(a,b)矩阵,系数以行方向存储在矩阵中。

[例6-14]对MATLAB中所带有的noissin信号进行连续小波变换,尺度a分别为0.12,0.24,0.48,1.2,2,4,6,8,10,小波函数用db3,请求出连续小波变换后的系数。程序:

load noissin;%装载信号

s=noissin(1:100)

ls=length(s);%计算信号点的个数ls

%对s进行一维连续小波变换,把返回系数存到矩阵w中

w=cwt(s,[12.12,10.24,15.48,1.2,2:2:10],‘db3’,‘plot’)

Xlabel(‘时间’);

Ylabel(‘变换尺度’);

Title(‘对应于尺度a=0.12,0.24…小波变换系数的绝对值’);

执行程序后,返回矩阵为一个9×1000矩阵。在此为节省篇幅,我们不将结果打印出来,读者可自己上机运行该程序观察结果。

图6-41 一维离散小波变换dwt

在matlab中cwt函数可以用mexihat小波,morlet小波吗

c = cwt(tnt,1:10,'morl','plot');%Morlet wavelet.

c = cwt(tnt,1:10,'mexh','plot');%Mexican hat wavelet

我想用多贝西小波对有奇异点的信号进行分析,然后提取奇异点发生的时间点信息,用C语言怎么写

(1)小波模极大值重构 MATLAB代码_天天向上_新浪博客

function

[signal,swa,swd,ddw,wpeak]=wave_peak(points,level,Lo_D,Hi_D,Lo_R,Hi_R,offset)

%

该函数用于读取ecg信号,找到小波变换模极大序列

warning off;

ecgdata=load('ecg.txt');

%需要分析的信号,自己加

plot(ecgdata(1:points)),grid on,axis

tight,axis([1,points,-50,300]);

signal=ecgdata(1:points)'+offset;

% 信号的小波变换,按级给出概貌和细节的波形

[swa,swd] =

swt(signal,level,Lo_D,Hi_D);

figure;

subplot(level,1,1);

plot(real(signal)); grid on;axis tight;

for i=1:level

subplot(level+1,2,2*(i)+1);

plot(swa(i,:)); axis

tight;grid on;xlabel('time');

ylabel(strcat('a

',num2str(i)));

subplot(level+1,2,2*(i)+2);

plot(swd(i,:)); axis

tight;grid on;

ylabel(strcat('d ',num2str(i)));

end

%求小波变换的模极大值及其位置

ddw=zeros(size(swd));

pddw=ddw;

nddw=ddw;

posw=swd.*(swd0);

pdw=((posw(:,1:points-1)-posw(:,2:points))0);

pddw(:,2:points-1)=((pdw(:,1:points-2)-pdw(:,2:points-1))0);

negw=swd.*(swd0);

ndw=((negw(:,1:points-1)-negw(:,2:points))0);

nddw(:,2:points-1)=((ndw(:,1:points-2)-ndw(:,2:points-1))0);

ddw=pddw|nddw;

ddw(:,1)=1;

ddw(:,points)=1;

wpeak=ddw.*swd;

wpeak(:,1)=wpeak(:,1)+1e-10;

wpeak(:,points)=wpeak(:,points)+1e-10;

%按级给出小波变换模极大的波形

figure;

for i=1:level

subplot(level,1,i);

plot(wpeak(i,:)); axis tight;grid

on;

ylabel(strcat('j= ',num2str(i)));

end

注:运行此程序时一定要将待处理信号添加进去,程序中的红色部分。

追问:

ecgdata=load('ecg.txt');


网页标题:关于c语言实现cwt函数的信息
文章起源:http://pwwzsj.com/article/hegopo.html