Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вейвлеты
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
Страницы: 1, 2
Xenia
Цитата(DRUID3 @ Nov 22 2010, 21:07) *
Я не так давно гуглил опенсоус вейвлет-проекты. Кстати именно потому вспомнил Вашу просьбу. И почти везде - полнейшее гавно(неуниверсальные процедуры - под определенный базис, системные вызовы внутри вычислительной функции, FIR "в лоб" с поэлементным сдвигом массива, нигде не применена быстрая свертка - хотя где-где а в вейвлетах ей самое место, ну и float восновном). Еще опенджпег правда не просмотрел. Он, кстати, целочисленный насколько помню - хорошо для ARM7-9. Но все-равно - того что видел вполне достаточно что-бы отсоветовать гуглить...

Вот и я о том же. Чтобы найти нужное на интернет-помойке, необходимо уже знать, что ищешь smile.gif. Но когда это уже узнаешь, то пропадает необходимость искать в интернете.
Очень многое запрятано в недра разнообразных библиотек, исходников для которых днем с огнем не сыщешь.

DRUID3, поскольку я вижу, что вы человек эрудированный, то спрошу вас вот еще о чем. Не встречали ли вы такого подхода, когда используемый для разложения ортогональный базис берется не с потолка (sin, cos, вейвлеты, теоретико-числовые и пр.), а вычисляется, как собственные векторы некоторой матрицы, строящейся прямо на основе тех экспериментальных данных, которые требуется разложить?

В сжатии графики я такие алгоритмы встречала, но реализацию для потоковых сигналов найти не смогла, хотя где-то когда-то слышала, что такое возможно и там. В графике нагляднее, т.к. график - уже матрица, а матрицы допускают, так называемое, сингулярное разложение (SVD). При этом собственные вектора взаимноортогональны по вычислению, а стало быть, заведомо годятся для базиса. Выбираем те, для которых собственные числа самые большие - вот тебе и базисная система. Причем по ней не только всё должно гладко разлагаться, но и даже теоретически результат такого разложения должен обладать наименьшей погрешностью редукции (здесь - понижения размерности) реального пространства измерений, до пространства, образуемого базисом.

Кажется (но точно не помню) такую матрицу составляли, как циркулянт - укладывали форму сигнала в верхнюю строку, а каждую ниже лежащую получали циклическим сдвигом на единичку (на одну временную дискрету) влево от того, что находится этажом выше. Например, для сигнала data[5] = { 1, 2, 3, 4, 5 }; матрица получалась такой:

1 2 3 4 5
2 3 4 5 1
3 4 5 1 2
4 5 1 2 3
5 1 2 3 4

Если бы у нее был еще N+1 рядок, то снова получилась бы исходная последовательность. Такой циркулянт всегда симметричен относительно главной диагонали, а следовательно, всегда приводим к диагональной форме. Вот его главные собственные вектора и используются как базис для разложения.

Вы где-нибудь встречали что-нибудь подобное? А то я не уверена, что излагаю что-то реальное, а не свои фантазии из головы, где всё поперепуталось smile.gif.
Oldring
Цитата(Xenia @ Nov 22 2010, 22:05) *
В графике нагляднее, т.к. график - уже матрица, а матрицы допускают, так называемое, сингулярное разложение (SVD). При этом собственные вектора


О, барышня, какие вы красивые слова знаете!
Вы, правда, перепутали базисы в SVD с собственными векторами. Но что правда - то правда, с использованием SVD можно много повыкидывать почти без потерь.

Можно, я вам ещё одну красивую фразу подскажу? Она вам понравится, обещаю. Итак, "разложение Карунена-Лоэва". Что это такое - посмотрите сами в Википедии. cool.gif

Лоэв, лоэв, лоэв, лоэв... wub.gif
анатолий
Цитата
К тому же, надо признаться, я "сдвигов", как огня боюсь ... Короче говоря, требуется лишь определить смещения для каждой составляющей, чтобы они легли на свое место в "пазле".


