|
|
  |
Операция обратная к "скользящему среднему" |
|
|
|
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

|
Ну не знаю, читаю уже четвертую страницу, реальных советов ноль. ТС решил проблему еще на первой странице, а все остальное просто хлам на мой взгляд. А так хочется увидеть качественное решение, с исходными данными, конкретным результатом и списком налагаемых ограничений...
--------------------
Всеобщая дебилизация не повод наносить ущерб своему здоровью.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|