Задать вопрос
eegmak
@eegmak

Как вычислить частоту искаженого сигнала?

На вход АЦП поступает сигнал определенной частоты. Изза среды по которой передается сигнал и различных нелинейностей и неидеальностей оцифрованный сигнал является искаженным.
Необходимо вычислить частоту принятого сигнала по данным оцифрованных точек(сэмпл).
Разложение фурье в питоне с помощью fft дает спектр по которому сложно понять какая частота- т.к. ожидал получить четкий пик, а в реальности это вообще непонятная кривая.
Как в питоне вычислить частоту сигнала из массива сэмпла с не очень четким положением точек на функции синусоиды?
  • Вопрос задан
  • 191 просмотр
Подписаться 1 Простой 4 комментария
Решения вопроса 1
@nehrung
Не забывайте кликать кнопку "Отметить решением"!
Как измерить частоту сигнала по его спектру? Да элементарно просто: частотой сигнала принято считать частоту его первой гармоники. Более высокочастотные составляющие на эту цифру не влияют, они определяют только отклонение сигнала от синусоидальной формы. Более низкочастотные составляющие (т.е. "субгармоники") - это по большому счёту штука виртуальная, они тоже к частоте отношения не имеют.

Теперь рассмотрим реальный сигнал, спектр которого выглядит как сплошная шумовая полоса такой интенсивности, что гармоники (в т.ч. и первая, обычно самая мощная) на её фоне просто не видны. Поначалу кажется, что такой сигнал невозможно расшифровать. И тем не менее радиофизики научились выделять такой сигнал даже из весьма интенсивного широкополосного шума, что иллюстрируется продолжающим работать каналом связи с "Вояджерами". Тут надо соблюдать два условия: во-первых, частота самого сигнала должна быть точно известна, со всеми его допплеровскими сдвигами, и во-вторых, статистические характеристики сигнала и шума должны быть различны и тоже известны.
А дальше работают специфические методы радиоприёма, которых тоже два: во-первых, фильтрация за счёт разной статистики сигнала и шума (сейчас она обычно носит вычислительный характер, а раньше это были реальные фильтры из LC и других элементов), и во-вторых, накопление (зачастую весьма длительное), по мере которого гармоники начинают вылезать из шумовой полосы и становятся видимыми.
Но это я расписал работу с сигналом заранее известной частоты. Если же вы хотите измерить неизвестную частоту сигнала, спрятанного в шумах высокой интенсивности, то боюсь, это невыполнимая задача, поскольку такой шум весь состоит из сигналов произвольной частоты, и ваш сигнал - просто один из них (неизвестно какой).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Griboks
@Griboks
Необходимо вычислить частоту принятого сигнала по данным оцифрованных точек(сэмпл).

Частота дискретизации должна быть минимум в два раза выше частоты сигнала.

ожидал получить четкий пик, а в реальности это вообще непонятная кривая

Всё правильно, идеальных сигналов не бывает. Для этого должно быть бесконечное время записи. Если у вас конечное время, то у вас всегда будут лепестки с шумом.

Как вычислить частоту искаженого сигнала?

В теории смоделировать канал передачи, затем применить обратное преобразование. На практике, если сигнал известен, то можно использовать взаимную корреляцию. Если вы знаете, что передавалась синусоида, то это будет самый большой пик на спектре. А в общем случае - никак, нужно искать какие-то закономерности.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
13 дек. 2024, в 00:54
3500 руб./за проект
12 дек. 2024, в 23:15
5000 руб./за проект