|
Операция обратная к "скользящему среднему" |
|
|
|
Jan 6 2014, 12:36
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
есть измеренные данные про которые известно, что по ним прошлись скользяшим средним с неким известным размером D. каким образом можно восстановить исходные данные которые были до усреднения? из простого на ум приходит только пройтись по этим уже усреднённым данным еще раз таким же скользящим средним и получить оценку ошибки вызванную усреднением, которую потом добавить обратно к первоначальным данным. Оно вроде как работает, но понятно что это хоть и очень простой, но не совсем честный способ. Как это делать математически правильно? понятно что можно сделать Фурье, поделить спектр на характеристику скользящего среднего (по сути КИХ фильтра с одинаковыми единичными коэффициентами) и преобразовать обратно. но при делении на нули в том месте где характеристика имеет провалы пожалуй будут проблемы, оно и понятно так как частоты кратные размеру фильтра давятся в ноль и обратному восстановлению не подлежат. А если без преобразования в частотную область, с какой функцией надо сделать свёртку чтобы получить фильтр обратный скользящему среднему? или даже в общем случае, каким образом преобразовать коэффициенты КИХ фильтра, чтобы произведение исходного фильтра и пробразованного давало 1.
|
|
|
|
11 страниц
1 2 3 > »
|
 |
Ответов
(1 - 99)
|
Jan 6 2014, 13:30
|
Группа: Участник
Сообщений: 14
Регистрация: 26-12-13
Пользователь №: 79 808

|
Цитата(_pv @ Jan 6 2014, 16:36)  есть измеренные данные про которые известно, что по ним прошлись скользяшим средним с неким известным размером D. Если отвлечься от фильтров, Вы по сути проинтегрировали данные взяв в качестве области интегрирования D отсчетов. И хотите сделать обратную операцию. Обратная операция для интегрирования это взятие производной. Может тогда продифференцировать данные с тем же количеством отсчетов. Не могу сразу сказать как это сделать, но формула должна быть очень простая, исходя из базового определения производной.
|
|
|
|
|
Jan 6 2014, 13:47
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(Fat Robot @ Jan 6 2014, 18:11)  Для решения задачи нужно прежде всего почитать про z-преобразование. и конечно же не спутать с z-преобразованием, которое z-score, или, которое, преобразование фишера, а можно вообще без этого преобразования на пальцах написать, что скользящее среднее - есть умножение матрицы на исходный вектор, и просто найти обратную к этой матрице. Если есть необходимые знания о теплицевости-циркулянтности - можно из этого через Фурье и то самое зет-преобразование самому вывести, а можно в лоб как нижнюю треугольную решить. Тоже кстати достаточно устойчиво и программируется в 6 строчек без сложных слов типа БПФ и комплексных чисел.
|
|
|
|
|
Jan 6 2014, 14:14
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Цитата(iiv @ Jan 6 2014, 17:47)  и конечно же не спутать с z-преобразованием, которое z-score, или, которое, преобразование фишера, а можно вообще без этого преобразования на пальцах написать, что скользящее среднее - есть умножение матрицы на исходный вектор, и просто найти обратную к этой матрице. Если есть необходимые знания о теплицевости-циркулянтности - можно из этого через Фурье и то самое зет-преобразование самому вывести, а можно в лоб как нижнюю треугольную решить. Тоже кстати достаточно устойчиво и программируется в 6 строчек без сложных слов типа БПФ и комплексных чисел. Z-преобразование это дискретное преобразование Лапласса. Умножение матрицы на вектор? Расскажите подробнее пожалуйста. Как с использованием z-преобразования знаю, а про такой подход не слышал. Фактически скользящее среднее есть свертка. По теореме о свертке ее можно свести к умножению проделав z-преобразование или дискретное преобразование фурье (которое в данном случае совпадет с z-преобразованием). Каким боком применить к этому делу матрицу для мне неизвестно. Или вы имеете ввиду алгоритмы быстрого преобразования Фурье? Мне известен только один способ восстановления последовательности, обработаной сверткой. Он называется оптимальная гомоморфная фильтрация и детально изложен в книге Рабинера и Голда по цифровой обработке сигналов. Книга старая 70-х годов. Ключевое слово для поиска в гугле кепстр (измененное слово спектр). http://en.wikipedia.org/wiki/Cepstrum
|
|
|
|
|
Jan 6 2014, 14:17
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(delaver @ Jan 6 2014, 20:30)  Не могу сразу сказать как это сделать, но формула должна быть очень простая, исходя из базового определения производной. да, всё оказалось просто, надо посчитать производную. скользящее среднее: Y[i] = (X[i-N] + X[i-N+1] + ... +X[i+N]) / 2N или если выразить через предыдущий отсчёт: Y[i] = Y[i-1] + (X[i+N] - X[i-N-1]) / 2N соответственно X[i+N] = X[i-N-1] + (Y[i] - Y[i-1]) * 2N. upd: только не 2N, a 2N+1 конечно же.
|
|
|
|
|
Jan 6 2014, 15:09
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(Tarbal @ Jan 6 2014, 19:14)  Умножение матрицы на вектор? Расскажите подробнее пожалуйста. Пусть $x \in R^n$ исходный вектор до обработки скользящим средним. Тогда если скользящее среднее имеет длину K, то результат его применения можно записать как умножение матрицы (1 0 ... 0) (1/2 1/2 0 ... 0) (... {1/K ... 1/K}(K раз) 0 ... 0) (...) (0 ... 0 1/K 1/K ... 1/K) (...) (0... 0 1) - надеюсь, понятно, без ЛаТеХа не могу красиво нарисовать. Теперь внимательно смотрим, что получилось. Если отбросить первые и последние K-1 строчек - получается Теплицева матрица, если перейти к бесконечным, то в пределе по спектру она должна совпадать с соответствующим циркулянтом, спектр которого получается их БПФа оного. Как я понимаю, формулы должны с зет-преобразованием совпасть, но кропотливо не проверял. Также можно вспомнить, что эта матрица - нижняя треугольная - и просто в лоб ее решить. Нельзя сказать, что это идеальный метод, но тоже метод. Можно попробовать записать обратную, которая будет тоже нижней треугольной, и будет очень похожа на операцию дифференцирования, как заметил ТС, но не совсем такой в общем случае. Также при записывании обратной можно получить простые рекуррентные формулы как ТС получил, но они в общем случае будут не устойчивы, а можно слегка их подсократить и будет устойчивее. Лучший метод, конечно же через Фурье, так как есть контроль спектра, но с умением дела можно и без оного обойтись.
|
|
|
|
|
Jan 7 2014, 14:24
|
Местный
  
Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961

|
QUOTE (_pv @ Jan 6 2014, 16:36)  есть измеренные данные про которые известно, что по ним прошлись скользяшим средним с неким известным размером D. каким образом можно восстановить исходные данные которые были до усреднения? Никак. В общем случае исходные данные теряются навсегда. Если лень изучить теорию обратных операций (хотя интегрирование это, конечно, функционал, а не оператор), то хотя бы поразмышляйте над средним арифметическим (x+y)/2 = a. Отсюда имеем линейное уравнение x+y = 2a. а известно. Сколько решений можно получить для двух переменных из одного уравнения? Правильно.
Сообщение отредактировал AndrewN - Jan 7 2014, 15:08
|
|
|
|
|
Jan 7 2014, 14:42
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(AndrewN @ Jan 7 2014, 21:24)  Никак. В общем случае исхожные данные теряются навсегда. я решение выше вроде как привёл. пока спектр сигнала меньше чем первый провал до нуля на характеристике скользящего среднего (1 / длину фильтра) работает нормально. ну а после умножения на 0, дейтствительно, восстанавить обратно непросто.
синенький - исходный сигнал, красненький - скользящее среднее по 15 точкам, зелёненький - восстановлен обратно из красненького.
|
|
|
|
|
Jan 7 2014, 15:36
|
Местный
  
Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961

