|
Точно измерить частоту. |
|
|
|
 |
Ответов
|
Mar 3 2010, 07:49
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
Цитата(bahurin @ Mar 3 2010, 08:17)  Вариант такой есть. Умножить на комплексную экспоненту и взять фазу. Угол наклона фазы покажет разность частоты синусоиды и частоты комплексной экспоненты. соответсвенно df = dPhi/dT. Таким образом увеличивая интервал обработки вы получите сколь угодно высокую точность. Такую обработка лучше чем просто бпф. Увеличивая интервал обработки можно получить как-угодную точность каким-угодно методом. В этих задачах оптимальность означает - как быстро растёт точность при увеличении интервала. Оптимальность это не только научные понты для ученых. Мы не можем реально значительно увеличивать интервал измерения, только в пределах стабильности самих параметров сигнала (амплитуды, частоты) Такая обработка ничем не лучше спектрального оценивания, хотя по определению должна давать точность по максимуму правдоподобия (CRLB), если честно подогнать минимум квадратов. Только вычислительно это даже сложнее, ибо Вы должны 1. Умножить на центральную комплексную экспоненту (снести сигнал в 0) и отфильтровать ФНЧ. 2. В каждой точке (возможно после какого то усреднения-сабсамплинга) взять арктангенс с поправкой на непрерывность фазы (2*pi туда-сюда) 3. Подогнать линейную регрессию Ф=at+B, a - частота Вычислительно это будет скорее сложнее чем спектральное оценивание, а не проще, даже с применением CORDIC для арктангенса. (Не говоря уже о том, что это будет работать только при достаточно высоком SNR) Сравните с оцениванием спектра и обратной квадратичной интерполяцией. Если интервал частот узкий, то сразу можно начинать с того, что называют ML-extension 1. Умножить на центральную комплексную экспоненту (снести сигнал в 0) и отфильтровать ФНЧ. Соответственно прорежение. 2. Взять 5-7 сумм типа ДПФ в интервале [-7.5, 7.5]. Оценка энергии 3. Найти максимум энергии и по трём точкам построить параболу. Аргумент максимума - частота Точность будет примерно такая-же.
|
|
|
|
|
Mar 3 2010, 08:39
|

Местный
  
Группа: Участник
Сообщений: 240
Регистрация: 20-09-08
Пользователь №: 40 347

