小波变换python函数 小波变换matlab算法代码

python如何实现类似matlab的小波滤波?

T=wpdec(y,5,'db40');

网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、成都小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了迪庆州免费建站欢迎大家使用!

%信号y进行波包解层数5T波树plot看

a10=wprcoef(T,[1,0]);

%a10节点[1,0]进行重构信号貌似没层重构说吧能某层某节点进行重构节点编号波树

%以下为滤波程序(主要调节参数c的大小)

c=10;

wn=0.1;

fs=50000; %采样频率;

b=fir1(c,wn/(fs/2),hamming(c+1));

y1=filtfilt(b,1,y);%对y滤波。

一维连续小波变换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

小波变换

我给你大概标注了一下,但是你的程序有问题,

% 小波图像压缩 - RGB 图像

clear all;

close all;

% 读取图像

im = input('输入图像');%输入图像名称,要加分号

X=imread(im);

% 输入要分解的小波层数和小波

n=input('输入要分解的小波层数');%输入所要分解的层数

wname = input('输入小波名称');%输入小波名称,也要加分号

x = double(X);

NbColors = 255;

map = gray(NbColors);

x = uint8(x);

%把RGB图像转换成灰度图

% x = double(X);

% xrgb = 0.2990*x(:,:,1) + 0.5870*x(:,:,2) + 0.1140*x(:,:,3);

% colors = 255;

% x = wcodemat(xrgb,colors);

% map = pink(colors);

% x = uint8(x);

% 对图像x进行n维小波分解

[c,s] = wavedec2(x,n,wname);

% 使用默认参数选择各层不同的阈值

alpha = 1.5; m = 2.7*prod(s(1,:));

[thr,nkeep] = wdcbm2(c,s,alpha,m)

% 使用上面的阈值和硬阈值处理进行图像压缩

[xd,cxd,sxd,perf0,perfl2] = wdencmp('lvd',c,s,wname,n,thr,'h');

disp('压缩效率');

disp(perf0);

% 重构(下面这个地方有问题,你这里是原始图像小波变换后进行重构,xd才是小波阀值压缩后重构的图像,cxd,sxd,是c,s经过阀值处理后得到的小波分解结构,也就是说xd=waverec2(cxd,sxd,wname);这个wdencmp函数不需要另外进行重构,你下面那些关于重构的都没用,而下面压缩后的图像才是重构后的图像,)

R = waverec2(c,s,wname);

rc = uint8(R);

% 显示原始图像和压缩图像

subplot(221), image(x);

colormap(map);

title('原始图像')

subplot(222), image(xd);

colormap(map);

title('压缩后的图像')

% 显示结果

xlab1 = ['图像压缩后保留能量百分比',num2str(perfl2)];

xlab2 = ['小波阀值压缩后置零系数百分比 ',num2str(perf0), ' %'];

xlabel([xlab1 xlab2]);

subplot(223), image(rc);

colormap(map);

title('重构图像');

%计算图像大小

disp('原始图像');

imwrite(x,'original.tif');%将图像x保存为original.tif,下同

imfinfo('original.tif')%显示图片original.tif详细信息,下同

disp('压缩后的图像');

imwrite(xd,'compressed.tif');

imfinfo('compressed.tif')

disp('重构后的图像');

imwrite(rc,'decompressed.tif');

imfinfo('decompressed.tif')

小波变换是啥意思?

小波变换(WT,Wavelet Transform)是用小波函数族ya,b(t)按不同尺度对函数f(t)ÎL2 (R) 进行的一种线性分解运算:

对应的逆变换为:

小波变换有如下性质:

(1)小波变换是一个满足能量守恒方程的线形运算,它把一个信号分解成对空间和尺度(即时间和频率)的独立贡献,同时又不失原信号所包含的信息;

(2)小波变换相当于一个具有放大、缩小和平移等功能的数学显微镜,通过检查不同放大倍数下信号的变化来研究其动态特性;

(3)小波变换不一定要求是正交的,小波基不惟一。小波函数系的时宽-带宽积很小,且在时间和频率轴上都很集中,即展开系数的能量很集中;

(4)小波变换巧妙地利用了非均匀的分辨率,较好地解决了时间和频率分辨率的矛盾;在低频段用高的频率分辨率和低的时间分辨率(宽的分析窗口),而在高频段则用低的频率分辨率和高的时间分辨率(窄的分析窗口),这与时变信号的特征一致;

