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

📄 idwilt.m

📁 Matlab时频分析工具箱,希望能对大家有所帮助啊
💻 M
字号:
function [f]=idwilt(c,g,Ls)%IDWILT  Inverse discrete Wilson transform.%   Usage:  f=idwilt(c,g);%           f=idwilt(c,g,Ls);%%   Input parameters:%         c     : M*N array of coefficients.%         g     : Window function.%         Ls    : Final length of function (optional)%   Output parameters:%         f     : Input data%%   IDWILT(c,g) computes an inverse discrete Wilson transform with window g.%   The number of channels is deduced from the size of the coefficient array c.%%   The window g may be a text string decribing the window. The following%   types are recognized% %   'gauss'     - Gaussian window.%%   'dualgauss' - Canonical dual of Gaussian window.%%   'tight'     - Tight window generated from a Gaussian.%%   'sqrthann'  - Square root of Hanning window. This is a tight, FIR%                 window.  % %   IDWILT(f,g,Ls) does the same, but cuts of zero-extend the final%   result to length Ls.%%   SEE ALSO:  DWILT, DGT, WILORTH%%   REFERENCES:%     H. Bölcskei, H. G. Feichtinger, K. Gröchenig, and F. Hlawatsch.%     Discrete-time Wilson expansions. In Proc. IEEE-SP 1996 Int. Sympos.%     Time-Frequency Time-Scale Analysis, june 1996.%     %     Y.-P. Lin and P. Vaidyanathan. Linear phase cosine modulated maximally%     decimated filter banks with perfect reconstruction.%     IEEETrans.SignalProcess., 43(11):2525-2539, 1995.% This program is free software: you can redistribute it and/or modify% it under the terms of the GNU General Public License as published by% the Free Software Foundation, either version 3 of the License, or% (at your option) any later version.% % This program is distributed in the hope that it will be useful,% but WITHOUT ANY WARRANTY; without even the implied warranty of% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the% GNU General Public License for more details.% % You should have received a copy of the GNU General Public License% along with this program.  If not, see <http://www.gnu.org/licenses/>.%   Author : Peter Soendergaard.error(nargchk(2,3,nargin));wasrow=0;if isnumeric(g)  if size(g,2)>1    if size(g,1)>1      error('g must be a vector');    else      % g was a row vector.      g=g(:);            % If the input window is a row vector, and the dimension of c is      % equal to two, the output signal will also      % be a row vector.      if ndims(c)==2        wasrow=1;      end;          end;  end;end;M=size(c,1)/2;N=2*size(c,2);W=size(c,3);a=M;L=M*N;assert_L(L,size(g,1),L,a,2*M,'IDWILT');g=comp_window(g,a,2*M,L,1,'IDWILT');c=comp_idwilt(reshape(c,M*N,W),a,M);f=comp_idgt(c,g,a,2*M,L);% Check if Ls was specified.if nargin==3  f=postpad(f,Ls);else  Ls=L;end;f=comp_sigreshape_post(f,Ls,wasrow,[0; W]);% Clean signal if it is known to be real% If input is real, and window is real, output must be real as well.if (isreal(g) && isreal(c));  f=real(f);end;    

⌨️ 快捷键说明

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