Daubechies discrete wavelet transform
源代码在线查看: daubechies_discrete_wavelet.m
% 此程序实现构造小波基
% periodic_wavelet.m
function ss=periodic_wavelet;
clear;clc;
% global MOMENT; % 消失矩阶数
% global LEFT_SCALET; % 尺度函数左支撑区间
% global RIGHT_SCALET; % 尺度函数右支撑区间
% global LEFT_BASIS; % 小波基函数左支撑区间
% global RIGHT_BASIS; % 小波基函数右支撑区间
% global MIN_STEP; % 最小离散步长
% global LEVEL; % 计算需要的层数(离散精度)
% global MAX_LEVEL; % 周期小波最大计算层数
[s2,h]=scale_integer;
[test,h]=scalet_stretch(s2,h);
wave_base=wavelet(test,h);
ss=periodic_waveletbasis(wave_base);
function [s2,h]=scale_integer;
% 本函数实现求解小波尺度函数离散整数点的值
% sacle_integer.m
MOMENT=10; % 消失矩阶数
LEFT_SCALET=0; % 尺度函数左支撑区间
RIGHT_SCALET=2*MOMENT-1; % 尺度函数右支撑区间
LEFT_BASIS=1-MOMENT; % 小波基函数左支撑区间
RIGHT_BASIS=MOMENT; % 小波基函数右支撑区间
MIN_STEP=1/512; % 最小离散步长
LEVEL=-log2(MIN_STEP); % 计算需要的层数(离散精度)
MAX_LEVEL=8; % 周期小波最大计算层数
h=wfilters('db10','r'); % 滤波器系数
h=h*sqrt(2); % FI(T)=SQRT(2)*SUM(H(N)*FI(2T-N)) N=0:2*MOMENT-1;
for i=LEFT_SCALET+1:RIGHT_SCALET-1
for j=LEFT_SCALET+1:RIGHT_SCALET-1
k=2*i-j+1;
if (k>=1&k a(i,j)=h(k); % 矩阵系数矩阵
else
a(i,j)=0;
end
end
end