
正文
python调用小波函数,python做小波分析
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Python的pywavelet如何实现 matlab的小波算法系数重构的信号,matlab算法如下
pywt.waverec(coeffs, wavelet, mode='symmetric', axis=-1)
It may sometimes be desired to run waverec with some sets of coefficients omitted. This can best be done by setting the corresponding arrays to zero arrays of matching shape and dtype. Explicitly removing list entries or setting them to None is not supported.
Specifically, to ignore detail coefficients at level 2, one could do:
coeffs[-2] = np.zeros_like(coeffs[-2])
##################################################################
coeffs=pywt.wavedec(data_current,'db6',level=3)
for i in range(1,4):
coeffs[i] = np.zeros_like(coeffs[i])
A3 = pywt.waverec(coeffs, 'db6')
相关问答
Q1: 计算小波函数和尺度函数wavefun调用方式
(1)[Phi,Psi,Xval]=wavefun(‘wname’,iter);
(2)[Phi1,Psil,Phi2,Psi2,Xval]=wavefun(‘wname’,iter);
(3)[Psi,Xval]=wavefun(‘wname’,iter);
(4)wavefun(‘wname’,a,b)。
说明:该函数用来返回小波函数ψ和相应的尺度函数φ(在尺度函数存在的情况下)的近似值。正整数iter决定了反复计算的次数,从而确定了近似值的精确程度。
对于一个正交小波,格式(1)返回尺度函数和小波函数,X在支撑区间上有2iter个点。
对于一个双正交小波,格式(2)返回分别用于分解的尺度函数(φ1)和小波函数(ψ1)及重构的尺度函数(φ2)和小波函数(ψ2)。
对于一个Meyer小波,有:[Phi,psi,Xval]=(‘wname’,iter)。
对于一个Morlet小波或Mexican Hat小波,有[psi,Xval]=(‘wname’,iter)。
对于格式(4),a、b是正整数,且格式(4)等价于wavefun(‘wname’,max(a,b))。它计算尺度函数和小波函数的近似值并画出图形。
下面给出调用wavefun的实例,小波函数为SymletsA(symN)。Symlets函数系是由Dau-bechies提出的近似对称的小波函数,它是对Daubechies(dbN)小波函数的一种改进,Sym-lets函数系通常表示为symN(N=2,3,…,10),而Daubechies函数系通常表示为dbN(N=2,3,…,10)。
[例6-2]clear,clc;
iter=10;wav=‘sym4’;%设置小波的名字和计算的次数
%下面用叠代算法计算小波函数ψ的近似值并画出波形图
figure(1),clf;subplot(211)
for I=1:iter
图6-38 小波函数sym4
[phi,psi,Xval]=wavefun(wav,I);
plot(Xval,psi,‘k’,‘linewidth’,1);
hold on
end
title(‘小波函数sym4的近似值(iter从1到10)’);
hold off
Q2: 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滤波。






