%%Missile File : J.Ph Chancelier 1991
%%EndComments

/saved save def 
/$pictdict 100 dict def
$pictdict begin

/dogrey
{ /Arraybox exch def
	/Arraygrey exch def
	/nargs exch def 
	/func exch cvx def
	Arraybox 0 nargs getinterval Arraygrey 0 get func 
	1 1 Arraygrey length 1 sub 
	{/i exch def
	Arraybox i nargs mul nargs getinterval 
	Arraygrey i get func
	}for
} def
%--------------------------------------------
% [x y width height] nivgris drawbox 
% si niv gris > 1.0 alors on fait un stroke 
% sans closepath 
%--------------------------------------------
/drawbox 
	{/glev exch def /Ar exch def 
	/x Ar 0 get def /y Ar 1 get def 
	/w Ar 2 get def /h Ar 3 get def 
	newpath
	x y moveto
	x w add y lineto
	x w add y h add lineto
	x y h add lineto
	glev WhiteLev le {closepath glev Setgray eofill}
	{ 0 Setgray closepath stroke} ifelse 
} def 



%------------------------------------------------------
% trace de polygones rempli ou de polylignes 
%------------------------------------------------------
/absolu true def 
/closeflag false def 

/drawpoly
	{/glev exch def /Ar exch def
	newpath
	Ar 0 get Ar 1 get moveto 
	2 2 Ar length 1 sub 
	{/i exch def
	Ar i get Ar i 1 add get absolu {lineto} {rlineto} ifelse
	}for
	glev WhiteLev le 
	{ % polygone ferme et gris
	  closepath glev Setgray eofill}
	{ glev WhiteLev 2 add ge 
	   {%polygone ferme dont on efface l'interieur 
		%(peint avec un niveau de gris en blanc)
	    closepath WhiteLev 2 mul 2 add glev sub Setgray 
		  gsave eofill grestore 
	    0 Setgray stroke}
	   {%polygone simple eventuellement ferme
	    0 Setgray closeflag {closepath} if stroke} 
	ifelse }
	ifelse 
} def 


%------------------------------------------------------
% segments non connectes 
%------------------------------------------------------

/drawsegs
	{/glev exch def /Ar exch def
	newpath
	Ar 0 get Ar 1 get moveto Ar 2 get Ar 3 get lineto stroke 
	4 4 Ar length 3 sub 
	{/i exch def
	newpath 
	Ar i get Ar i 1 add get moveto
	Ar i 2 add get Ar i 3 add get lineto stroke 
	}for
} def 


%------------------------------------------------------
% unconected arrows
%-----------------------------------------------------

/drawarrows
	{/arsize10 exch def /Ar exch def
	Ar 0 get  Ar 1 get Ar 2 get Ar 3 get arsize10 drawarrow
	4 4 Ar length 3 sub 
	{/i exch def
	Ar i get Ar i 1 add get  Ar i 2 add get  Ar i 3 add get arsize10 
	drawarrow
	}for
} def 
		
/cos20 20 cos def
/sin20 20 sin def

/drawarrow                                
  { 
      /arsize exch 10 div def 
      /tipy exch def /tipx exch def       
      /taily exch def /tailx exch def
      /dx tipx tailx sub  def               
      /dy tipy taily sub  def               
      newpath tipx tipy moveto tailx taily lineto stroke   
      /norme dx dx mul dy dy mul add sqrt def 
      norme 1.e-8 ge 
	{
	 arsize dx mul norme div /dx1 exch def 
	 arsize dy mul norme div /dy1 exch def 
	 /depx tipx cos20 dx1 mul add def 
	/depy  tipy cos20 dy1 mul add def 
	newpath depx depy moveto 
	cos20 neg dx1 mul sin20 dy1 mul sub depx add
	sin20 dx1  mul cos20 dy1 mul sub depy add lineto 
	cos20 neg dx1 mul sin20 dy1 mul add  depx add
	sin20 neg dx1 mul cos20 dy1 mul sub depy add lineto closepath 
	0 setgray fill
	} {} ifelse 
  } def


%------------------------------------------------------
% cercle ou portions de cercle 
% attention argument (x y w h angl1*64 angl2*64 )
% devrait tracer une ellipse a modifier donc 
%------------------------------------------------------

/drawarc
	{/glev exch def /Ar exch def
	/cx Ar 0 get Ar 2 get 2 div add def 
	/cy Ar 1 get Ar 3 get 2 div add def 
	/hom Ar 3 get Ar 2 get div def 
	/Cmsave1 matrix def Cmsave1 currentmatrix 
	%-- on change de transformation pour faire homothetie en (x,y) 
	cx cy [1 0 0 hom 0 0 ] transform
	/t1 exch neg cy add def 
	/t2 exch neg cx add def 
	[1 0 0 hom t2 t1 ] concat 
	glev WhiteLev le
	{newpath
	cx cy moveto 
	cx cy Ar 2 get 2 div Ar 5 get 64 div neg
	 Ar 4 get 64 div neg  arc closepath
	glev Setgray eofill}
	{newpath
	cx cy Ar 2 get 2 div Ar 5 get 64 div neg Ar 4 get 64 div neg arc
	closepath 0 Setgray stroke} ifelse 
	Cmsave1 setmatrix clear} def 

%------------------------------------------------------
% centred hard mark 
%------------------------------------------------------

% x y str ShowCString 
% on fait un show mais string est centre autour du point (x,y) 

/ShowCString { /str exch def /y exch def /x exch def 
 newpath 
 x y moveto 
 str true charpath flattenpath pathbbox 
 /y2 exch def /x2 exch def /y1 exch def /x1 exch def 
 x 2 mul x2 x1 add 2 div sub 
 y 2 mul y2 y1 add 2 div sub moveto str show 
 } def 

/drawpolymark {/glev exch def /Ar exch def 
	Ar 0 get Ar 1 get HardMark ShowCString 
	2 2 Ar length 1 sub 
	{/i exch def
	Ar i get Ar i 1 add get HardMark ShowCString
	}for
} def 

%---------------------------------------------------
% chaines de caracteres 
%---------------------------------------------------
/FBox {/Ar exch def /rot exch def /str exch def /y exch def /x exch def 
 newpath Ar 0 get Ar 1 get moveto 
	/sina rot sin def /cosa rot cos def 
	/-sina sina neg def 
	[cosa -sina sina cosa 0 0 ] CtmModif
 Ar 2 get 0 rlineto 0 Ar 3 get neg rlineto Ar 2 get neg 0 rlineto 
 0 Ar 3 get  rlineto  stroke CtmRestore 
 x y str rot ShowRotate 
 } def 

% x y str ang Showrotate 
% inverse du sens trigo 

/ShowRotate { /ang exch def /str exch def 
	/y exch def /x exch def 
	x y moveto 
	/sina ang sin def /cosa ang cos def 
	/-sina 0 sina sub def 
	[cosa -sina sina cosa 0 0 ] CtmModif
	str show CtmRestore } def 

/HardMark (0) def 

%(Chaine de caracteres) x y flag angle [arfbox] Show

/Show { /Ar exch def 
	/rot exch def /flag exch def /y exch def /x exch def /str exch def 
	flag 1 eq 
	{x y str rot Ar FBox}
	{x y str rot ShowRotate } ifelse} def 

/L {/y2 exch def /x2 exch def /y1 exch def /x1 exch def 
    newpath x1 y1 moveto x2 y2 lineto stroke } def 

%---------------------------------------------------------
% drawing an axis 
% angle [nsep1,nsep2] ,[siz1,siz2,coeff] [x0,y0] drawaxis",
%---------------------------------------------------------

