gnuRadio обнаружение двойного тона

Я пытаюсь найти эффективный способ охарактеризовать два узкополосных тона, разделенных примерно 900 кГц (один на частоте около 100 кГц и один на частоте около 1 МГц после преобразования в основную полосу). Они не сильно изменяются во времени, но могут иметь изменения амплитуды, которые мы хотим отслеживать.

Каждый тон имеет ширину примерно 100 Гц, и мы должны характеризовать этих двух зверей в течение длительных периодов времени вплоть до разрешения около 0,1 Гц. Сэмплы поступают со скоростью более 2M сэмплов / сек (TBD), чтобы адекватно получить самый высокий тон.

Я пытаюсь избежать (если это возможно) грубых действий>2-х выборочных БПФ для данных один раз в секунду для извлечения данных в частотной области. Есть ли эффективный подход? Что-то похожее на выполнение двух (намного) меньших БПФ вокруг интересующих групп? Я смотрел на методы Goertzel и chirp z, но я не уверен, что это помогает сохранить обработку.

1 ответ

Что-то похожее на выполнение двух (намного) меньших БПФ вокруг интересующих групп

Это называется Goertzel и является своего рода БПФ для отдельных корзин, и вы уже посмотрели его. Это сэкономит вам время процессора.

В любом случае, нет причин делать БПФ с 2-мя точками; во-первых, вам нужно только разрешение около 1/20 частоты дискретизации, следовательно, БПФ с 20 точками вполне подойдет и должно быть вполне выполнимым для вашего ЦП при таких низких скоростях; так как вы, кажется, не заботитесь о фазе своих тонов, FFT->complex_to_mag.

Тем не менее, есть одна вещь, которую вы всегда должны делать: смотреть на свой интересующий вас сигнал и снижать до уровня, который соответствует именно этому. Поскольку фильтры GNU Radio реализованы умно, сам фильтр будет работать только с частотой прореживания, и вы сможете тратить сэкономленные циклы ЦП на лучший фильтр.

Поскольку прямое прореживание от 2 МГц до 100 Гц (децимация: 20000) действительно будет иметь ужасную длину фильтра, вы должны сделать это с несколькими оценками:

Я бы попробовал сначала прореживать на 100, а затем на втором шаге на 100, чтобы у вас был видимый спектр 200 Гц. Блоки фильтров xlating fir позволят вам использовать простой фильтр нижних частот (используйте блок "Отводы фильтра нижних частот", чтобы определить переменную, содержащую такие отводы) в качестве переключателя диапазонов.

Другие вопросы по тегам