⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prep1d_appe.m

📁 多小波matlab程序包
💻 M
字号:
function fp=prep1D_appe(f,pflt)
%fp=prep1D_appe(f,pflt)
%
%  This function performs critically sampled preprocessing of given 
%  1-dimensional signal. Boundaries are handled by periodic extension.
%  For description of the algorithm see [SW] //对于边界是周期扩张
%
%  appe: 这是逼近预滤波;这个函数与postp1D_appe.m共同使用;
%
%  Input:
%    pflt       string of characters, name of the prefilter;
%               for possible names and short descriptions see coef_prep.m
%    f          1 by n real array, input data; //1-D输入信号
%
%    n          n must be of the form r*integer*2^maxlevel, //输入信号的长度
%    r          r is the number of scaling functions,//尺度函数的个数
%    maxlevel   maxlevel is the number of levels of multiwavelet transform //多小波分解的层数
%
%  Output:  
%    fp         r by n/r real array, preprocessed signal;
%               each row corresponds to a scaling function 
%
%  Example of Usage:
%    fp=prep1D_appe(f,'clap')

% Author: Vasily Strela
% COPYRIGHT 1997,98 by Vasily Strela

[PR,PO]=coef_prep(pflt); %% 得到预滤波矩阵

n=length(f);

[nf,np]=size(PR);
np=np/nf;

fs=zeros(nf,round(n/nf));
for i=1:round(n/nf)
  for j=1:nf
    fs(j,i)=f(nf*(i-1)+j);
  end
end

fp=zeros(nf,round(n/nf));
for i=1:round(n/nf)-np+1
  for j=1:np
    fp(:,i)=fp(:,i)+PR(:,nf*(j-1)+1:nf*j)*fs(:,i+j-1);
  end
end

for i=round(n/nf)-np+2:round(n/nf)
  for j=1:np
    if i+j-1>round(n/nf)
      fp(:,i)=fp(:,i)+PR(:,nf*(j-1)+1:nf*j)*fs(:,i+j-1-round(n/nf));
    else
      fp(:,i)=fp(:,i)+PR(:,nf*(j-1)+1:nf*j)*fs(:,i+j-1);
    end
  end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -