a6da27159553a00fe6121e97f69f154c1b29d910
1 <?xml version="1.0" encoding="UTF-8"?>
3     <refnamediv>
4         <refname>ell1mag</refname>
5         <refpurpose>楕円フィルタの振幅</refpurpose>
6     </refnamediv>
7     <refsynopsisdiv>
8         <title>呼び出し手順</title>
9         <synopsis>[v]=ell1mag(eps,m1,z)</synopsis>
10     </refsynopsisdiv>
11     <refsection>
12         <title>引数</title>
13         <variablelist>
14             <varlistentry>
15                 <term>eps</term>
16                 <listitem>
17                     <para>
18                         通過域のリップル=<literal>1/(1+eps^2)</literal>
19                     </para>
20                 </listitem>
21             </varlistentry>
22             <varlistentry>
23                 <term>m1</term>
24                 <listitem>
25                     <para>
26                         阻止域のリップル=<literal>1/(1+(eps^2)/m1)</literal>
27                     </para>
28                 </listitem>
29             </varlistentry>
30             <varlistentry>
31                 <term>z</term>
32                 <listitem>
33                     <para>複素平面上の標本ベクトルの値</para>
34                 </listitem>
35             </varlistentry>
36             <varlistentry>
37                 <term>v</term>
38                 <listitem>
39                     <para>標本点における楕円フィルタの値</para>
40                 </listitem>
41             </varlistentry>
42         </variablelist>
43     </refsection>
44     <refsection>
45         <title>説明</title>
46         <para>
47             楕円フィルタの二乗振幅を得る際に使用される関数.
48             通常は,<literal>m1=eps*eps/(a*a-1)</literal>です.
49             <literal>s=%sn(z,m1)</literal>として,
50             <literal>v=real(ones(z)./(ones(z)+eps*eps*s.*s))</literal>を返します.
51         </para>
52     </refsection>
53     <refsection>
54         <title>例</title>
55         <programlisting role="example"><![CDATA[
56 deff('[alpha,BeTa]=alpha_beta(n,m,m1)',...
57 'if 2*int(n/2)==n then, BeTa=K1; else, BeTa=0;end;'+...
58 'alpha=%k(1-m1)/%k(1-m);')
59 epsilon=0.1;A=10;  //リップルパラメータ
60 m1=(epsilon*epsilon)/(A*A-1);n=5;omegac=6;
61 m=find_freq(epsilon,A,n);omegar = omegac/sqrt(m)
62 %k(1-m1)*%k(m)/(%k(m1)*%k(1-m))-n   //チェック...
63 [alpha,Beta]=alpha_beta(n,m,m1)
64 alpha*delip(1,sqrt(m))-n*%k(m1)      //チェック
65 sample=0:0.01:20;
66 //等高線に正の実軸をマップ...
67 z=alpha*delip(sample/omegac,sqrt(m))+Beta*ones(sample);
68 plot(sample,ell1mag(epsilon,m1,z))
69  ]]></programlisting>
70         <scilab:image><![CDATA[
71 deff('[alpha,BeTa]=alpha_beta(n,m,m1)',...
72 'if 2*int(n/2)==n then, BeTa=K1; else, BeTa=0;end;'+...
73 'alpha=%k(1-m1)/%k(1-m);')
74 epsilon=0.1;A=10;  //ripple parameters
75 m1=(epsilon*epsilon)/(A*A-1);n=5;omegac=6;
76 m=find_freq(epsilon,A,n);omegar = omegac/sqrt(m)
77 %k(1-m1)*%k(m)/(%k(m1)*%k(1-m))-n   //Check...
78 [alpha,Beta]=alpha_beta(n,m,m1)
79 alpha*delip(1,sqrt(m))-n*%k(m1)      //Check
80 samples=0:0.01:20;
81 //Now we map the positive real axis into the contour...
82 z=alpha*delip(samples/omegac,sqrt(m))+Beta*ones(samples);
83 plot(samples,ell1mag(epsilon,m1,z))
84 ]]>     </scilab:image>
85     </refsection>
86     <refsection role="see also">
87         <title>参照</title>
88         <simplelist type="inline">
89             <member>