/drawaxis {/XX exch def /Arsize exch def /Arsep exch def /ang exch def 
	/Cmsave1 matrix def Cmsave1 currentmatrix 
	/sina ang sin def /cosa ang cos def /-sina sina neg def 
	/x XX 0 get def /y XX 1 get def
	%-- on change de transformation pour tourner autour de (x,y) 
	x y [cosa sina -sina cosa 0 0 ] transform
	/t1 exch neg y add def 
	/t2 exch neg x add def 
	[cosa sina -sina cosa t2 t1 ] concat 
	newpath x y moveto 0 Arsize 1 get Arsize 2 get mul rlineto
	stroke 
	0 1 Arsep 1 get 1 sub
	{newpath 
	x y moveto 
	0 1 Arsep 0 get 1 sub
		{Arsize 0 get 0  rlineto
		 0 Arsize 1 get rlineto 
	 	0 Arsize 1 get  neg rlineto}
		for 
	currentpoint /y exch def /x exch def 
	stroke 
	newpath x y moveto 0 Arsize 1 get Arsize 2 get mul rlineto
	stroke }
	for 
	Cmsave1 setmatrix } def 



%---------------------------------------------------------
% change and restore CTM
%---------------------------------------------------------

/CtmModif {/arg exch def 
	/Cmsave matrix def 
	Cmsave currentmatrix 
	[1 0 0 -1 0 0 ] concat 
	arg concat } def 

/CtmRestore { Cmsave setmatrix } def 

/Thickness { 2 div /th exch def th 0 le {/th 0.1 def} if th setlinewidth} def 

/WhiteLev 15 def

/Setgray { WhiteLev div setgray} def 

/fillsolid { 0 setgray } def 

%--------------------------------------
% clip zones ( rectangle ) 
%-------------------------------------

/setclipzone {initclip 
	/h exch def /w exch def /y exch def /x exch def 
	newpath x y moveto w 0 rlineto 0 h rlineto w neg 0 rlineto 
	0 h neg rlineto closepath clip} def 

%------------------
% to change the position of a picture 
%------------------
/cm{28.346457 mul}def

/DesPosi { /YH exch def /XW exch def /YP exch def /XP exch def 
	XP cm YP cm neg translate 
	XW cm 6000 div YH cm 4240 div  scale } def 

0 setlinecap 
2 setlinejoin 
1 setlinewidth

%-- Color database 
/ColorR [0.000000 0.000000 0.000000 0.529412 0.498039 0.133333 0.000000 0.878431 0.000000 1.000000 1.000000 1.000000 0.933333 1.000000 1.000000 0.960784 1.000000 ] def
/ColorG [0.000000 0.000000 0.000000 0.807843 1.000000 0.545098 1.000000 1.000000 1.000000 0.647059 0.000000 0.000000 0.509804 1.000000 0.843137 0.960784 1.000000 ] def
/ColorB [0.000000 0.501961 1.000000 0.921569 0.831373 0.133333 0.000000 1.000000 1.000000 0.000000 0.000000 1.000000 0.933333 0.000000 0.000000 0.862745 1.000000 ] def

/Setcolor {/i exch def ColorR i get ColorG i get ColorB i get setrgbcolor } def 

%------ End Main Program ------%
% XP YP XW YW DesPosi in the following code 
% will output the picture in the rectangle defined by 
% upper left point (XP,YP) wide :XW Height: YW
% the coordinates are given in centimeter and 
% are the (0,0) point is the down-left point of the paper 


% Dessin en bas a gauche de taille 3000,2120
[0.5 10 div 0 0 0.5 10 div neg  0 2120 10 div] concat
0 Thickness
% 3 setalufunction
-1 -1 200000 200000 setclipzone
[] 0 setdash
/Times-Roman findfont 100 scalefont setfont
fillsolid
/WhiteLev 16 def
/localsave save def 
clear (drawbox) 4 [ 17]
[750 242 4500 1450 
] dogrey localsave restore
fillsolid
 0 [1 3] [1500.000000 14.500000 2.000000] [750 1692] drawaxis
