Спектр для звукового файла

Обсуждение вопросов, связанных с обработкой аудио и видео информации
Alexey_B
interested
interested
Сообщения: 3
Зарегистрирован: 22 июн 2010, 18:36
Репутация: 0
Версия LabVIEW: 7.1
Контактная информация:

Спектр для звукового файла

Сообщение Alexey_B »

Помогите пожалуйста написать программу! :help: :help: :help: Нужно разбить звуковой файл на отрезки по 20 мс, а затем с помощью быстрого преобразования Фурье построить спектр, где по оси x - время, по оси y - частота, а по оси z - амплитуда. Если можно, скиньте пожалуйста готовую программу!!! Я понятия не имею, как ее писать :dntknw: Заранее спасибо)

Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
professor
professor
Сообщения: 4921
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Репутация: 0
Версия LabVIEW: 2015, 2016
Откуда: СССР

Re: спектр для звукового файла

Сообщение IvanLis »

Alexey_B писал(а):Помогите пожалуйста написать программу! :help: :help: :help: Нужно разбить звуковой файл на отрезки по 20 мс, а затем с помощью быстрого преобразования Фурье построить спектр, где по оси x - время, по оси y - частота, а по оси z - амплитуда. Если можно, скиньте пожалуйста готовую программу!!! Я понятия не имею, как ее писать :dntknw: Заранее спасибо)


разбивать надо наверное не на 20 мс, а на количество отсчетов, причем их число должно быть равно степени 2 (2^n) иначе не получится БПФ

т.е. алгоритм следующий:
1. чтение файла
2. разбиение на части
3. обработка БПФ каждой части
4. формирование поверхности

сейчас времени нет, если ничего не выйдет раньше
то после обеда, что-нибудь свояю

Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Репутация: 0
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: спектр для звукового файла

Сообщение Eugen Graf »

БПФ получится и так, на сколько я знаю :labview: интерполирует данные для БПФ пока не получится 2^n.

Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
professor
professor
Сообщения: 4921
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Репутация: 0
Версия LabVIEW: 2015, 2016
Откуда: СССР

Re: спектр для звукового файла

Сообщение IvanLis »

вроде так:
Изображение
только учти, что в данном случае показаны и мнимая и реальные части
и необходимо проверить правильность временных и частотных меток

--------------******************----------------
вот и сам файл, как обещал
размер большой, так как в архиве звуковой файл wav-stereo
Вложения
3D Spectr.zip
lv2009
(26.64 МБ) 314 скачиваний
Последний раз редактировалось IvanLis 23 июн 2010, 18:37, всего редактировалось 4 раза.

Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
professor
professor
Сообщения: 4921
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Репутация: 0
Версия LabVIEW: 2015, 2016
Откуда: СССР

Re: спектр для звукового файла

Сообщение IvanLis »

eg писал(а):БПФ получится и так, на сколько я знаю интерполирует данные для БПФ пока не получится 2^n.


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

Аватара пользователя
Konstantin Sumenko

Activity Bronze
expert
expert
Сообщения: 1439
Зарегистрирован: 17 июл 2008, 12:20
Награды: 2
Репутация: 0
Версия LabVIEW: 2010
Откуда: Moscow
Контактная информация:

Re: Спектр для звукового файла

Сообщение Konstantin Sumenko »

Нормальный спектр получается, если учесть, что дополнение нулями во временной области это интерполяция до более частой сетки частот. Основные параметры сигнала не изменяться. Есть только несколько подводных камней, связанных с этой интерполяцией, поэтому следует перед преобразованием применить окно и/или дополнительный сглаживающий фильтр.

Alexey_B
interested
interested
Сообщения: 3
Зарегистрирован: 22 июн 2010, 18:36
Репутация: 0
Версия LabVIEW: 7.1
Контактная информация:

Re: Спектр для звукового файла

Сообщение Alexey_B »

спасибо огромное!!! :thank: :thank: :thank: :super: :super: :super:

Аватара пользователя
mzu2006

Professionalism Tutorials Black
doctor
doctor
Сообщения: 2456
Зарегистрирован: 16 авг 2008, 02:12
Награды: 3
Репутация: 0
Версия LabVIEW: 7.1 10 11 12
Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
Контактная информация:

Re: Спектр для звукового файла

Сообщение mzu2006 »

можно ещё попробовать "Time Frequency Spectrogram" из toolkit'а Advanced Signal Processing.

