(FILECREATED " 3-Jul-84 16:06:12" {ERIS}<SPEECH>SPECTRUM>KAISER.;4 5591   

      changes to:  (VARS KAISER8)
		   (FNS BESSEL0 KAISERWINDOWINIT)

      previous date: "30-Jun-84 14:19:49" {ERIS}<SPEECH>SPECTRUM>KAISER.;3)


(PRETTYCOMPRINT KAISERCOMS)

(RPAQQ KAISERCOMS ((FNS BESSEL0 KAISER KAISERWINDOWINIT)
		   (VARS KAISER6 KAISER8)))
(DEFINEQ

(BESSEL0
  [LAMBDA (X)                                                (* hdj "25-Jun-84 15:03")

          (* * computes the modified 0th-order Bessel for X between 0 and 20; due to Kaiser, as found in Rabiner and Gold p.
	  101)


    (for I from 1 to 25
       bind (E ← 1.0)
	    (DE ← 1.0)
       do (SETQ E (FPLUS E (EXPT [SETQ DE (FTIMES DE .5 (FQUOTIENT X (FLOAT I]
				 2)))
       finally (RETURN E])

(KAISER
  [LAMBDA (I N BETA)                                         (* hdj "25-Jun-84 15:12")

          (* * compute element I of Kaiser window of length N with beta, where I ranges from +/- (n-1) /2)


    (OR BETA (SETQ BETA 7.0))
    (FQUOTIENT [BESSEL0 (FTIMES BETA (SQRT (FDIFFERENCE 1.0 (EXPT (FQUOTIENT (FTIMES 2.0 I)
									     (SUB1 N))
								  2]
	       (BESSEL0 BETA])

(KAISERWINDOWINIT
  [LAMBDA (PASSES)                                           (* hdj " 3-Jul-84 15:55")

          (* * we needn't shuffle elt 0)


    (PROG ((SHUFFLE (PERMINIT PASSES))
	   (LENGTH (EXPT 2 PASSES))
	   (KAISERWINDOW (ARRAY 256 (QUOTE FLOATP)
				1.0 0)))
          (SETA KAISERWINDOW 0 0.0)
          [for I from 1 to (SUB1 LENGTH) do (SETA KAISERWINDOW (ELT SHUFFLE I)
						  (KAISER (IDIFFERENCE I (HALF LENGTH))
							  (SUB1 LENGTH]
          (RETURN KAISERWINDOW])
)

(RPAQ KAISER6 (READARRAY 256 (QUOTE FLOATP) 0))
(0.0 .005931413 .01152145 .01912378 .02904772 .04159182 .0570337 .07561949 .09755354 .1229879 .1520135
 .1846516 .2208469 .2604624 .303277 .3489826 .3971887 .4474229 .499139 .5517257 .6045169 .6568029 
.7078477 .7569015 .8032192 .8460766 .8847868 .9187158 .9472994 .9700548 .9865948 .9966342 1.0 .9966342
 .9865948 .9700548 .9472994 .9187158 .8847868 .8460766 .8032192 .7569015 .7078477 .6568029 .6045169 
.5517257 .499139 .4474229 .3971887 .3489826 .303277 .2604624 .2208469 .1846516 .1520135 .1229879 
.09755354 .07561949 .0570337 .04159182 .02904772 .01912378 .01152145 .005931413 1.0 1.0 1.0 1.0 1.0 
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 NIL
)

(RPAQ KAISER8 (READARRAY 256 (QUOTE FLOATP) 0))
(0.0 1.0 .4159644 .4159644 .1115359 .8116048 .8116048 .1115359 .03703344 .949706 .6194208 .2391483 
.2391483 .6194208 .949706 .03703344 .01668289 .9872172 .5164653 .3223783 .1685259 .7196427 .8899002 
.06806202 .06806202 .8899002 .7196427 .1685259 .3223783 .5164653 .9872172 .01668289 .009840562 
.9967906 .4656082 .3680653 .1383091 .7670025 .8527812 .08815682 .05108953 .9223804 .670216 .2021688 
.2792991 .567948 .9714356 .0256532 .0256532 .9714356 .567948 .2792991 .2021688 .670216 .9223804 
.05108953 .08815682 .8527812 .7670025 .1383091 .3680653 .4656082 .9967906 .009840562 .007127092 
.9991972 .4406 .3917662 .1244937 .7896911 .8326616 .09942766 .04371127 .9367168 .6449462 .2202499 
.2588406 .5937266 .961294 .03102498 .02088416 .9800884 .5421673 .300491 .1849229 .6951441 .9067538 
.05919744 .07770786 .8718856 .743624 .1529865 .3449188 .4909206 .9927922 .01301373 .01301373 .9927922 
.4909206 .3449188 .1529865 .743624 .8718856 .07770786 .05919744 .9067538 .6951441 .1849229 .300491 
.5421673 .9800884 .02088416 .03102498 .961294 .5937266 .2588406 .2202499 .6449462 .9367168 .04371127 
.09942766 .8326616 .7896911 .1244937 .3917662 .4406 .9991972 .007127092 .005931413 .9997994 .4282314 
.4038066 .117908 .8007502 .8222459 .1053762 .04028669 .9433826 .6322099 .2295984 .2488968 .6065896 
.955678 .03394755 .01871478 .9838452 .5293015 .3113503 .1766176 .7074521 .8984764 .06353353 .07278588 
.8810342 .7317035 .1606485 .3335699 .5036685 .9902004 .01478404 .01136742 .9949896 .4782309 .3564196 
.1455399 .7553939 .8624654 .08283074 .05505052 .9147242 .6827284 .1934405 .2898056 .5550525 .9759502 
.0231955 .02826161 .9665482 .5808423 .268976 .2111059 .6576183 .9297136 .04731097 .09368842 .842844 
.7784381 .1312939 .3798499 .4530615 .9981936 .008428634 .008428634 .9981936 .4530615 .3798499 .1312939
 .7784381 .842844 .09368842 .04731097 .9297136 .6576183 .2111059 .268976 .5808423 .9665482 .02826161 
.0231955 .9759502 .5550525 .2898056 .1934405 .6827284 .9147242 .05505052 .08283074 .8624654 .7553939 
.1455399 .3564196 .4782309 .9949896 .01136742 .01478404 .9902004 .5036685 .3335699 .1606485 .7317035 
.8810342 .07278588 .06353353 .8984764 .7074521 .1766176 .3113503 .5293015 .9838452 .01871478 .03394755
 .955678 .6065896 .2488968 .2295984 .6322099 .9433826 .04028669 .1053762 .8222459 .8007502 .117908 
.4038066 .4282314 .9997994 .005931413 NIL
)
(DECLARE: DONTCOPY
  (FILEMAP (NIL (349 1743 (BESSEL0 359 . 808) (KAISER 810 . 1217) (KAISERWINDOWINIT 1219 . 1741)))))
STOP