<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Научно-практический журнал «Исследования в области естественных наук» &#187; Борисевич Алексей Валерьевич</title>
	<atom:link href="http://science.snauka.ru/author/akpc806a/feed" rel="self" type="application/rss+xml" />
	<link>https://science.snauka.ru</link>
	<description></description>
	<lastBuildDate>Tue, 13 Jan 2026 12:22:33 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Об одном рекурсивном алгоритме для идентификации линейного взвешенного сумматора методом обратной свертки</title>
		<link>https://science.snauka.ru/2015/02/9049</link>
		<comments>https://science.snauka.ru/2015/02/9049#comments</comments>
		<pubDate>Tue, 17 Feb 2015 16:32:43 +0000</pubDate>
		<dc:creator>Борисевич Алексей Валерьевич</dc:creator>
				<category><![CDATA[Математика]]></category>
		<category><![CDATA[идентификация параметров]]></category>
		<category><![CDATA[линейный взвешенный сумматор]]></category>
		<category><![CDATA[обратная свертка]]></category>
		<category><![CDATA[рекурсивный алгоритм]]></category>

		<guid isPermaLink="false">https://science.snauka.ru/?p=9049</guid>
		<description><![CDATA[Адаптивные фильтры являются неотъемлемой частью многих технических систем, где требуется восстановление сигнала от искажений, оценка параметров модели, управление в условиях неопределенности и нестационарности. Без адаптивной фильтрации совершенно невозможна высокоскоростная передача сигналов, мобильная связь, радиолокация, современная медицинская техника [1-4]. Алгоритмы адаптации для цифровых фильтров – значительная и сформировавшаяся область исследований, представление о которой дают монографии отечественных [...]]]></description>
			<content:encoded><![CDATA[<p>Адаптивные фильтры являются неотъемлемой частью многих технических систем, где требуется восстановление сигнала от искажений, оценка параметров модели, управление в условиях неопределенности и нестационарности. Без адаптивной фильтрации совершенно невозможна высокоскоростная передача сигналов, мобильная связь, радиолокация, современная медицинская техника [1-4].</p>
<p>Алгоритмы адаптации для цифровых фильтров – значительная и сформировавшаяся область исследований, представление о которой дают монографии отечественных и зарубежных авторов [1,2].</p>
<p>В настоящей работе предлагается рекурсивный алгоритм для идентификации весовых коэффициентов линейного сумматора, который отличается тем, что инверсия матрицы наблюдений вычисляется рекурсивно с квадратичной вычислительной сложностью одной итерации. Приведено доказательство рекурсивных соотношений, на которых основано итеративное вычисление инверсии матрицы наблюдений. С помощью MATLAB продемонстрировано применение разработанного алгоритма к идентификации цифрового КИХ-фильтра со смещением по выходу и нестационарными параметрами.</p>
<p><strong>Обратная свертка как метод идентификации</strong></p>
<p>Пусть <img src="http://latex.codecogs.com/gif.latex?u(k) %5Cin %5Cmathbb{R}" alt="" align="absmiddle" /> – значение сигнала в дискретный момент времени k. Если <img src="http://latex.codecogs.com/gif.latex?w = (w_1, w_2, ... w_n)^T %5Cin %5Cmathbb{R}^n" alt="" align="absmiddle" /> &#8212; вектор весовых коэффициентов, то выход КИХ-фильтра порядка <img src="http://latex.codecogs.com/gif.latex?n" alt="" align="absmiddle" /> определяется сверткой:</p>
<p><img src="http://latex.codecogs.com/gif.latex? y(k) = %5Csum_{i=1}^n w_i u(k-i+1)" alt="" align="absmiddle" /> (1)</p>
<p>В данной работе мы обобщим объект исследования, устранив зависимость элементов <img src="http://latex.codecogs.com/gif.latex?u" alt="" align="absmiddle" /> друг от друга и подразумевая что сумма (1) вычисляется от независимых переменных <img src="http://latex.codecogs.com/gif.latex?%5Cxi_i" alt="" align="absmiddle" />, которые могут быть, например, попарно ортогональными функциями. В результате получаем многоканальный линейный сумматор:</p>
<p><img src="http://latex.codecogs.com/gif.latex? y(k) = %5Csum_{i=1}^n w_i %5Cxi_i(k)" alt="" align="absmiddle" /></p>
<p>или</p>
<p><img src="http://latex.codecogs.com/gif.latex? y(k) = w^T x_k" alt="" align="absmiddle" /></p>
<p>где <img src="http://latex.codecogs.com/gif.latex?%5Cxi_i(k)" alt="" align="absmiddle" /> понимается как значение входной переменной <img src="http://latex.codecogs.com/gif.latex?%5Cxi_i" alt="" align="absmiddle" /> в момент времени <img src="http://latex.codecogs.com/gif.latex?k" alt="" align="absmiddle" />, а <img src="http://latex.codecogs.com/gif.latex?x_k = (%5Cxi_1(k), %5Cxi_2(k), ... %5Cxi_n(k))^T %5Cin %5Cmathbb{R}^n" alt="" align="absmiddle" /> – вектор значений входов в момент <img src="http://latex.codecogs.com/gif.latex?k" alt="" align="absmiddle" />.</p>
<p>Рассмотрим квадратную матрицу следующего вида</p>
<p><img src="http://latex.codecogs.com/gif.latex?M_k = %5Cbegin{bmatrix}  %5Cxi_1(k) &amp; %5Cxi_1(k-1) &amp;  %5Cldots &amp; %5Cxi_1(k-n+1)  %5C%5C  %5Cxi_2(k) &amp; %5Cxi_2(k-1) &amp;  %5Cddots &amp;  %5Cvdots %5C%5C  %5Cvdots &amp;  %5Cddots &amp; %5Cddots &amp;   %5Cddots %5C%5C  %5Cxi_n(k) &amp; %5Cldots &amp;  %5Cxi_n(k-n) &amp; %5Cxi_n(k-n+1) %5Cend{bmatrix}" alt="" align="absmiddle" />,</p>
<p>которую будем называть матрицей наблюдений.</p>
<p>Как видно, вектор весов <img src="http://latex.codecogs.com/gif.latex?w" alt="" align="absmiddle" /> однозначно определяется решением матричного уравнения</p>
<p><img src="http://latex.codecogs.com/gif.latex?M_k^T w = y_k" alt="" align="absmiddle" />, (2)</p>
<p>где <img src="http://latex.codecogs.com/gif.latex?y_k = [y(k), y(k-1), ... y(k-n+1)]^T" alt="" align="absmiddle" /> – вектор текущего и предыдущих значений выхода.</p>
<p>Решение уравнения (2) единственно только если матрица <img src="http://latex.codecogs.com/gif.latex?M_k" alt="" align="absmiddle" /> не вырождена:</p>
<p><img src="http://latex.codecogs.com/gif.latex?%5Coperatorname{rank} M_k = n" alt="" align="absmiddle" />.</p>
<p>Это требование известно как условие неисчезающего возбуждения (persistent excitation). Применительно к КИХ-фильтрам, процедура решения уравнения (2) называется обратной сверткой или деконволюцией.</p>
<p><strong>Рекуррентные соотношения для вычисления обратной свертки</strong></p>
<p>В этом разделе мы покажем как уравнение (2) может быть решено без использования инверсии матрицы <img src="http://latex.codecogs.com/gif.latex?M_k" alt="" align="absmiddle" /> для <img src="http://latex.codecogs.com/gif.latex?k %5Cge 1" alt="" align="absmiddle" />.</p>
<p>Определим матрицу <img src="http://latex.codecogs.com/gif.latex? R_k %5Cin %5Cmathbb{R}^{n %5Ctimes n}" alt="" align="absmiddle" /></p>
<p><img src="http://latex.codecogs.com/gif.latex? R_k = M_k M_k^T" alt="" align="absmiddle" /></p>
<p>и вектор <img src="http://latex.codecogs.com/gif.latex? r %5Cin %5Cmathbb{R}^n" alt="" align="absmiddle" /></p>
<p><img src="http://latex.codecogs.com/gif.latex? r_k = M_k y_k" alt="" align="absmiddle" />.</p>
<p>Легко видеть, что</p>
<p><img src="http://latex.codecogs.com/gif.latex? R_k w = r_k" alt="" align="absmiddle" />, (3)</p>
<p>поскольку (3) – это все равно что уравнение (2), домноженное слева и справа на <img src="http://latex.codecogs.com/gif.latex?M_k" alt="" align="absmiddle" />.</p>
<p>Теорема 1. Пусть для момента времени <img src="http://latex.codecogs.com/gif.latex?k-1" alt="" align="absmiddle" /> известны <img src="http://latex.codecogs.com/gif.latex?r_{k-1}" alt="" align="absmiddle" /> и <img src="http://latex.codecogs.com/gif.latex?R_{k-1}" alt="" align="absmiddle" />. Тогда для момента времени <img src="http://latex.codecogs.com/gif.latex?k" alt="" align="absmiddle" /> и текущего вектора входов <img src="http://latex.codecogs.com/gif.latex?x" alt="" align="absmiddle" /> верны следующие рекуррентные соотношения:</p>
<p><img src="http://latex.codecogs.com/gif.latex? R_{k} = R_{k-1} + x_k x_k^T - x_{k-n} x_{k-n}^T" alt="" align="absmiddle" />, (4.1)<br />
<img src="http://latex.codecogs.com/gif.latex? r_{k} = r_{k-1} + x_k y(k) - x_{k-n} y(k-n)" alt="" align="absmiddle" />. (4.2)</p>
<p>Доказательство.</p>
<p>Для начала заметим, что матица <img src="http://latex.codecogs.com/gif.latex?M_k" alt="" align="absmiddle" /> может быть представлена как конкатенация вектор-стобцов</p>
<p><img src="http://latex.codecogs.com/gif.latex? M_k = %5Cbegin{bmatrix} x_k &amp; x_{k-1} &amp; ... &amp; x_{k-n+1} %5Cend{bmatrix}" alt="" align="absmiddle" />.</p>
<p>Докажем (4.2). По определению <img src="http://latex.codecogs.com/gif.latex?r_k" alt="" align="absmiddle" />, можно записать следующее</p>
<p><img src="http://latex.codecogs.com/gif.latex? r_k = M_k y_k = x_k y(k) + x_{k-1} y(k-1) + ... + x_{k-n+1} y(k-n+1)" alt="" align="absmiddle" />,<br />
<img src="http://latex.codecogs.com/gif.latex? r_{k-1} = M_{k-1} y_{k-1} = x_{k-1} y(k-1) + x_{k-2} y(k-2) + ... + x_{k-n} y(k-n)" alt="" align="absmiddle" />.</p>
<p>Вычитая <img src="http://latex.codecogs.com/gif.latex? r_k - r_{k-1}" alt="" align="absmiddle" />, сразу получаем (4.2):</p>
<p><img src="http://latex.codecogs.com/gif.latex? r_k - r_{k-1} = x_k y(k) - x_{k-n} y(k-n)" alt="" align="absmiddle" />.</p>
<p>Аналогично можно доказать (4.1). Для этого заметим, что</p>
<p><img src="http://latex.codecogs.com/gif.latex? M_k M_k^T = %5Cbegin{bmatrix} x_k &amp; x_{k-1} &amp; ... &amp; x_{k-n+1} %5Cend{bmatrix} %5Ccdot %5Cbegin{bmatrix} x_k^T %5C%5C x_{k-1}^T %5C%5C %5Cvdots %5C%5C x_{k-n+1}^T %5Cend{bmatrix}" alt="" align="absmiddle" />.</p>
<p>Отсюда, раскрывая скалярное произведение векторов, получаем</p>
<p><img src="http://latex.codecogs.com/gif.latex? R_{k} = M_k M_k^T = x_k %5Ccdot x_k^T + x_{k-1} %5Ccdot x_{k-1}^T + ... + x_{k-n+1} %5Ccdot x_{k-n+1}^T" alt="" align="absmiddle" />,</p>
<p>одновременно с этим</p>
<p><img src="http://latex.codecogs.com/gif.latex? R_{k-1} = M_{k-1} M_{k-1}^T = x_{k-1} %5Ccdot x_{k-1}^T + x_{k-2} %5Ccdot x_{k-2}^T + ... + x_{k-n} %5Ccdot x_{k-n}^T" alt="" align="absmiddle" />.</p>
<p>Вычитая <img src="http://latex.codecogs.com/gif.latex? R_{k} - R_{k-1}" alt="" align="absmiddle" />, сразу получаем (4.1):</p>
<p><img src="http://latex.codecogs.com/gif.latex? R_{k} - R_{k-1} = x_k %5Ccdot x_k^T - x_{k-n} %5Ccdot x_{k-n}^T" alt="" align="absmiddle" />.</p>
<p>Доказательство закончено.</p>
<p><strong>Рекурсивный алгоритм</strong></p>
<p>Соотношения (4) является основой рекурсивного алгоритма идентификации. Введем в рассмотрение дополнительную матрицу <img src="http://latex.codecogs.com/gif.latex?Q_k %5Cin %5Cmathbb{R}^{n %5Ctimes n}" alt="" align="absmiddle" /></p>
<p><img src="http://latex.codecogs.com/gif.latex? Q_k = R_{k-1} + x_k x_k^T" alt="" align="absmiddle" />, (5.1)<br />
<img src="http://latex.codecogs.com/gif.latex? R_{k} = Q_k - x_{k-n} %5Ccdot x_{k-n}^T" alt="" align="absmiddle" />. (5.2)</p>
<p>Применив к (5) матричное тождество Вудбери [1], получаем</p>
<p><img src="http://latex.codecogs.com/gif.latex? Q_k^{-1} = R_{k-1}^{-1} - %5Cfrac{1}{x_k^T R_{k-1}^{-1} x_k + 1} %5Ccdot R_{k-1}^{-1} x_k x_k^T R_{k-1}^{-1}" alt="" align="absmiddle" />, (6.1)<br />
<img src="http://latex.codecogs.com/gif.latex? R_{k}^{-1} = Q_k^{-1} - %5Cfrac{1}{x_{k-n}^T Q_{k}^{-1} x_{k-n} - 1} %5Ccdot Q_{k}^{-1} x_{k-n} x_{k-n}^T Q_{k}^{-1}" alt="" align="absmiddle" />. (6.2)</p>
<p>Таким образом, задав <img src="http://latex.codecogs.com/gif.latex?R_{k}^{-1}" alt="" align="absmiddle" /> для <img src="http://latex.codecogs.com/gif.latex?k = 0" alt="" align="absmiddle" />, можно вычислить с помощью рекуррентных соотношений (6) все <img src="http://latex.codecogs.com/gif.latex?R_{k}^{-1}" alt="" align="absmiddle" /> без необходимости обращения матрицы <img src="http://latex.codecogs.com/gif.latex?M_k" alt="" align="absmiddle" />. Отсюда, одна итерация алгоритма имеет вычислительную сложность, определяемую только сложностью перемножения матриц, т.е. <img src="http://latex.codecogs.com/gif.latex?O(n^2)" alt="" align="absmiddle" /> в худшем случае, что существенно лучше вычисления инверсии <img src="http://latex.codecogs.com/gif.latex?M_k" alt="" align="absmiddle" />, которая занимает <img src="http://latex.codecogs.com/gif.latex?O(n^3)" alt="" align="absmiddle" /> вычислительных операций.</p>
<p>Алгоритм на каждой итерации <img src="http://latex.codecogs.com/gif.latex?k" alt="" align="absmiddle" /> по текущему вектору входов <img src="http://latex.codecogs.com/gif.latex?x_k" alt="" align="absmiddle" /> вычисляет <img src="http://latex.codecogs.com/gif.latex?R_{k}^{-1}" alt="" align="absmiddle" /> по (6), также на основе (4.2) по <img src="http://latex.codecogs.com/gif.latex?y(k)" alt="" align="absmiddle" /> вычисляется <img src="http://latex.codecogs.com/gif.latex?r_k" alt="" align="absmiddle" />, далее осуществляется расчет оценки весовых коэффициентов <img src="http://latex.codecogs.com/gif.latex? w_k = R_{k}^{-1} r_k" alt="" align="absmiddle" />, после чего происходит переход к новой итерации <img src="http://latex.codecogs.com/gif.latex?k := k + 1" alt="" align="absmiddle" /> и сохраняются новые значения <img src="http://latex.codecogs.com/gif.latex?x_{k-n}" alt="" align="absmiddle" /> и <img src="http://latex.codecogs.com/gif.latex?y(k-n)" alt="" align="absmiddle" />.</p>
<p><strong>Пример применения метода</strong></p>
<p>Для демонстрации возможности алгоритма рассмотрим простой вычислительный пример идентификации параметров КИХ-фильтра второго порядка с медленно меняющимися коэффициентами <img src="http://latex.codecogs.com/gif.latex?w_1, w_2" alt="" align="absmiddle" /> и смещением на выходе <img src="http://latex.codecogs.com/gif.latex?w_3" alt="" align="absmiddle" />:</p>
<p><img src="http://latex.codecogs.com/gif.latex? y(k) = w_1 x_(k) + w_2 x(k-1) + w_3" alt="" align="absmiddle" /></p>
<p>Каждую итерацию коэффициенты изменяются следующим образом: <img src="http://latex.codecogs.com/gif.latex?w := w + 0.01 %5Csin(2 %5Cpi k/N)" alt="" align="absmiddle" />, где <img src="http://latex.codecogs.com/gif.latex?N" alt="" align="absmiddle" /> – общее количество итераций моделирования алгоритма, <img src="http://latex.codecogs.com/gif.latex?k %5Cin [1,N]" alt="" align="absmiddle" />.<br />
В качестве начальных значений весовых коэффициентов выбраны <img src="http://latex.codecogs.com/gif.latex?w_1 = 4,~ w_2 = 2,~ w_3 = 3" alt="" align="absmiddle" />. Работа алгоритма моделировалась в течение <img src="http://latex.codecogs.com/gif.latex?N = 400" alt="" align="absmiddle" /> итераций. В качества источника тестового входного сигнала <img src="http://latex.codecogs.com/gif.latex?x" alt="" align="absmiddle" /> использовался генератор псевдослучайных чисел, равномерно распределенных на интервале [0, 10].<br />
Для проверки устойчивости алгоритма к зашумленным данным к значениям выходной переменной <img src="http://latex.codecogs.com/gif.latex? y_k" alt="" align="absmiddle" /> был добавлен аддитивный шум амплитудой 0.1.</p>
<p>На рисунке 1 приведены входной и выходной сигнал системы. На рисунке 2 показаны идентифицированные оценки параметров <img src="http://latex.codecogs.com/gif.latex?w_1, w_2, w_3" alt="" align="absmiddle" /> (зеленым цветом) вместе с их истинными значениями (синим цветом).</p>
<p style="text-align: center;"><a href="https://science.snauka.ru/2015/02/9049/fig_0" rel="attachment wp-att-9051"><img class="size-full wp-image-9051 aligncenter" src="https://science.snauka.ru/wp-content/uploads/2015/02/Fig_0.png" alt="" width="561" height="420" /></a><br />
Рисунок 1 – Входной сигнал и отклик системы.</p>
<p style="text-align: center;"><a href="https://science.snauka.ru/2015/02/9049/fig_1-5" rel="attachment wp-att-9052"><img class="size-full wp-image-9052 aligncenter" src="https://science.snauka.ru/wp-content/uploads/2015/02/Fig_1.png" alt="" width="561" height="676" /></a><br />
Рисунок 2 – Весовые коэффициенты и их идентифицированные оценки.</p>
<p>Как видно из результатов моделирования, алгоритм численно устойчив и показывает удовлетворительную точность идентификации ошибок.</p>
<p><strong>Заключение</strong></p>
<p>В настоящей работе был предложен и проанализирован метод идентификации параметров линейного взвешенного сумматора, основанный на рекурсивном вычислении инверсии матрицы наблюдений. Итерация алгоритма имеет квадратичную вычислительную сложность. При этом алгоритм полностью эквивалентен по результату методу обратной свертки (деконволюции) с фиксированным скользящим окном. Работоспособность метода продемонстрирована на примере КИХ-фильтра с медленно меняющимися коэффициентами и смещением на выходе.</p>
<p>Дальнейшая работа будет сосредоточена на применении разработанного алгоритма к реальным техническим задачам, а именно идентификации параметров модели литий-ионных аккумуляторов для оценки состояния заряда и контроля годности батареи [5]. Также алгоритм будет реализован программно для процессора цифровой обработки сигналов.</p>
<p>В заключение, стоит сказать, что программная реализация алгоритма в MATLAB можно скачать в архиве по ссылке</p>
<p><a title="https://sites.google.com/site/akpc806a/Matlab_RLS_2.rar" href="https://sites.google.com/site/akpc806a/Matlab_RLS_2.rar">https://sites.google.com/site/akpc806a/Matlab_RLS_2.rar</a></p>
]]></content:encoded>
			<wfw:commentRss>https://science.snauka.ru/2015/02/9049/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
