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

📄 wavelet_rec.m

📁 这是 <<现代信号处理>>(胡广书)里的所有 matlab源代码.
💻 M
字号:
function recsignal = wavelet_rec(deccoef,scales,wavelet)
%----------------------------------------------------------------------
% wavelet_rec.m, 函数子程序,用于多分辨率分析中的重建,使用  A'trous 算法;
%----------------------------------------------------------------------
[coefnum,coeflength] = size(deccoef);
A0 = deccoef(coefnum,:);
[Lo_D,Hi_D,Lo_R,Hi_R] = wfilters(wavelet);
Lo_D = Lo_D(find(Lo_D));
Hi_D = Hi_D(find(Hi_D));
Lo_R = Lo_R(find(Lo_R));
Hi_R = Hi_R(find(Hi_R));
Lo_Rlength = length(Lo_R);
Hi_Rlength = length(Hi_R);

j = scales;
interval = 2^(j)-1;
   Lo_Rtemp = zeros(1,Lo_Rlength+interval*(Lo_Rlength-1));
   Lo_Rtemp(1) = Lo_R(1);
   for k = 2:Lo_Rlength
      Lo_Rtemp((k-1)*(interval+1)+1)=Lo_R(k);
   end
   
   Hi_Rtemp = zeros(1,Hi_Rlength+interval*(Hi_Rlength-1));
   Hi_Rtemp(1) = Hi_R(1);
   for k = 2:Hi_Rlength
      Hi_Rtemp((k-1)*(interval+1)+1)=Hi_R(k);
   end
   Lo_R = Lo_Rtemp;
   Hi_R = Hi_Rtemp;
   Lo_Rlength = length(Lo_R);
   Hi_Rlength = length(Hi_R);

   while j > 0
      D0 = deccoef(j,:);
      Dtemp = conv(Hi_R,D0);
      Atemp = conv(Lo_R,A0);
      A = wkeep(Atemp,coeflength);
      D = wkeep(Dtemp,coeflength);
      A0 = (A+D)/2;
      Lo_Rtemp = Lo_R(1:2:Lo_Rlength);
      Hi_Rtemp = Hi_R(1:2:Hi_Rlength);
      Lo_R = Lo_Rtemp;
      Hi_R = Hi_Rtemp;
      Lo_Rlength = length(Lo_R);
      Hi_Rlength = length(Hi_R);
      j=j-1;
   end
   recsignal = A0;

⌨️ 快捷键说明

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