/Times-Roman findfont 80 scalefont setfont
(-1) 704 1817 0  0.00 [704 1747 92 90] Show
/Times-Roman findfont 120 scalefont setfont
(10) 590 1937 0  0.00 [590 1827 134 140] Show
/Times-Roman findfont 80 scalefont setfont
(0) 2227 1817 0  0.00 [2227 1747 46 90] Show
/Times-Roman findfont 120 scalefont setfont
(10) 2113 1937 0  0.00 [2113 1827 134 140] Show
/Times-Roman findfont 80 scalefont setfont
(1) 3727 1817 0  0.00 [3727 1747 46 90] Show
/Times-Roman findfont 120 scalefont setfont
(10) 3613 1937 0  0.00 [3613 1827 134 140] Show
/Times-Roman findfont 80 scalefont setfont
(2) 5227 1817 0  0.00 [5227 1747 46 90] Show
/Times-Roman findfont 120 scalefont setfont
(10) 5113 1937 0  0.00 [5113 1827 134 140] Show
/Times-Roman findfont 80 scalefont setfont
/Times-Roman findfont 120 scalefont setfont
 -90 [10 4] [36.250000 -30.000000 2.000000] [750 1692] drawaxis
(0) 611 1727 0  0.00 [611 1617 67 140] Show
(5) 611 1364 0  0.00 [611 1254 67 140] Show
(10) 544 1002 0  0.00 [544 892 134 140] Show
(15) 544 639 0  0.00 [544 529 134 140] Show
(20) 544 277 0  0.00 [544 167 134 140] Show
750 242 4500 1450 setclipzone
[] 0 setdash
/closeflag false def
/localsave save def 
clear (drawpoly) 132 [ 17]
[750 245 756 245 769 245 794 246 841 246 926 247 1068 250 1284 258 1370 262 1446 267 
1514 273 1575 279 1632 285 1683 292 1731 300 1776 307 1818 315 1857 323 1894 332 1929 341 
1994 359 2053 377 2107 397 2157 416 2203 436 2247 456 2287 475 2326 495 2396 534 2459 571 
2517 608 2570 643 2619 677 2665 710 2708 741 2748 771 2821 827 2887 878 2947 925 3002 968 
3052 1008 3099 1045 3143 1080 3184 1111 3259 1168 3326 1218 3387 1261 3443 1300 3494 1333 3542 1363 
3628 1414 3704 1454 3772 1487 3833 1514 3941 1555 4034 1583 4115 1604 4187 1620 4311 1641 4415 1654 
4583 1669 4717 1676 4923 1684 5079 1687 5205 1688 5250 1689 
] dogrey localsave restore
fillsolid
/absolu true def
[] 0 setdash
-1 -1 200000 200000 setclipzone
[20 50 20 50 ] 0 setdash
/localsave save def 
clear (drawsegs) 12 [ 0]
[750 605 5250 605 750 967 5250 967 750 1330 5250 1330 
] dogrey localsave restore
/localsave save def 
clear (drawsegs) 108 [ 0]
[750 1692 750 242 1202 1692 1202 242 1466 1692 1466 242 1653 1692 1653 242 1798 1692 1798 242 
1917 1692 1917 242 2018 1692 2018 242 2105 1692 2105 242 2181 1692 2181 242 2250 1692 2250 242 
2702 1692 2702 242 2966 1692 2966 242 3153 1692 3153 242 3298 1692 3298 242 3417 1692 3417 242 
3518 1692 3518 242 3605 1692 3605 242 3681 1692 3681 242 3750 1692 3750 242 4202 1692 4202 242 
4466 1692 4466 242 4653 1692 4653 242 4798 1692 4798 242 4917 1692 4917 242 5018 1692 5018 242 
5105 1692 5105 242 5181 1692 5181 242 
] dogrey localsave restore
[] 0 setdash
(Magnitude  ) 2596 205 0  0.00 [2596 95 741 140] Show
( Hz ) 5457 1655 0  0.00 [5457 1545 269 140] Show
(db ) 991 218 0  0.00 [991 108 202 140] Show
/localsave save def 
clear (drawbox) 4 [ 17]
[750 2277 4500 1450 
] dogrey localsave restore
fillsolid
 0 [1 3] [1500.000000 14.500000 2.000000] [750 3727] drawaxis
