Перейти к содержанию
    

Обработка суммы сигналов

Проблема следующая. Допустим у нас есть сумма гармонических колебаний. Причем амплитуда их обратно пропорциональна квадрату частоты. Например 10*cos(wt)+0.1*cos(10wt)+0.00001*cos(1000wt). Вопрос: как выделить все эти сигналы при использовании БПФ? При моделировании в Маткаде первый сигнал своими боковыми лепестками забивает последний сигнал пр любом используемом окне.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не уверен, но может быть посмотреть в сторону кепстра?

 

P.S.: Это только мое личное ничем не обоснованное предположение:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не уверен, но может быть посмотреть в сторону кепстра?

 

P.S.: Это только мое личное ничем не обоснованное предположение:)

 

Так и не понял смысл этого кепстра. Понял только то, что производится два раза БПФ над сигналом.. Можете объяснить, как он может помочь в данной задаче? Частоты в задаче не обязательно кратные. Они вообще произвольные в диапазоне от 100 Гц до 7.5 МГц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В вашем примере последний сигнал на 120 ДБм меньше первого, а это 20 бит. Если сдеать БПФ с динамическим диапазоном, допустим, 150 ДБм(25 бит на входе) и применить, к примеру, окно Блэкмана-Харриса - то последний сигнал должен быть виден.

Изменено пользователем TRILLER

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В вашем примере последний сигнал на 120 ДБм меньше первого, а это 20 бит. Если сдеать БПФ с динамическим диапазоном, допустим, 150 ДБм(25 бит на входе) и применить, к примеру, окно Блэкмана-Харриса - то последний сигнал должен быть виден.

А если косинусоид несколько с малыми частотами(соответственно большими амплитудами), то они могут замаскировать косинусоиду с большой частотой. Симулирую следующие сигналы: мощности- 7.329*10^-15, 1.52*10^-14, 9.499*10^-12, 9.499*10^-8; частоты 1.6*10^6, 1.333*10^6, 2.667*10^5, 2.667*10^4. Все соответственно в Вт и Гц. Окно применил вида 0.54-0.46*cos(), не помню его название. Итог нулевой, виден только "тычок" на 2.667*10^4 Гц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А если косинусоид несколько с малыми частотами(соответственно большими амплитудами), то они могут замаскировать косинусоиду с большой частотой. Симулирую следующие сигналы: мощности- 7.329*10^-15, 1.52*10^-14, 9.499*10^-12, 9.499*10^-8; частоты 1.6*10^6, 1.333*10^6, 2.667*10^5, 2.667*10^4. Все соответственно в Вт и Гц. Окно применил вида 0.54-0.46*cos(), не помню его название. Итог нулевой, виден только "тычок" на 2.667*10^4 Гц.

Окно плохое. Попробуйте Чебышевские окна. Или Ваше (0.54-0.46*cos()) возведите во 2,3,4 степень.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Окно плохое. Попробуйте Чебышевские окна. Или Ваше (0.54-0.46*cos()) возведите во 2,3,4 степень.

 

Благодарю за совет. Вроде в пределах моей задачи результат устраивает при окне Чебышева на 90-100 дБ.

Теперь вопрос для саморазвития. Есть ли еще методы для спектрального анализа кроме оконных функций?

Находил упоминание про так называемый MUSIC (multiple signal classification). Но его алгоритма не нашел. При его упоминании написано как раз то, что он не маскирует малые сигналы боковыми лепестками больших сигналов.

Может кто-нибудь знает про такой или подобный?

 

Update: Похоже поторопился с выводом о том , что результат устраивает. Промоделировал сумму 6 гармоник. 5 из них на частотах от 2.667*10^4 Гц до 4.8*10^4 Гц с шагом 5.333 кГц. Оставшаяся на 6.4 МГц. Последнюю очень трудно различить. Боюсь алгоритм обнаружения просто её пропустит. Предельные условия задачи, это наличие гармоник на частотах, от 2.667*10^4 Гц до 6.4 МГц с указанным шагом. Алгоритм обнаружения должен "поймать" их всех.

Изменено пользователем John7489

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть ли еще методы для спектрального анализа кроме оконных функций?

Находил упоминание про так называемый MUSIC (multiple signal classification). Но его алгоритма не нашел. При его упоминании написано как раз то, что он не маскирует малые сигналы боковыми лепестками больших сигналов.

Может кто-нибудь знает про такой или подобный?

Кажется в этой книжке есть :

ЦИФРОВОЙ СПЕКТРАЛЬНЫЙ АНАЛИЗ И ЕГО ПРИЛОЖЕНИЯ. С.Л. Марпл-мл.

 

Update: Похоже поторопился с выводом о том , что результат устраивает. Промоделировал сумму 6 гармоник. 5 из них на частотах от 2.667*10^4 Гц до 4.8*10^4 Гц с шагом 5.333 кГц. Оставшаяся на 6.4 МГц. Последнюю очень трудно различить. Боюсь алгоритм обнаружения просто её пропустит. Предельные условия задачи, это наличие гармоник на частотах, от 2.667*10^4 Гц до 6.4 МГц с указанным шагом. Алгоритм обнаружения должен "поймать" их всех.

Так разница уровней 110 дБ а окно у Вас 90-100 дБ. Возьмите окно 150 дБ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...