georgiy2590
interested
interested
Сообщения: 9
Зарегистрирован: 02 май 2014, 16:03
Репутация: 0
Версия LabVIEW: 2013
Контактная информация:

Re: Спектр для звукового файла

Сообщение georgiy2590 »

Здравствуйте!
Подскажите пожалуйста я воспользовался примером с данной ветки, подскажите пожалуйста у меня есть 12 гиговый wav файл мне необходимо вычислить его спектр построить график, а так же построить сонограмму, но labview пишет что недостаточно памяти для завершения операции подскажите пожалуйста как считывать файл по частям и потом построить график (спектр, сонограмму целого файла) ?
Заранее большое спасибо!

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3479
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2019
Контактная информация:

Re: Спектр для звукового файла

Сообщение dadreamer »

 
Вложения
2015-11-08_12-34-24.jpg

georgiy2590
interested
interested
Сообщения: 9
Зарегистрирован: 02 май 2014, 16:03
Репутация: 0
Версия LabVIEW: 2013
Контактная информация:

Re: Спектр для звукового файла

Сообщение georgiy2590 »

dadreamer, Спасибо за помощь я position mode выбрал абсолютный, position offset поставил 44100 а number of samples то же поставил 44100 все это поставил в цикл for до полного чтения файла, а теперь проблема как мне построить сонограмму всего файла а не его частей подскажите если кому не трудно.
Заранее большое спасибо!

Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
professor
professor
Сообщения: 4921
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Репутация: 0
Версия LabVIEW: 2015, 2016
Откуда: СССР

Re: Спектр для звукового файла

Сообщение IvanLis »

georgiy2590 писал(а):Спасибо за помощь я position mode выбрал абсолютный, position offset поставил 44100 а number of samples то же поставил 44100 все это поставил в цикл for до полного чтения файла, а теперь проблема как мне построить сонограмму всего файла а не его частей подскажите если кому не трудно.

Для того что-бы не загружать весь файл в память, у Вас он имеет значительные размеры, его нужно разбить на части.
Размер части логичнее выбрать соответствующий размеру окна (по времени).
За один цикл загружаете объем данных соответствующий размеру окна, вычисляете спектр, а результаты кидаете в массив, для накопления.
На следующем шаге считываете следующую порцию данных -> вычисляете спектр -> закидываете в массив.

Размер и форму окна, область перекрытия и прочие параметры выбираете исходя из задания и условий....

После обработки всего файла у Вас получится зависимость Уровень(частота, время), т.е. сонограмма. Вот ее и отображаете как результат.

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3479
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2019
Контактная информация:

Re: Спектр для звукового файла

Сообщение dadreamer »

georgiy2590
Посмотрите вот эти темы, может быть, чем-то поможет...
viewtopic.php?f=106&t=6572
viewtopic.php?p=62828#p62828

georgiy2590
interested
interested
Сообщения: 9
Зарегистрирован: 02 май 2014, 16:03
Репутация: 0
Версия LabVIEW: 2013
Контактная информация:

Re: Спектр для звукового файла

Сообщение georgiy2590 »

IvanLis, Спасибо большое! Буду разбираться, а вот вы сказали размеру окна вы что имели ввиду (я просто не очень разбираюсь во всем этом начинаю тока ) ? Каким лучше всего инструментом вычислять спектр есть низкоуровневые а есть высокоуровневые (если я правильно понял)?

Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
professor
professor
Сообщения: 4921
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Репутация: 0
Версия LabVIEW: 2015, 2016
Откуда: СССР

Re: Спектр для звукового файла

Сообщение IvanLis »

georgiy2590 писал(а):а вот вы сказали размеру окна вы что имели ввиду (я просто не очень разбираюсь во всем этом начинаю тока ) ? Каким лучше всего инструментом вычислять спектр есть низкоуровневые а есть высокоуровневые (если я правильно понял)?

Сонограмма, она же спектрограмма это оконное преобразование, а результаты преобразований зависят от параметров окна.
В принципе это оконное преобразование Фурье (https://ru.wikipedia.org/wiki/%D0%9E%D0 ... 1%8C%D0%B5), если на англ. short-time Fourier transform (STFT). Однозначных рекомендаций по выбору окна и его параметров я не встречал.

В :labview: есть функция: STFT Spectrograms VI (http://zone.ni.com/reference/en-XX/help ... gram_core/)

Ответить

Вернуться в «Работа с графикой и звуком»