Вейвлет-преобразование как раз и характерно тем, что спектральные трассы, особенно низкочастотные,
повторяют сигнал, но в другом масштабе.
Т.е. фазовые вещи сохраняются очень благородно.

И не заморачивайтесь Каруненом-лоевым, который от снобизма.
Вейвлет-компрессия, может быть, на 3-10% хуже по сжатию этого самого Карунена,
зато наглядее и проще в исполнении.
M_SV
Всем доброго времени суток! В своё время занимался вейвлетами. Вот несколько сохранившихся книг.


Кстати, информацию можно поискать на сайте www.exponenta.ru
Sergey'F
Залил в upload/books/dsp/wavelet свою старую подборку статей по вэйвлетам 10-ти летней давности. Там много статей, от вводных до весьма специфических.

По теме Xenia я бы взял реальный сигнал и погонял в Матлабе с разными вэйвлетами, чтобы понять, какое семейство лучше подходит под конкретный сигнал.

P.S. И еще, в Вашем случае это не подойдет, но советую немного ознакомиться с темой compressed sampling/compressive sensing, скорее для понимания вычислительной сложности восстановления сигнала с определенными характеристиками по редко взятым отсчетам: http://dsp.rice.edu/cs. Недавно нам Веттерли как раз небольшой семинар по finite rate of innovation читал. Полиномиальная сложность в решении этой задачи - это очень хорошо по сегодняшним меркам. smile.gif
trex
можно ли в вейвлет пространстве суммировать (перемножить) два сигнала? т.е. аналог свертки Фурье во временной (частотной) области?
Andrey_1
Цитата(trex @ Jan 13 2011, 06:53) *
можно ли в вейвлет пространстве суммировать (перемножить) два сигнала? т.е. аналог свертки Фурье во временной (частотной) области?


Собственно замес в том, что обычное Фурье молчаливо предполагает - сигнал существует всегда (время от минус бесконечность до плюс бесконечность)
В реальной жизни сигналы нестационарны например речь -или импульсный шум (шум транспортного потока)
Вейвлет попытка уйти от классического Фурье-анализа и распространить его на случай нестационарного сигнала
Пытались мы как-то с коллегой лет пять назад сигнал речевой от шума почистить но как-то безуспешно - на временной реализации шум как бе совсем исчез а качество исходного голоса стало как у робота
trex
Цитата(Andrey_1 @ Jan 17 2011, 10:57) *
Собственно замес в том, что обычное Фурье молчаливо предполагает - сигнал существует всегда (время от минус бесконечность до плюс бесконечность)
В реальной жизни сигналы нестационарны например речь -или импульсный шум (шум транспортного потока)
Вейвлет попытка уйти от классического Фурье-анализа и распространить его на случай нестационарного сигнала
Пытались мы как-то с коллегой лет пять назад сигнал речевой от шума почистить но как-то безуспешно - на временной реализации шум как бе совсем исчез а качество исходного голоса стало как у робота

эммм, т.е. операцию свертки над коэффициентами одного и того же уровня разложения DWT двух сигналов делать нельзя теоретически? но суммировать можно?
sherr
Цитата(Xenia @ Nov 16 2010, 01:39) *
У меня явно не изображения, а одномерные сигналы, приближающиеся по форме к кривой Гаусса (кривой нормального распределения). В просторечии я называю их пиками.

Значит так. АЦП измеряет напряжение на своем входе всегда с одной и той же периодичностью (обычно это 50Гц, чтобы меньше сказывались сетевые наводки). Долгое время "ничего нет", т.е. на входе присутствует некий постоянный шум или медленный дрейф ("базовая линия"). И вдруг внезапно "выходит" пик - сигнал гауссообразной формы со слегка заметным "хвостом" (задний фронт более пологий, чем передний, тогда как гауссиана полностью симметрична). Обычно за 20-60 секунд входное напряжение успевает достигнуть локального максимума, а затем снова сходит до уровня базовой линии. И так процесс продолжается от нескольких часов до суток с небольшим.