|
QUOTE (_pv @ Jan 7 2014, 17:42)  QUOTE X[i+N] = X[i-N-1] + (Y[i] - Y[i-1]) * (2N+1) я решение выше вроде как привёл. Это не решение, а хотение. Вы _не_ знаете величину X[i-N-1] в общем случае. А то, что у вас в ряду данных первые отсчёты - нули, это случайность. Разность соседних средних = разности _двух_ исходных отсчётов. Опять одно уравнение для _двух_ переменных. Т.е. ваша формула на самом деле X'[i+N] = ??? + (Y[i] - Y[i-1]) * (2N+1), штрих обозначает оценку X[i+N], а модуль |???| не ограничен сверху, т.е. ошибка может быть произвольно большой. Занимайтесь самообманом сколько влезет, но не морочьте голову публике (не вы один, впрочем. Выше, про матрицу - тоже вздор, про преобразования - тоже вздор). Скользящее среднее - это аппроксимация определённого интеграла в непрерывном случае. Восстановить подинтегральную функцию по значению интеграла - невозможно.
Сообщение отредактировал AndrewN - Jan 7 2014, 16:34
|
|
|
|
Guest_TSerg_*
|
Jan 7 2014, 17:27
|
Guests

|
Цитата(_pv @ Jan 6 2014, 16:36)  ..есть измеренные данные про которые известно, что по ним прошлись скользяшим средним с неким известным размером D. ..каким образом можно восстановить исходные данные которые были до усреднения? В общем случае - никак. Для приближенного восстановления требуются оговорки.
|
|
|
|
|
Jan 7 2014, 20:19
|
ʕʘ̅͜ʘ̅ʔ
    
Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691

|
Вот и синтезируйте фильр, обратный к вашему скользящему среднему, но у которого значения АЧХ ограничены в окрестности нулей исходного фильтра (ск. среднего). А что делать с ФЧХ в этих областях, вы сами придумаете. Методов синтеза много. Если в качестве инструмента Матлаб, то посмотрите fdesign.arbmagnphase z-плоскость дала бы вам идею того, с чем надо бороться. Цитата(_pv @ Jan 6 2014, 16:36)  понятно что можно сделать Фурье, поделить спектр на характеристику скользящего среднего (по сути КИХ фильтра с одинаковыми единичными коэффициентами) и преобразовать обратно. но при делении на нули в том месте где характеристика имеет провалы пожалуй будут проблемы, оно и понятно так как частоты кратные размеру фильтра давятся в ноль и обратному восстановлению не подлежат.
|
|
|
|
|
Jan 7 2014, 21:57
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Топикстартер задал тривиальный вопрос, на который интуитивно нашел правильный ответ. Скользящее среднее - однородный фильтр Передаточную ф-цию такого фильтра можно записать как H(z) = 1/N*(1-z^-N)/(1-Z^-1) разностное уравнение y(n)=( x(n) - x(n-N) )/N + y(n-1) Восстанавливающий фильтр будет с пф 1/H(z) = N*(1-z^-1)/(1-z^-N) разностное уравнение z(n)=( y(n) - y(n-1) )*N + z(n-N) что и получил топикстартер. При чем тут определенные интегралы и др дивергенции роторов - совершенно непонятно... Вот скрипт для особо неверующих Код clear all; N=100;
b1=[1 zeros(1,N-1) -1]; a1=[1 -1];
x=randn(1,10000);
y=filter(b1,a1,x)/N;
z=filter(a1,b1,y)*N;
plot(x-z)
|
|
|
|
|
Jan 7 2014, 23:22
|
Местный
  
Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961

