Страница 1 из 2

Построение огибающей спектра

Добавлено: 09 апр 2014, 17:27
Moleculo
Добрый день.
Есть программа, показывающая спектр открываемого wav файла. Нужно построить кривую - огибающую спектра, как это можно сделать? Насколько я понял необходимо использовать преобразование Гилберта, но мыслей как это все собрать у меня не появляется.
Спасибо.

Re: Построение огибающей спектра

Добавлено: 09 апр 2014, 18:02
IvanLis
Moleculo писал(а):Добрый день.
Есть программа, показывающая спектр открываемого wav файла. Нужно построить кривую - огибающую спектра, как это можно сделать? Насколько я понял необходимо использовать преобразование Гилберта, но мыслей как это все собрать у меня не появляется.
Спасибо.
1.png
DetectSignalEnvelope.vi
lv2010
(16.16 КБ) 321 скачивание

Re: Построение огибающей спектра

Добавлено: 10 апр 2014, 15:20
Moleculo
Спасибо, только получается не совсем то что ожидал.

Если рассмотреть такой пример.
1.jpeg
Можно ли получить кривую такого вида (красная кривая)?
3.jpg
P.S. Почему то файлы с форума у меня не загружаются.

Re: Построение огибающей спектра

Добавлено: 10 апр 2014, 16:02
IvanLis
Moleculo писал(а):Можно ли получить кривую такого вида (красная кривая)?
если выделять огибающую до "модуля", то можно
там симметрия нужна
Без имени.png
Untitled 1.vi
lv2010
(20.64 КБ) 256 скачиваний
Moleculo писал(а):P.S. Почему то файлы с форума у меня не загружаются.
это после взлома форума, сейчас работают над проблемой

Re: Построение огибающей спектра

Добавлено: 10 апр 2014, 16:34
Moleculo
Спасибо, получилось если брать два синуса.
А если я складываю синус с, допустим, миандром, то получается что то такое:
4.jpeg
А надо именно что то похожее на синусоиду.

Re: Построение огибающей спектра

Добавлено: 10 апр 2014, 17:47
IvanLis
Moleculo писал(а):А надо именно что то похожее на синусоиду.
Я больше никак помочь не могу. Вы пытаетесь молотком копать.

Нужно определиться с задачей и найти подходящее решение.
Попробуйте через фильтр пропустить, но там фазовый сдвиг будет относительно исходного сигнала.

Re: Построение огибающей спектра

Добавлено: 10 апр 2014, 18:41
Moleculo
Ладно :D я просто хотел постепенно вникнуть в суть.

Исходная задача такова:
1. Открыть звуковой wav файл и получить его временной и частотный спектры - с этим я справился и выглядит это так:
5.jpeg
2. Далее, насколько я понял, от меня требовалось: построить огибающую спектра (должно получиться что то вроде синусоиды), по которой можно было бы судить о частоте изменения громкости сигнала. На данном этапе мои чахлые способности в LabVIEW совсем завяли. Погуглив, единственное что я нашел, это то что огибающие строятся с помощью эдакого преобразования Гильберта.

Re: Построение огибающей спектра

Добавлено: 10 апр 2014, 20:18
IvanLis
Moleculo писал(а):2. Далее, насколько я понял, от меня требовалось: построить огибающую спектра (должно получиться что то вроде синусоиды), по которой можно было бы судить о частоте изменения громкости сигнала. На данном этапе мои чахлые способности в LabVIEW совсем завяли. Погуглив, единственное что я нашел, это то что огибающие строятся с помощью эдакого преобразования Гильберта.
Какая связь между огибающей спектра и изменением громкости?
Спектр - это представление в частотной области.
А громкость изменяется во времени.
Вам мне кажется нужно строить огибающую сигнала именно во временной области, тут как раз и должно все получиться.

Re: Построение огибающей спектра

