реклама на сайте
подробности

 
 
> Измерение частоты основной гармоники (50 Гц) с точностью 0.01 Гц
Pridnya
сообщение Sep 8 2015, 16:21
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



Здравствуйте!

Существует ли программный метод измерения частоты основной гармоники с точностью 0,01 Гц? Предполагается, что в системе есть антиалисинговый фильтр 0-1600 Гц, АЦП с частотой выборки 3200 Гц и микроконтроллер.

Сообщение отредактировал Pridnya - Sep 8 2015, 16:25
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
serjj
сообщение Sep 11 2015, 14:32
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Цитата
Нет, вы не отличите изменение фазы от изменения амплитуды.

Да вы что! biggrin.gif
Ну расскажите мне, где вы в формуле f(t) = d/dt(arg(y(t))) увидили изменение амплитуды? И как же это у нас FM радио тогда ловит?..
Цитата
Ага, но для этого нужно сделать выборку длиной не менее периода. И, только тогда, можно оценить "мгновенную" частоту.

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

Сообщение отредактировал serjj - Sep 11 2015, 14:46
Go to the top of the page
 
+Quote Post
rudy_b
сообщение Sep 11 2015, 18:15
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458



Цитата(serjj @ Sep 11 2015, 17:32) *
Да вы что! biggrin.gif
Ну расскажите мне, где вы в формуле f(t) = d/dt(arg(y(t))) увидили изменение амплитуды? И как же это у нас FM радио тогда ловит?..

Ну тогда уж сначала вы расскажите мне, как вы измеряете arg(y(t))?

Цитата(serjj @ Sep 11 2015, 17:32) *
Тогда она уже не будет мгновенной, вам не кажется? )
То о чём вы говорите, не мгновенная частота, а спектральная оценка. И для её определения со значительной точностью не обязательно иметь даже период колебания (в сущности всё определяется уровнем шумов и спектральным составом сигнала). Вот пруф, который я уже как-то приводил.

Как я уже говорил ранее, понятие "мгновенная частота" в метрологии отсутствует. Оно есть только в головах пишущих формулы теоретиков.

Попробуйте почитать книжку, указанную в посте
Цитата(rudy_b @ Sep 11 2015, 03:30) *
...Финк Л. М. Сигналы, помехи, ошибки…

Go to the top of the page
 
+Quote Post
blackfin
сообщение Sep 15 2015, 03:20
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(rudy_b @ Sep 11 2015, 22:15) *
Как я уже говорил ранее, понятие "мгновенная частота" в метрологии отсутствует. Оно есть только в головах пишущих формулы теоретиков.

Можно вполне строго доказать невозможность измерения "мгновенной частоты" на практике.

Для этого нужно воспользоваться формулой для вычисления частоты по трем значениям гармонической функции S(t) из соседней темы:

f = [1/[pi*(t3 - t1)]]*arccos[(S1 + S3)/(2*S2)].

Это абсолютно точная формула, позволяющая получить точное значение частоты "f" при условии,

что нам известны точные значения гармонической функции S(t) в моменты времени t1,t2 и t3:

S1 == S(t1),
S2 == S(t2),
S3 == S(t3),

где:

Δt == t3 - t2 = t2 - t1,

и при этом:

f*(t3 - t1) < 1.

Чтобы строго доказать невозможность измерения "мгновенной частоты" на практике, необходимо вычислить полный дифференциал функции трех переменных:

f(S1,S2,S3) = [1/[pi*(t3 - t1)]]*arccos[(S1 + S3)/(2*S2)].

А именно:

df == (δf/δS1)*dS1 + (δf/δS2)*dS2 + (δf/δS3)*dS3,

где частные производные функции "f" равны:

δf/δS1 = -[1/[pi*(t3 - t1)]]*[1/sqrt[1-[(S1 + S3)/(2*S2)]2]]*[1/(2*S2)],

δf/δS2 = +[1/[pi*(t3 - t1)]]*[1/sqrt[1-[(S1 + S3)/(2*S2)]2]]*[(S1+S3)/(2*S22)].

δf/δS3 = -[1/[pi*(t3 - t1)]]*[1/sqrt[1-[(S1 + S3)/(2*S2)]2]]*[1/(2*S2)],

