[doc] misc. patchs & small improvements
[scilab.git] / scilab / modules / signal_processing / help / ru_RU / correlation_convolution / corr.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
3           xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
4           xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
5           xml:lang="ru" xml:id="corr">
6     <refnamediv>
7         <refname>corr</refname>
8         <refpurpose>корреляция, ковариация</refpurpose>
9     </refnamediv>
10     <refsynopsisdiv>
11         <title>Синтаксис</title>
12         <synopsis>
13             [cov,Mean] = corr(x,[y],nlags)
14             [cov,Mean] = corr('fft',xmacro,[ymacro],n,sect)
15
16             [w,xu] = corr('updt',x1,[y1],w0)
17             [w,xu] = corr('updt',x2,[y2],w,xu)
18             ...
19             wk = corr('updt',xk,[yk],w,xu)
20         </synopsis>
21     </refsynopsisdiv>
22     <refsection>
23         <title>Аргументы</title>
24         <variablelist>
25             <varlistentry>
26                 <term>x</term>
27                 <listitem>
28                     <para>вещественный вектор/</para>
29                 </listitem>
30             </varlistentry>
31             <varlistentry>
32                 <term>y</term>
33                 <listitem>
34                     <para>вещественный вектор, значение по умолчанию x.</para>
35                 </listitem>
36             </varlistentry>
37             <varlistentry>
38                 <term>nlags</term>
39                 <listitem>
40                     <para>целое число, желаемое количество коэффициентов корреляции.</para>
41                 </listitem>
42             </varlistentry>
43             <varlistentry>
44                 <term>xmacro</term>
45                 <listitem>
46                     <para>внешняя программа scilab (см. ниже).</para>
47                 </listitem>
48             </varlistentry>
49             <varlistentry>
50                 <term>ymacro</term>
51                 <listitem>
52                     <para>внешняя программа scilab (см. ниже), значение по умолчанию xmacro.</para>
53                 </listitem>
54             </varlistentry>
55             <varlistentry>
56                 <term>n</term>
57                 <listitem>
58                     <para>целое число, общий размер последовательности (см. ниже).</para>
59                 </listitem>
60             </varlistentry>
61             <varlistentry>
62                 <term>sect</term>
63                 <listitem>
64                     <para>размер секций последовательности (см. ниже).</para>
65                 </listitem>
66             </varlistentry>
67             <varlistentry>
68                 <term>xi</term>
69                 <listitem>
70                     <para>вещественный вектор.</para>
71                 </listitem>
72             </varlistentry>
73             <varlistentry>
74                 <term>yi</term>
75                 <listitem>
76                     <para>вещественный вектор, значение по умолчанию xi.</para>
77                 </listitem>
78             </varlistentry>
79             <varlistentry>
80                 <term>cov</term>
81                 <listitem>
82                     <para>вещественный вектор, коэффициенты корреляции</para>
83                 </listitem>
84             </varlistentry>
85             <varlistentry>
86                 <term>Mean</term>
87                 <listitem>
88                     <para>вещественное число или вектор, всреднее значение x и, если указано, y</para>
89                 </listitem>
90             </varlistentry>
91         </variablelist>
92     </refsection>
93     <refsection>
94         <title>Описание</title>
95         <para>
96             <literal>corr(x,y,…)</literal> вычисляет
97             <latex alt="cov(m)=sum_{k=1}^{n-m} (x(k)-mean(x))(y(m+k)-mean(y)) / n">
98             cov(m)=\sum_{k=1}^{n-m} \left(x(k)-mean(x)\right)\left(y(m+k)-mean(y)\right) / n
99             </latex>,
100             где <literal>m = 0, …, nlag-1</literal>.
101         </para>
102         <para>
103             Обратите внимание, что, если последовательности <varname>x</varname> и
104             <varname>y</varname> разные, то <literal>corr(x,y,…)</literal> отличается
105             от <literal>corr(y,x,…)</literal>.
106         </para>
107         <variablelist>
108             <varlistentry>
109                 <term>Короткие последовательности</term>
110                 <listitem>
111                     <para>
112                         <literal>[cov,Mean]=corr(x,[y],nlags)</literal> возвращает первые
113                         <varname>nlags</varname> коэффициентов корреляции и <literal>Mean = mean(x)</literal>
114                         (среднее арифметическое <literal>[x,y]</literal>, если
115                         <varname>y</varname> является аргументом.
116                         Последовательность <varname>x</varname> (соответственно
117                         <varname>y</varname>) предполагается вещественной, и <varname>x</varname>
118                         и <literal>y</literal> одинакового размера <literal>n</literal>.
119                     </para>
120                 </listitem>
121             </varlistentry>
122             <varlistentry>
123                 <term>Длинные последовательности</term>
124                 <listitem>
125                     <para>
126                         <literal>[cov,Mean]=corr('fft',xmacro,[ymacro],n,sect)</literal>, где <varname>xmacro</varname> - это:
127                     </para>
128                     <itemizedlist>
129                         <listitem>
130                             <para>
131                                 функция типа <literal>[xx]=xmacro(sect,istart)</literal>, которая
132                                 возвращает вектор <literal>xx</literal> размером <literal>nsect</literal>,
133                                 содержащий часть последовательности с индексами от
134                                 <literal>istart</literal> до <literal>istart+sect-1</literal>;
135                             </para>
136                         </listitem>
137                         <listitem>
138                             <para>
139                                 fortran-подпрограмма или C-процедура, которая выполняет то же вычисление (для примера см. исходный код <literal>dgetx</literal>).
140                             </para>
141                         </listitem>
142                     </itemizedlist>
143                     <para>
144                           <literal>n</literal> - общий размер последовательности.
145                           <literal>sect</literal> - размер секций последовательности.
146                           <literal>sect</literal> должен быть кратным степени 2.
147                           <literal>cov</literal> имеет размерность <literal>sect</literal>.
148                           Вычисление производится с помощью БПФ.
149                     </para>
150                 </listitem>
151             </varlistentry>
152             <varlistentry>
153                 <term>Обновляющий метод</term>
154                 <listitem>
155                     <programlisting role="no-scilab-exec"><![CDATA[
156 [w,xu]=corr('updt',x1,[y1],w0)
157 [w,xu]=corr('updt',x2,[y2],w,xu)
158  ...
159 wk=corr('updt',xk,[yk],w,xu)
160  ]]></programlisting>
161                     <para>
162                         С этим синтаксисом вычисление обновляется при каждом вызове <literal>corr</literal>.
163                     </para>
164                     <programlisting role="no-scilab-exec"><![CDATA[
165 w0 = 0*ones(1,2*nlags);
166 nlags = power of 2.
167  ]]></programlisting>
168                     <para>
169                         <literal>x1,x2,...</literal> - это части <literal>x</literal> такие, что
170                         <literal>x=[x1,x2,...]</literal> и размеры <literal>xi</literal> кратны
171                         степени 2. Чтобы получить <varname>nlags</varname> коэффициентов, должно
172                         быть выполенно заключительное БПФ <literal>c=fft(w,1)/n</literal>;
173                         <literal>cov=c(1nlags)</literal>
174                         (<literal>n</literal> - это размер <literal>x</literal> (<literal>y</literal>)).  Предупреждение: этот синтаксис предполагает, что <literal>xmean = ymean = 0</literal>.
175                     </para>
176                 </listitem>
177             </varlistentry>
178         </variablelist>
179     </refsection>
180     <refsection>
181         <title>Примеры</title>
182         <programlisting role="example"><![CDATA[
183 x=%pi/10:%pi/10:102.4*%pi;
184 rand('seed');rand('normal');
185 y=[.8*sin(x)+.8*sin(2*x)+rand(x);.8*sin(x)+.8*sin(1.99*x)+rand(x)];
186 c=[];
187 for j=1:2,for k=1:2,c=[c;corr(y(k,:),y(j,:),64)];end;end;
188 c=matrix(c,2,128);cov=[];
189 for j=1:64,cov=[cov;c(:,(j-1)*2+1:2*j)];end;
190 rand('unif')
191
192 rand('normal');x=rand(1,256);y=-x;
193 deff('[z]=xx(inc,is)','z=x(is:is+inc-1)');
194 deff('[z]=yy(inc,is)','z=y(is:is+inc-1)');
195 [c,mxy]=corr(x,y,32);
196 x=x-mxy(1)*ones(x);y=y-mxy(2)*ones(y);  //центровка
197 c1=corr(x,y,32);c2=corr(x,32);
198 norm(c1+c2,1)
199 [c3,m3]=corr('fft',xx,yy,256,32);
200 norm(c1-c3,1)
201 [c4,m4]=corr('fft',xx,256,32);
202 norm(m3,1),norm(m4,1)
203 norm(c3-c1,1),norm(c4-c2,1)
204 x1=x(1:128);x2=x(129:256);
205 y1=y(1:128);y2=y(129:256);
206 w0=0*ones(1:64);   //32 coeffs
207 [w1,xu]=corr('u',x1,y1,w0);w2=corr('u',x2,y2,w1,xu);
208 zz=real(fft(w2,1))/256;c5=zz(1:32);
209 norm(c5-c1,1)
210 [w1,xu]=corr('u',x1,w0);w2=corr('u',x2,w1,xu);
211 zz=real(fft(w2,1))/256;c6=zz(1:32);
212 norm(c6-c2,1)
213 rand('unif')
214
215 // тест для внешней программы Fortran или C
216 //
217 deff('[y]=xmacro(sec,ist)','y=sin(ist:(ist+sec-1))');
218 x=xmacro(100,1);
219 [cc1,mm1]=corr(x,2^3);
220 [cc,mm]=corr('fft',xmacro,100,2^3);
221 [cc2,mm2]=corr('fft','corexx',100,2^3);
222 [max(abs(cc-cc1)),max(abs(mm-mm1)),max(abs(cc-cc2)),max(abs(mm-mm2))]
223
224 deff('[y]=ymacro(sec,ist)','y=cos(ist:(ist+sec-1))');
225 y=ymacro(100,1);
226 [cc1,mm1]=corr(x,y,2^3);
227 [cc,mm]=corr('fft',xmacro,ymacro,100,2^3);
228 [cc2,mm2]=corr('fft','corexx','corexy',100,2^3);
229 [max(abs(cc-cc1)),max(abs(mm-mm1)),max(abs(cc-cc2)),max(abs(mm-mm2))]
230  ]]></programlisting>
231     </refsection>
232     <refsection role="see also">
233         <title>Смотрите также</title>
234         <simplelist type="inline">
235             <member>
236                 <link linkend="xcorr">xcorr</link>
237             </member>
238             <member>
239                 <link linkend="xcov">xcov</link>
240             </member>
241             <member>
242                 <link linkend="correl">correl</link>
243             </member>
244             <member>
245                 <link linkend="cov">cov</link>
246             </member>
247             <member>
248                 <link linkend="covar">covar</link>
249             </member>
250         </simplelist>
251     </refsection>
252 </refentry>