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

📄 psech.m

📁 Matlab时频分析工具箱,希望能对大家有所帮助啊
💻 M
字号:
function [g,tfr]=psech(L,tfr)%PSECH  Sampled, periodized hyperbolic secant.%   Usage: g=psech(L);%          g=psech(L,tfr);% %   Input parameters:%        L : Length of vector.%      tfr : ratio between time and frequency support.%   Output parameters:%        g : The periodized Gaussian(s).%%   PSECH(L,tfr) computes samples of a periodized hyperbolic secant.%   The function returns a regular sampling of the periodization%   of the function sech(pi*x)%%   The returned function has norm == 1.%%   The parameter tfr determines the ratio between the effective%   support of g and the effective support of the DFT of g. If tfr>1 then%   g has a wider support than the DFT of g.%%   PSECH(L) does the same setting tfr=1.%%   The function is whole-point even.  This implies that FFT(PSECH(L,tfr))%   is real for any L and tfr.%%   If this function is used to generate a window for a Gabor frame, then%   the window giving the smalles frame bound ratio is generated by%   PSECH(L,a*M/L);% %   SEE ALSO:  PGAUSS, PBSPLINE, PHERM% %   REFERENCES:%     A. J. E. M. Janssen and T. Strohmer. Hyperbolic secants yield Gabor%     frames. Appl.Comput.Harmon.Anal., 12(2):259-267, 2002.%     % 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/>.error(nargchk(1,2,nargin));if nargin==1  tfr=1;end;if size(L,1)>1 || size(L,2)>1  error('L must be a scalar');end;if rem(L,1)~=0  error('L must be an integer.')end;% Parse tfr and order.if sum(1-(size(tfr)==1))>1  error('tfr must be a scalar or vector');end;safe=12;g=zeros(L,1);sqrtl=sqrt(L);w=tfr;% Outside the interval [-safe,safe] then sech(pi*x) is numerically zero.nk=ceil(safe/sqrt(L/sqrt(w)));lr=(0:L-1).';for k=-nk:nk    g=g+sech(pi*(lr/sqrtl-k*sqrtl)/sqrt(w));end;% Normalize it.g=g*sqrt(pi/(2*sqrt(L*w)));

⌨️ 快捷键说明

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