|
|
 |
Ответов
Guest_TSerg_*
|
Nov 5 2016, 07:46
|
Guests

|
Цитата(ViKo @ Nov 5 2016, 07:45)  Я бы вообще не считал (количество замеров)... Усреднял бы и усреднял непрерывно замеры. Говорят, по ГОСТ-у положено 10. Так, что после 10-ти и после 11-го идет просто задержка выдачи результата на период.
|
|
|
|
|
Nov 7 2016, 09:27
|
Участник

Группа: Свой
Сообщений: 29
Регистрация: 6-10-04
Пользователь №: 799

|
Вообще алгоритмы измерения сетевых гармоник подробно изложены в ГОСТ 30804.4.7-2013 и там в качестве опорного метода рекомендуется БПФ. http://meganorm.ru/Data2/1/4293778/4293778588.pdf Проблему ТС я вижу в том, что у него частота дискретизации не синхронизируется с сетевой частотой, как рекомендует ГОСТ, а является фиксированной 8 кГц. Скорее всего используется готовый AFE. Чтобы обеспечить работу в требуемом по ГОСТУ интервале измерений от 42 до 58 Гц сетевой частоты, на 10 периодах сети имеем возможный разброс от 1380 до 1900 отсчетов и отсюда проблему передискретизации в фиксированные 1024 из-за дробного и непостоянного коэффициента. Интерполяцию можно делать через кубические сплайны, можно через интерполирующий фильтр. Здесь что будет быстрее не знаю, но я бы через сплайны делал.
|
|
|
|
|
Nov 7 2016, 10:22
|
Группа: Участник
Сообщений: 11
Регистрация: 31-07-14
Пользователь №: 82 420

|
Цитата(John @ Nov 7 2016, 15:27)  Вообще алгоритмы измерения сетевых гармоник подробно изложены в ГОСТ 30804.4.7-2013 и там в качестве опорного метода рекомендуется БПФ. http://meganorm.ru/Data2/1/4293778/4293778588.pdf Проблему ТС я вижу в том, что у него частота дискретизации не синхронизируется с сетевой частотой, как рекомендует ГОСТ, а является фиксированной 8 кГц. Скорее всего используется готовый AFE. Чтобы обеспечить работу в требуемом по ГОСТУ интервале измерений от 42 до 58 Гц сетевой частоты, на 10 периодах сети имеем возможный разброс от 1380 до 1900 отсчетов и отсюда проблему передискретизации в фиксированные 1024 из-за дробного и непостоянного коэффициента. Интерполяцию можно делать через кубические сплайны, можно через интерполирующий фильтр. Здесь что будет быстрее не знаю, но я бы через сплайны делал. Да, всё именно так. Я немного ступил и задал неверные начальные данные, из-за этого обсуждение свернуло немного в другую сторону. То, что Вы описали - именно это мне и надо получить. В ходе обсуждения и было предложено делать интерполяцию, чтобы получить фиксированные 1024 отсчета и как-то решить проблему с плавающими входными отсчетами. Мне как раз и хотелось узнать - какую интерполяцию применяют в данном случае? Точно не линейная - точность требуемую по ГОСТ не обеспечим. Сплайнами? Точность первоклассная, а вот ресурсов требует наравне с БПФ (примерно 70, а то и все 90 процентов). Делать сначала интерполяцию, а потом децимацию лишено всякого смысла. Спасибо!
|
|
|
|
|
Nov 15 2016, 06:25
|
Участник

Группа: Свой
Сообщений: 29
Регистрация: 6-10-04
Пользователь №: 799

