|
Точно измерить частоту. |
|
|
|
 |
Ответов
|
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, 12:58
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(fontp @ Mar 3 2010, 14:41)  Она не лучше спектрального оценивания ("БПФ"), именно потому, что в очень широких пределах SNR (0-40дб) после интерполяции спектра это 1. 2 сравнения чтобы выяснить квадрант 2. Деление (x/y) или (y/x) после сравнения кто из них меньше, бо тот кто их них больше уйдет в разнос 3. Чтобы считать арктангенс уже одной переменной в лоб по таблице с приличной точностью таблица должна быть очень большой. Поэтому обычно считают по быстрому алгоритму CORDIC по небольшой "фрактальной" таблице для одного квадранта. Без всякого деления и арктангенса с одним сравнением сразу кордиком посчитаем аргумент комплексного числа. Цитата(fontp @ Mar 3 2010, 14:41)  Всё про всё займет если не аппаратно тактов 50-100. Итого имеем 50*N - N длина блока. Прежде чем "арктангенсы" считать ещё проредим простейшим скользящим средним CIC-ом раз в 10.
|
|
|
|
|
Mar 3 2010, 13:18
|

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

|
Цитата(petrov @ Mar 3 2010, 15:58)  Без всякого деления и арктангенса с одним сравнением сразу кордиком посчитаем аргумент комплексного числа. Прежде чем "арктангенсы" считать ещё проредим простейшим скользящим средним CIC-ом раз в 10. Кордик в любом случае даст десятки тактов. Скорее 50, чем 10, поскольку там тоже всё на сравнениях. А для DSP сравнения значительно затратнее МАС. Я просто пример привёл с СORDIC-ом на один квадрант на вскидку. CIC может решать. Раз в десять только, если диапазон измеряемых частот в десять раз меньше частоты Найквиста. Там даже не CIC, а простое усреднение нужно до вычисления арктангенса, если блочный алгоритм. Усреднять возможно только пока не подавляется синком полезный сигнал. Усреднение ещё и полезно, чтобы не позволить шуму делать сбои при восстановлении фазы по непрерывности, увеличивает SNR. Усреднение принято )) Но похожую предварительную обработку можно проделать и для DFT, это не аргумент при сравнении. Хорошо. Такой алгоритм будет оптимален по точности и вычислительно. Но не такой робастный как спектральное оценивание и грохнется раньше при снижении SNR. Из-за необходимости устранять скачки фазы
|
|
|
|
Сообщений в этой теме
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, 16:18) Но не т... Mar 3 2010, 13:40        fontp Цитата(petrov @ Mar 3 2010, 16:40) Но име... Mar 3 2010, 14:06     bahurin Цитата(fontp @ Mar 3 2010, 14:41) Возможн... Mar 3 2010, 14:08      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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|