|
Верующие могут отправлять свои естественные культовые надобности в ином месте. Интуиция - хороша с девочками - согласится/несогласится. А формулы - вещь, напротив, аналитическая. В них смотреть надо. QUOTE (thermit @ Jan 8 2014, 00:57)  разностное уравнение z(n)=( y(n) - y(n-1) )*N + z(n-N) что и получил топикстартер. А тут - вроде смотрим, а видим... Ещё раз, последний. Есть, известны только y(i). _Все_ z(i) давно пропали. Начинаем по вашей "формуле" восстанавливать z(n). y(n), y(n-1) известны, а z(n-N) - нет. Все, процесс закончен, не успев начаться. Поясняю, при чём тут интеграл. Формула скользящего среднего z = (y(1) + ... + y(n))/n - это вычисление определённого интеграла аппроксимацией прямоугольниками, т.е. нулевого порядка. Учите численные методы для 1 курса.
Сообщение отредактировал AndrewN - Jan 7 2014, 23:52
|
|
|
|
|
Jan 8 2014, 07:52
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата Fat Robot: Особо неверующим будет вдвойне интересно, если в канале передачи присутствует шум, или если мы попытаемся восстанавливать данные не с начала передачи. Топикстартер писал где-то про канал с шумом? Или про несначало? Зачем фантазировать? Цитата AndrewN: Ещё раз, последний. Есть, известны только y(i). _Все_ z(i) давно пропали. Начинаем по вашей "формуле" восстанавливать z(n). y(n), y(n-1) известны, а z(n-N) - нет. Все, процесс закончен, не успев начаться. Естественно, все вышеописанные нами решения верны при нулевых начальных условиях для обоих фильтров. Настоящим индейцам это очевидно. Все остальные "случайности" из разряда ваших фантазий и желания потешить чсв.
|
|
|
|
|
Jan 8 2014, 09:04
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(_pv @ Jan 6 2014, 20:17)  да, всё оказалось просто, надо посчитать производную. скользящее среднее: Y[i] = (X[i-N] + X[i-N+1] + ... +X[i+N]) / 2N или если выразить через предыдущий отсчёт: Y[i] = Y[i-1] + (X[i+N] - X[i-N-1]) / 2N ... upd: только не 2N, a 2N+1 конечно же. Откуда взялся предыдущий отсчёт? В той же формуле кол-во элементов X, если это не ошибка, = 2N+2. Может оказаться, что для обратного преобразования понадобится ширина фильтра много выше начальной. Если так, то о точном восстановлении можно будет только мечтать. Ну и если исходные числа были не в плавающей точке, то заметные потери ещё будут по дороге туда и обратно.
Сообщение отредактировал GetSmart - Jan 8 2014, 09:17
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Jan 8 2014, 09:10
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(thermit @ Jan 8 2014, 00:57)  Вот скрипт для особо неверующих Я попробовал ваш скрипт из интереса, слегка изменил... Все работает. Но достаточно потерять хотя бы одно входное значение (то, что топикстартер принимает после фильтра, мало ли, когда начнет принимать), как все рассыпается. Что, собственно, уже говорилось. Код clear all; N = 100; b = [1 1 1 1]; a = [4 0];
x = randn(N, 1); y = filter(b, a, x); y(50) = 0; % потеряли выборку z = filter(a, b, y);
clf; hold on; plot(x, 'b'); % plot(y, 'm'); plot(z, 'r'); % plot(x - z, 'k'); hold off;
|
|
|
|
|
Jan 8 2014, 09:24
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата ViKo: о достаточно потерять хотя бы одно входное значение (то, что топикстартер принимает после фильтра, мало ли, когда начнет принимать), как все рассыпается. Да. Для непрерывной обработки длинной последовательности / со случайного момента / в условиях шумов этот способ конечно же не годится. Но у топикстартера про все эти частности нет ни слова. Цитата Что, собственно, уже говорилось. Доброхоты навыдумывали себе кучу условий, назадавали вопросов и принялись бодро на них отвечать. Отвечать-то надо по существу, а не захламлять топики.
|
|
|
|
|
Jan 8 2014, 09:31
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(thermit @ Jan 8 2014, 12:24)  Доброхоты навыдумывали себе кучу условий, назадавали вопросов и принялись бодро на них отвечать. Отвечать-то надо по существу, а не захламлять топики. Не согласен. Топикстартер имеет некую отфильтрованную последовательность данных, и хочет из нее получить исходные. С чего начинались исходные данные, не известно. Явно не с нуля. Включается некий прибор, выходит на рабочий режим, запускается измерение сигнала, обрабатывается, сохраняется последняя часть. Вот эта часть и передается. "Восстановлению не подлежит."  Но, так ли важно восстановить именно то, что было? Допустим, восстановится во что-то другое, но статистически подобное. Чем плохо?
|
|
|
|
|
Jan 8 2014, 09:33
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(GetSmart @ Jan 8 2014, 16:04)  Откуда взялся предыдущий отсчёт? В той же формуле кол-во элементов X, если это не ошибка, = 2N+2. Код x0, x1, x2, x3, x4, x5, x6 <-------y2-------> + - <-------y3-------> y3 = y2 - x0 + x5 а элементов в усреднении нечётное количество чтобы фазу не портить просто для красоты. всем спасибо за комментарии, прошу прощения, если не точно указал в начале что именно нужно, найденное решение при условии что начальные условия нулевые вполне удовлетворяет. есть некие измерения при которых датчик своими конечными размерами усредняет показания по своему объёму, просто хотелось понять насколько можно увеличить пространственное разрешение частично скомпенсировав завал высоких частот из-за усреднения, при этом понятно что не бесплатно, а за счёт некоторого увеличения уровня шума после коррекции.
|
|
|
|
|
Jan 8 2014, 11:58
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(ViKo @ Jan 8 2014, 12:31)  Но, так ли важно восстановить именно то, что было? Допустим, восстановится во что-то другое, но статистически подобное. Чем плохо? Отвечу сам себе. Для задачи топикстартера - плохо. Никакой дополнительной точности не даст. Наоборот, вроде как шума добавит. Цитата(rudy_b @ Jan 8 2014, 14:34)  Но и если нет стартапа, то тоже можно кое-что сделать. Как пример - если в прописи есть участок, на котором в течении N тактов значение суммы не меняется (т.е. текущее значение равно N-му) - мы точно определяем все элементы суммы и дальше можем все точно вычислять. Подать сигнал калибратора на вход фильтра на некоторое время.
|
|
|
|
|
Jan 8 2014, 16:19
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(_pv @ Jan 8 2014, 22:17)  но ничего оно нелинейно не искажает. Выше дописал. D задаёт интервал, на котором будут искажаться некратные интервалу частоты, причём и выше 1 и ниже. У меня еденичный импульс вылез в области Fs/2D. (PS на коротком интервале) Хотя вопрос встанет - как считать. Если при восстановлении сигнала требуется таки визуальное приближение к оригиналу как достоверность оценки, то плохо дело. А если оценкой будет результат вроде БПФ, то это другой разговор. Спектр по БПФ очень интересная вещь, к тому же двумерная. Может как-то на относительно коротких последовательностях (2..10 раз выше D) можно попытаться минимизировать искажение фазы. Но если сигнал в дальнейшем как-то узкополосно фильтруется, то смысла нет. Не обозначено же что за входной сигнал и как он потом используется. Если каждый его элемент потом умножается на другой сигнал, то обратная от усреднения функция должна приближать к оригиналу именно одномерный сигнал, а не двумерный спектр.
Сообщение отредактировал GetSmart - Jan 8 2014, 17:40
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Jan 8 2014, 17:21
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
QUOTE (thermit @ Jan 8 2014, 16:25)  Дык, если задаться вопросом "что можно сделать если неизвестны фаза/начальные условия/длина итд?" то ответ тут однозначен - ничего. Именно это и имели ввиду местные телепаты. Объясняется этот факт наличием нулей в частотной характеристике однородного фильтра. Скомпенсировать их можно только полюсами, что в свою очередь требует полной когерентности последовательностей. Так что все фантазии на эту тему останутся фантазиями (реверанс в сторону AndrewN) и не более того. В присутствии шума ничем нельзя эти нули компенсировать. А шум присутствует всегда и он обязательно разнесет достаточно длинную последовательность, отфильтрованую фильтром на границе устойчивости ( есть один случай когда такая фильтрация устойчива - это только тогда когда физический и вычислительный шум отсутствует, а именно, когда и интегрирование и дифференцирование ведется в цифре в целых значениях без округлений) Но возможно построить достаточно хороший фильтр, например, винеровский. Как выше уже говорили , он должен вести себя как обратный, там где сигнал доминирует, и обнулять все там где доминирует шум. Матлаб умеет строить такие фильтры с частотной характеристикой примерно обратного синка, поскольку он умеет строить фильтры с примерно любой заданной частотной характеристикой
|
|
|
|
|
Jan 8 2014, 17:29
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата fontp: В присутствии шума ничем нельзя эти нули компенсировать. А шум присутствует всегда и он обязательно разнесет достаточно длинную последовательность, отфильтрованую фильтром на границе устойчивости.
о возможно построить достаточно хороший фильтр, например, винеровский. Как выше уже говорили , он должен вести себя как обратный, там где сигнал доминирует, и обнулять все там где доминирует шум. Матлаб умеет строить такие фильтры с характеристикой обратного синка примерно С этим никто не спорит. Речь, однако, о точном восстановлении не очень длинных последовательностей.
|
|
|
|
|
Jan 9 2014, 15:16
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(rudy_b @ Jan 9 2014, 19:18)  Да, согласен. Если дважды подряд повториться одинаковая последовательность отсчетов длиной N сумма тоже не будет изменяться. Вероятность мала, но есть. Там для счастья не хватает 2N+1 неизвестный элемент исходника. И алгоритм скользящего без потерь, что легко делается. Пока есть идея взять для стартового поиска элементы с выхода скользящего, как реально приближённое значение к оригиналу. По формуле получается, что известны зависимости между крайними элементами фильтра. Т.о. можно итеративно "раздвигать" их в нужную сторону, одновременно соблюдая постоянную составляющую (т.к. точно известно среднее арифметическое этой и соседних к ней точек). Мелкими шагами, к примеру по 1/20 от отклонения. Есть вероятность, что результат будет сходиться к оригиналу.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Jan 9 2014, 20:29
|
Знающий
   
Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458

|
Т.е. получается как с алиасом. Среднее по N точкам будет нормально передавать частоты с периодом >= 2N, далее - спады до нуля на частотах с периодом N, N/2, N/3 и т.д. Т.е. что-то правдоподобное можно выжать до первого нуля (период - N), т.е. до удвоенной частоты, а дальше будет каша с полной неопределенностью.
А, с другой стороны, ежели однократно узнать все N членов, то можно восстановить исходные отсчеты точно, т.е. все частоты до периода в 2 такта. Интересная ситуация.
|
|
|
|
|
Jan 10 2014, 08:16
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(rudy_b @ Jan 10 2014, 02:29)  Т.е. получается как с алиасом. Среднее по N точкам будет нормально передавать частоты с периодом >= 2N, далее - спады до нуля на частотах с периодом N, N/2, N/3 и т.д. Т.е. что-то правдоподобное можно выжать до первого нуля (период - N), т.е. до удвоенной частоты, а дальше будет каша с полной неопределенностью. Если считать, что сигнал был негармонический, то определённость более чем достаточная. Эффект алиасов имеет смысл именно к гармоническим сигналам. У негармонических должна быть мера оценки только приближение одномерного результата к исходнику. Что такое алиас применительно к одномерному негармоническому сигналу? Или если сигнал широкополосный и далее умножается/сворачивается с широкополосным сигналом совсем с другими характеристиками. Широкополосные аналоговые фильтры тоже не заточены на ограничения в гармоническом сигнале по сетке дискретизации. Но лучше сразу "договориться", что если источник информации о сигнале является одномерным, то вне зависимости от того, гармонический сигнал или нет, единственный достоверный критерий оценки (и восстановленного тоже) сигналов - их похожесть в одномерном виде. Причём даже спектральное сравнение корректно восстановленного сигнала будет совпадать с оригиналом. Появится вопрос "а был ли мальчик?". Или про суслика. Отличия каждого соседнего элемента исходника в результате скользящего среднего, особенно без потерь, остаются. То есть воссоздание каждого элемента - возможно, с небольшим сглаживанием, чтобы обрезать (в т.ч. паразитную) Fs/2. А по НЧ/постоянке вся информация сохранилась.
Сообщение отредактировал GetSmart - Jan 10 2014, 13:01
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
Guest_TSerg_*
|
Jan 10 2014, 10:35
|
Guests

