|
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 5
|
|
Детектирование синусоид в дискретной последовательности02.10.2012, 22:36. Показов 4149. Ответов 7
Метки нет (Все метки)
Добрый день!
Прошу прощения за мой дилетантский язык, но проблема в следующем: Есть участок дискретного сигнала. Этот сигнал представляет собой сумму синусоидальных сигналов (синусоиды). Эти синусоиды присутствуют на участке "пакетами", то есть они не обязательно начинаются и заканчиваются в начале и конце рассматриваемого участка. В качестве примера предлагаю следующее (см. рисунок) Есть два синусоидальных сигнала: один сигнал на всём протяжении рассматриваемого участка, второй - только на половине рассматриваемого участка. Вопрос: как детектировать оба сигнала в указанном примере? То есть, как определить частоты этих двух сигналов. Если бы оба сигнала были на всём протяжении участка, то с определением частот без проблем справился бы обычный Фурье (fft). Но в данном примере Фурье не сможет помочь. Заранее благодарю!
0
|
|
| 02.10.2012, 22:36 | |
|
Ответы с готовыми решениями:
7
Разобраться в разнице между непрерывной, дискретной и непрерывно-дискретной оптимизацией Нарисовать синусоид
|
|
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
|
|||||||
| 03.10.2012, 10:36 | |||||||
1
|
|||||||
|
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 5
|
|
| 03.10.2012, 22:24 [ТС] | |
|
Спасибо за ответ! Новый для меня способ построения спектрограммы, я пока не могу судить точно, но похоже, что у вас сигнал представляет собой просто последовательность синусоид. А меня интересует ситуация, когда синусоиды накладываются друг на друга. В таких случаях Фурье не может дать точную характеристику каждого отдельного сигнала (за исключением случаев, когда синусоиды совершают целое количество периодов. В таких случаях нет "утечки" коэффициентов Фурье).
К тому же у вас очень большие частоты. Синусоиды успевают совершать сотни периодов. Это, конечно, облегчает детектирование синусоид. Но, увы, в моем случае синусоиды совершают не более 2-3 периода.
0
|
|
|
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
|
||
| 04.10.2012, 08:44 | ||
|
Прочитал более полную версию описания вашей проблемы на экспоненте, действительно при таком частотно-временном разрешении скорее всего не удастся подобрать размер окна преобразования. По поводу совета применять вейвлеты, честно говоря тоже не уверен что они помогут, но попробовать стоит.
0
|
||
|
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
|
||||||
| 04.10.2012, 10:20 | ||||||
Сообщение было отмечено как решение
Решение
Чтобы не быть голословным пришлось писать код)
Сигнал и спектрограмма, когда блоки не перекрываются: В случае перекрытия на четверть длины блока (на амплитуды пока не будем обращать внимания, они естественно не выровнены): как видите в моем случае частотно-временного разрешения оказалось достаточно, чтобы выделить синусоиды. Может и в вашем получится...
4
|
||||||
|
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 5
|
|
| 06.10.2012, 21:27 [ТС] | |
|
Спасибо за ответ!
Внимательно изучу пример и сообщу о результатах
0
|
|
|
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 5
|
|
| 08.10.2012, 23:18 [ТС] | |
|
Раз уж речь зашла про форум Exponenta, то предлагаю перенести общение туда. Мне так будет удобнее, чем следить сразу за двумя форумами.
matlab.exponenta.ru/forum/viewtopic.php?p=63325 Добавлено через 5 минут Спасибо за пример, но в Вашем примере очень малые участки пересекающихся синусоид. И по-прежнему очень много периодов, которые совершают синусоиды. Поэтому мы можем детектировать синусоиды только за счёт тех участков, где синусоиды не пересекаются и совершают несколько синусоид. Я в течении нескольких минут выложу на экспоненте более сложный пример, если Вам интересно.
0
|
|
|
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 5
|
|||||||||||
| 23.10.2012, 00:32 [ТС] | |||||||||||
|
Представьте себе планету. Уровень воды на пляже зависит от Луны. Мы все знаем, что Луна притягивает воду. И в сутках нашей планеты 100 земных часов. Вот график:
Теперь представьте, что у нас есть вторая Луна, которая вращается в два раза быстрее вокруг планеты (период 50 земных часов) Луны могут находиться в одной точке, или могут по разные стороны Луны. Таким образом, гравитационные силы двух лун складываются как вектора и мы получим следующую картину. И это еще не все. Вторая Луна постоянно куда-то исчезают. Никто не знает как. Просто исчезает. Поэтому, когда вторая луна отсутствует, на воду действует сила тяжести только первой луны. Наша вторая Луна стабильно появляется в 27 часов, и исчезает на 64 часу Добавим третью луну: Теперь представьте, что мы хотим знать о том, когда Луна исчезнет. Мы также должны знать, как быстро вращаются Луны вокруг планеты. И все это мы можем знать, имея только график уровня воды. Кто может подсказать, как решить такую задачу алгоритмически? Добавлено через 49 секунд Моделирование графиком в Matlab:
Меня заинтересовал метод, который, на мой взгляд, лучше помогает решить мою проблему, чем Фурье: эмпирическое разложение (EMD) Посмотрите, какие результаты, достигнуты на примере с лунами К сожалению, я смог идентифицировать только одну луну (которая никуда не исчезает). Но это уже результат! Получилось алгоритмически найти хотя бы один составляющий сигнал. Я думаю, что это хорошее начало, на пути к решению. А теперь прошу посмотреть на результаты разложения другого сигнала и сравните их с начальными условиями. Конечно, не 100% результат. Но мы только начали. Я отметил красным карандашом границы сигналов и их периоды.
Может быть кто-нибудь подскажет мне что-нибудь о EMD (или о другом подобном методе)
0
|
|||||||||||
| 23.10.2012, 00:32 | |
|
Помогаю со студенческими работами здесь
8
Цикл для генерации нескольких синусоид Как найти точки пересечения двух синусоид? Поиск БПФ от массива синусоид с разными амплитудами Сумма трех сигналов(синусоид) проходящих через последовательный колебательный контур Детектирование ASK Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|