gusucode.com > 语音信号处理工具箱 - Voicebox源码程序 > Voicebox\windowx.m
function [v,bw] = windowx(nbw,n,b,z) %WINDOWX Generate ordinates for WINDOW() % return value is a vector equal to (A:B:C)'/D % z = 1 if window goes to zero, else z=0 and modes 0 & 4 become 1 & 5 % % Window Function % % b1 b2 b3 A B C D ----====::::####<<<<$>>>>####::::====---- % % 0 0 0 1-m 2 m-1 n+1 - * * * * * * * * * - % 0 0 1 1-m 2 m-1 n-1 * * * * * * * * * * * % 0 1 0 1-m 2 m-1 n * * * * * * * * * * % 0 1 1 -m 2 m-2 n * * * * * * * * * * % 1 0 0 0 1 m-1 n * * * * * - % 1 0 1 0 1 m-1 n-1 * * * * * * % % Mike Brookes, Imperial College April 1995 % Copyright (C) Mike Brookes 2002 % % Last modified Mon Jan 7 13:59:37 2002 % % VOICEBOX is a MATLAB toolbox for speech processing. Home page is at % http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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 2 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 can obtain a copy of the GNU General Public License from % ftp://prep.ai.mit.edu/pub/gnu/COPYING-2.0 or by writing to % Free Software Foundation, Inc.,675 Mass Ave, Cambridge, MA 02139, USA. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% b1=b(1);b2=b(2);b3=b(3); kb=2-b1; if n<1, bw=n; n=kb*nbw/n+1-b2; kd=n+b2-1; m=floor(n); else m=floor(n); if n>m, z=0; end; kd=n+(1-b2)*(z*(1-b3)*kb-1); bw=kb*nbw/kd;end; v = ((b1-1)*(m-1)-b2*b3:kb:m-1-b2*b3)'/kd;