Высокоэффективная газо-жидкостная хроматография или что-то подобное ?
Xenia
Цитата(sherr @ Jan 20 2011, 19:33) *
Высокоэффективная газо-жидкостная хроматография или что-то подобное ?


Оно самое sm.gif, плюс капиллярный электрофорез.
Andrey_1
Цитата(trex @ Jan 20 2011, 10:04) *
эммм, т.е. операцию свертки над коэффициентами одного и того же уровня разложения DWT двух сигналов делать нельзя теоретически? но суммировать можно?

Сформулируйте по-русски пожалуйста rolleyes.gif
trex
Цитата(Andrey_1 @ Jan 22 2011, 03:43) *
Сформулируйте по-русски пожалуйста rolleyes.gif

сорри.....
свертка в смысле Фурье - http://ru.wikipedia.org/wiki/%D0%A1%D0%B2%...BB%D0%B8%D0%B7)

далее - Дискретное вейвлет преобразование - это http://ru.wikipedia.org/wiki/%D0%94%D0%B8%...%BD%D0%B8%D0%B5


В этом случае идет свертка высокочатотных и низкочастотного фильтров с сигналом. Получаем соответсвенно детализирующие коэффициенты (после ВЧ-фильтра) и коэффициенты аппроксимации (после НЧ-фильтра). Вопрос - можно ли теперь произвести свертку двух сигналов - вернее импульса и сигнала (отклика системы) если мы оба их преобразуем одним и тем же определенным алгоритмами ДВП или это теоретически невозможно? Мне подсказали что суммировать два сигнала в пространстве вейвлет коэффициентов после дискретного вейвлет преобразования (ДВП) можно посредством суммирования коэфициентов соотвествующих уровней разложения, а вот свертку можно ли произвести?

P.S. Т.е. - свертка в Фурье импульса и сигнала отклика - это тоже своего рода свертка фильтра (импульса) с сигналом, во временной области Фурье свертка - это последовательное суммирование коэффициентов фильтра (импульса) с дискретом сигнала, в частотной - перемножение спектров. Т.е. - возможна ли подобная операция перемножения спектров (т.е. коэффициентов детализации и коефициентов апроксимации) если мы представим наш фильтр (импульс) тоже в виде коэфициентов разложения ДВП ?
Andrey_1
Извините но я не понял о чем это Вы и что такое Фурье-свертка
Простейший случай вейвлета это финитное преобразование Фурье когда сигнал сначала умножается на временное окно Ханнига, прямоугольное, Блекмана-Харриса и т.д.
А потом выполняется БПФ на N-отсчетов
Сворачивать можно любые две функции лишь бы одна из них не была нулем на интервале Т на котором выполняется интегрирование иначе результат тривиален.
Просто вейвлет это обобщение преобразования Фурье на нестационарные сигналы

Рекомендую Боб Рэндал Частотный Анализ - в библиотеке на русском может и есть
http://www.amazon.com/Frequency-Analysis-R...l/dp/8787355078
Бендат и Пирсол Прикладной Анализ случайных данных
http://www.amazon.com/Random-Data-Analysis...s/dp/0471317330

Хотя бы с классикой разобраться сначала а потом про вейвлеты
Если смущает английский язык этих двух книг то, пардоне муа, нынче инженер без инглиша - это не инженер Такова реальность как бы обидно это не звучало



trex
Цитата(Andrey_1 @ Jan 22 2011, 14:17) *
Извините но я не понял о чем это Вы и что такое Фурье-свертка
Простейший случай вейвлета это финитное преобразование Фурье когда сигнал сначала умножается на временное окно Ханнига, прямоугольное, Блекмана-Харриса и т.д.
А потом выполняется БПФ на N-отсчетов
Сворачивать можно любые две функции лишь бы одна из них не была нулем на интервале Т на котором выполняется интегрирование иначе результат тривиален.
Просто вейвлет это обобщение преобразования Фурье на нестационарные сигналы

