Я новичок в DSP и FFT и нашел этот сайт чрезвычайно полезным в моих поисках дополнительной информации и понимания предмета. Я столкнулся с интересной проблемой, на которую, я надеюсь, кто-то сможет пролить свет:
Сначала немного контекста: я запускаю 2048 выборочных кадров 16-битного аудио с частотой дискретизации 44100 через FFTW (потрясающая библиотека!) С этим планом:
p = fftw_plan_dft_1d (nFrames, data_in, data_out, FFTW_FORWARD, FFTW_ESTIMATE);
Если это имеет значение, я запускаю его на MacOSX 10.6.7 ...
Мое намерение состоит в том, чтобы получить базовую частоту звука, которая является всего лишь одной нотой для фортепиано.
Все это работает хорошо, и результаты находятся там, где и следовало ожидать, за исключением того, что E выше среднего C (329,63 Гц) имеет примерно вдвое большую частоту. Другие ноты для фортепиано (Middle-C, A ниже Middle-C, G, F) появляются на или около их соответствующих частот, что является своеобразным.
Если я запускаю тот же тест на аудио, который получен из струн вместо пианино, этой проблемы не существует. Я понимаю, почему строки дали бы лучшие результаты, но мне интересно, почему этот один результат будет отличаться.
Может быть, кто-то может указать мне правильное направление?
Спасибо!