Соответственно, полный дифференциал равен:

df == -[1/[pi*(t3 - t1)]]*[1/sqrt[1-[(S1 + S3)/(2*S2)]2]]*[(dS1+dS3-(S1+S3)*dS2/S2)/(2*S2)].

Теперь мы можем найти погрешность измерения частоты "σF" связанную с погрешностью измерения сигнала "σS":

σF = σS*[1/[pi*(t3 - t1)]]*[1/sqrt[1-[(S1 + S3)/(2*S2)]2]]*sqrt[2+(S1+S3)2/S22]/[2*abs(S2)],

или:

σF = σS*[1/[pi*(t3 - t1)]]*[1/sqrt[(2*S2)2-(S1 + S3)2]]*sqrt[2+(S1+S3)2/S22].

Знаменатель в этой формуле примечателен тем, что при стремлении t3 к t1 он стремится к нулю как const*(t3-t1)2

Как следствие, при стремлении t3 к t1 для любой погрешности "σS" измерения амплитуды сигнала S(t), погрешность измерения "мгновенной частоты" "σF" устремляется к бесконечности как σS/(t3-t1)2..
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Sep 15 2015, 14:10
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



Цитата(blackfin @ Sep 15 2015, 06:20) *
Можно вполне строго доказать невозможность измерения "мгновенной частоты" на практике.

Для этого нужно воспользоваться формулой для вычисления частоты по трем значениям гармонической функции S(t) из соседней темы:

f = [1/[pi*(t3 - t1)]]*arccos[(S1 + S3)/(2*S2)].

Это абсолютно точная формула, позволяющая получить точное значение частоты "f" при условии,

что нам известны точные значения гармонической функции S(t) в моменты времени t1,t2 и t3:

S1 == S(t1),
S2 == S(t2),
S3 == S(t3),

где:

Δt == t3 - t2 = t2 - t1,

и при этом:

f*(t3 - t1) < 1.


Единственная формула, которую сразу можно посчитать в C++ (IDE NetBeans, компилятор MinGW ). Два результата: для 16-ти разрядного АЦП и для идеального АЦП (см. результат в конце C++ кода). Для хорошего АЦП метод точный, т.е. если фильтрануть основную гармонику, то будет хорошо.

Другие способы (MUSIC, MLE - Метод максимального правдоподобия...), по крайней мере, на первый взгляд очень сложные. Какие-то для матлаба, какие-то в общем виде многоэтажные формулы. Кто такие формулы пишет? Шифротекст для потомков. Неужели один я такой тупой, что не понимаю.

Код
#include <cstdlib>
#include <iostream>   // std::cout
#include <math.h>

using namespace std;

#define SAMPLES 64
//short Data[SAMPLES] = {0}; // АЦП 16-ти разрядный.
float Data[SAMPLES] = {0}; // идеальный АЦП, но его же нет (сигнал 16-ти разрядного АЦП как-то нужно улучшить???).

