|
Точно измерить частоту. |
|
|
|
Mar 4 2010, 08:15
|

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

|
Цитата(blackfin @ Mar 4 2010, 10:54)  Мне вот, непонятно, зачем "умножить на центральную комплексную экспоненту"? При таком сносе отклонение вправо/влево измеряемого вещественного сигнала от частоты 50Гц станут неотличимы друг от друга. Мне кажется, что проще "умножить на комплексную экспоненту" с частотой 42.5Гц и т.о., снести в 0 левый участок спектра 42.5Гц после чего уже сделать FFT на интервале [0, 15]. Там речь шла о измерении комплексного сигнала, предполагая, что случай вещественной экспоненты всегда можно свести к нему так или иначе. Нас не должны были отвлекать такие мелочи Если сразу обрабатывать действительный, то Вы правы...
|
|
|
|
|
Mar 4 2010, 12:57
|
Знающий
   
Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195

|
А я делаю так. Беру выборку размером в два периода минимальной частоты (1/42,5)*2 с. заетем ищу выборки возле переходов через ноль. С поможью интерполяции уточнаю точки перехода чарез ноль. Нахожу период - считаю частоту. Fs = 6400; Ts = 1/Fs; f = 42.5; t = 0:Ts:(1/42.5)*2-Ts; A = 10; Y1 = A*sin(2*pi*f*t); % модель сигнала snr = 40; % отношение сигнал/шум Y = awgn(Y1, snr); z1 = find(diff(Y<0));%возвращаем номера элементов массива, предшествующих смене знака T1 = [ Y(z1(2)),Y((z1(2)+1))]; %создаём массив из двух элементов окружающих смену знака e1 = [Ts*z1(2)*1000, Ts*(z1(2)+1)*1000]; %массив временных значений e1i = e1(1):0.008:e1(2)-0.008; %дробим временные значения на 25 частей U1 = interp1(e1,T1,e1i,'line'); % линейная интерполяция в 25 раз вблизи нуля T01 = (find(diff(U1<0))*0.008)+e1(1)-0.008; %первая опорная точка %найдём вторую точку T2 = [ Y(z1(4)),Y((z1(4)+1))]; %создаём массив из двух элементов окружающих смену знака e2 = [Ts*z1(4)*1000, Ts*(z1(4)+1)*1000]; %массив временных значений e2i = e2(1):0.008:e2(2)-0.008; %дробим временные значения на 25 частей U2 = interp1(e2,T2,e2i,'line'); % линейная интерполяция в 25 раз вблизи нуля T02 = (find(diff(U2<0))*0.008)+e2(1)-0.008; %вторая опорная точка >> f0 = 1/((T02 - T01)/1000); здесь и шум смоделирван. Как бы всё получается. Такие результаты в диссертации на мою тему. Вот отрывок:
Эскизы прикрепленных изображений
|
|
|
|
|
Mar 4 2010, 14:27
|
Знающий
   
Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195

|
Цитата(КонстантинТ @ Mar 4 2010, 16:38)  Судя по всему измеряете частоту прецессии (измерения магнитного поля земли). Какой точности в гаммах хотите добиться? Если ловите десятые доли гамма - очень проблематично и требует периода измерений в секундах, с\ш не меньше 40 дБ. Не зря ведь оверхаузера изобрели (для увеличения с\ш). Поищите по патентам GEM, решений много. Нет. Я измеряю частоту основной гармоники в электрической сети. по идее на АЦП поступает сигнал с трансформатора тока (как в отрывке диссертации выше). Основная гармоника фильтруется полосовиком, затем применяется выше изложенный алгоритм. Берутся две опорные точки (переходы через "0", а лучше - максимумы) затем интерполируется дабы уточнить момент. Так по точкам находят период, а затем и частоту. Моделирую в матлаб - всё нормально при С/Ш >40. Почитайте отрывок из дисертации и мой пост. Так в диссертации достигнута точность чуть выше чем 0,01Гц, чего более чем достаточно. Хочется услышать коментарии спецов.
|
|
|
|
|
Mar 5 2010, 08:51
|

Местный
  
Группа: Свой
Сообщений: 290
Регистрация: 27-06-05
Из: Киев
Пользователь №: 6 345