|
Цитата(Rion @ Nov 7 2016, 14:22)  Делать сначала интерполяцию, а потом децимацию лишено всякого смысла. Восстановление значения сигнала между двумя отсчетами (интерполяция) автоматически означает повышение частоты дискретизации в N раз. Чем ближе восстановленный отсчет к первому исходному отсчету - тем выше N. В пределе для непрерывного сигнала частота стремиться к бесконечности. Существуют важные частные случаи передискретизации, для которых вычисление новых отсчётов производится проще: - децимация с целым коэффициентом (уменьшение частоты дискретизации в целое D число раз); - интерполяция с целым коэффициентом (увеличение частоты дискретизации в целое N число раз); - изменение частоты дискретизации в рациональное (N/D) число раз (этот случай можно рассматривать как комбинацию двух предыдущих). https://ru.wikipedia.org/wiki/Передискретизация https://blog.amartynov.ru/интерполяция-или-фильтрЦитата(ViKo @ Nov 3 2016, 11:40)  Задайте частоту дискретизации АЦП 6400 Гц. За 128 выборок наберете 20 мс. Вычислив БПФ, получите 64 гармоники 50 Гц сигнала, с полосой каждого бина 50 Гц.
Потом для большей точности измерения амплитуды усредняйте результаты БПФ.
Не можете уйти от 8 кВыб/с? Интерполируйте на 4, децимируйте на 5. Хотя я этого садомазо из-за упертости схемотехника (или кого?) не понимаю.
Да, АЧХ каждого бина не плоская, на краях загибается. Думаю, можно забить. Или взять 256 выборок, БПФ по 256, получить шаг 25 Гц. Лучше 512 или больше, чтобы знать, как относить палки спектра к нужным гармоникам сигнала. Сетевая частота может сильно меняться и поэтому задавать фиксированную частоту нельзя. Ее надо синхронизировать с сетевой из-за требования обеспечить интервал измерений строго 10 периодов сетевой частоты (сетевая частота измеряется другим методом и заранее известна). Если нельзя уйти от 8 кВыб/с то коэффициент N/D (интерполяция/децимация) будет переменным и очень дробным, потребует фильтрации на очень высокой частоте. Думаю надо смотреть в сторону кубических сплайнов https://ru.wikipedia.org/wiki/интерполяция ну, может быть, полифазного фильтра. Поправьте, если не прав.
|
|
|
|
|
Nov 15 2016, 10:50
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(ViKo @ Nov 15 2016, 14:01)  Полоса каждого бина БПФ будет 50 Гц, влезет любое отклонение частоты от номинальной. и для 20й гармоники тоже? Цитата(ViKo @ Nov 15 2016, 14:01)  Если уж так надо привязаться к частоте сети, то... надо к ней привязаться. ФАПЧ! не надо к ней привязываться ФАПЧем, её надо просто автокорелляцией измерять, а потом делать обычное преобразование Фурье для нужного количества гармоник по сетке частот, соответствующей измеренной частоте основной гармоники.
|
|
|
|
|
Nov 15 2016, 11:14
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(_pv @ Nov 15 2016, 13:50)  и для 20й гармоники тоже? Впритык. Частота сети контролируется глобально. Шаг влево-вправо - расстрел. Так меня учили. При отклонении основной гармоники на 1 Гц 20-я уйдет на 20 Гц, а 50-я на 50 Гц. Влазит. А она кому-то нужна, аж 20-я гармоника? Цитата не надо к ней привязываться ФАПЧем, её надо просто автокорелляцией измерять, а потом делать обычное преобразование Фурье для нужного количества гармоник по сетке частот, соответствующей измеренной частоте основной гармоники. Вы запрещаете или не советуете?  А потом интерполировать непотребное? Пока будете интерполировать по измеренной, реальная частота убежит. Дополню. Интерполировать синус кубическим полиномом (все эти сплайны-лагранжи-фарроу-эрмиты-катмулы-с-роммами...), а потом вычислять в нем 20-ю гармонику? О_о. Их там будет немеряно всяких, в-основном, несуществующих в исходном сигнале. А, по сетке частот Герцелем? Можно.
|
|
|
|
|
Nov 15 2016, 12:16
|
Группа: Участник
Сообщений: 11
Регистрация: 31-07-14
Пользователь №: 82 420

|
Цитата(ViKo @ Nov 15 2016, 17:14)  А она кому-то нужна, аж 20-я гармоника?
Дополню. Интерполировать синус кубическим полиномом (все эти сплайны-лагранжи-фарроу-эрмиты-катмулы-с-роммами...), а потом вычислять в нем 20-ю гармонику? О_о. Их там будет немеряно всяких, в-основном, несуществующих в исходном сигнале.
А, по сетке частот Герцелем? Можно. Как раз таки ГОСТ и требует измерение 50 гармоник сетевой частоты и от ГОСТа никуда не уйти. ГОСТ 30804.4.7-2013. Интерполяция сплайном, по крайней мере как показывает моделирование в MathCad, не очень сильно искажает исходный сигнал. Порядка 0,5 В. Герцелем вычислять все 50 гармоник? При условии, что количество отсчетов всегда плавает. Можно ли будет уложиться хотя бы в 5-7 мс? На CORTEX-M4F, 120 МГц.
|
|
|
|
|
Nov 15 2016, 13:25
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(Rion @ Nov 15 2016, 18:16)  Герцелем вычислять все 50 гармоник? При условии, что количество отсчетов всегда плавает. Можно ли будет уложиться хотя бы в 5-7 мс? На CORTEX-M4F, 120 МГц. FFT надо ~100 таков на отсчёт, Герцелю - одно умножение и пара сложений, соответственно для ~20 гармоник Герцель будет быстрее чем FFT для всего спектра. ну пусть даже будет 10 тактов на отсчёт для Герцеля, для 10 периодов 50Гц на 8кГц это 1600 точек * 10 тактов на отсчёт * 50 гармоник / 120МГц = 6мс. плавающее количество отсчётов Герцелю никак не мешает и не надо ничего интерполировать. то что последняя точка может не попасть в целое количество периодов на пол периода АЦП, +-0.5/8кГц = 60мкс, для 10ти периодов думаю никак на точность не повлияет.
|
|
|
|
|
Nov 16 2016, 13:07
|
Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030

