matlab小波变换

1. 离散傅立叶变换的 Matlab实现

      Matlab 函数 fft、fft2 和 fftn 分别可以实现一维、二维和 N 维 DFT 算法;而函数 ifft、ifft2 和 ifftn 则用来计算反 DFT 。这些函数的调用格式如下:
         A=fft(X,N,DIM)
      其中,X 表示输入图像;N 表示采样间隔点,如果 X 小于该数值,那么 Matlab 将会对 X 进行零填充,否则将进行截取,使之长度为 N ;DIM 表示要进行离散傅立叶变换。

        A=fft2(X,MROWS,NCOLS)
其中,MROWS 和 NCOLS 指定对 X 进行零填充后的 X 大小。

        A=fftn(X,SIZE)
其中,SIZE 是一个向量,它们每一个元素都将指定 X 相应维进行零填充后的长度。

      函数 ifft、ifft2 和 ifftn的调用格式于对应的离散傅立叶变换函数一致。

例子:图像的二维傅立叶频谱

% 读入原始图像
I=imread('lena.bmp');
imshow(I)
% 求离散傅立叶频谱
J=fftshift(fft2(I));
figure;
imshow(log(abs(J)),[8,10])


2. 离散余弦变换的 Matlab 实现

2.1. dct2 函数
功能:二维 DCT 变换
格式:B=dct2(A)
        B=dct2(A,m,n)
        B=dct2(A,[m,n])
说明:B=dct2(A) 计算 A 的 DCT 变换 B ,A 与 B 的大小相同;B=dct2(A,m,n) 和 B=dct2(A,[m,n]) 通过对 A 补 0 或剪裁,使 B 的大小为 m×n。

2.2. dict2 函数
功能:DCT 反变换
格式:B=idct2(A)
        B=idct2(A,m,n)
        B=idct2(A,[m,n])
说明:B=idct2(A) 计算 A 的 DCT 反变换 B ,A 与 B 的大小相同;B=idct2(A,m,n) 和 B=idct2(A,[m,n]) 通过对 A 补 0 或剪裁,使 B 的大小为 m×n。

2.3. dctmtx函数
功能:计算 DCT 变换矩阵
格式:D=dctmtx(n)
说明:D=dctmtx(n) 返回一个 n×n 的 DCT 变换矩阵,输出矩阵 D 为 double 类型。


3. 图像小波变换的 Matlab 实现

3.1 一维小波变换的 Matlab 实现
(1) dwt 函数
功能:一维离散小波变换
格式:[cA,cD]=dwt(X,'wname')
        [cA,cD]=dwt(X,Lo_D,Hi_D)
说明:[cA,cD]=dwt(X,'wname') 使用指定的小波基函数 'wname' 对信号X 进行分解,cA、cD 分别为近似分量和细节分量;[cA,cD]=dwt(X,Lo_D,Hi_D) 使用指定的滤波器组 Lo_D、Hi_D 对信号进行分解。
(2) idwt 函数
功能:一维离散小波反变换
格式:X=idwt(cA,cD,'wname')
        X=idwt(cA,cD,Lo_R,Hi_R)
        X=idwt(cA,cD,'wname',L)
        X=idwt(cA,cD,Lo_R,Hi_R,L)
说明:X=idwt(cA,cD,'wname') 由近似分量 cA 和细节分量 cD 经小波反变换重构原始信号 X 。
        'wname' 为所选的小波函数
        X=idwt(cA,cD,Lo_R,Hi_R) 用指定的重构滤波器 Lo_R 和 Hi_R 经小波反变换重构原始信号 X 。
        X=idwt(cA,cD,'wname',L) 和 X=idwt(cA,cD,Lo_R,Hi_R,L) 指定返回信号 X 中心附近的 L 个点。

3.2 二维小波变换的 Matlab 实现

          二维小波变换的函数
-------------------------------------------------
     函数名                函数功能
---------------------------------------------------
     dwt2            二维离散小波变换
   wavedec2       二维信号的多层小波分解
     idwt2           二维离散小波反变换
   waverec2        二维信号的多层小波重构
   wrcoef2          由多层小波分解重构某一层的分解信号
   upcoef2          由多层小波分解重构近似分量或细节分量
   detcoef2         提取二维信号小波分解的细节分量
   appcoef2        提取二维信号小波分解的近似分量
   upwlev2         二维小波分解的单层重构
   dwtpet2         二维周期小波变换
   idwtper2        二维周期小波反变换