|
ТС проговорился, что "есть некие измерения при которых датчик своими конечными размерами усредняет показания по своему объёму", а это совсем не скользящее среднее. Собственно, ничего нового в компенсации инерционности датчиков нет - этот прием достаточно часто используется, к примеру, в терморегулирующей аппаратуре для компенсации инерционности термопар. Вопрос, как и всегда, в степени "похожести" восстановленного сигнала, да еще если канал с помехами.
|
|
|
|
|
Jan 10 2014, 16:16
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Цитата(GetSmart @ Jan 10 2014, 19:33)  Свёртка, конечно. С функцией, где все элементы еденичные. Порождаемые ею алиасы при увеличении периода сигнала в спектральном представлении исчезают. Но не "бесплатно". Свертка линейная операция? или "нелинейно искажает высокие частоты". По методу оптимальной гомоморфной фильтрации все просто: Из кепстра обработанной последовательности вычитаем кепстр прямоугольного окна и восстанавливаем из результата исходную последовательность, посредством потенцирования и обратного преобразования Фурье. Полагаю, что матрицами можно получить более оптимальное решение. Грешно решать задачу в лоб (мое предложение), применяя полное решение, когда есть такой подарок судьбы как прямоугольное окно. В процессе дискуссии возник интересный диалог "экспериментаторов" с "теоретиками". Почти уверен, что рекурентное решение в силу своей простоты блестяще справится с работой. Ради такого решения несложно добавить в программу процедуру калибровки, которая и получит достоверное значение. Имеются и другие способы передать одно оригинальное значение и его позицию в процедуру восстановления.
|
|
|
|
|
Jan 10 2014, 16:55
|
Знающий
   
Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458

|
При нормальной работе, если мы получаем пропись с самого начала, все просто. Перед началом работы буфер сумматора всяко принято чистить, поэтому первый отсчет - это отсчет с заведомо нулевым буфером и далее все точно восстанавливается. Проблема возникает только если мы имеем пропись не с самого начала.
А насчет восстановления... Тут, на самом деле, все еще интереснее и, похоже, однозначного метода восстановления нет.
Как пример. Пусть мы имеем нулевой буфер (длиной N) и подаем синус с периодом N. После N тактов этот синус окажется в буфере и, с N+1 такта, сумма перестанет изменяться. Т.е. на выходе мы имеем константу. Как из нее можно восстановить исходный синус? Т.е. наличие сигналов с периодами N, N/2 и т.д. мы никак не сможем установить только по сумме.
А вот если мы знаем содержимое буфера и восстанавливаем сигнал с его учетом, то получается забавная вещь - на вход приходит константа, а на выходе получаем синус из буфера. Т.е. на выход мы даем константу (в данном случае, иначе - текущее значение суммы)+последний элемент буфера, а в начало буфера, соответственно, кладем полученное значение, иными словами, просто крутим указатель буфера по кольцу с заменой старого элемента на новый.
Фактически, мы сделали обратный фильтр. Но он будет работать, только если исходные значения в буфере при формировании (кодировании) и восстановлении (декодировании) совпадают. Любое расхождение в значениях буферов приведет к каше.
Отсюда получаем забавное применение - шифрование сигналов. Знаешь буфер - получи правду, не знаешь - чушь. С точки зрения вычислительной скорости - очень эффективно, на каждом такте просто суммируем, записываем и сдвигаем кольцевой указатель буфера. Единственная потеря - добавление одного разряда (суммирование двух чисел) и разрядности суммы. И подобрать, например, 128 значений в буфере будет весьма непросто. Стоит подумать.
|
|
|
|
|
Jan 10 2014, 17:26
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(rudy_b @ Jan 10 2014, 22:55)  Отсюда получаем забавное применение - шифрование сигналов. Знаешь буфер - получи правду, не знаешь - чушь. Это вряд ли. Тогда бы значения неизвестного буфера были бы очень чувствительны к малейшим искажениям и шумам, чего не наблюдается. Как оказалось, даже если в качестве неизвестных элементов взять значения из скользящего среднего, то результат рекурсивной формулы хорошо корелирует с исходником. Кроме прочего, в терминах гармонических сигналов, частот точно кратных Fs/D (D=2N+1 в обозн. автора) на выходе скользящего среднего просто не осталось. Их восстанавливать методом расширения кол-ва отсчётов (как это делает дискретное ПФ, к примеру) нельзя в принципе. И если вдруг они там реально присутствовали, то возникает неопределённость/недостоверность результата восстановления, пропорциональная амплитуде неизвестных гармоник. Но если речь об этом же, то наверное да, если узнать достоверную часть исходника, то эти гармоники по ней же и определяются. Вот насколько близкие к кратным частоты имеет смысл (или можно) вытягивать через ПФ не искажая другие частоты, любопытно. Можно что-то вытянуть по большому количеству элементов скользящего среднего и подставить в стартовый буфер.
Сообщение отредактировал GetSmart - Jan 10 2014, 19:45
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
Guest_TSerg_*
|
Jan 10 2014, 18:05
|
Guests

|
Цитата(Tanya @ Jan 10 2014, 20:55)  Вот достоверно знаю, что некоторые неплохие математики (те, которые бумагой пользуются) не смогли решить именно такую задачу. Ничего удивительного - математики вынуждены доказательно приходить к точным решениям, а иначе - они будут выглядеть как проходимцы или перейдут в разряд инженеров, что вряд ли. Бумага, знаете ли.. - это не железо. Инженерам - "проще", всего лишь надо заставить удовлетворительно работать изделие в рамках существующих физических и финансовых ограничений.
|
|
|
|
|
Jan 10 2014, 20:03
|
Местный
  
Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961

|
QUOTE (Tanya @ Jan 10 2014, 12:03)  спектроскописты используют теорему о свертке [...] нужно знать аппаратную функцию. Ее экспериментально получают с помощью априорных знаний или подают дельта-функцию Так или иначе, аппаратную функцию A можно определить. Настоящие неприятности возникают при решении обратной задачи x = A-1f когда выясняется, что она либо вовсе не имеет решений либо имеет несколько (бесконечно много) решений.
|
|
|
|
|
Jan 10 2014, 20:16
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(Tarbal @ Jan 10 2014, 22:16)  Свертка линейная операция? или "нелинейно искажает высокие частоты".
По методу оптимальной гомоморфной фильтрации все просто: Из кепстра обработанной последовательности вычитаем кепстр прямоугольного окна и восстанавливаем из результата исходную последовательность, посредством потенцирования и обратного преобразования Фурье. Она "стирает" о них информацию. Так понятней? На коротких интервалах (естественно шире D) и достаточно близких к кратным частотам, делая неоднозначной их фазу и амплитуду. К примеру, чтобы минимально точно восстановить частоту Fs/(D+1) нужно накопить один период "остатков информации" и чем ближе искомая частота к стёртым, тем больше периодов D нужно будет взять для ПФ. Цитата(Tarbal @ Jan 11 2014, 01:32)  Поссчитав среднее Y'[i] по результатам, получим значение ошибки Е = Y'[i] - Y[i]. С постоянкой там нет проблем. ----------------- Любые повторяющиеся паттерны с периодом D совершенно невидны на выходе скользящего среднего. Точнее, виден только интеграл от них в виде постоянки. Т.о. их не восстановит никакой алгоритм в принципе. Но на фоне них остальной сигнал виден, и выше Fs/D тоже. Чисто математически, ошибка обратного преобразования всегда будет в невидимости некой/любой комбинации D элементов с нулевой суммой. (D - ширина скользящего фильтра) Цитата(rudy_b @ Jan 10 2014, 22:55)  Стоит подумать. Там "зашифровано" будет только минимум информации объёмом в тот самый буфер. Являющейся как раз этими частотами кратными Fs/D. Но на практике, без экстремально точного постановщика помех, скорее всего 99% информации (самой амплитудно-значимой) будут извлекаться с 99% достоверностью. Если взять спектральную сетку частот, вплоть до Fs/2, то из неё вырежутся кратные периоду скользящего (типа слепого пятна в зрении), а остальные можно увидеть взяв больше элементов с выхода скользящего. Кроме того, восстановить по ним буфер можно с не очень высокой точностью, что слегка размажет спектр. Для практического применения, особенно широкополосных сигналов, это вообще норма. Ещё нюанс. У неизвестного буфера отдельные элементы, а так же их сумма (если) будут округлены в процессе дискретизации. И шуметь переходя от элемента к элементу скользящего среднего в спектре от Fs/2 до Fs/D. За эту "дрожь" можно было бы зацепиться. Может быть даже чтобы увидеть обнулённые частоты (т.о. весь буфер).
Сообщение отредактировал GetSmart - Jan 11 2014, 07:44
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Jan 10 2014, 23:36
|
Местный
  
Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961