|
Цитата(TigerSHARC @ Mar 4 2010, 18:27)  Нет. Я измеряю частоту основной гармоники в электрической сети. по идее на АЦП поступает сигнал с трансформатора тока (как в отрывке диссертации выше). Основная гармоника фильтруется полосовиком, затем применяется выше изложенный алгоритм.
Берутся две опорные точки (переходы через "0", а лучше - максимумы) затем интерполируется дабы уточнить момент. Так по точкам находят период, а затем и частоту. Моделирую в матлаб - всё нормально при С/Ш >40. Почитайте отрывок из дисертации и мой пост. Так в диссертации достигнута точность чуть выше чем 0,01Гц, чего более чем достаточно. Хочется услышать коментарии спецов. Я не про Вас, а про автора поста (куда то он пропал). А диссертацию почитаю, задача актуальная.
--------------------
Если в сердце дверь закрыта - надо в печень постучать..
|
|
|
|
|
Mar 11 2010, 19:15
|

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

|
Цитата(TigerSHARC @ Mar 11 2010, 20:31)  Тогда измеряю просто по переходам через ноль...не выйдет? Шум есть всегда и именно он ограничивает точность измерения для всех методов измерения сразу, причем науке известно как - это оценка максимального правдоподобия. Вы почему-то пытаетесь упорно игнорировать этот факт. Предлагаемый Вами метод очень неустойчив к шумам. Он дважды дифференцирует сигнал. А дифференцирование - операция по отношению к шумам недопустимая, поскольку их усиливает. Ваш метод будет работать только при низком уровне шума. Что значит "будет работать" достойное с научной точки зрения? Это значит что точность будет соизмерима с предельно возможной при данном уровне сигнал/шум и длине выборки - а это оценка максимального правдоподобия Крамера-Рао. Если Вы на модельном сигнале сможете обосновать, что метод стремится к этой точности хотя бы при больших SNR - то метод имеет научную ценность. В противном случае - увы... Хотя с технической точки зрения может быть оправданы методы и не дающие предельную точность. Может быть простотой или ещё чем... Например так - "В принципе при возрастании длины выборки N ошибка всякого метода стремится к нулю, что не обязательно верно для SNR стремящегося к бесконечности. Предлагается метод, ошибка которого стремится к 0 при возрастании SNR к бесконечности, хотя он и не выходит на оценку CRLB.... Известны другие методы, достигающие этой оценки, но их сложность - не очень..." )) В конце концов, если не писать диссертации, а решать конкретную задачу, то можно просто сказать - заказчика точность устраивает. Однако нужно помнить, что чем ближе Вы можете подобраться к критерию CRLB тем метод практически всё равно предпочтительней, поскольку это гарантирует нужную точность при меньшем кол-ве отсчетов (за меньшее время), а временнОе разрешения важно уже тем, что параметры гармонического сигнала могут изменяться за время измерения, если это время велико. Т.е. на другом конце нестационарность сигнала. В любом случае метод нужно моделировать и сравнивать с точностью максимального правдоподобия CRLB, поскольку это эталон к которому нужно стремиться. Собственно не понятно, что Вы хотите ещё обсуждать...
|
|
|
|
|
Aug 2 2010, 05:19
|

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

|
читаю и понимаю, что люди вопросы задают и ждут определанных ответов. Но если ответы не совпадают с их ожиданиями то они их просто игнорируют. Теперь по делу. В технике есть предельные оценки, например граница Шеннона скорости передачи данных. Также есть оценка Крамера-Рао точности измерения параметров сигнала. Так вот все что вы можете померить вы можете померить хуже чем эта оценка. Если вы хотите получить наилучшую из возможных оценок, то вы должны делать специальное устройство обработки, которое называеся оптимальным приемником. Надо сказать что когда мы говорим о наилучшей оценки, то надо понимать что мы задаем критерий, по которому данная оценка наилучшая. В данном случае - минимум ошибки измерения частоты при фиксированной выборке. Так вот в случае измерения частоты гармоники люди давно придумали оптимальные следящие контуры, которые подстраиваются под ваш сигнал с точностью до фазы и в режиме реального времени вы можете снимать с них данные о частоты вашего сигнала. Никакое fft не сравниться с контуром фапч по точности, поскольку контур фапч можно сделать на любой сетке частот все упирается в разрядность синтезатора частоты, и при частоте гармоники 50 Гц вытащить 0.01 Гц как нефиг нафиг, только надо обеспечить непрерывный поток данных с ацп, что при частоте 50 Гц тоже как нефиг нафиг. Короче разговоров про эти несчачтные 50 Гц на разных форумах пруд пруди уже не первый год, но что-то как-то все периливают из пустого в порожнее. За это время можно столько книжек прочитать и экспериментов поставить.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|