Рекомендую Боб Рэндал Частотный Анализ - в библиотеке на русском может и есть
http://www.amazon.com/Frequency-Analysis-R...l/dp/8787355078
Бендат и Пирсол Прикладной Анализ случайных данных
http://www.amazon.com/Random-Data-Analysis...s/dp/0471317330

Хотя бы с классикой разобраться сначала а потом про вейвлеты
Если смущает английский язык этих двух книг то, пардоне муа, нынче инженер без инглиша - это не инженер Такова реальность как бы обидно это не звучало


ок, спасибо
Xenia
Цитата(Andrey_1 @ Jan 22 2011, 15:17) *
Рекомендую Боб Рэндал Частотный Анализ - в библиотеке на русском может и есть
http://www.amazon.com/Frequency-Analysis-R...l/dp/8787355078
Бендат и Пирсол Прикладной Анализ случайных данных
http://www.amazon.com/Random-Data-Analysis...s/dp/0471317330
Если смущает английский язык этих двух книг то, пардоне муа, нынче инженер без инглиша - это не инженер Такова реальность как бы обидно это не звучало

Обе книжки есть в нашей библиотеке на FTP в русском переводе!

"Рандалл Р.Б., Частотный анализ(1989).djvu" - 11 М
"Бендат Дж., Пирсол А., Прикладной анализ случайных данных(1989).djvu" - 4.5 М

Кто не записан в FTP-библиотеку, может написать мне в личку письмо/просьбу - пришлю по мылу.
r_dot
Xenia, прочитал всю ветку и возник"глупый" вопрос: Зачем вам требуется "сжать" исходную запись? Только из-за того, что файл большой? А вы точно знаете, что именно из этой записи можно выбросить, не потеряв её ценность для анализа?
Если не знаете - то можно использовать только "беспотерьные" алгоритмы. Или купить винчестер побольше.
Если знаете, что и как анализировать - то при такой скорости поступления информации (никакой) почему не анализировать "на лету" и сохранять только полученные параметры?
Или вы хотите использовать вейвлеты как раз для выявления чего-то в этой записи? Тогда чего именно?
Кроме "электрофореза" вы не даёте никакой информации, а ведь требуемый "инструмент" сильно зависит от задачи...
Andrey_1
Цитата(r_dot @ Jan 24 2011, 11:37) *
Xenia, прочитал всю ветку и возник"глупый" вопрос: Зачем вам требуется "сжать" исходную запись? Только из-за того, что файл большой? А вы точно знаете, что именно из этой записи можно выбросить, не потеряв её ценность для анализа?
Если не знаете - то можно использовать только "беспотерьные" алгоритмы. Или купить винчестер побольше.
Если знаете, что и как анализировать - то при такой скорости поступления информации (никакой) почему не анализировать "на лету" и сохранять только полученные параметры?
Или вы хотите использовать вейвлеты как раз для выявления чего-то в этой записи? Тогда чего именно?
Кроме "электрофореза" вы не даёте никакой информации, а ведь требуемый "инструмент" сильно зависит от задачи...


Рекомендую

1. Click the icon Matlab on your desktop

2. Print WAVELETMENU on command line in Matlab command window
Transcend
Пробовал, в Матлабе, тестовую функцию + шумы, обрабатывать разными алгоритмами вейвлет фильтрации.
Некоторые вполне подходят для этих целей.
Общая теория не интересует, нужно простыми средствами сделать программную реализацию определенного фильтра.
Вопрос в том, где взять исходники этих алгоритмов?
Из Матлабе извлечь их возможно?
Oldring
Цитата(Transcend @ Mar 24 2011, 20:11) *
Из Матлабе извлечь их возможно?


open
Transcend
Цитата(Oldring @ Mar 24 2011, 20:51) *
open