|
QUOTE (rudy_b @ Jan 10 2014, 19:55)  Т.е. наличие сигналов с периодами N, N/2 и т.д. мы никак не сможем установить только по сумме. Вообще с периодами меньше или равными N: N, N-1, N-2 ... QUOTE (rudy_b @ Jan 10 2014, 19:55)  получаем забавное применение - шифрование Вот так, прикоснёшься к теории интегральных преобразований и поневоле придёшь к выводу о непознаваемости мироздания...
|
|
|
|
|
Jan 11 2014, 13:55
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
А был ли мальчик?  Если рассуждать логически, то используя сигнал скользящего среднего в дальнейшей обработке как единственного источника информации об объекте, разработчик уже "согласился" с невидимостью какого-то паттерна, шириной N. Т.о. никакой чуши, как утверждает rudy_b, корректный алгоритм восстановления не добавляет. Тема топика - улучшить разрешение скользящего среднего. А информация на большой ширине данных является достоверной и не принадлежащей неизвестному паттерну. Немного похоже на парадокс. Но на самом деле восстанавливаются/воссоздаются как бы промежуточные (внутри короткого буфера) элементы, принадлежащие к незанулённым ВЧ-частотам. Элементы же дискретизированны во времени с неизвестными промежуточными значениями. Можно настолько много элементов воссоздать, что информационно и "качественно" задавит тот небольшой неизвестный буфер. При обратном восстановлении частоты, кратные периоду скользящего стёрты в ноль. Остальные, выше Fs/N всё-таки видны на большем интервале. Промежуточные можно достать через ПФ с домножением на коэффициент обратный подавлению, но не слишком большой, т.к. там будет предел сохранности информации для слишком обрезанной гармоники, близкой к запретной. Если буфер для восстановления воссоздать слегка неточно, то пропустив его через рекурсивную формулу, она его компоненты слегка размажет в спектральном представлении и обнулённых частот там просто не останется. Что плохого, если частоты выше Fs/N будут слегка размазаны, но на 99% коррелируют с исходником. Математические рассуждения про паттерн корректны в идеально точных числах. На практике числа не только квантованы, но и суммы могут округляться. Плюс шум в канале и неидеальности оцифровки. Шум квантования в реалиях может как раз нести полезную (утерянную) информацию.
Сообщение отредактировал GetSmart - Jan 11 2014, 14:28
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Jan 11 2014, 20:32
|
Частый гость
 
Группа: Свой
Сообщений: 151
Регистрация: 4-02-09
Из: Поволжье
Пользователь №: 44 403

|
Ну не знаю, читаю уже четвертую страницу, реальных советов ноль. ТС решил проблему еще на первой странице, а все остальное просто хлам на мой взгляд. А так хочется увидеть качественное решение, с исходными данными, конкретным результатом и списком налагаемых ограничений...
--------------------
Всеобщая дебилизация не повод наносить ущерб своему здоровью.
|
|
|
|
|
Jan 11 2014, 21:00
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата bookd: А так хочется увидеть качественное решение качественное решение чего? решение своей задачи тс сам и предложил. чего тут еще решать? вся остальная писанина мало того что не по теме, так еще и на 90% ахинея. формулируйте задачу, порешаем. а так - только телепатов провоцировать на еще более масштабный срач.
|
|
|
|
|
Jan 12 2014, 00:38
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(bookd @ Jan 12 2014, 02:32)  Ну не знаю, читаю уже четвертую страницу, реальных советов ноль. ТС решил проблему еще на первой странице, а все остальное просто хлам на мой взгляд. А так хочется увидеть качественное решение, с исходными данными, конкретным результатом и списком налагаемых ограничений... ТС решил проблему при известных стартовых данных с "другого уровня". Хочется иметь решение с одним источником данных. Математические ограничения самого скользящего среднего были тоже обозначены. Если данные не видны на большом интервале - значит их там нет, в понимании инженера. В смысле - на входных данных. Нелинейщина (размывание спектра ВЧ и 1-й частоты периода ПФ + боковики) от применения скользящего среднего возникает из-за одномерности сигнала, что необычно понимать в терминах двумерных гармонических преобразований. По этой же причине свойства скользящего среднего не равны свёртке в двумерной интерпретации. Достаточно взглянуть на одномерный график синуса Fs/N-1 шириной два периода скользяшего, где один период будет только постоянка, как результат скользящего. Кроме того, в этом примере вместо постоянки мог быть невидимый буфер N случайных элементов, дающих такую же постоянку. Вариант восстановления неизвестных одномерных данных для старта рекурсивного алгоритма приведён с указанием ограничений на слепые зоны во время этой операции. Избавиться от слепых зон в ВЧ нужно СЛЕГКА размазав спектр именно в ВЧ, уменьшив предельное разрешение "там" вне зависимости от размера ПФ для какого-то анализа в будущем. Рекурсивный алгоритм именно это и делает и не размазывает спектр частот заметно ниже периода скользящего. Т.о. комбинация двух методов даст наиболее оптимальный результат. Для стартового ПФ даже слишком много данных брать не обязательно, т.к высокой точности стартового буфера не требуется. Неизвестная и дополнительная информация накопится во время рекурсии. Для простоты проверки можно взять с самого начала известных данных небольшое (от 10 до N), но чётное кол-во блоков подряд по N элементов делая ПФ чтобы бины точно попадали в слепые зоны и не использовать их для восстановления N элементов буфера. Постоянка в буфере на первом этапе не важна и её лучше обнулить. Далее, трассируются рекурсивно все имеющиеся данные с расчитанным буфером. Потом сравнивается (одномерная) сумма всех элементов старых и новых данных. И каждое значение восстановленных данных корректируется по постоянке чтобы постоянка совпадала, т.к. через стартовое ПФ постоянка может соврать из-за того, что для ПФ взято данных много больше одного буфера. Хотя, возможно, константу постоянки для восстановленного буфера можно будет узнать раньше. Может к моменту дохождения рекурсии до границы использованного ПФ. После всего этого даже шум дискретизации не нужен. Только чтобы рекурсия работала на неокруглённом результате скользящего. Если результат округлён, то как его фильтровать ещё не предложено. Любопытно увидеть более качественный алгоритм при допустимости любых стартовых значений.
Сообщение отредактировал GetSmart - Jan 12 2014, 13:05
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Jan 12 2014, 06:45
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(thermit @ Jan 12 2014, 01:00)  ...вся остальная писанина мало того что не по теме, так еще и на 90% ахинея. Присоединяюсь к Вашему мнению. В кои-то веки зашёл почитать электроникс - и на тебе... те же лица с тем же товаром... Извиняюсь за оффтоп. По существу можно лишь резюмировать, что восстанавливающий чисто-полюсный фильтр неустойчив, и поэтому для неискажённого восстановления сигнала нужно знать не только начальное его (фильтра) состояние, но и гарантировать отсутствие каких-либо потерь в самом сигнале, а также абсолютную точность всех вычислений. Получить робастное (и приближённое) решение можно путём сдвига полюсов восстанавливающего фильтра к центру единичной окружности с помощью несложной операции, эквивалентной введению "затухания". При этом фильтр станет устойчивым, но в спектре восстановленного сигнала появятся "поражённые точки", соответствующие нулям исходного КИХ-а. Правда, это уже другая тема...
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Jan 13 2014, 12:11
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Цитата(bookd @ Jan 12 2014, 00:32)  Ну не знаю, читаю уже четвертую страницу, реальных советов ноль. ТС решил проблему еще на первой странице, а все остальное просто хлам на мой взгляд. А так хочется увидеть качественное решение, с исходными данными, конкретным результатом и списком налагаемых ограничений... Да ну. Я показал, что его решение можно использовать вопреки высказанному скептицизму и как произвести коррекцию ошибки измерения начального отсчета. Но это решение для скользящего среднего. Впоследствии выяснилось, что усреднение происходит физическими свойствами прибора и еще не доказано, что это скользящее среднее.
Сообщение отредактировал Tarbal - Jan 13 2014, 12:18
|
|
|
|
|
Jan 13 2014, 13:39
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(iiv @ Jan 13 2014, 17:16)  в хромотографии ассиметричные пики возникают обычно по одной из двух причин: либо турбулентность в колонке, вызванная высокой скоростью, либо специфичные реакции адсорбции - на пальцах захват вещества и его вымывание происходят по разным механизмам. Боюсь, что пример со скользящим средним тут не очень-то применим. В колонке турбулентность? Без комментариев. Адсорбция и десорбция обязательно происходят - в этом суть хроматографии. А в датчике (как у автора) скользящее среднее было бы только в случае так называемого (в хим. аппаратах) идеального перемешивания - СУПЕРтурбулентности потока в датчике. Нечто подобное было бы в капиллярном датчике с нитью внутри - совсем без турбулентности. Но так тоже не бывает. Поэтому в жизни скользящего среднего не будет. Вы же тоже с этим согласны? Автору нужно организовать приход на датчик короткой (или не очень) "ступеньки" концентрации и смотреть аппаратную функцию.
|
|
|
|
|
Jan 13 2014, 15:20
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(Tanya @ Jan 13 2014, 19:39)  В колонке турбулентность? Без комментариев. интересно, а Вы реально много раз сами за хроматографом стояли? Я - много, и газовой, и жидкостной, и с масспектрометром и с градиентом, в основном энантиомеры делил. Поэтому утверждаю из первых рук. Цитата(Tanya @ Jan 13 2014, 19:39)  Адсорбция и десорбция обязательно происходят - в этом суть хроматографии. пожалуйста прочитайте внимательнее что именно я написал про адсорбцию - дессорбцию. Цитата(Tanya @ Jan 13 2014, 19:39)  Автору нужно организовать приход на датчик короткой (или не очень) "ступеньки" концентрации и смотреть аппаратную функцию. я ему решение на первой странице написал, сильно удивлен, что все это проигнорировали и что-то еще обсуждают.
|
|
|
|
|
Jan 13 2014, 15:50
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(iiv @ Jan 13 2014, 19:20)  интересно, а Вы реально много раз сами за хроматографом стояли? Я - много, и газовой, и жидкостной, и с масспектрометром и с градиентом, в основном энантиомеры делил. Поэтому утверждаю из первых рук.
пожалуйста прочитайте внимательнее что именно я написал про адсорбцию - дессорбцию. Удовлетворю Ваше любопытство - вот каждый день вижу хроматограф газовый. Разный механизм адсобрции-десорбции может быть бывает в препаративных хроматографах. Там возможен небольшой гистерезис. Я же имела в виду аналитический. И хроматомасс в руках держала, как и Вы. И даже чинила немного жидкостной. А про турбулентность в колонках от Вас впервые услышала. Вы же знаете такой термин - "набивка" колонки? Вот вспомнилось. Первое (почти) электронное устройство, вышедшее из моих рук, было для хроматографа.
|
|
|
|
|
Jan 13 2014, 18:39
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Понеслась опять нелёгкая, похоже... Цитата(Tarbal @ Jan 13 2014, 16:11)  Да ну. Я показал, что его решение можно использовать вопреки высказанному скептицизму и как произвести коррекцию ошибки измерения начального отсчета.
Но это решение для скользящего среднего. Впоследствии выяснилось, что усреднение происходит физическими свойствами прибора и еще не доказано, что это скользящее среднее. Вы полагаете, что совершили открытие, доказав мировую теорему о том, что:  , верно? Спешу Вас разочаровать - как раз для фильтра скользящего среднего обратный фильтр неустойчив. Т.е., прямая-обратная операция не является робастной. Цитата(Tanya @ Jan 13 2014, 19:50)  Удовлетворю Ваше любопытство - вот каждый день вижу хроматограф газовый. .......... Вот вспомнилось. Первое (почти) электронное устройство, вышедшее из моих рук, было для хроматографа. А вот и хымыки пожаловали. Жалобу на вас, что ли, накатать? Или предложить поискать площадку, где ваши таланты раскроются в полную силу? Пока попробую второе. Не соблаговолите ли сходить на ххымию, господа флудеры? http://www.ximuk.ru/
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Jan 13 2014, 20:04
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Как это что? Тождество. Вместо m подставьте выражение фильтра скользящего среднего в терминах z-преобразования. Для простоты, используйте трансверсальную (нерекурсивную) форму записи. А потом честно перемножьте.  ЗЫ. Может, здесь не знает кто-то, что с подобными выражениями можно производить арифметические действия, как с обычными переменными? И получать при этом правильный результат в том же z-пространстве? Так вот, сообщаю.  В этом его красота и полезность.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Jan 13 2014, 20:25
|
Местный
  
Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961