|
Цитата(fontp @ Mar 3 2010, 10:49)  Такая обработка ничем не лучше БПФ, хотя по определению должна давать точность по максимуму правдоподобия (CRLB). Интересно, почему тогда системы слежения выделяют фазу и производят подстройку частоты именно на основе фазового измерения, а не на основе БПФ? На самом деле такая оценка дает точность соответсвующую методу максимального правдоподобия. Именно поэтому она лучше БПФ. При бпф после умножения на комплексную экспоненту все значения складываются (этакий фильтр) в результате вы получите некую среднюю фазу и не сможете понять как она меняется на интервале обработки. Здесь же у вас есть информация о фазе. Зная что у нас одна синусоида это линейная функция. Это можно использовать для определения df. Кстати в этом случае раскрыть периодичность арктангенса вполне не сложно читай например здесь ЗЫ кстати данная реализация куда быстее бпф, так как арктангенс можно вообще не вычислять а задать таблично.
Сообщение отредактировал bahurin - Mar 3 2010, 08:41
|
|
|
|
|
Mar 3 2010, 11:41
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
Цитата(bahurin @ Mar 3 2010, 11:39)  Интересно, почему тогда системы слежения выделяют фазу и производят подстройку частоты именно на основе фазового измерения, а не на основе БПФ? На самом деле такая оценка дает точность соответсвующую методу максимального правдоподобия. Именно поэтому она лучше БПФ. При бпф после умножения на комплексную экспоненту все значения складываются (этакий фильтр) в результате вы получите некую среднюю фазу и не сможете понять как она меняется на интервале обработки. Здесь же у вас есть информация о фазе. Зная что у нас одна синусоида это линейная функция. Это можно использовать для определения df. Кстати в этом случае раскрыть периодичность арктангенса вполне не сложно читай например здесь ЗЫ кстати данная реализация куда быстее бпф, так как арктангенс можно вообще не вычислять а задать таблично. Она не лучше спектрального оценивания ("БПФ"), именно потому, что в очень широких пределах SNR (0-40дб) после интерполяции спектра это "БПФ" даёт именно точность максимального правдоподобия, соответствующую предельной оценке Крамера-Рао. Ваше утверждение про "лучше" - голословно, а я приводил ссылки на работы, где предельные оценки достигнуты. Спектральные оценки ДПФ это то же самое синхронное детектирование и линейную фазу гармоники ДПФ фильтруют оптимально, чего уж там "понимать". Нельзя быть святее Папы. Возможно "такая оценка" с измерением фазы и будет лучше, но только при ещё более высоких SNR. При SNR<10 дб "такая оценка" наоборот работать будет плохо, поскольку сама возможность восстанавливать линейную фазу по непрерывности по значению в пределах 2*pi исчезает - всё забито шумом. Это я говорю по собственному опыту. Я все эти способы пробовал. По производительности. Это арктангенс двух переменных с восстановлением непрерывности фазы Ph[m] = arctg2(SIm,SQm); if (ABS(Ph[m-1]-Ph[m]) > M_PI) {// phase jump is detected if (ABS(Ph[m-1]-Ph[m]-2*M_PI) <= M_PI) { Ph[m] += 2*M_PI; }else { Ph[m] -= 2*M_PI; } } 1. 2 сравнения чтобы выяснить квадрант 2. Деление (x/y) или (y/x) после сравнения кто из них меньше, чтобы не делить на примерно 0 и не получать примерно бесконечность 3. Чтобы считать арктангенс уже от одной переменной в лоб по таблице с приличной точностью таблица должна быть уж очень большой. Поэтому обычно считают по быстрому алгоритму CORDIC по небольшой "фрактальной" таблице для одного квадранта. 4. Восстановление непрерывности фазы - еще несколько сравнений и вычитаний как написано выше Всё про всё займет если не аппаратно тактов 50-100. Итого имеем пусть 50*N - N длина блока. Вычисление FFT требует примерно 4*N*log(N), DFT на современной архитектуре с двумя МАС-аккумуляторами - просто k*N, k - число вычисляемых гармоник в диапазоне. Плюс корреляция (Ph[i]*i), необходимая для подгонки линейной модели (регрессии, сумма(i*i) пусть расчитано предварительно, частота по линейной регрессии = сумма(Ph[i]*i)/сумма(i*i)). Арктангенсы выгодней считать получается только ассимптотически при очень больших блоках N и то только в некоторых случаях, когда 50 гармоник DFT (синхронных детекторов) недостаточно. ЗЫ. Что касается "систем слежения" (видимо ФАПЧ c обратной связью) то можно совершенно определённо сказать, что всякий ФАПЧ в синхронизм входит медленней, чем это делают измерительные feed-forward системы, причем последние для области низких SNR работают как раз чаще всего на оценивании спектра через интерполяцию. Если не ставить целью провести измерение частоты максимально быстро, то в принципе, задачу можно решать стандартно именно с помощью ФАПЧ. Вполне приемлемое решение, но оно никогда не будет оптимально по времени измерения. Есть даже такие готовые микросхемы квадратурной демодуляции с фазовым детектором и цифровым генератором. Код управляющий частотой и соответствует частоте входного сигнала. Только это всегда будет немного тормозное решение, уступающее схемам по прямому измерению без обратной связи по точности/времени измерения
|
|
|
|
|
Mar 3 2010, 14:08
|

Местный
  
Группа: Участник
Сообщений: 240
Регистрация: 20-09-08
Пользователь №: 40 347

|
Цитата(fontp @ Mar 3 2010, 14:41)  Возможно "такая оценка" с измерением фазы и будет лучше, но только при ещё более высоких SNR. При SNR<10 дб "такая оценка" наоборот работать будет плохо, поскольку сама возможность восстанавливать линейную фазу по непрерывности по значению в пределах 2*pi исчезает - всё забито шумом. Это я говорю по собственному опыту. Я все эти способы пробовал. Думаю, что поставленные требования к точности оценки частоты подразумевают, что отношение сигнал-шум велико (гораздо больше 10 дБ). Именно поэтому я и предложил такой вариант. Цитата(fontp @ Mar 3 2010, 14:41)  Чтобы считать арктангенс уже от одной переменной в лоб по таблице с приличной точностью таблица должна быть уж очень большой Как раз в этом случае высокая точность арктангенса и не нужна, поскольку мы измеряем не мгновенную фазу, а "медленное" изменение этой фазы. Так например если есть таблица из 360-и значений арктангенса, то средняя ошибка измерения одной фазы будет 0.5 градуса. 0.5 градуса на интервале T = 1 сек приведут к ошибке по частоте равной 0.5*pi/180 =0.008 Гц.
|
|
|
|
Сообщений в этой теме
b-volkov Точно измерить частоту. Feb 21 2008, 16:40 akl Цитата(b-volkov @ Feb 21 2008, 20:40... Feb 21 2008, 17:35 fontp Существует теоретический предел точности измерения... Feb 21 2008, 20:13 TigerSHARC Цитата(fontp @ Feb 22 2008, 00:13) Сущест... Mar 1 2010, 14:38  fontp Цитата(TigerSHARC @ Mar 1 2010, 17:38) А ... Mar 1 2010, 15:01   TigerSHARC Цитата(fontp @ Mar 1 2010, 19:01) Чем бол... Mar 1 2010, 15:09    fontp Цитата(TigerSHARC @ Mar 1 2010, 18:09) Сп... Mar 1 2010, 15:13 Михаил_K Судя по тому, что вы производите статистическую об... Feb 29 2008, 11:08 TigerSHARC А как насчёт способа когда определяем две опорные ... Mar 1 2010, 17:54 fontp Цитата(TigerSHARC @ Mar 1 2010, 20:54) А ... Mar 1 2010, 18:18 DMax Цитата(b-volkov @ Feb 21 2008, 19:40... Mar 2 2010, 11:57 fontp Цитата(DMax @ Mar 2 2010, 14:57) Если час... Mar 2 2010, 12:58     petrov Цитата(fontp @ Mar 3 2010, 14:41) Она не ... Mar 3 2010, 12:58      fontp Цитата(petrov @ Mar 3 2010, 15:58) Без вс... Mar 3 2010, 13:18       petrov Цитата(fontp @ Mar 3 2010, 16:18) Но не т... Mar 3 2010, 13:40        fontp Цитата(petrov @ Mar 3 2010, 16:40) Но име... Mar 3 2010, 14:06      fontp Цитата(bahurin @ Mar 3 2010, 17:08) Думаю... Mar 3 2010, 14:38   blackfin Цитата(fontp @ Mar 3 2010, 10:49) Сравнит... Mar 4 2010, 07:54    fontp Цитата(blackfin @ Mar 4 2010, 10:54) Мне ... Mar 4 2010, 08:15 blackfin Цитата(TigerSHARC @ Mar 2 2010, 23:12) Пр... Mar 3 2010, 08:37 leksa Всем здравствуйте!
Тема интересная, позвольте ... Mar 3 2010, 17:04 TigerSHARC для fontp:
хочу всё таки запустить метод маклеода.... Mar 3 2010, 17:38 fontp Цитата(TigerSHARC @ Mar 3 2010, 20:38) дл... Mar 3 2010, 18:04  TigerSHARC Цитата(fontp @ Mar 3 2010, 21:04) Во всех... Mar 3 2010, 21:26 fontp вот ещё нашелся тот матлабовский тест по ссылке, ... Mar 4 2010, 07:31 TigerSHARC А я делаю так. Беру выборку размером в два периода... Mar 4 2010, 12:57 КонстантинТ Судя по всему измеряете частоту прецессии (измерен... Mar 4 2010, 13:38  TigerSHARC Цитата(КонстантинТ @ Mar 4 2010, 16:38) С... Mar 4 2010, 14:27   КонстантинТ Цитата(TigerSHARC @ Mar 4 2010, 18:27) Не... Mar 5 2010, 08:51 TigerSHARC Скажите мне, ну причём тут разговоры про сигнал/шу... Mar 11 2010, 17:31 Oldring Цитата(TigerSHARC @ Mar 11 2010, 20:31) С... Mar 11 2010, 18:13 fontp Цитата(TigerSHARC @ Mar 11 2010, 20:31) Т... Mar 11 2010, 19:15 vadon случайно наткнулся на открытый проект по измерению... Jul 28 2010, 09:08 Pechka А не пробовали моделировать фильтр Герцеля? В смыс... Jul 31 2010, 16:04 bahurin читаю и понимаю, что люди вопросы задают и ждут оп... Aug 2 2010, 05:19
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|