|
53 / 53 / 8
Регистрация: 21.03.2009
Сообщений: 371
|
|
Как узнать частоту звука?20.01.2012, 16:11. Показов 63436. Ответов 252
Метки нет (Все метки)
народ,подскажите кто знает.обработкой сигнала нигода не занимался,поэтому если что-то говорю не правильно
хочу программно определить к какой ноте принадлежит звук. Имею частоту дискретизации 8кГц и глубину 16 бит. значения этой выборки заносятся в массив.1)Что представляют из себя эти значения? если я правильно понял то каждый элемент массива это значение частоты в момент времени? 2)что нужно сделать с этим массивом чтобы узнать ноту?
0
|
|
| 20.01.2012, 16:11 | |
|
Ответы с готовыми решениями:
252
Как менять частоту звука на STM32 Узнать из программы частоту процессора
|
|
|
||
| 20.01.2012, 16:52 | ||
|
Типа "гитарного тюнера" ?
1- нет, это отсчеты, значения амплитуд 2- преобразование Фурье, в частности БПФ ...далее домножение на окно и нормализация с выборкой в соответствии с частотами нот. Раздел "Электроника". На чем делать будете, МК, ПЛИС? Алгоритм "Элм-Чена" достаточно быстр.
- Обработка сигналов / Юкио Сато - Основы спектрального анализа / К.Раушер - Цифровые фильтры / Уолт Кестер - Калмановская фильтрация / S.Padmakumar, V.Agarval, R.Kallol - Дискретные системы / Уолт Кестер - Быстрое преобразование Фурье и алгоритмы вычисления сверток / Г.Нуссбаумер - Алгоритмические трюки для программистов / Уоррен Генри Конечно, есть еще метод пяти ординат для быстрого получения полос спектра, но вам точность нужна повыше ...из практики ознакомтесь со следующим: - http://arv.radioliga.com/downloads.any/video_2.mp4 - http://arv.radioliga.com/content/view/98/44 - http://www.youtube.com/watch?v=1FHn8mmOyDQ - http://cxema.at.ua/publ/10_ti_... a/1-1-0-34
2
|
||
|
53 / 53 / 8
Регистрация: 21.03.2009
Сообщений: 371
|
|
| 20.01.2012, 17:18 [ТС] | |
|
Спасибо за быстрый ответ.да,что то типо того.Если я все правильно понимаю ни МК ни ПЛИС мне не надо. Выборка производится средствами О.С. а мне надо обработать выборку.
0
|
|
|
|
||
| 20.01.2012, 17:51 | ||
ОК, вот вам как основа - материал: "Cпектроанализатор своими руками" http://raxp.radioliga.com/cnt/s.php?p=v3.djvu Отдельно - Модуль DTMF (кодер-декодер-спектроанализатор). Компонент.
0
|
||
|
53 / 53 / 8
Регистрация: 21.03.2009
Сообщений: 371
|
|||
| 20.01.2012, 18:52 [ТС] | |||
|
, а конкретно,разобрать на ноты. Т.е обработка raw записи.
0
|
|||
|
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
|
|
| 20.01.2012, 21:43 | |
|
в андроиде одно средство - java, а eclipse или какая другая ide - не важно. Eclipse на мой взгляд самая удобная. Задача проста - написать fft на яве (хотя зачем писать - реализаций полно). Недавно для интереса делал нечто подобное, тока fft использовал на c++, и прикручивал с помощью ндк. (собственно это и была моя задача - попробовать ндк в деле)
0
|
|
|
53 / 53 / 8
Регистрация: 21.03.2009
Сообщений: 371
|
|||
| 21.01.2012, 11:38 [ТС] | |||
|
С помощью класса AudioRecord я настраиваю частоту дескретизации и глубину,потом делаю первую считку,все значения заносятся в массив,этот массив подаю на обработку БПФ,новый полученный массив содержит значения в Гц которые можно сопоставить с значениями нот?
0
|
|||
|
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
|
||
| 21.01.2012, 12:19 | ||
|
В этом массиве находишь максимум и смотришь какой частоте он соответствует (по простой пропорции - длина массива = частота дискретизации, позиция максимума = искомая частота) И смотришь какой ноте это соответствует. Кстати максимум должен сильно выделяться на фоне остальных частот - а то так и в белом шуме можно распознать ноты - ну это ты уже сам продумай. И кстати неплохо бы перед этим умножить на оконную функцию (любую, какая нравится) для локализации
1
|
||
|
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
|
|
| 27.02.2012, 22:03 | |
|
lavan, Когда то занимался, может поможет.
https://www.cyberforum.ru/cpp-... 06725.html
0
|
|
|
0 / 0 / 0
Регистрация: 28.04.2012
Сообщений: 7
|
|
| 28.04.2012, 07:16 | |
|
Lavan, здравствуй!!! у меня дипломка на твою тему, помоги, где найти цифровом виде ноты?
0
|
|
|
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
|
||
| 28.04.2012, 08:27 | ||
|
0
|
||
| 12.04.2013, 15:23 | |
|
Как сделать, чтоб частота показывалась в консоли с определенной периодичностью?
Сейчас насоветовали для захвата звука http://www.portaudio.com/ (PortAudio is a free, cross-platform, open-source, audio I/O library. It lets you write simple audio programs in 'C' or C++ that will compile and run on many platforms including Windows, Macintosh OS X, and Unix (OSS/ALSA).) И для определения частоты http://www.fftw.org/ . Хотя есть много других библиотек. С чего начать? Как получить массив звуковых данных?
0
|
|
| 13.04.2013, 20:12 | |
|
Разбираюсь с PortAudio. Скачал архив, перекинул из папки include 9 заголовочных файлов в такую же папку у компилятора. В папке examples выбрал paex_sine, исходник на си. Но при попытке компиляции программы ругается.
Прочитал portaudio.com/docs/v19-doxydocs/tutorial_start.html что после скачивания это всё надо компилировать. Подскажите, как это сделать в кодеблоксе? Компилятор MinGW-4.7.1. По нему даже страница есть http://portaudio.com/docs/v19-... mingw.html Подскажите, что делать? Добавлено через 3 часа 33 минуты Подсказали где взять готовый файл http://code.google.com/p/porta... l&can=2&q= PortAudio precompiled Win32 binary (v0.19 build 1899 with MME, DS and ASIO)
0
|
|
| 14.04.2013, 00:47 | |
|
Оказывается одним файлом не обойтись. Нашел. В приложении три файла
portaudio.h - заголовочный файл portaudio_x86.dll - динамическая библиотека portaudio_x86.lib - файл импорта, его нужно прописывать в настройках компилятора, в линкере вашей среды разработки. Уже получилось скомпилировать пример paex_sine и послушать синусоиду
0
|
|
| 15.04.2013, 10:40 | |
|
Сейчас скачиваю библиотеку с преобразованием фурье - http://www.fftw.org/install/windows.html
Хорошо, что тут есть уже готовые архивы. Люди, кто-нибудь с подобным связывался? Подсказывайте пожалуйста. Сложно в одиночку разбираться. Можно в личку. Добавлено через 17 часов 33 минуты Нашел пример в котором идет запись звука в массив (оно то нам и надо), и проигрывается. Если в 56 строчке поставить #define WRITE_TO_FILE (1) то звук еще в файл запишется. Итак, массив звука можно считать. Помогите с подключением fft?
0
|
|
| 18.04.2013, 19:37 | |
|
Нашел. В вышеприведенном архиве нет файлов .lib. По этой ссылке они есть. Теперь эту библиотеку можно линковать в кодеблокс.
ftp://ftp.fftw.org/pub/fftw/fftw3win32mingw.zip содержание - fftw3.def fftw3.dll fftw3.exp fftw3.h fftw3.lib
0
|
|
| 15.05.2013, 09:50 | |||||||||||
|
Из файла paex_read_write_wire (из примеров) сделал такое.
Программа скидывает семплы в буфер (4096 штук примерно 0.1 секунды). Тип float. Перебором ищем максимальный семпл и в процентах выводим его на экран. Таким образом отображается громкость сигнала. Если молчать, показывает 3 или 4, если в плотную говорить показывает 100. Чувствительность зависит от настройки микрофона в системе. Теперь цель - считанный массив отправить на фурье и найти основную частоту. Как?
Получилось. Получаем буфер, и отправляем указатель в функцию FFT. Сама функция взята с вики, без библиотеки. Единственное условие - степень двойки. Проблема - возвращает неточные значения с погрешностью до десятка герц. Как можно обработать полученный массив, чтоб точность возросла до десятых или сотых герца?
0
|
|||||||||||
| 20.05.2013, 07:48 | |||||||||||
|
Вот что получилось в итоге. У кого есть пианино или гитара, можете поиграть и проверить работоспособность. Единственная проблема - поиск точной частоты. В примере я грубо беру три точки, рисую по ним параболу, беру вершину. А надо бы поточнее, как то по другому. Прошу комментарии, предложения, проблемы.
файл main.c
2
|
|||||||||||
| 20.05.2013, 07:48 | |
|
Помогаю со студенческими работами здесь
20
Как узнать частоту, амплетуду, длинну и т.д. звука в данный момент? Как получить частоту звука? Как узнать частоту процессора? Как узнать частоту прцессора?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|