|
QUOTE (Stanislav @ Jan 13 2014, 22:39)  А вот и хымыки пожаловали Аппаратная функция (как пример интегрального преобразования) есть у всех измерительных приборов. Чем плох хроматограф в качестве примера?
|
|
|
|
|
Jan 13 2014, 20:43
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(AndrewN @ Jan 14 2014, 00:25)  Аппаратная функция (как пример интегрального преобразования) есть у всех измерительных приборов. Чем плох хроматограф в качестве примера? Примера чего именно? И, самое интересное, какое этот пример имеет отношение к вопросу темы? ------------------------- Уважаемые модераторы. По-моему, тема не стоит и выеденного яйца, поскольку, по сути, посвящена "доказательству" (ну, или "опровержению") совершенно банального тождества (см. выше). Ответ получен топикстартером на первой же странице. Посему считаю, что её лучше закрыть, во избежание многостраничного флуда. Ну, или перенести в "курилку", на худой конец всё, что здесь написано после ответа на вопрос темы.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Jan 13 2014, 20:57
|
Местный
  
Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961

|
QUOTE (Stanislav @ Jan 14 2014, 00:43)  Уважаемые модераторы. По-моему, тема не стоит и выеденного яйца, поскольку, по сути, посвящена "доказательству" (ну, или "опровержению") совершенно банального тождества (см. выше). Ответ получен топикстартером на первой же странице. Посему считаю, что её лучше закрыть, во избежание многостраничного флуда. Ну, или перенести в "курилку", на худой конец всё, что здесь написано после ответа на вопрос темы. Оки-доки. Вы высказались. А теперь не мешайте другим разговаривать. Люди сами разберутся, как, где и о чём им разговаривать. Если вам не понятны теория, проблемы и области применений интегральных преобоазований - почитайте учебники.
|
|
|
|
|
Jan 13 2014, 21:23
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
AndrewN, на мои вопросы ответа нет, я правильно понял? Хорошо, писать здесь больше не буду, если не попросят. И опять же, против поговорки: "мели, Емеля, - твоя неделя" ничего особо не имею. Только после этого называть Электроникс техническим форумом как-то язык не поворачивается... А о теории, уважаемый AndreyN, у нас настолько разные представления, что могу вам посоветовать держать свои советы при себе. Называть "интегрированием" фильтрацию скользящим средним можно только в понятийном пространстве, ортогональном к общепринятому. Желаю удачи на сей ниве, тем не менее.  Правила форума ещё бы не мешало почитать... У всех посетителей темы прошу прощения за оффтоп.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Jan 13 2014, 22:27
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Цитата(Stanislav @ Jan 13 2014, 21:39)  Понеслась опять нелёгкая, похоже... Вы полагаете, что совершили открытие, доказав мировую теорему о том, что:  , верно? Спешу Вас разочаровать - как раз для фильтра скользящего среднего обратный фильтр неустойчив. Т.е., прямая-обратная операция не является робастной. А вот и хымыки пожаловали. Жалобу на вас, что ли, накатать? Или предложить поискать площадку, где ваши таланты раскроются в полную силу? Пока попробую второе. Не соблаговолите ли сходить на ххымию, господа флудеры? http://www.ximuk.ru/Можете написать импульсную характеристику восстанавливающего фильтра?
|
|
|
|
|
Jan 13 2014, 23:14
|
Местный
  
Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961

|
QUOTE (Stanislav @ Jan 14 2014, 00:23)  Называть "интегрированием" фильтрацию скользящим средним можно только в понятийном пространстве, ортогональном к общепринятому. Кгм... А дискретные-то фильтры откуда произошли? Из свёрток, суть интегральных преобразований, со специальными ядрами. Ну и за частными примерами нельзя упускать общие вещи.
|
|
|
|
|
Jan 14 2014, 14:26
|
Знающий
   
Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458

