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

 
 
> Интерполяция на микроконтроллере
Rion
сообщение Nov 1 2016, 09:53
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 31-07-14
Пользователь №: 82 420



Столкнулся с такой задачей: Есть АЦП с частотой дискретизации 8 кГц - задан жестко. Есть микроконтроллер, работающий на частоте 120 МГц - тоже задан жестко. Частота сигнала - частота сети 50 Гц. Т.е. после АЦП на микроконтроллер идут 160 отсчетов на 1 период сигнала. Далее на 10 периодах применяется БПФ на 1024 отсчета (тут БПФ не рассматривается, уже реализовано).

Собственно в чем весь вопрос: Какой именно вид интерполяции применить лучше всего (есть линейная, квадратичная, кубическими сплайнами, полиномы Лагранжа и прочее)? Ведь необходимо из 1600 отсчетов сделать 1024 - по-любому необходима интерполяция. И еще необходимо обеспечить точность - в идеале около 1%.

И еще один момент - всё это делается на микроконтроллере, т.е. потом все эти алгоритмы будут преобразованы в код на C++.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Nov 5 2016, 04:45
Сообщение #2


Универсальный солдатик
******

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



Я бы вообще не считал (количество замеров)... Усреднял бы и усреднял непрерывно замеры.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Nov 5 2016, 07:46
Сообщение #3





Guests






Цитата(ViKo @ Nov 5 2016, 07:45) *
Я бы вообще не считал (количество замеров)... Усреднял бы и усреднял непрерывно замеры.

Говорят, по ГОСТ-у положено 10. Так, что после 10-ти и после 11-го идет просто задержка выдачи результата на период.
Go to the top of the page
 
+Quote Post
John
сообщение Nov 7 2016, 09:27
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 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 из-за дробного и непостоянного коэффициента.

Интерполяцию можно делать через кубические сплайны, можно через интерполирующий фильтр. Здесь что будет быстрее не знаю, но я бы через сплайны делал.
Go to the top of the page
 
+Quote Post
Rion
сообщение Nov 7 2016, 10:22
Сообщение #5





Группа: Участник
Сообщений: 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 процентов). Делать сначала интерполяцию, а потом децимацию лишено всякого смысла.

Спасибо! sm.gif
Go to the top of the page
 
+Quote Post
John
сообщение Nov 15 2016, 06:25
Сообщение #6


Участник
*

Группа: Свой
Сообщений: 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/интерполяция
ну, может быть, полифазного фильтра. Поправьте, если не прав.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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
|- - ViKo   Цитата(John @ Nov 15 2016, 09:25) Сетевая...   Nov 15 2016, 08:01
|- - _pv   Цитата(ViKo @ Nov 15 2016, 14:01) Полоса ...   Nov 15 2016, 10:50
|- - ViKo   Цитата(_pv @ Nov 15 2016, 13:50) и для 20...   Nov 15 2016, 11:14
|- - Rion   Цитата(ViKo @ Nov 15 2016, 17:14) А она к...   Nov 15 2016, 12:16
|- - blackfin   Цитата(Rion @ Nov 15 2016, 15:16) Можно л...   Nov 15 2016, 12:38
|- - _pv   Цитата(Rion @ Nov 15 2016, 18:16) Герцеле...   Nov 15 2016, 13:25
|- - 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
|- - alex_os   Цитата(_pv @ Nov 15 2016, 16:25) FFT надо...   Nov 16 2016, 13:07
|- - petrov   Цитата(alex_os @ Nov 16 2016, 16:07) p.s....   Nov 16 2016, 14:01
|- - _pv   Цитата(alex_os @ Nov 16 2016, 19:07) Кста...   Nov 16 2016, 16:10
|- - alex_os   Цитата(_pv @ Nov 16 2016, 19:10) не все к...   Nov 17 2016, 09:04
|- - _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


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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 17:15
Рейтинг@Mail.ru


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