Непонятно.
Т.е. все программы которые выполняются в виде приложений в Матлабе - открыты?
Или там есть только теория в кратком изложении?
Вы сами, например, из симулинка алгоритмы вытаскивали?
Oldring
Цитата(Transcend @ Mar 24 2011, 20:58) *
Непонятно.
Т.е. все программы которые выполняются в виде приложений в Матлабе - открыты?
Или там есть только теория в кратком изложении?
Вы сами, например, из симулинка алгоритмы вытаскивали?


Не все, но многие функции в тулбоксах. Кроме встроенных и сильно заоптимизированных. Бывает полезно, чтобы понять, как на самом деле работает.
С блоками симулинка так не получится.

Кто мешает посмотреть самостоятельно?
Transcend
Цитата(Oldring @ Mar 25 2011, 01:25) *
Кто мешает посмотреть самостоятельно?

Потребует много усилий - мне этот вариант не подходит. У меня простая учебная задачка.
Нужен готовый пример программки с комментами и исходными математическими формулами, чтобы я мог немного их подправить под свою задачку и засунуть в МК.
М.б. у студентов бывают курсовые по вейвлетам, с примерами программ?

Oldring
Цитата(Transcend @ Mar 25 2011, 08:49) *
Потребует много усилий - мне этот вариант не подходит. У меня простая учебная задачка.
Нужен готовый пример программки с комментами и исходными математическими формулами, чтобы я мог немного их подправить под свою задачку и засунуть в МК.
М.б. у студентов бывают курсовые по вейвлетам, с примерами программ?


laughing.gif Вы ведь не хотели читать теорию.
На самом деле теория там интересная. Полезно ознакомиться даже для общего развития.
Transcend
Цитата(Oldring @ Mar 25 2011, 14:29) *
Полезно ознакомиться даже для общего развития.

Слово развитие тут неуместно. Тем более - "общего".
Oldring
Цитата(Transcend @ Mar 25 2011, 15:02) *
Слово развитие тут неуместно. Тем более - "общего".



А вы считаете, что вы хорошо понимаете теорию линейных отображений? Она в основе многих методов.
Вейвлеты очень сильно связаны с ПФ.
Ordo Malleus
Добрый день всем участникам форума! Случайно наткнулся на вашу ветку,надеюсь тут ещё кто-то остался =)
Ситуация следующая : я начинающий геофизик-сейсмик,сейчас по интересу занимаюсь вейвлет-анализом. В ходе дипломной работы сумел написать сжатие сейсмического сигнала кратно-масштабным методом для Добеши D4 и для Хаара. Сжатие с минимальными потерями(практически нет потерь энергии,искажений в модуль-спектре тоже почти нет) до 10 раз. Если больше - до 35 раз - фигня получается =).
Вопрос же следующий - хочу понять классическое вейвлет-разложение ( по-видимому CWT ). Непонятные моменты :
- каким образом при свёртке сигнала с вейвлетом получают результат той же длинны,что и сигнал? Это возможно лишь при циклической свёртке,а на основании чего её применяют не ясно.
- с чем собсно сворачивают - с Вейвлет-функцией или с Масштабирующей-функцией?
- если с с Вейвлет, то какой смысл в Масштабирующей и какова формула обращения и что в ней задействовано?
Буду благодарен за любой конструктивный ответ!
P.S. интересуют в первую очередь цифровые реализации.
Alexey Lukin
При CWT сигнал сворачивают с вейвлет-функцией, т.е. с полосовым фильтром.
Результат той же длины — в том смысле, что сигнал не прореживается. Если смотреть число ненулевых коэффициентов — то свёртка, конечно, может его увеличить.
Сомневаюсь, что непрерывное вейвлет-разложение поможет вам с компрессией: будут проблемы как с обратимостью, так и с избыточностью. В компрессии традиционно используется DWT.
Ordo Malleus
Ура,живые люди!
Алексей,вы меня не совсем верно поняли. Интересуюсь уже не для целей компрессии,а для попыток установления трендов изменений частотного состава различных записей волнового поля.
Касательно самих вейвлетов:
Обе функции являются полосовым фильтром, Вейвлет-функция это ФНЧ, Масштабирующая функция - ФВЧ(предполагаю всё-таки,что сворачивают с Вейвлет-функцией как раз по причине уменьшения оставляемого интервала частот при масштабировании). Вопрос с чем из них именно сворачивать и зачем тогда вторая? Результат той же длинны можно получить лишь при циклической свёртке - тогда вопрос о реализации. Есть вариант воспользоваться теоремой о спектрах и посчитать преобразование Фурье,там перемножить,а затем вернуться обратно, но фурье-образ от D4 в чистом виде вычислить невозможно.
Alexey Lukin
Цитата(Ordo Malleus @ Jun 30 2012, 08:57) *
Обе функции являются полосовым фильтром

