2015-04-05 3 views
0

Я записываю сигнал fsk с предварительным тоном перед ним. Частота выборки составляет 8000 (выборки/сек), а частота предварительного тона составляет 440 Гц (репрезентировано 8192 отсчетами - играется примерно на 1 секунду). Сигнал данных содержит две частоты: 934 Гц для «1» и 510 Гц для «0», закодированное сообщение - это символ «8» (00111000), каждый бит представлен с использованием 8192 отсчетов, сигнал данных поступает сразу после предварительный тон. Я использовал следующий код для захвата аудио байтов, единственное отличие заключается в том, что я пишу их в ByteArrayOutputStream. https://stackoverflow.com/questions/23432398/audio-recorder-in-android-process-the-audio-bytesОбнаружение точки смены частоты в звуковом сигнале

Я пытаюсь найти точку, где частота сдвигается с 440 Гц предварительного тона до частоты, представляющей бит «0» (510 Гц). Общая идея того, что я делаю, - это расшифровать сообщение. Я использую алгоритм FFT с окном Hann и методом HPS (http://cnx.org/contents/[email protected]/Pitch_Detection_Algorithms) (я знаю, что это не лучший способ, и есть другие алгоритмы, которые могли бы работать лучше, но пока это мои инструкции).

Есть ли способ обнаружить эту точку? Могу ли я использовать FFT для этого?

+0

Почему вы используете HPS? Это не имеет смысла для одного тона (это применимо к обнаружению тона, а не к обнаружению тона). И если вы собираетесь упрямо придерживаться метода на основе FFT, вам нужно будет использовать перекрывающиеся окна, чтобы фиксировать изменение частоты тона (например, перекрытие на 90%), но это ужасно неэффективно. –

+1

Короткий ответ «да». Являются ли эти синусоидальные волны или какой-то парень, играющий на саксофоне? Я думаю, что HPS звучит как невероятный перебор, но если вам нужно его использовать, это даст вам основную частоту для окна. Что ты просишь за этим? – Dave

+0

@PaulR Я использовал HPS, потому что у меня были проблемы с обертонами, например, когда я хотел проанализировать частоту 510 Гц, я продолжал получать 1530 Гц, поэтому я использовал его, чтобы получить основную частоту, как сказал Дейв. Так что единственное, что может дать мне этот момент, - это перекрытие окон? –

ответ

0

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

Также проверьте ваш геймератор и микрофон, чтобы увидеть, есть ли у них достойный частотный отклик, имеющий низкую частоту, что может быть причиной того, что вместо этого вы обнаруживаете обертоны.

Смежные вопросы