int main(int argc, char** argv) {

// Создаем сигнал частотой 50 Гц (первая гармоника): косинус, амплитуда 1000, фаза 0.
// таблица содержит 64 выборки на интервале 0.02 сек (период промышленной частоты 50 Гц).    
for(int i=0;i<SAMPLES;i++)
    {Data[i]=1000*cos(2*M_PI*i*1/SAMPLES+2*M_PI*0/360.0F);} // 1000*sin(1wt+0).

// Три равноотсоящих точки выборки (первые три точки).
float S1 = Data[0];
cout << "S1 = " << S1 << endl;  // 1000
float S2 = Data[1];
cout << "S2 = " << S2 << endl;  // 995
float S3 = Data[2];
cout << "S3 = " << S3 << endl;  // 980
float dT = 1.0F/3200.0F;
cout << "dT = " << dT << endl;  // 0.0003125 сек (период между выборками).
float t1 = 0;
cout << "t1 = " << t1 << endl;  // 0 сек.
float t3 = 2*dT;
cout << "t3 = " << t3 << endl;  // 0.000625 сек.

//f = [1/[pi*(t3 - t1)]]*acos[(S1 + S3)/(2*S2)] // Оригинальная формула.
float f = (1/(M_PI*(t3 - t1)))*acos((S1 + S3)/(2*S2)); // Заменил квадратные скобки на круглые.

cout << "f = " << f << endl;    // 51.078 Гц ??? для массива short Data[64]
cout << "f = " << f << endl;    // 50.0001 Гц для массива float Data[64]

return 0;


Сообщение отредактировал Pridnya - Sep 15 2015, 14:23
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Pridnya   Измерение частоты основной гармоники (50 Гц) с точностью 0.01 Гц   Sep 8 2015, 16:21
- - Fat Robot   Да. См методы MUSIC, ESPIRIT http://mathworks.com...   Sep 8 2015, 16:56
|- - _pv   Цитата(Fat Robot @ Sep 8 2015, 23:56) Да....   Sep 9 2015, 07:34
|- - TSerg   Цитата(_pv @ Sep 9 2015, 10:34) и потом о...   Sep 9 2015, 08:06
|- - Fat Robot   Про измеряемый сигнал нам мало что известно из опи...   Sep 9 2015, 08:45
|- - blackfin   Цитата(Fat Robot @ Sep 9 2015, 11:45) В з...   Sep 9 2015, 08:53
|- - Fat Robot   "We can neither confirm nor deny the existenc...   Sep 9 2015, 09:04
- - serjj   MUSIC или ESPRIT могут и не залезть в микроконтрол...   Sep 8 2015, 17:42
|- - Fat Robot   Для единственной синусоиды music сведется mle. А н...   Sep 8 2015, 18:11
- - serjj   ЦитатаДля единственной синусоиды music сведется ml...   Sep 8 2015, 19:11
- - Pridnya   Спасибо ответившим! Много нового узнал.   Sep 8 2015, 19:47
- - blackfin   Цитата(serjj @ Sep 8 2015, 20:42) Если ис...   Sep 9 2015, 08:41
- - serjj   Цитатаесли сам коррелятор уже и есть узкополосный ...   Sep 9 2015, 09:12
|- - blackfin   Цитата(serjj @ Sep 9 2015, 12:12) А что с...   Sep 9 2015, 09:20
- - serjj   ЦитатаЕсли заранее известно, что сигнал гармоничес...   Sep 9 2015, 09:24
|- - blackfin   Цитата(serjj @ Sep 9 2015, 12:24) Почему ...   Sep 9 2015, 09:31
- - serjj   ЦитатаСуществует ли программный метод измерения ча...   Sep 9 2015, 09:41
|- - Fat Robot   Ну вот хочет человек, чтобы во входном сигнале был...   Sep 9 2015, 09:43
|- - blackfin   Цитата(serjj @ Sep 9 2015, 12:41) Измерен...   Sep 9 2015, 10:21
||- - Fat Robot   Вот кстати, наглядный пример того, что шумовой про...   Sep 9 2015, 10:42
|||- - blackfin   Цитата(Fat Robot @ Sep 9 2015, 13:42) Есл...   Sep 9 2015, 10:52
||- - petrov   Цитата(blackfin @ Sep 9 2015, 13:21) но с...   Sep 9 2015, 10:46
||- - blackfin   Цитата(petrov @ Sep 9 2015, 13:46) В неск...   Sep 9 2015, 11:28
||- - petrov   Цитата(blackfin @ Sep 9 2015, 14:28) Смыс...   Sep 9 2015, 11:49
||- - blackfin   Цитата(petrov @ Sep 9 2015, 14:49) Почему...   Sep 9 2015, 12:03
|- - Pridnya   Цитата(serjj @ Sep 9 2015, 12:41) Измерен...   Sep 9 2015, 21:03
|- - Tiro   Цитата(Pridnya @ Sep 10 2015, 00:03) Реь ...   Sep 9 2015, 22:02
|- - petrov   Pridnya Выделяйте комплексным полосовым КИХ фильт...   Sep 9 2015, 22:39
|- - анатолий   ЦитатаХочется выделить основную гармонику (цифровы...   Sep 13 2015, 19:44
|- - Krys   Цитата(анатолий @ Sep 14 2015, 02:44) И т...   Sep 14 2015, 04:10
- - serjj   ЦитатаВ этом уравнении две неизвестных: ω и ...   Sep 9 2015, 11:06
|- - petrov   Цитата(serjj @ Sep 9 2015, 14:06) MUSIC, ...   Sep 9 2015, 12:25
- - serjj   ЦитатаНе смущает, что в одном случае мы умножаем з...   Sep 9 2015, 12:37
|- - petrov   Цитата(serjj @ Sep 9 2015, 15:37) Что-то ...   Sep 9 2015, 13:01
- - serjj   ЦитатаТипа что-то сигнал у вас слишком хорош, дава...   Sep 9 2015, 13:25
- - Милливольт   Удалено, не понял задачи и сморозил чушь.   Sep 10 2015, 06:10
|- - Pridnya   Цитата(Tiro @ Sep 10 2015, 01:02) Почему ...   Sep 10 2015, 07:05
|- - Tiro   Прошу не приписывать мне то, что не было сказано. ...   Sep 10 2015, 07:39
|- - Pridnya   Цитата(Tiro @ Sep 10 2015, 10:39) Прошу н...   Sep 10 2015, 07:58
|- - Tiro   Цитата(Pridnya @ Sep 10 2015, 10:58) Вот ...   Sep 10 2015, 19:25
|- - Pridnya   Цитата(Tiro @ Sep 10 2015, 22:25) Каж...   Sep 10 2015, 19:53
|- - rudy_b   Цитата(Tiro @ Sep 10 2015, 22:25) Вот и...   Sep 10 2015, 20:33
|- - Fat Robot   Дарю. Пользуйтесь. Цитата(rudy_b @ Sep 10 20...   Sep 10 2015, 23:06
- - rudy_b   Парма - это, как раз, образец безграмотной разрабо...   Sep 10 2015, 10:04
|- - Pridnya   Цитата(rudy_b @ Sep 10 2015, 13:04) Станд...   Sep 10 2015, 11:35
- - rudy_b   Спасибо, конечно, но это не метрологическое, а чис...   Sep 11 2015, 00:30
|- - blackfin   Цитата(rudy_b @ Sep 11 2015, 03:30) Мгнов...   Sep 11 2015, 08:58
- - serjj   ЦитатаСпасибо, конечно, но это не метрологическое,...   Sep 11 2015, 07:52
|- - rudy_b   Цитата(serjj @ Sep 11 2015, 10:52) f(t) =...   Sep 11 2015, 14:26
|- - blackfin   Цитата(Pridnya @ Sep 15 2015, 18:10) Един...   Sep 15 2015, 14:28
- - serjj   ЦитатаНу тогда уж сначала вы расскажите мне, как в...   Sep 11 2015, 20:08
|- - rudy_b   Цитата(serjj @ Sep 11 2015, 23:08) Арктан...   Sep 12 2015, 16:40
- - serjj   ЦитатаЧто-то я не знаю приборов измеряющих арктанг...   Sep 14 2015, 07:04
|- - blackfin   Цитата(serjj @ Sep 14 2015, 10:04) Просве...   Sep 14 2015, 07:13
- - serjj   ЦитатаА чего это они в формулах (4) и (7) после вт...   Sep 14 2015, 07:23
|- - blackfin   Цитата(serjj @ Sep 14 2015, 10:23) Если к...   Sep 14 2015, 07:40
- - rudy_b   И где же тут прямое измерение "мгновенной...   Sep 14 2015, 12:34
|- - Fat Robot   Нет ничего проще: На основании именно этих получен...   Sep 14 2015, 13:34
- - thermit   Цитатаrudy_b: подтверждают мои слова о разрывности...   Sep 14 2015, 13:45
|- - mcheb   Цитата(thermit @ Sep 14 2015, 16:45) Прош...   Sep 14 2015, 14:43
- - serjj   ЦитатаИ, если вы прочитали всю приведенную ссылку,...   Sep 14 2015, 14:00
|- - rudy_b   Цитата(Fat Robot @ Sep 14 2015, 16:34) Не...   Sep 15 2015, 04:29
|- - Fat Robot   Ваши рассуждения довольно любопытны для человека, ...   Sep 15 2015, 09:25
- - serjj   Цитатаf = [1/[pi*(t3 - t1)]]*arccos[(S1 + S3)/(2*S...   Sep 15 2015, 08:51
|- - blackfin   Цитата(serjj @ Sep 15 2015, 11:51) А тыкн...   Sep 15 2015, 10:15
- - thermit   ЦитатаС другой стороны для идеального (нет шума) д...   Sep 15 2015, 11:14
- - serjj   ЦитатаДля неопределенной амплитуды скрипт, естеств...   Sep 15 2015, 12:33
- - serjj   ЦитатаДругие способы (MUSIC, MLE - Метод максималь...   Sep 15 2015, 15:38
|- - blackfin   Цитата(serjj @ Sep 15 2015, 19:38) При та...   Sep 15 2015, 16:13
|- - Pridnya   Цитата(blackfin @ Sep 15 2015, 19:13) ......   Sep 16 2015, 07:15
|- - blackfin   Цитата(Pridnya @ Sep 16 2015, 10:15) А та...   Sep 16 2015, 07:28
|- - Pridnya   Цитата(blackfin @ Sep 16 2015, 10:28) Эту...   Sep 16 2015, 08:08
- - EvgenyNik   Pridnya, если с частотой семплирования и разрешающ...   Sep 18 2015, 13:33
|- - Pridnya   Цитата(EvgenyNik @ Sep 18 2015, 16:33) Pr...   Sep 21 2015, 06:30
|- - Santik   Цитата(Pridnya @ Sep 21 2015, 09:30) Хоте...   Sep 22 2015, 06:57
|- - Pridnya   Цитата(Santik @ Sep 22 2015, 09:57) Код ...   Sep 22 2015, 07:11
|- - Santik   Цитата(Pridnya @ Sep 22 2015, 10:11) Не п...   Sep 22 2015, 07:51
|- - Pridnya   Цитата(Santik @ Sep 22 2015, 10:51) Это с...   Sep 22 2015, 08:11
|- - Santik   Цитата(Pridnya @ Sep 22 2015, 11:11) 64то...   Sep 22 2015, 08:35
||- - Pridnya   Цитата(Santik @ Sep 22 2015, 11:35) Да та...   Sep 22 2015, 08:41
||- - Santik   Цитата(Pridnya @ Sep 22 2015, 11:41) Уже ...   Sep 22 2015, 08:57
||- - Pridnya   Цитата(Santik @ Sep 22 2015, 11:57) Можно...   Sep 22 2015, 09:08
|- - petrov   Цитата(Pridnya @ Sep 22 2015, 11:11) Но м...   Sep 22 2015, 11:09
|- - Pridnya   Цитата(petrov @ Sep 22 2015, 14:09) Да хо...   Sep 22 2015, 11:43
|- - petrov   Цитата(Pridnya @ Sep 22 2015, 14:43) До м...   Sep 22 2015, 12:05
|- - Pridnya   Цитата(petrov @ Sep 22 2015, 15:05) Что н...   Sep 22 2015, 12:15
- - Corner   Делов то. Фурье на 8к. Самая яркая палка это она))...   Sep 21 2015, 09:08
|- - Pridnya   Цитата(Corner @ Sep 21 2015, 12:08) Делов...   Sep 21 2015, 13:59
|- - Tiro   Цитата(Pridnya @ Sep 21 2015, 16:59) Наки...   Sep 22 2015, 00:00
|- - Pridnya   Цитата(Tiro @ Sep 22 2015, 03:00) Сколько...   Sep 22 2015, 06:52
- - serjj   ЦитатаДелов то. Фурье на 8к. Самая яркая палка это...   Sep 21 2015, 09:36
- - serjj   ЦитатаДо меня только сегодня дошло, как увеличить ...   Sep 22 2015, 12:40
|- - Pridnya   Цитата(serjj @ Sep 22 2015, 15:40) На мк ...   Sep 22 2015, 12:56
- - serjj   Цитатаdft - ДПФ? sdft - буква s что означает? Може...   Sep 22 2015, 13:12
- - Pridnya   Цитата(serjj @ Sep 22 2015, 16:12) dft=di...   Sep 22 2015, 13:25
- - rudy_b   Куда-то вас не туда понесло, все намного проще - в...   Sep 22 2015, 17:30
2 страниц V   1 2 >


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th June 2025 - 02:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.02546 секунд с 7
ELECTRONIX ©2004-2016