-------------------------------------------------------------

(1) wcodemat 函数
功能:对数据矩阵进行伪彩色编码
格式:Y=wcodemat(X,NB,OPT,ABSOL)
        Y=wcodemat(X,NB,OPT)
        Y=wcodemat(X,NB)
        Y=wcodemat(X)
说明:Y=wcodemat(X,NB,OPT,ABSOL) 返回数据矩阵 X 的编码矩阵 Y ;NB 伪编码的最大值,即编码范围为 0~NB,缺省值 NB=16;
       OPT 指定了编码的方式(缺省值为 'mat'),即:
                 OPT='row' ,按行编码
                 OPT='col' ,按列编码
                 OPT='mat' ,按整个矩阵编码
       ABSOL 是函数的控制参数(缺省值为 '1'),即:
                 ABSOL=0 时,返回编码矩阵
                 ABSOL=1 时,返回数据矩阵的绝对值 ABS(X)

(2) dwt2 函数
功能:二维离散小波变换
格式:[cA,cH,cV,cD]=dwt2(X,'wname')
        [cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D)
说明:[cA,cH,cV,cD]=dwt2(X,'wname')使用指定的小波基函数 'wname' 对二维信号 X 进行二维离散小波变幻;cA,cH,cV,cD 分别为近似分量、水平细节分量、垂直细节分量和对角细节分量;[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D) 使用指定的分解低通和高通滤波器 Lo_D 和 Hi_D 分解信号 X 。

(3) wavedec2 函数
功能:二维信号的多层小波分解
格式:[C,S]=wavedec2(X,N,'wname')
        [C,S]=wavedec2(X,N,Lo_D,Hi_D)
说明:[C,S]=wavedec2(X,N,'wname') 使用小波基函数 'wname' 对二维信号 X 进行 N 层分解;[C,S]=wavedec2(X,N,Lo_D,Hi_D) 使用指定的分解低通和高通滤波器 Lo_D 和 Hi_D 分解信号 X 。

(4) idwt2 函数
功能:二维离散小波反变换
格式:X=idwt2(cA,cH,cV,cD,'wname')
        X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R)
        X=idwt2(cA,cH,cV,cD,'wname',S)
        X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S)
说明:X=idwt2(cA,cH,cV,cD,'wname') 由信号小波分解的近似信号 cA 和细节信号 cH、cH、cV、cD 经小波反变换重构原信号 X ;X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R) 使用指定的重构低通和高通滤波器 Lo_R 和 Hi_R 重构原信号 X ;X=idwt2(cA,cH,cV,cD,'wname',S) 和 X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S) 返回中心附近的 S 个数据点。

(5) waverec2 函数
说明:二维信号的多层小波重构
格式:X=waverec2(C,S,'wname')
        X=waverec2(C,S,Lo_R,Hi_R)
说明:X=waverec2(C,S,'wname') 由多层二维小波分解的结果 C、S 重构原始信号 X ,'wname' 为使用的小波基函数;X=waverec2(C,S,Lo_R,Hi_R) 使用重构低通和高通滤波器 Lo_R 和 Hi_R 重构原信号。

Allnodes   计算树结点  
  appcoef   提取一维小波变换低频系数  
  appcoef2   提取二维小波分解低频系数  
  bestlevt   计算完整最佳小波包树  
  besttree   计算最佳(优)树  
*  biorfilt   双正交样条小波滤波器组  
  biorwavf   双正交样条小波滤波器  
*  centfrq   求小波中心频率  
  cgauwavf   Complex Gaussian小波  
  cmorwavf   coiflets小波滤波器  
  cwt   一维连续小波变换  
  dbaux   Daubechies小波滤波器计算  
  dbwavf   Daubechies小波滤波器   dbwavf(W)    W='dbN'   N=1,2,3,...,50  
  ddencmp   获取默认值阈值(软或硬)熵标准  
  depo2ind   将深度-位置结点形式转化成索引结点形式  
  detcoef   提取一维小波变换高频系数  
  detcoef2   提取二维小波分解高频系数  
  disp   显示文本或矩阵  
  drawtree   画小波包分解树(GUI)  
  dtree   构造DTREE类  
  dwt   单尺度一维离散小波变换  
  dwt2   单尺度二维离散小波变换  
  dwtmode   离散小波变换拓展模式  
