С какой точностью можно определить частоту?

mks
Сообщения: 16
Зарегистрирован: 18 окт 2010, 11:04

Re: С какой точностью можно определить частоту?

Сообщение mks »

Santik писал(а):С какой точностью (максимальной) можно определить частоту синусоидального сигнала, ограниченного во времени?
Пусть частота f=3000Гц и длительность Т=1сек.
На разрядность АЦП - 64 бита.
Вас вероятно интересует граница Крамера-Рао. Я в теории вероятности не силён, но у меня завалялась парочка статей, посмотрите:
Real_Freq_est
SingleToneCRLB

ivan219
Сообщения: 61
Зарегистрирован: 09 май 2011, 16:39

Re: С какой точностью можно определить частоту?

Сообщение ivan219 »

Santik писал(а):Какой-то подход у вас оптимистичный!
Возможно я и не спорю.
Я же говорил о чистой синусоиде.
Точность была практически 100% ошибка на уровне 15-20 знака после запятой.

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: С какой точностью можно определить частоту?

Сообщение Santik »

ivan219 писал(а):Сначала накладываем оконную функцию, функция для которого посчитана в частотной области т.е. как эта функция выглядит после FFT.
Долго пытался понять смысл фразы ...
ivan219 писал(а):Далее делаем FFT сигнала и по 3 или 5 точкам в зависимости от окна аппроксимируем и получаем частоту и амплитуду да скорей всего и фазу так же можно аппроксимировать и получить максимально точный результат.Если нет желания возится с интегралами и всё считать можно воспользоваться аппроксимацией по параболе.
Аппроксимацией по параболе - это хорошо, если это итерационный процесс, т.е. надо считать "длинный" интеграл на каждой итерации.
ivan219 писал(а):... на чистой синусоиде получается 100% результат.
Согласен! Только где ж её взять - чистую синусоиду?!
Я ещё раз хочу подчеркнуть - на ограниченом во времени сигнале - точность ограничена.
Пусть при Fd=40000 Гц и N=40000 (1 сек) имеем сигнал 1 Гц, т.е. 1 период. Какова будет минимальная погрешность?

Pavia
Сообщения: 38
Зарегистрирован: 25 апр 2011, 18:45

Re: С какой точностью можно определить частоту?

Сообщение Pavia »

Если синусоида не поместилась целиком в массив а поместилась часть периуде. То мы имеем эффект Гиббса. Плюс если метод основан на МНК, то там будет смещение по y. Интеграл тоже работает с погрешностью, но тут страдает фаза, частота тоже кажется страдает но гораздо меньше.

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: С какой точностью можно определить частоту?

Сообщение Santik »

Это всё понятно. Но я хочу получить оценочную формулу для погрешности ограниченного во времени сигнала. То что чем больше N, тем лучше - это тоже понятно. Но бывают сигналы (протонный магнитометр) принципиально ограниченные во времени (затухающая синусоида)... Или задачи реального времени...

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1116
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: С какой точностью можно определить частоту?

Сообщение Бахурин Сергей »

Santik писал(а):Это всё понятно. Но я хочу получить оценочную формулу для погрешности ограниченного во времени сигнала. То что чем больше N, тем лучше - это тоже понятно. Но бывают сигналы (протонный магнитометр) принципиально ограниченные во времени (затухающая синусоида)... Или задачи реального времени...
Все зависит от того какую вы имеете априорную информацию об этом сигнале. Если никакой то частоту можно измерить с точностью 1/T. Если есть модель сигнала, например как вы говорите затухающая синусоида то можно ее записать как



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

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: С какой точностью можно определить частоту?

Сообщение Santik »

Бахурин Сергей писал(а): Все зависит от того какую вы имеете априорную информацию об этом сигнале. Если никакой то частоту можно измерить с точностью 1/T.
"C точностью 1/T" или "с погрешностью пропорциональной 1/T" ?
Или Т=1 сек и точность 1 Гц ???
Бахурин Сергей писал(а): В идеале вы можете получить бесконечно малую ошибку оценки частоты и любого другого параметра вашей модели.
Да никогда мы не получим на конечном сигнале "бесконечно малую ошибку оценки частоты" !
1. Разрядность сигнала ограничена
2. Всегда можно найти 2 сигнала с частотами f1 и f1+df, которые будут на отрезке времени Т=1 сек полностью идентичны.
При наличии шумов при сравнительно большом значении df (1.0Е-4)сигналы будут физически неразличимы!
То есть "в идеале" надо иметь бесконечный сигнал с бесконечной разрядностью. :cry:

Pavia
Сообщения: 38
Зарегистрирован: 25 апр 2011, 18:45

Re: С какой точностью можно определить частоту?

Сообщение Pavia »

ИХМО вы проблемы на пустом месте создаёте. Берёте сигнал берёте метод и моделируете сигнал с возможными искажениями и смотрите какую точность даёт ваш метод. Вот и всё. А то так приходится гадать, что у вас за метод, а их считай что бесконечность. Вот и разнятся значения.

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: С какой точностью можно определить частоту?

Сообщение Santik »

Pavia писал(а):ИХМО вы проблемы на пустом месте создаёте. Берёте сигнал берёте метод и моделируете сигнал с возможными искажениями и смотрите какую точность даёт ваш метод. Вот и всё. А то так приходится гадать, что у вас за метод, а их считай что бесконечность. Вот и разнятся значения.
Метод:


Сигнал: синусоида f=50 Гц со случайной начальной фазой. fd=44100 Гц.
М- число периодов синусоиды.
T=M/f, [ceк]

Результаты:

Код: Выделить всё

        М                  Погрешность, Гц
        1                               1
        3                               0.4
        5                               0.25
       10                              0.06
       15                              0.025
       20                              0.015
       30                              0.0065  

Итак, получилось, что погрешность [Гц]:



Сразу видно, что, к примеру, частоту 50 Гц за 100мс с точностью 0.1 Гц определить не удастся!
И ещё раз возвращаюсь к своему вопросу:
Существует ли формула дающая оценку минимальной погрешности (желательно зависящая ещё и от отношения сигнал-шум )?

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: С какой точностью можно определить частоту?

Сообщение Santik »

В принципе, не всё так плохо... При 30 < М < 50

Но это без шума! (Точнее при шуме 1/2 младшего разряда 32 бит АЦП).
Вроде никто и не спорил, что от разрядности эта формула не зависит. Но и реальному шуму на разрядность Вашего АЦП тоже глубоко наплевать! Теперь представим широко распространённую ситуацию - АЦП -16 бит и ШУМ - 10% от Вашей разрядности . И опять придём к формуле :

Ответить