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

Обсуждение вопросов, связанных с обработкой аудио и видео информации

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

Postby Alexey_B on 22 Jun 2010, 19:44

Помогите пожалуйста написать программу! :help: :help: :help: Нужно разбить звуковой файл на отрезки по 20 мс, а затем с помощью быстрого преобразования Фурье построить спектр, где по оси x - время, по оси y - частота, а по оси z - амплитуда. Если можно, скиньте пожалуйста готовую программу!!! Я понятия не имею, как ее писать :dntknw: Заранее спасибо)
Alexey_B
interested
interested
 
Posts: 3
Joined: 22 Jun 2010, 18:36
LabVIEW Version: 7.1
Karma: 0

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

Postby IvanLis on 23 Jun 2010, 06:50

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


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

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

сейчас времени нет, если ничего не выйдет раньше
то после обеда, что-нибудь свояю
User avatar
IvanLis
professor
professor
 
Posts: 4815
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2015, 2016
Karma: 763
hardware VIP bloggers teachers

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

Postby Eugen Graf on 23 Jun 2010, 12:56

БПФ получится и так, на сколько я знаю :labview: интерполирует данные для БПФ пока не получится 2^n.
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

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

Postby IvanLis on 23 Jun 2010, 13:01

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

--------------******************----------------
вот и сам файл, как обещал
размер большой, так как в архиве звуковой файл wav-stereo
Attachments
3D Spectr.zip
lv2009
(26.64 MiB) Downloaded 281 times
Last edited by IvanLis on 23 Jun 2010, 18:37, edited 4 times in total.
User avatar
IvanLis
professor
professor
 
Posts: 4815
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2015, 2016
Karma: 763
hardware VIP bloggers teachers

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

Postby IvanLis on 23 Jun 2010, 13:04

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


ага, только в этом случае получается спектр, как бы "не нашего сигнала"
немного искаженный, в каких то случаях это нормально, а когда то - неприемлимо
User avatar
IvanLis
professor
professor
 
Posts: 4815
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2015, 2016
Karma: 763
hardware VIP bloggers teachers

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

Postby Konstantin Sumenko on 23 Jun 2010, 13:56

Нормальный спектр получается, если учесть, что дополнение нулями во временной области это интерполяция до более частой сетки частот. Основные параметры сигнала не изменяться. Есть только несколько подводных камней, связанных с этой интерполяцией, поэтому следует перед преобразованием применить окно и/или дополнительный сглаживающий фильтр.
User avatar
Konstantin Sumenko
expert
expert
 
Posts: 1439
Joined: 17 Jul 2008, 12:20
Location: Moscow
Medals: 2
Activity (1) Bronze (1)
LabVIEW Version: 2010
Karma: 122
VIP bloggers students

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

Postby Alexey_B on 23 Jun 2010, 19:31

спасибо огромное!!! :thank: :thank: :thank: :super: :super: :super:
Alexey_B
interested
interested
 
Posts: 3
Joined: 22 Jun 2010, 18:36
LabVIEW Version: 7.1
Karma: 0

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

Postby mzu2006 on 24 Jun 2010, 04:38

можно ещё попробовать "Time Frequency Spectrogram" из toolkit'а Advanced Signal Processing.
User avatar
mzu2006
doctor
doctor
 
Posts: 2456
Joined: 16 Aug 2008, 02:12
Location: St-Petersburg (RU), Phila, Boston, Washington DC
Medals: 3
Professionalism (1) Tutorials (1) Black (1)
LabVIEW Version: 7.1 10 11 12
Karma: 279
CLAD CLD I/O PDA VIP vision bloggers teachers

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

Postby georgiy2590 on 08 Nov 2015, 05:25

Здравствуйте!
Подскажите пожалуйста я воспользовался примером с данной ветки, подскажите пожалуйста у меня есть 12 гиговый wav файл мне необходимо вычислить его спектр построить график, а так же построить сонограмму, но labview пишет что недостаточно памяти для завершения операции подскажите пожалуйста как считывать файл по частям и потом построить график (спектр, сонограмму целого файла) ?
Заранее большое спасибо!
georgiy2590
interested
interested
 
Posts: 9
Joined: 02 May 2014, 16:03
LabVIEW Version: 2013
Karma: 0

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

Postby dadreamer on 08 Nov 2015, 10:37

 
Attachments
2015-11-08_12-34-24.jpg
User avatar
dadreamer
professor
professor
 
Posts: 3303
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 844
I/O VIP vision internet

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

Postby georgiy2590 on 09 Nov 2015, 07:11

dadreamer, Спасибо за помощь я position mode выбрал абсолютный, position offset поставил 44100 а number of samples то же поставил 44100 все это поставил в цикл for до полного чтения файла, а теперь проблема как мне построить сонограмму всего файла а не его частей подскажите если кому не трудно.
Заранее большое спасибо!
georgiy2590
interested
interested
 
Posts: 9
Joined: 02 May 2014, 16:03
LabVIEW Version: 2013
Karma: 0

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

Postby IvanLis on 09 Nov 2015, 08:12

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

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

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

После обработки всего файла у Вас получится зависимость Уровень(частота, время), т.е. сонограмма. Вот ее и отображаете как результат.
User avatar
IvanLis
professor
professor
 
Posts: 4815
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2015, 2016
Karma: 763
hardware VIP bloggers teachers

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

Postby dadreamer on 09 Nov 2015, 08:51

georgiy2590
Посмотрите вот эти темы, может быть, чем-то поможет...
viewtopic.php?f=106&t=6572
viewtopic.php?p=62828#p62828
User avatar
dadreamer
professor
professor
 
Posts: 3303
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 844
I/O VIP vision internet

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

Postby georgiy2590 on 09 Nov 2015, 08:57

IvanLis, Спасибо большое! Буду разбираться, а вот вы сказали размеру окна вы что имели ввиду (я просто не очень разбираюсь во всем этом начинаю тока ) ? Каким лучше всего инструментом вычислять спектр есть низкоуровневые а есть высокоуровневые (если я правильно понял)?
georgiy2590
interested
interested
 
Posts: 9
Joined: 02 May 2014, 16:03
LabVIEW Version: 2013
Karma: 0

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

Postby IvanLis on 09 Nov 2015, 09:53

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

Сонограмма, она же спектрограмма это оконное преобразование, а результаты преобразований зависят от параметров окна.
В принципе это оконное преобразование Фурье (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/)
User avatar
IvanLis
professor
professor
 
Posts: 4815
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2015, 2016
Karma: 763
hardware VIP bloggers teachers

Next

Return to Работа с графикой и звуком

Who is online

Users browsing this forum: No registered users and 1 guest

cron