|
Цитата(Stanislav @ Jan 14 2014, 01:23)  ...Называть "интегрированием" фильтрацию скользящим средним можно только в понятийном пространстве, ортогональном к общепринятому. Скользящее среднее это именно интегрирование на заданном временном интервале. В самом общепринятом смысле. Stanislav, не стоит мешать этому обсуждению, оно достаточно интересно и, по большому счету, не выходит за рамки исходной темы. Просто "детский" вопрос оказался непростым. Попробую немного по другому выразить уже сказанное раньше. Разность текущей и предыдущей сумм S[i] - S[i-1] равна разности текущего отсчета Х[i] и отсчета N тактов ранее X[i-N], где N - длина суммирования. Т.е. X[i]=S[i]-S[i-1]+X[i-N]. Если мы теперь откатим на N точек назад и сделаем то же самое, то увидим, что разность S[i-N] - S[i-N-1]=X[i-N]-X[i-2N], т.е. X[i-N]=S[i-N]-S[i-N-1]+X[i-2N]. Подставив в предыдущее выражение получим X[i]=S[i]-S[i-1]+X[i-N]=S[i]-S[i-1] + S[i-N]-S[i-N-1] + X[i-2N]. Т.е. если мы будем суммировать разности сумм (S[i]-S[i-1]) с шагом N (такую сумму разностей назовем SS), то сможем вычислить текущее значение X[i] зная значение в точке k*N (k-целое) тактов назад X[i]=SS + X[i-k*N]. Если провести подобную операцию с N последовательными точками, т.е. вести N сумм SS (SS[m], где m=0...N-1), то мы в любой момент времени можем вычислить текущее значение зная значение в точке, с которой мы начали вести суммы SS (SS[0],m=0). X[i]=SS[m] + X[m], где m - остаток от деления i/N, а X[m]-константа (истинный отсчет, значение буфера сумматора...) Это полностью эквивалентно знанию всех значение буфера сумматора в какой-то момент времени с дальнейшим отслеживанием его содержимого. Если вдуматься, то уже можно с высокой степенью достоверности утверждать, что задача восстановления исходных значений сводится к задаче восстановления содержимого буфера сумматора. Любые иные методы дадут дополнительные ошибки. А сделать это можно или получая пропись с самого начала (нулевой буфер) или, как предложил ViKo, подав калибровочный сигнал. Если форма и время начала сигнала известны, то буфер можно восстановить практически точно (до погрешности АЦП). И вот как именно это сделать и стоит подумать. Как пример, в процессе работы вместо сигнала с датчика подать некоторый медленный и достаточно длинный сигнал (период заведомо много больше N). Если время его включения неизвестно, можно попытаться поиграться с корреляцией (по самим суммам) и максимально точно определив его время подогнать значения в буфере (уже по отсчетам). Можно сделать несколько итераций. Да, давайте считать все вычисления в целых, без деления и т.д. Понятно, что любая плавучка даст погрешности и они приведут к ошибкам, но это следующий уровень приближения. Если калибровочный сигнал велик, то отосительные погрешности восстановления буфера будут порядка погрешностей АЦП, а это уже неистребимые никакими цифровыми методами ошибки.
|
|
|
|
|
Jan 14 2014, 19:44
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата Tarbal: Можете написать импульсную характеристику восстанавливающего фильтра? Я не станислав, но влезу дабы как-то закруглить дискуссию Для нечетного N =\sum_{k=1}^{(N-1)/2} \frac {\sin(2 \cdot \pi \cdot k/ N \cdot (n + (N-1)/2))}{\sin(2 \cdot \pi \cdot k/ N ) \cdot \prod_{i=1 \cr i \neq k}^{(N-1)/2} 2 \cdot (\cos(2 \cdot \pi \cdot k/ N) - \sin(2 \cdot \pi \cdot i/ N)) }) Только нафига все это надо?
Сообщение отредактировал thermit - Jan 15 2014, 16:18
|
|
|
|
|
Jan 14 2014, 20:16
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата rudy_b: Скользящее среднее это именно интегрирование на заданном временном интервале. В самом общепринятом смысле. Нудаканешна. В общепринятом. 1 Вычислите dx$) 2. Сравните с sum(cos(pi/8+2*pi/10*(0:4)))/5 sum(cos(pi/8+2*pi/100*(0:49)))/50 sum(cos(pi/8+2*pi/1000*(0:499)))/500 3 Почувствуйте разницу.
|
|
|
|
|
Jan 14 2014, 20:26
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Коль попросили, отвечу. Цитата(Tarbal @ Jan 14 2014, 02:27)  Можете написать импульсную характеристику восстанавливающего фильтра? "Написать импульсную характеристику" вряд ли кто сможет. Нарисовать разве... Ну да ладно. Допустим, могу. А зачем? Цитата(Tarbal @ Jan 14 2014, 18:07)  Станислав, куда вы пропали? Я с нетерпением жду возможности почерпнуть у вас знаний. Терпение, друг мой. Не всем же сидеть без работы... Цитата(AndrewN @ Jan 14 2014, 03:14)  Кгм... А дискретные-то фильтры откуда произошли? Из свёрток, суть интегральных преобразований, со специальными ядрами. Пожалуйста, соблаговолите указать источник, где вы подобное вычитали. А пока будете его искать, прошу ответить на вопрос: существует ли вообще операция [определённого] интегрирования в пространстве цифровых сигналов? Цитата(rudy_b @ Jan 14 2014, 18:26)  Скользящее среднее это именно интегрирование на заданном временном интервале. В самом общепринятом смысле. К Вам тот же вопрос. А ещё задачка. Дана цифровая функция: =x(2)=x(3)=1) . Все остальные =0) Найти определённый интеграл в пределах k, скажем, от 1 до 3 включительно. В самом общепринятом смысле.  Цитата(rudy_b @ Jan 14 2014, 18:26)  Stanislav, не стоит мешать этому обсуждению, оно достаточно интересно и, по большому счету, не выходит за рамки исходной темы. Просто "детский" вопрос оказался непростым. Ну, поржать разве... Написал же выше: не мешаю.  Цитата(thermit @ Jan 14 2014, 23:44)  Я не станислав, но влезу дабы как-то закруглить дискуссию... Вау, круто! Но имя собственное можно было и с большой буквы. Цитата(thermit @ Jan 15 2014, 00:16)  Нудаканешна. В общепринятом. ................................... 3 Почувствуйте разницу. Опередили на полкорпуса.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Jan 14 2014, 20:40
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата Tarbal: Как из этой импульсной характеристики следует разностное уравнение полученое топикстартером? Если подать на вход разностного уравнения тс дискретную дельта-функцию на выходе получим дискретную последовательность описываемую этой формуленцией. Цитата Чем вам дискуссия не нравится? Тем, что на в общем на тривиальную для специалиста тему дискутируют профаны. Как следствие - многостраничные топики с нулевым информационным наполнением. Такие дискуссии роняют статус электроникса ниже плинтуса, что лично меня расстраивает. Профанам нужно почитать соответствующую лит-ру, и на электрониксе задать возникшие в процессе чтения вопросы, а не заниматься пустопорожними спорами с такими же малокомпетентными знатоками.
|
|
|
|
|
Jan 14 2014, 20:54
|
Местный
  
Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961