|
Цитата(_pv @ Nov 15 2016, 16:25)  FFT надо ~100 таков на отсчёт, Герцелю - одно умножение и пара сложений, соответственно для ~20 гармоник Герцель будет быстрее чем FFT для всего спектра. ну пусть даже будет 10 тактов на отсчёт для Герцеля, для 10 периодов 50Гц на 8кГц это 1600 точек * 10 тактов на отсчёт * 50 гармоник / 120МГц = 6мс. плавающее количество отсчётов Герцелю никак не мешает и не надо ничего интерполировать. то что последняя точка может не попасть в целое количество периодов на пол периода АЦП, +-0.5/8кГц = 60мкс, для 10ти периодов думаю никак на точность не повлияет. Кстати не факт что 20 "Гертцелей" будут быстрее одного FFT . Скажем есть 1024 отсчета для FFT требуется порядка N * log2 ( N ) = 10240 комплексных операций. Считаем что для Гертцеля требуется одна комплексная операция на отсчет , итого 20 Гертцелей будут стоить 20*1024 = 20480 операций. Тут кто-то про ФАПЧ выше писал... Такая идея... Хватаемся ФАПЧ за первую гармонику, из генератора фапч делаем опорные комплексные экспоненты с частотами 2*f1, 3*f1.... 20*f1, считаем их корреляцию со входным сигналом. ----------------------------------- p.s. Кажется лет 6 назад была точно такая же тема здесь. И вроде было все подробно разобрано, и кажется пришли к мысли что передискретизация(интерполяция) особо не нужна чтобы измерить частоту (амплитуду) отдельно стоящей гармоники.
--------------------
ну не художники мы...
|
|
|
|
|
Nov 16 2016, 16:10
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(alex_os @ Nov 16 2016, 19:07)  Кстати не факт что 20 "Гертцелей" будут быстрее одного FFT . Скажем есть 1024 отсчета для FFT требуется порядка N * log2 ( N ) = 10240 комплексных операций. Считаем что для Гертцеля требуется одна комплексная операция на отсчет , итого 20 Гертцелей будут стоить 20*1024 = 20480 операций. не все комплексные операции одинаково полезны (с). вон на 1024FFT кортексу М0 надо в десять раз больше тактов чем М4. а вот для того чтобы умножить и сложить пару чисел ему точно в десять раз больше тактов не надо. Цитата(alex_os @ Nov 16 2016, 19:07)  Тут кто-то про ФАПЧ выше писал... Такая идея... Хватаемся ФАПЧ за первую гармонику, из генератора фапч делаем опорные комплексные экспоненты с частотами 2*f1, 3*f1.... 20*f1, считаем их корреляцию со входным сигналом. и чем это от Герцеля отличается? только частоту основной гармоники просто измерить, автокорреляцией или через среднеквадратичное значение производной, а не из фапча. и потом считать Герцелем те же интегралы Фурье для частот 2*f1, 3*f1.... 20*f1,.
|
|
|
|
|
Nov 17 2016, 09:04
|
Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030

