Краткая версия моего вопроса:
Как перейти от массива аудиосэмплов (как Int16) к сложным структурам, используемым общими библиотеками FFT, такими как AForge?
Длинная версия моего вопроса:
Я новичок в обработке звука и хочу анализировать звук в музыке (обнаружение битов, темпа и т. д.). После нескольких дней чтения этого алгоритм быстрого преобразования Фурье (БПФ) кажется шагом в правильном направлении.
Чтобы приступить к работе и не реализовывать алгоритмы с нуля, я скачал пару библиотек с открытым исходным кодом, Exocortex и AForge.net.
Я декодирую звук в буфер памяти. В каждом цикле для моей 16-битной звуковой стереодорожки 48 кГц я получаю 48000 байт или 24000 сэмплов. В настоящее время они копируются в массив коротких (Int16). Теперь мне нужно преобразовать мой массив в сложные структуры (в случае AForge). Это, в свою очередь, инициализируется "реальным" и "воображаемым" двойным значением. Но что это такое и как мне перейти от моего массива к этим двум двойным значениям? Кроме того, нужно ли разделять левый/правый канал перед передачей?
К сожалению, я ужасно не умею читать математические формулы, если они не представлены в виде кода. Почти на всех сайтах, которые я до сих пор посещал, быстро появляются греческие символы и сложные математические формулы, помогающие объяснить алгоритм. В результате я сразу теряюсь в переводе. Поверьте, я очень старался найти "алгоритмы БПФ для чайников". ;)
Примечание для модераторов. Это не дубликат Convert Audio Samples. из байтов в комплексные числа? хотя вопрос похож.