|
QUOTE (thermit @ Jan 15 2014, 00:16)  Нудаканешна. В общепринятом. А чего вы, собственно, доказываете? То, что численная аппроксимация не равна аналитически полученному значению? Удивляйте первокурсников. Или вы не знаете, как производится численное интегрирование? Не смешите матлабовской фигнёй. QUOTE (Stanislav @ Jan 15 2014, 00:26)  Пожалуйста, соблаговолите указать источник, где вы подобное вычитали. Help yourself, двоечник. Вокруг полно матана. QUOTE (Stanislav @ Jan 15 2014, 00:26)  А пока будете его искать, прошу ответить на вопрос: существует ли вообще операция [определённого] интегрирования в пространстве цифровых сигналов? Почитайте определение пространства для начала, двоечник, и вы увидите, что такого пространства нет. Я понимаю, вы ёрничаете, пытаетесь поиздеваться надо мной, но, увы, делаете это так примитивно, по-жлобски, по-слесарному, что вас даже жаль. Вы сами себя дураком выставляете. Уймитесь же, не позорьтесь. P.S. Кроме того, нет никаких запретов на интегрирование разрывных функций. Смотрите определение интеграла. Поэтому ваш дурацкий пример интеграл с раз-два-три как-раз-то и считается как два пальца.
|
|
|
|
|
Jan 14 2014, 20:56
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата AndrewN: А чего вы, собственно, доказываете? То, что численная аппроксимация не равна аналитически полученному значению? Удивляйте первокурсников. Или вы не знаете, как производится численное интегрирование? Не смешите матлабовской фигнёй. Я ничего никому не доказываю и доказывать не собираюсь. Это было опровержение следующего перла: Цитата rudy_b: Скользящее среднее это именно интегрирование на заданном временном интервале. В самом общепринятом смысле. А численное интегрирование не надо сюда припллетать. Симпсон обидится.
|
|
|
|
|
Jan 14 2014, 21:02
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(AndrewN @ Jan 15 2014, 00:54)  Help yourself, двоечник. Вокруг полно матана. Матан нужно иметь в себе, а не вокруг. А вот грубить нехорошо. Да и чревато... Цитата(AndrewN @ Jan 15 2014, 00:54)  Почитайте определение пространства для начала, двоечник, и вы увидите, что такого пространства нет. В мемориз!  Цитата(AndrewN @ Jan 15 2014, 00:54)  ...Я понимаю, вы ёрничаете, пытаетесь поиздеваться надо мной,.. Господь с вами, даже в мыслях не было. Вы сами неплохо справляетесь. Цитата(AndrewN @ Jan 15 2014, 00:54)  P.S. Кроме того, нет никаких запретов на интегрирование разрывных функций. Смотрите определение интеграла. Поэтому ваш дурацкий пример интеграл с раз-два-три как-раз-то и считается как два пальца. Ну, так чему же он равен?
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Jan 14 2014, 21:04
|
Местный
  
Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961

|
QUOTE (thermit @ Jan 14 2014, 23:56)  Я ничего никому не доказываю и доказывать не собираюсь. Это было опровержение следующего перла: [...] А численное интегрирование не надо сюда приплетать. Симпсон обидится. Пэрл не пэрл, но численное интегрирование явно присутствует. По существующей формуле прямоугольников. Симпсону тут просто не хватает места (в некотором смысле) для того, чтобы обижаться, он другого порядка. Но фильтровать можно и Симпсоном. И любой другой аппроксимацией. Исторически, выбор прямоугольников был сделан из-за быстроНЕдействия тогдашних компьютеров. И Фурье можно считать не по прямоугольникам, но тогда - прощай БПФ.
|
|
|
|
|
Jan 14 2014, 21:17
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(thermit @ Jan 15 2014, 00:56)  А численное интегрирование не надо сюда припллетать. Симпсон обидится. Дык, написал же товарищ - в самом общепринятом смысле. Меня когда-то учили, что опр. интеграл (Римана) есть предел верхней и нижней сумм Дарбу. Пусть получит - функция ведь простейшая.  Цитата(rudy_b @ Jan 15 2014, 01:08)  Красиво врут теоретики, просто приятно послушать. Так решите задачку, уважаемый практик. Ну, пожалуйста... Цитата(rudy_b @ Jan 15 2014, 01:08)  ...Разрывные функции рисуют только так. Вы хоть одну в природе видели? А что же Вы тогда собрались "интегрировать"?
Сообщение отредактировал Stanislav - Jan 14 2014, 22:24
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Jan 14 2014, 21:47
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата rudi_b: Красиво врут теоретики, просто приятно послушать. Элементарных практических вещей не знают. Разрывные функции рисуют только так. Вы хоть одну в природе видели? Я вам привел пример разницы между определенным интегралом и суммированием. Вы не видите разницы? Собственно, мне больше нечего вам сказать. Продолжайте культивировать тараканов в собственной голове, только не выпускайте их на форум. Здесь и так уже от мракобесия деваться некуда. Надеюсь, модератор когда-нибудь очухается и выпилит эту ересь нахрен...
|
|
|
|
|
Jan 14 2014, 21:49
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(rudy_b @ Jan 14 2014, 20:26)  Если вдуматься, то уже можно с высокой степенью достоверности утверждать, что задача восстановления исходных значений сводится к задаче восстановления содержимого буфера сумматора. Любые иные методы дадут дополнительные ошибки.
А сделать это можно или получая пропись с самого начала (нулевой буфер) или, как предложил ViKo, подав калибровочный сигнал. Если форма и время начала сигнала известны, то буфер можно восстановить практически точно (до погрешности АЦП). И вот как именно это сделать и стоит подумать. Слишком абстрактная задача. Если какая-то информация о входном сигнале доступна "обходным путём" или наоборот (воздействием), то это сразу меняет дело. Калибровочный сигнал во-первых прервёт основной сигнал, а во-вторых достаточно на вход скользящего подать 0 и через N тактов буфер скользящего самоочистится. Или любую постоянку/НЧ. Или другой вариант. Входной сигнал сглаживается через два скользящих с разным N, некратным друг другу (простые числа). На выходе имеем два отдельных сигнала, функционально связанных с исходным. Тогда входной сигнал наблюдать или воздействовать на него не нужно. ЗЫ Ранее, восстанавливая сигнал через ДПФ, наверное надо было слепые зоны умножать на 1. Это для практического восстановления сигнала. Для математического конечно же не хватает информации о состоянии фильтра. Практическое восстановление будет вполне правдоподобным.
Сообщение отредактировал GetSmart - Jan 14 2014, 22:31
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Jan 15 2014, 04:16
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Цитата(thermit @ Jan 14 2014, 23:40)  Если подать на вход разностного уравнения тс дискретную дельта-функцию на выходе получим дискретную последовательность описываемую этой формуленцией. Я не это спросил. Ваши попытки Я расцениваю как зафлуживание. Докажите свою круть. Покажите как из этой импульсной характеристики вы получите разностное уравнение. Если не по силам, то покажите как посчитать полюса. Цитата(rudy_b @ Jan 15 2014, 00:20)  Дык практиками несколько вариантов решения уже предложено. А вот от теоретиков, пока, кроме невнятных формул - ничего путного не видно. Причем злобные какие-то. Такое ощущение, что они не хотят чтобы кто-то что-то узнал. Предлагаю гипотезу: они втирают мозги начальству на эту тему, а если начальство прочитает ответы, то их авторитет упадет ниже плинтуса. Уж больно заинтересованы в прекращении дискуссии. Как ученый (они ведь так себя позиционируют) может быть против выяснения истины? Цитата(Stanislav @ Jan 14 2014, 23:26)  Коль попросили, отвечу. "Написать импульсную характеристику" вряд ли кто сможет. Нарисовать разве... Ну да ладно. Допустим, могу. А зачем? Терпение, друг мой. Не всем же сидеть без работы... Пожалуйста, соблаговолите указать источник, где вы подобное вычитали. А пока будете его искать, прошу ответить на вопрос: существует ли вообще операция [определённого] интегрирования в пространстве цифровых сигналов? К Вам тот же вопрос. А ещё задачка. Дана цифровая функция: =x(2)=x(3)=1) . Все остальные =0) Найти определённый интеграл в пределах k, скажем, от 0 до 3 включительно. В самом общепринятом смысле.  Ну, поржать разве... Написал же выше: не мешаю.  Вау, круто! Но имя собственное можно было и с большой буквы. Опередили на полкорпуса.  Флуд и демагогия
Сообщение отредактировал Tarbal - Jan 15 2014, 04:14
|
|
|
|
|
Jan 15 2014, 09:55
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата Tarbal: Я не это спросил. Ваши попытки Я расцениваю как зафлуживание. Докажите свою круть. Мне это никчему. Я стараюсь по мере сил наполнить темы хоть каким-то содержанием, в отличие от большинства гуру. Цитата Покажите как из этой импульсной характеристики вы получите разностное уравнение. Этой импульсной х-ке соответствует передаточная функция (прямое z-преобразование)  = \frac{1}{1+\sum_{k=1}^{N-1}z^{-k}} {=} \frac{1-z^{-1}}{1-z^{-N}} ) Из передаточной функции получается разностное уравнение  = x(n)-x(n-1)+y(n-N) ) Цитата Если не по силам, то покажите как посчитать полюса. Надо решить уравнение  получаем  полюсы  Цитата Причем злобные какие-то. Такое ощущение, что они не хотят чтобы кто-то что-то узнал. Когда хотят чего-то узнать обычно спрашивают, а не начинают разводить теории о практике.
Сообщение отредактировал thermit - Jan 15 2014, 09:58
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|