|
Цитата(_pv @ Nov 16 2016, 19:10)  не все комплексные операции одинаково полезны (с). вон на 1024FFT кортексу М0 надо в десять раз больше тактов чем М4. а вот для того чтобы умножить и сложить пару чисел ему точно в десять раз больше тактов не надо. А чего для Гертцеля не нужно в 10 раз больше тактов? Цитата(_pv @ Nov 16 2016, 19:10)  и чем это от Герцеля отличается? только частоту основной гармоники просто измерить, автокорреляцией или через среднеквадратичное значение производной, а не из фапча. и потом считать Герцелем те же интегралы Фурье для частот 2*f1, 3*f1.... 20*f1,. Почти ничем не отличается только частоту мерить не надо  .
--------------------
ну не художники мы...
|
|
|
|
Сообщений в этой теме
Rion Интерполяция на микроконтроллере Nov 1 2016, 09:53 sysel Цитата(Rion @ Nov 1 2016, 13:53) Ведь нео... Nov 1 2016, 10:17 Rion Цитата(sysel @ Nov 1 2016, 16:17) Нет так... Nov 1 2016, 11:07 TSerg 1. Зачем Вам интерполяция на 10 периодах? Делайте ... Nov 1 2016, 10:22 sqrt(2) Цитата(Rion @ Nov 1 2016, 12:53) Собствен... Nov 1 2016, 10:40 ViKo Цитата(sqrt(2) @ Nov 1 2016, 13:4... Nov 1 2016, 10:47 sqrt(2) Полифазный фильтр Nov 1 2016, 11:26 Rion Поправьте меня, если я что-то не правильно говорю:... Nov 1 2016, 11:48 sqrt(2) Цитата(Rion @ Nov 1 2016, 14:48) Поправьт... Nov 1 2016, 11:58  Rion Цитата(sqrt(2) @ Nov 1 2016, 17:5... Nov 1 2016, 12:00   sqrt(2) Цитата(Rion @ Nov 1 2016, 15:00) Тогда со... Nov 1 2016, 12:29   TSerg Цитата(Rion @ Nov 1 2016, 15:00) Тогда со... Nov 1 2016, 14:11    AlexRayne Цитата(TSerg @ Nov 1 2016, 18:11) Здесь, ... Nov 17 2016, 17:16     Rion Цитата(AlexRayne @ Nov 17 2016, 23:16) пл... Nov 22 2016, 10:38 _pv Цитата(Rion @ Nov 1 2016, 15:53) Столкнул... Nov 1 2016, 12:20 Rion Цитата(_pv @ Nov 1 2016, 18:20) про БПФ: ... Nov 2 2016, 03:42  _pv Цитата(Rion @ Nov 2 2016, 09:42) Как раз ... Nov 2 2016, 11:46 TSerg Разложение числа на простые множители:
1600 = 2 · ... Nov 2 2016, 13:29 Grizzzly Цитата(TSerg @ Nov 2 2016, 16:29) Разложе... Nov 2 2016, 13:40 TSerg О вариантах БПФ
Parallel.ru
Еще:
Морфизприбор - Б... Nov 2 2016, 14:09 alex_os Цитата(TSerg @ Nov 2 2016, 17:09) О вариа... Nov 2 2016, 17:10  TSerg Цитата(alex_os @ Nov 2 2016, 20:10) Годна... Nov 2 2016, 17:17   alex_os Цитата(TSerg @ Nov 2 2016, 20:17) P.S.
Ро... Nov 2 2016, 17:57    TSerg Цитата(alex_os @ Nov 2 2016, 20:57) а там... Nov 2 2016, 18:07  TSerg Цитата(alex_os @ Nov 2 2016, 20:10) А вот... Nov 2 2016, 17:34 Grizzzly В 4G, он же LTE, есть размерность FFT, равная 1536... Nov 2 2016, 17:22 jorikdima И вправду, если нужны значения только на определен... Nov 2 2016, 19:39 ViKo Задайте частоту дискретизации АЦП 6400 Гц. За 128 ... Nov 3 2016, 07:40 _pv 10 раз усреднённый спектр по 20мс и один по 200мс ... Nov 3 2016, 07:59 ViKo Цитата(_pv @ Nov 3 2016, 10:59) 10 раз ус... Nov 3 2016, 08:06 TSerg По-хорошему, я бы вообще делал десять замеров пери... Nov 4 2016, 16:06     Rion Цитата(John @ Nov 15 2016, 12:25) Сетевая... Nov 15 2016, 07:54         blackfin Цитата(Rion @ Nov 15 2016, 15:16) Можно л... Nov 15 2016, 12:38          blackfin Цитата(_pv @ Nov 15 2016, 16:25) FFT надо... Nov 15 2016, 13:43           _pv Цитата(blackfin @ Nov 15 2016, 20:43) Ну,... Nov 15 2016, 16:13           petrov Цитата(alex_os @ Nov 16 2016, 16:07) p.s.... Nov 16 2016, 14:01             _pv Цитата(alex_os @ Nov 17 2016, 15:04) А че... Nov 17 2016, 11:56 Pavia ЦитатаДелать сначала интерполяцию, а потом децимац... Nov 14 2016, 08:19 Rion Цитата(Pavia @ Nov 14 2016, 14:19) А учеб... Nov 14 2016, 12:23 ViKo Прокомментируйте мое предложение:
https://electron... Nov 14 2016, 12:28 arhiv6 . Nov 14 2016, 12:51 Rion Подытожим.
Если уж очень хочется делать через инт... Nov 21 2016, 12:29
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|