*  dyaddown   二元取样  
*  dyadup   二元插值  
  entrupd   更新小波包的熵值  
  fbspwavf   B样条小波  
  gauswavf   Gaussian小波  
  get   获取对象属性值  
  idwt   单尺度一维离散小波逆变换  
  idwt2   单尺度二维离散小波逆变换  
  ind2depo   将索引结点形式转化成深度—位置结点形式  
*  intwave   积分小波数  
  isnode   判断结点是否存在   
  istnode   判断结点是否是终结点并返回排列值  
  iswt   一维逆SWT(Stationary Wavelet Transform)变换  
  iswt2   二维逆SWT变换  
  leaves     Determine terminal nodes
  mexihat   墨西哥帽小波  
  meyer   Meyer小波  
  meyeraux   Meyer小波辅助函数  
  morlet   Morlet小波  
  nodease   计算上溯结点  
  nodedesc   计算下溯结点(子结点)  
  nodejoin   重组结点  
  nodepar   寻找父结点  
  nodesplt   分割(分解)结点  
  noleaves     Determine nonterminal nodes
  ntnode     Number of terminal nodes
  ntree     Constructor for the class NTREE
*  orthfilt   正交小波滤波器组  
  plot   绘制向量或矩阵的图形  
*  qmf   镜像二次滤波器  
  rbiowavf     Reverse biorthogonal spline wavelet filters
  read   读取二进制数据  
  readtree   读取小波包分解树  
*  scal2frq     Scale to frequency
  set    
  shanwavf     Shannon wavelets
  swt   一维SWT(Stationary Wavelet Transform)变换  
  swt2   二维SWT变换  
  symaux     Symlet wavelet filter computation.
  symwavf   Symlets小波滤波器  
  thselect   信号消噪的阈值选择  
  thodes     References
  treedpth   求树的深度  
  treeord   求树结构的叉数   
  upcoef   一维小波分解系数的直接重构  
  upcoef2   二维小波分解系数的直接重构  
  upwlev   单尺度一维小波分解的重构  
  upwlev2   单尺度二维小波分解的重构  
  wavedec   单尺度一维小波分解  
  wavedec2   多尺度二维小波分解  
  wavedemo   小波工具箱函数demo  
*  wavefun   小波函数和尺度函数  
*  wavefun2   二维小波函数和尺度函数  
  wavemenu   小波工具箱函数menu图形界面调用函数  
*  wavemngr   小波管理函数  
  waverec   多尺度一维小波重构  
  waverec2   多尺度二维小波重构  
  wbmpen     Penalized threshold for wavelet 1-D or 2-D de-noising
  wcodemat   对矩阵进行量化编码  
  wdcbm     Thresholds for wavelet 1-D using Birge-Massart strategy
  wdcbm2    Thresholds for wavelet 2-D using Birge-Massart strategy
  wden   用小波进行一维信号的消噪或压缩  
  wdencmp    De-noising or compression using wavelets
  wentropy   计算小波包的熵  
  wextend    Extend a vector or a matrix
*  wfilters   小波滤波器  
  wkeep   提取向量或矩阵中的一部分  
*  wmaxlev   计算小波分解的最大尺度  
  wnoise   产生含噪声的测试函数数据  
  wnoisest   估计一维小波的系数的标准偏差  
  wp2wtree   从小波包树中提取小波树     
  wpcoef   计算小波包系数  
  wpcutree   剪切小波包分解树  
  wpdec   一维小波包的分解  
  wpdec2   二维小波包的分解  
  wpdencmp   用小波包进行信号的消噪或压缩  
  wpfun   小波包函数  
    wpjoin    重组小波包
  wprcoef   小波包分解系数的重构  
  wprec   一维小波包分解的重构  
  wprec2   二维小波包分解的重构  
  wpsplt   分割(分解)小波包  
  wpthcoef   进行小波包分解系数的阈值处理  
  wptree     显示小波包树结构
  wpviewcf     Plot the colored wavelet packet coefficients.
  wrcoef   对一维小波系数进行单支重构  
  wrcoef2   对二维小波系数进行单支重构  
  wrev   向量逆序  
  write   向缓冲区内存写进数据  
  wtbo     Constructor for the class WTBO
  wthcoef   一维信号的小波系数阈值处理  
  wthcoef2   二维信号的小波系数阈值处理  
  wthresh   进行软阈值或硬阈值处理  
  wthrmngr   阈值设置管理  
  wtreemgr   管理树结构

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值