Добавлено: 10 апр 2014, 20:38
Moleculo
IvanLis писал(а):
Moleculo писал(а):Какая связь между огибающей спектра и изменением громкости?
Спектр - это представление в частотной области.
А громкость изменяется во времени.
Вам мне кажется нужно строить огибающую сигнала именно во временной области, тут как раз и должно все получиться.
Да, я имел ввиду именно временную область (она именуется временным спектром если я правильно понимаю).
Как это можно реализовать?

Re: Построение огибающей спектра

Добавлено: 11 апр 2014, 07:26
IvanLis
Moleculo писал(а):Да, я имел ввиду именно временную область (она именуется временным спектром если я правильно понимаю).
Как это можно реализовать?
По поводу спектра ничего сказать не могу, но я такой термин впервые слышу.

Реализуется преобразованием Гильберта, как в примере, проблем быть не должно.
Вы пробовали проделать это с реальным сигналом, а не искусственным с частотой 15 Гц?

Re: Построение огибающей спектра

Добавлено: 11 май 2014, 10:21
Iri6a90
Ребят, помогите. Мне в принципе надо сделать то, что в этой теме описано. Только сигнал у меня звук легких... выглядит так(рис.1).
Нужно построить огибащую красивую такую(рис.2). Это возможно? не захватывать все частоты? Что за это отвечает в этой конструкции ВП с Гильбертом.

Re: Построение огибающей спектра

Добавлено: 11 май 2014, 13:28
mixail_
Iri6a90 писал(а):Ребят, помогите. Мне в принципе надо сделать то, что в этой теме описано. Только сигнал у меня звук легких... выглядит так(рис.1).
Нужно построить огибащую красивую такую(рис.2). Это возможно? не захватывать все частоты? Что за это отвечает в этой конструкции ВП с Гильбертом.
наверное нужно строить не красивую, а правильную. если нужна огибающая сигнала то vi из второго поста подойдет

Re: Построение огибающей спектра

Добавлено: 13 май 2014, 10:21
kiparym
Вам требуется получить значения модуля сигнала. Используйте преобразование Гильберта (пост_№ 2).
Преобразование Гильберта – это получение комплексной составляющей из действительного сигнала. Модуль этого сигнала и есть огибающая временного сигнала. При применении преобразователя необходимо помнить, что преобразователь имеет переходную характеристику (ему надо разогнаться). Результат - сильные искажения в начале файла. Для непрерывных преобразований необходимо реализовать режим «Point By Point».

Re: Построение огибающей спектра

Добавлено: 21 июн 2017, 19:21
jane_wild
Здравствуйте, нужна помощь. Как убрать (уменьшить) искажения сигнала. Строю огибающую синусоиды при помощи HilbertTransform.vi (пример использования которого любезно предоставил IvanLis за что ему низкий поклон.) Проблема в том что в начале построения огибающей происходят искажения, как от них избавиться? На скриншотах это хорошо видно. На скриншотах Синусоида 2000 Гц (красная линия). Огибающая (Зеленая) Sample Rate 30000 и обновление экрана 0.1 сек. Т.е. DAQ прислала 3000 отсчетов я по ним построила огибающую и вывела на Chart, пришли следующие 3000, я их снова преобразовала и Chart добавил к уже имеющимся. Так вот в местах "склейки" и происходят искажения огибающей, оригинальный сигнал выглядит нормально. (конечно увеличив частоту оцифровки, можно получить синусоиду и "покрасивше" , но эта вполне устраивает)
Первый screenshot без zoom, хорошо виден шум (зеленый плот). На втором screenshot увеличенный кусок, хорошо видны зеленые выбросы (места склейки) На третьем еще больше увеличеный кусок с самим выбосом. Как их убрать?
Спасибо.

Re: Построение огибающей спектра

Добавлено: 21 июн 2017, 20:43
IvanLis
jane_wild писал(а):Первый screenshot без zoom, хорошо виден шум (зеленый плот). На втором screenshot увеличенный кусок, хорошо видны зеленые выбросы (места склейки) На третьем еще больше увеличеный кусок с самим выбосом. Как их убрать?
Тут без переходных процессов не обойтись.
Пропустите полученный сигнал огибающей через ФНЧ, подберите частоту среза, что бы убрать эти всплески.