/Times-Roman findfont 80 scalefont setfont
(-1) 704 3852 0  0.00 [704 3782 92 90] Show
/Times-Roman findfont 120 scalefont setfont
(10) 570 3992 0  0.00 [570 3882 134 140] Show
/Times-Roman findfont 80 scalefont setfont
(0) 2227 3852 0  0.00 [2227 3782 46 90] Show
/Times-Roman findfont 120 scalefont setfont
(10) 2093 3992 0  0.00 [2093 3882 134 140] Show
/Times-Roman findfont 80 scalefont setfont
(1) 3727 3852 0  0.00 [3727 3782 46 90] Show
/Times-Roman findfont 120 scalefont setfont
(10) 3593 3992 0  0.00 [3593 3882 134 140] Show
/Times-Roman findfont 80 scalefont setfont
(2) 5227 3852 0  0.00 [5227 3782 46 90] Show
/Times-Roman findfont 120 scalefont setfont
(10) 5093 3992 0  0.00 [5093 3882 134 140] Show
/Times-Roman findfont 80 scalefont setfont
/Times-Roman findfont 120 scalefont setfont
 -90 [10 1] [145.000000 -30.000000 2.000000] [750 3727] drawaxis
(-90) 476 3762 0  0.00 [476 3652 202 140] Show
(0) 611 2312 0  0.00 [611 2202 67 140] Show
750 2277 4500 1450 setclipzone
[] 0 setdash
/closeflag false def
/localsave save def 
clear (drawpoly) 132 [ 17]
[750 2360 756 2361 769 2362 794 2366 841 2372 926 2385 1068 2411 1284 2462 1370 2487 1446 2512 
1514 2536 1575 2559 1632 2582 1683 2605 1731 2626 1776 2648 1818 2669 1857 2689 1894 2708 1929 2727 
1994 2763 2053 2796 2107 2828 2157 2857 2203 2883 2247 2908 2287 2931 2326 2952 2396 2990 2459 3021 
2517 3048 2570 3071 2619 3090 2665 3105 2708 3119 2748 3129 2821 3145 2887 3155 2947 3160 3002 3162 
3052 3160 3099 3157 3143 3151 3184 3144 3259 3128 3326 3108 3387 3087 3443 3065 3494 3043 3542 3021 
3628 2977 3704 2936 3772 2898 3833 2862 3941 2800 4034 2747 4115 2703 4187 2666 4311 2607 4415 2563 
4583 2502 4717 2462 4923 2413 5079 2384 5205 2366 5250 2360 
] dogrey localsave restore
fillsolid
/absolu true def
[] 0 setdash
-1 -1 200000 200000 setclipzone
[20 50 20 50 ] 0 setdash
/localsave save def 
clear (drawsegs) 108 [ 0]
[750 3727 750 2277 1202 3727 1202 2277 1466 3727 1466 2277 1653 3727 1653 2277 1798 3727 1798 2277 
1917 3727 1917 2277 2018 3727 2018 2277 2105 3727 2105 2277 2181 3727 2181 2277 2250 3727 2250 2277 
2702 3727 2702 2277 2966 3727 2966 2277 3153 3727 3153 2277 3298 3727 3298 2277 3417 3727 3417 2277 
3518 3727 3518 2277 3605 3727 3605 2277 3681 3727 3681 2277 3750 3727 3750 2277 4202 3727 4202 2277 
4466 3727 4466 2277 4653 3727 4653 2277 4798 3727 4798 2277 4917 3727 4917 2277 5018 3727 5018 2277 
5105 3727 5105 2277 5181 3727 5181 2277 
] dogrey localsave restore
[] 0 setdash
(Phase  ) 2731 2240 0  0.00 [2731 2130 471 140] Show
( Hz ) 5457 3690 0  0.00 [5457 3580 269 140] Show
(degrees ) 822 2253 0  0.00 [822 2143 539 140] Show
 showpage

 clear end saved restore 