(5)小波变换将信号分解为在对数坐标中具有相同大小频带的集合,这种以非线形的对数方式而不是以线形方式处理频率的方法对时变信号具有明显的优越性;

(6)小波变换是稳定的,是一个信号的冗余表示。由于a、b是连续变化的,相邻分析窗的绝大部分是相互重叠的,相关性很强;

(7)小波变换同傅立叶变换一样,具有统一性和相似性,其正反变换具有完美的对称性。小波变换具有基于卷积和QMF的塔形快速算法。

python里的问题 ,pywt.dwt(signal,'db1','sym')这个函数

噪声能获取吗?好吧。你可以试试减一减。不过你的测试用例不太对。 尽量用有规律的数据去做。

比如你可以做一个正弦函数,再人为的加上一点点扰动。再做小波变换看看。另外数据要多些。太短的数据看不出效果来。

至于变换后是两个4,我想等你数据弄多些就明白了。 数据多些,就容易做图。你把变换后的数据变成图形,画出来。可以用EXCEL来画。

这样一对比就明白变换后的两个4数组是什么数据。 然后你就可以针对性的处理。取得噪声也是可以的。

通常来讲噪声是没有规律的。 但是不排除它是另外一种规律迭加上去的。 试试看。

一维连续小波变换

傅立叶分析是将信号分解成不同频率的正弦波,而小波分析则将信号分解为原小波函数在不同位移和尺度下的小波。傅立叶变换的表达式为

环渤海湾西部石炭系—二叠系层序地层及聚煤作用研究

实际上是求信号f(t)在函数e-jax上的投影值是多少,变换的结果为傅立叶系数,将这些系数乘上j-jax,然后叠加起来,就得到了原来的信号值。

类似于傅立叶变换,小波变换是求信号f(t)在各小波函数上的投影值。由于每个小波函数均由一个母小波函数经过尺度伸缩与时间平移得来的。因此,小波变换可以写成如下形式:

C(scale,time—position)=∫f(τ)Ψ(scale,τ)dτ

将上面得到的每一个系数同相应经过伸缩和平移后的小波函数相乘并叠加就可以恢复出原始信号。其中尺度伸缩是指在时间轴上对信号进行压缩和伸展,时间平移是指小波函数在时间轴上波形的平行移动。

4.1.2.1 小波变换运算步骤

连续的小波变换运算分为5个基本步骤:

第一步:选择一个小波函数,将其与要分析的信号起始点对齐。

第二步:计算在这一时刻要分析的信号与小波函数的逼近程度,即计算小波变换系数C,C表示小波与所取一节信号的相似程度,C越大,相似性越强,计算结果取决于所选小波的形状。如果信号和小波的能量均为1,C可解释为相关系数(图4.1)。

图4.1 小波运算步骤2Fig.4.1 Step 2 of wavelett ransformation

第三步:将小波函数沿时间轴向右移动一个单位时间,重复第一步和第二步,求出此时的小波变换系数C,直至覆盖整个信号长度(图4.2)。

图4.2 小波运算步骤3Fig.4.2 Step 3 of wavelett ransformation

第四步:将所选择的小波函数伸缩一个单位,重复第一步至第三步(图4.3)。

图4.3 小波运算步骤4Fig.4.3 Step 4 of wavelett ransformation

第五步:对于所有尺度,重复第一步至第四步。

进行完上述步骤,将得到使用不同的尺度评估信号在不同的时间段上的大量系数。这些系数表征了原始信号在这些小波函数上的投影的大小。

4.1.2.2 小波变换的尺度与频率的关系

小波变换的尺度越大,意味着小波函数在时间上越长,即被分析的信号区间也就越长。因此,尺度越大意味着频率的分辨率就越低,主要获取的是信号的低频特性。反之,尺度越小,意味着只与信号非常小的局部进行比较,因此主要获取的是系统的高频成分。因此,尺度和频率之间的关系可以归纳如下:

·小尺度→压缩的小波→快速变换的细节→高频成分

·大尺度→拉伸的小波→快速变换的粗部→低频成分


文章标题:小波变换python函数 小波变换matlab算法代码
网页地址:http://ybzwz.com/article/dodjegs.html