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

📄 comp_igdgt.m

📁 Matlab时频分析工具箱,希望能对大家有所帮助啊
💻 M
字号:
function f=comp_igdgt(c,g,a,M,L,c_t,c_f,c_w,timeinv)%COMP_IGDGT  Compute IGDGT%   Usage:  f=comp_igdgt(c,g,a,M,L,c_t,c_f,c_w,timeinv);%%   Input parameters:%         c     : Array of coefficients.%         g     : Window function.%         a     : Length of time shift.%         M     : Number of modulations.%         L     : length of transform.%         c_t     : Centering in time of modulation.%         c_f     : Centering in frequency of modulation.%         c_w     : Centering in time of window.%         timeinv : Should we compute a time invariant Gabor system.%%   Output parameters:%         f     : Signal.%% 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.b=L/M;N=L/a;Lwindow=size(g,1);W=size(c,3);% Pre-process if c_t is different from 0.if (c_t~=0)  halfmod=repmat(exp(2*pi*i*c_t*((0:M-1)+c_f).'/M),1,N*W);  % The following is necessary because REPMAT does not work for  % 3D arrays.  halfmod=reshape(halfmod,M,N,W);      c=c.*halfmod;end;% Eventual phaselockingif timeinv  c=reshape(c,M,N*W);  c=iphaselock(c,a);  c=reshape(c,M,N,W);end;% Apply ifft to the coefficients.c=ifft(reshape(c,M,N*W))*sqrt(M);if L==Lwindow  % Do full-window algorithm.  % Get the factorization of the window.  gf = comp_wfac(g,a,M);        % Call the computational subroutine.  f  = comp_idgt_fac(c,gf,L,a,M);else  % Do filter bank algorithm.  % Call the computational subroutine.  f=comp_idgt_fb(c,g,L,a,M);end;% Postprocess to handle c_f different from 0.if (c_f~=0)  halfmod=exp(2*pi*i*c_f*(0:L-1).'/M);  f=f.*repmat(halfmod,1,W);end;

⌨️ 快捷键说明

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