НЧ-фильтр (скейлинг-функция) не является полосовым по определению.

Цитата(Ordo Malleus @ Jun 30 2012, 08:57) *
Вейвлет-функция это ФНЧ, Масштабирующая функция - ФВЧ

Наоборот. Вейвлет является полосовым фильтром, скейлинг-функция является НЧ-фильтром.

Цитата(Ordo Malleus @ Jun 30 2012, 08:57) *
Вопрос с чем из них именно сворачивать и зачем тогда вторая?

Уже ответил выше: при CWT сворачивают непосредственно с вейвлетом, скейлинг-функция не используется.
Скейлинг-функция используется при DWT для обеспечения ортогональности преобразования.
Santik
Сейсмикам!
Вейвлет (точнее q-чирплет) анализ работы сейсмического вибратора на жестком и мягком грунтах. Вверху- ускорение плиты, внизу ускорение массы. Хорошо виден "параллелограмм", обусловленный, по-видимому, резонансами плиты...Нажмите для просмотра прикрепленного файла
http://www.santaev.h16.ru/
На том же сайте лежит демо-версия программы обработки *.fmr - файлов. Есть версия обработки SEGY.
Ordo Malleus
C ФНЧ и ФВЧ я действительно напутал,видимо с утра голова не особо работала(хотя к слову сказать я упорно считаю ФНЧ полосовым фильтром с нижней частотой 0 Гц).
Остаётся главный вопрос,как осуществить циклическую свёртку с вейвлетом из 4 отсчётов и как растягивать такой вейвлет?
P.S.
За разъяснения с чем сворачивать при CWT Alexey Lukin'у большое спасибо!=)
Santik
Ещё картинка. Вибросейс. 1 канал. Расстояние ПП-ПВ 1500 м.
http://www.santaev.h16.ru/Статья3.htm
Ordo Malleus
Santik,последняя картинка это примерно то,что я хочу получить,но только по пучкам частот,а не по всему диапазону сразу,ну и,есстественно,по всей сейсмограмме/разрезу,а не по одному каналу. Как вы реализовывали? Какой вейвлет,как сворачивали?Можно ли получить результат аналогичный частичным восстановлениям?
Santik
Сразу по всем каналам - это будет 4-х мерная картинка. Чем её смотреть? Вся информация на моём сайте http://www.santaev.h16.ru/Статья3.htm
С сейсмограммой не пытался работать - только с виброграммой. Если пришлёте сейсмограмму в SEGY I4 могу построить, но опять же поканально.
Можно строить 3-D картинки анализа сейсмограммы на фиксированных частотах, но возникнет проблема с АРУ по каналам. А вот разрез построить - это реально, но на фиксированных частотах.
Что такое частичные восстановления я не знаю.
Santik
Хотя, я сегодня вспомнил, - простой метод смотреть 4-х мерные картинки есть!
Надо настроить много картинок 3D и потом смотреть по времени (или по координате) , как мультфильм... Я лет 10 назад таким способом материалы электроразведки обрабатывал по кимберлитовой трубке. Но это потребует Оочень много времени.
Santik
Вот пример вейвлет-анализа звука. Гласные А-Ы

Нажмите для просмотра прикрепленного файла
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.