yamantau 15 11 января, 2019 Опубликовано 11 января, 2019 · Жалоба Случайно набрел на данную книгу: "Аппроксимационные методы и системы измерения и контроля параметров периодических сигналов" ссылка может пригодится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iiv 16 11 января, 2019 Опубликовано 11 января, 2019 · Жалоба On 12/30/2018 at 2:36 AM, blackfin said: В моей программе Фурье не вычисляется. Входной сигнал умножается на exp(-a*t^2), полученное произведение возводится в квадрат, после чего суммируется по всем точкам на интервале измерения. Затем полученная сумма делится на вес оконной функции Гаусса и вычисляется квадратный корень. конечно это тоже метод, особенно если взять квадратно-гнездовым пару сотен a из Вашей формулы, то получится хороший и достоверный результат, особенно если не забыть о том, что для каждого такого значения своя длина последовательности, и взято оно все в эпсилон окрестности частоты, которую надо мерить. Если соответствующие таблицы размером в несколько мегабайт в память влезут и под тысячу флопов на одну оцифровку не пугают - да, проблем нет, это тоже довольно просто запрограммировать, особенно если вспомнить, что про Фурье в стандартном университетском курсе электронщика говорят, а про линейное предсказание и сингулярное разложение - нет. Ждем от ТС результатов, надеюсь эти баталии помогли ему выбрать правильный метод и успешно решить задачу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 14 12 января, 2019 Опубликовано 12 января, 2019 · Жалоба 2 hours ago, iiv said: Если соответствующие таблицы размером в несколько мегабайт в память влезут и под тысячу флопов на одну оцифровку не пугают - да, проблем нет Какие ещё "мегабайты таблиц"? Вы бредите? У ТС частота дискретизации 8 кГц, разрядность АЦП равна 24 бита, поэтому размер таблицы равен: 3*4*8000/50 = 1920 байт. Таблица одна для любых частот от 45 Гц до 4 кГц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iiv 16 12 января, 2019 Опубликовано 12 января, 2019 · Жалоба Так если таблица одна и все так просто и Вы считаете, что она даже проще того, что я Выше приводил - напишите программу и выложите ее здесь, а мы вместе оценим сколько там таблиц и этих коэффициентов, если Фурье в лоб без бабочек считать. Я надеюсь мы все понимаем, что 50 и 50.3Гц в случае ТС надо различать, ибо это 160 и 159 отсчетов и ТС не особенно волнует 50 или 100Гц у него несущая. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 14 12 января, 2019 Опубликовано 12 января, 2019 · Жалоба 16 hours ago, iiv said: Так если таблица одна и все так просто и Вы считаете, что она даже проще того, что я Выше приводил - напишите программу и выложите ее здесь, а мы вместе оценим сколько там таблиц и этих коэффициентов, если Фурье в лоб без бабочек считать. Вот вам "псевдо-код": double GW[640]; // Таблица коэффициентов оконной ф-ции Гаусса, == exp(-a*t^2) double WG; // Вес окна Гаусса double MS = 0.0; // Mean Square double RMS; // Root Mean Square double ST[640*2]; // Source Signal double GS; int i; for (i = 0; i < 640; i++) { GS = GW[i]*ST[i]; MS += GS*GS; } for (; i < 640*2; i++) { GS = GW[640*2-1-i]*ST[i]; MS += GS*GS; } RMS = sqrt(MS/WG); 16 hours ago, iiv said: Я надеюсь мы все понимаем, что 50 и 50.3Гц в случае ТС надо различать, ибо это 160 и 159 отсчетов и ТС не особенно волнует 50 или 100Гц у него несущая. Встречное предложение.. Посчитайте своим методом RMS для сигнала с гармониками: Ибо: On 12/27/2018 at 3:33 AM, haker_fox said: Но мы не ставили задачу отрезать первую гармонику, оставлен задел на "взятие" аж до 20-й гармоники. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 12 января, 2019 Опубликовано 12 января, 2019 · Жалоба ТС надо за 0.5 секунды померить RMS. А если просто взять среднеквадратичное значение всех выборок, полученных за эти 0.5 сек. ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 4 12 января, 2019 Опубликовано 12 января, 2019 · Жалоба 1 hour ago, dimka76 said: ТС надо за 0.5 секунды померить RMS. А если просто взять среднеквадратичное значение всех выборок, полученных за эти 0.5 сек. ? Перечитайте топик. Quote Данные (измеренную частоту, и RMS) нужно выдавать не чаще, чем каждые 0.5 с. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 13 января, 2019 Опубликовано 13 января, 2019 · Жалоба On 1/12/2019 at 2:30 PM, blackfin said: Вот вам "псевдо-код": У вас t это период дискретизации ? А как быть с определением частоты входного сигнала ? Ведь как правильно заметил Herz, в ответ на мое сообщение: Quote Данные (измеренную частоту, и RMS) нужно выдавать не чаще, чем каждые 0.5 с. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 52 13 января, 2019 Опубликовано 13 января, 2019 · Жалоба 3 hours ago, dimka76 said: А как быть с определением частоты входного сигнала ? если считать RMS с оконной функцией, частоту сигнала определять не надо, ошибку на краях из-за непопадания частоты сигнала в длину выборки целое число раз задавит оконная функция. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iiv 16 13 января, 2019 Опубликовано 13 января, 2019 · Жалоба 41 minutes ago, _pv said: если считать RMS с оконной функцией, частоту сигнала определять не надо, ошибку на краях из-за непопадания частоты сигнала в длину выборки целое число раз задавит оконная функция. конечно если только RMS, то тут куча вариантов, хоть оконная функция, хоть сравнение интеграла квадрата функции и интеграла квадрата производной, но вроде ТС писал, что де все-таки он период тоже знать хочет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iiv 16 13 января, 2019 Опубликовано 13 января, 2019 · Жалоба Если говорить только про период - Вы же его не считаете, только RMS, а ТС и его тоже хочет. Про sin(x)-0.3*sin(5x)-0.3(3x) - если меньше коэффициенты у гармоник будут, то они не будут видны, иначе надо взять чуть больше векторов сингулярного разложения и в них поместятся все эти гармоники. Но тут надо заранее знать сколько есть ярких (близких по порядку) в L2 норме сигналов в исходном и брать размерность матрицы в сингулярном разложении не менее этого числа плюс один. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 52 13 января, 2019 Опубликовано 13 января, 2019 · Жалоба 16 minutes ago, iiv said: конечно если только RMS, то тут куча вариантов, хоть оконная функция, хоть сравнение интеграла квадрата функции и интеграла квадрата производной, но вроде ТС писал, что де все-таки он период тоже знать хочет. Изначально измерение частоты нужно было ТСу чтобы подбирать длину выборки и считать RMS как обычно, иначе не влезающие в целое количество периодов куски начинают давать ошибку. но если посчитать RMS от сигнала * окно как есть, и отдельно RMS окна (вообще один раз заранее), то можно получить исходный RMS сигнала без оконной функции, о чем blackfin с самого начала и говорил. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 4 13 января, 2019 Опубликовано 13 января, 2019 · Жалоба 30 minutes ago, _pv said: и отдельно RMS окна (вообще один раз заранее) Простите мне моё невежество, но что такое RMS окна? И когда - заранее? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 52 13 января, 2019 Опубликовано 13 января, 2019 · Жалоба 3 hours ago, Herz said: Простите мне моё невежество, но что такое RMS окна? И когда - заранее? rms(signal*window) = rms(signal)*rms(window) ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 14 24 декабря, 2019 Опубликовано 24 декабря, 2019 · Жалоба On 12/22/2018 at 1:01 PM, haker_fox said: Недавно выяснилось, что нужно алгоритм адаптировать для частот 48 - 62 Гц. Классика уже не работает, по-крайней мере с дискретными данными. ... Собственно мои вопросы: 2. Имеется ли в природе другой алгоритм, более быстрый для данной задачи? Прошел год... Удалось ли что-то сделать в железе? Какой алгоритм выбрали? Какая получилась точность измерения? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться