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

 
 
 
Reply to this topicStart new topic
> цифровой измеритель среднего значения сигнала.
sergeantryan
сообщение Jun 1 2015, 13:25
Сообщение #1





Группа: Новичок
Сообщений: 8
Регистрация: 17-06-12
Пользователь №: 72 359



здраствуйте, товарищи

попросили помочь с заданием, но я попал в тупик.

вот задание:
Разработать цифровой измеритель среднего значения сигнала.
Пределы измерения ±2 В. Погрешность – 0.1 %.
Диапазон рабочих частот: 50 Гц – 1 кГц.
Частота дискретизации – не более 48 кГц.

собственно, у меня идея такая: пропустить через выпрямитель этот сигнал, пропустить через фильтр и подать на вход АЦП. вопрос: будет ли это верно? и зачем такая большая частота дискретизации?
к сожалению мои познания в программирование не очень.возможно ли с помощью непосредсвенно самим АЦП снять среднее значение. буду рад любым советам. может поделитесь хорошей литературой.
Go to the top of the page
 
+Quote Post
serjj
сообщение Jun 1 2015, 13:57
Сообщение #2


Знающий
****

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



Цитата
собственно, у меня идея такая: пропустить через выпрямитель этот сигнал, пропустить через фильтр и подать на вход АЦП

А вы точно знаете коэффициент передачи аналоговой части вашей схемы и он не "уйдет" за время работы? Иначе вы получите смещенную неверную оценку.
Цитата
и зачем такая большая частота дискретизации?

Это одна из стандартных частот сэмплирования звука. 44,1 48 и 96, если мне не изменяет память. Может еще какие-то есть. Вам предлагают не смотреть в сторону АЦП, работающих на повышенных частотах сэмплирования. Берите 44,1 - она самая распространённая. Можно стандартный аудио-вход от микрофона с такой АЦП-кой. Для готовых железок передаточные характеристики трактов перед АЦП наверняка документированы, так что их можно скомпенсировать при рассчёте.
Потом, вам нужно среднее значение амплитуды или именно сигнала? Если сигнала, то вы будете мерить уровень постоянки. Если амплитуды - вам нужно сначала взять модуль сигнала, а потом измерять среднее. Если нужна мощность, то после модуля нужно возвести в квадрат, а потом считать среднее. Самый простой способ усреднения - экспоненциальное взвешивание:
mean(k) = s(k)/N + mean(k-1) - mean(k-1)/N,
где N - порядок фильтра. Такое решение не потребует большого количества памяти для накопления N отсчётов, как в случае с обычным скользящим средним. За N отсчётов сходится к результату скользящего среднего. В итоге на выходе фильтра будете постоянно иметь среднее по сигналу/амплитуде/мощности (в зависимости от того, что подадите на вход). Измерение будет иметь задержку, вносимую фильтром в пределах до (N/44.1кГц) мс. N определяет также и точность, возьмите например 1024. Если сигнал сильно шумит, можно увеличить до 16384 или 32768. Степень двойки позволит заменить деление на битовую операцию смещения.

ЗЫ: а, ну и коэффициент передачи аналоговой части. Допустим есть коэффициент передачи по напряжению, К. Если считаете уровент постоянки, то (скорее всего вы её не вносите аналоговой частью) можно ничего не изменять, а просто отдать на выход алгоритма. Если измеряете среднюю амплитуду, то нужно выход алгоритма поделить на К, если мощность - на квадрат К.

Сообщение отредактировал serjj - Jun 1 2015, 14:02
Go to the top of the page
 
+Quote Post
sergeantryan
сообщение Jun 1 2015, 14:09
Сообщение #3





Группа: Новичок
Сообщений: 8
Регистрация: 17-06-12
Пользователь №: 72 359



Цитата(serjj @ Jun 1 2015, 16:57) *
Это одна из стандартных частот сэмплирования звука. 44,1 48 и 96, если мне не изменяет память. Может еще какие-то есть. Вам предлагают не смотреть в сторону АЦП, работающих на повышенных частотах сэмплирования. Берите 44,1 - она самая распространённая. Можно стандартный аудио-вход от микрофона с такой АЦП-кой. Для готовых железок передаточные характеристики трактов перед АЦП наверняка документированы, так что их можно скомпенсировать при рассчёте.


какой АЦП можете посоветовать?
Цитата(serjj @ Jun 1 2015, 16:57) *
Потом, вам нужно среднее значение амплитуды или именно сигнала? Если сигнала, то вы будете мерить уровень постоянки. Если амплитуды - вам нужно сначала взять модуль сигнала, а потом измерять среднее. Если нужна мощность, то после модуля нужно возвести в квадрат, а потом считать среднее. Самый простой способ усреднения - экспоненциальное взвешивание:
mean(k) = s(k)/N + mean(k-1) - mean(k-1)/N,

в задании не оговоренно.думаю самого сигнала. экспоненциальное взвешивание реализуется аналоговой частьюили непосредственно коом АЦП?
Go to the top of the page
 
+Quote Post
_pv
сообщение Jun 1 2015, 15:18
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



вот не надо советовать аудио АЦП для измерительных целей. они для этого не очень подходят.
особенно по стабильностям коэффициента передачи и смещений. в большинстве даташитов на аудиоАЦП таких параметров просто не найдёте.

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

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

если нужно только среднее значение то можно вообще взять любой медленный сигма-дельта АЦП, с частотой выдачи данных даже гораздо меньше собственно частоты сигнала, он своим фильтром от сигнала сам по себе только среднее значение оставит задавив собственно сам сигнал.
Go to the top of the page
 
+Quote Post
sergeantryan
сообщение Jun 1 2015, 15:39
Сообщение #5





Группа: Новичок
Сообщений: 8
Регистрация: 17-06-12
Пользователь №: 72 359



Цитата(_pv @ Jun 1 2015, 18:18) *
вот не надо советовать аудио АЦП для измерительных целей. они для этого не очень подходят.
особенно по стабильностям коэффициента передачи и смещений. в большинстве даташитов на аудиоАЦП таких параметров просто не найдёте.

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

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

если нужно только среднее значение то можно вообще взять любой медленный сигма-дельта АЦП, с частотой выдачи данных даже гораздо меньше собственно частоты сигнала, он своим фильтром от сигнала сам по себе только среднее значение оставит задавив собственно сам сигнал.

можно про сигма-дельта АЦП по подробней.мне не со всем понятно как его программировать, и как добиться нужного диапазона частот?
Go to the top of the page
 
+Quote Post
Alex11
сообщение Jun 3 2015, 18:30
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Во-первых, уточните у заказчика, что он подразумевает под средним значением сигнала, ибо математически среднее значение синуса за период равно нулю, а если не за период, то чему угодно. Поэтому нужно понять что требуется - среднеквадратичное, средневыпрямленное или что еще. Остальное Вам уже тут правильно насоветовали - сигнал оцифровываете как есть, далее считаете. АЦП дельта-сигма есть отличные у TI ADS1271 или ADS1274 - с них Вы получите требуемую точность с запасом. Заводите его с частотой порядка 20 кГц - для полосы 1 кГц будет достаточно.
Go to the top of the page
 
+Quote Post
Aleksandr Barano...
сообщение Jun 11 2015, 14:17
Сообщение #7


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

Группа: Участник
Сообщений: 169
Регистрация: 31-08-05
Из: New York
Пользователь №: 8 118



Цитата(_pv @ Jun 1 2015, 11:18) *
тем более что пропустив через выпрямитель и усреднив получится не среднее, а среднеквадратичное значение.

Каким это образом выпрямитель дает среднеквадратичное значение? Зачем тогда существуют "True RMS" измерители?


--------------------
ASB
Go to the top of the page
 
+Quote Post
Signal
сообщение Jun 11 2015, 14:22
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 23-08-11
Из: Рига, Латвия
Пользователь №: 66 843



Цитата(sergeantryan @ Jun 1 2015, 16:25) *
вот задание:
Разработать цифровой измеритель среднего значения сигнала.
...
к сожалению мои познания в программирование не очень.

Ключевое слово в задании - "цифровой". Подразумевается, что обработка будет вестись именно в этой области. Если ваши познания "не очень", то вы не помощник вашему другу.
Конечно, можно сделать так, как вы предположили: аналоговый выпрямитель с последующим аналоговым фильтром и даже закончить это аналоговым же измерителем. И все будет работать. Вообще без дискретизации. Стрелочный измеритель, это, конечно, прикол в данном случае - он не обеспечит требуемую точность, что гармонично отражено словом "цифровой" в задании. Однако, ведь можно и не стрелочный прибор применить, а магазин сопротивлений wink.gif Шутю. Чисто цифровое решение задачи потребует на входе АЦП, частоту которого вам ограничили в разумных пределах.

Как мне видится, задание учебное и в первую очередь требует расчета необходимых частоты дискретизации, разрядности входных данных и разрядности вычислений, нахождения правильного алгоритма/математики и уж затем (если требуется) - выбор элементной базы с учетом всех влияющих на точность факторов и программирование (которое будет трудно проверит без изготовления опытного экземпляра).


Цитата(_pv @ Jun 1 2015, 18:18) *
тем более что пропустив через выпрямитель и усреднив получится не среднее, а среднеквадратичное значение.

Неосторожное, вводящее в заблуждение высказывание.

Цитата(serjj @ Jun 1 2015, 16:57) *
А вы точно знаете коэффициент передачи аналоговой части вашей схемы и он не "уйдет" за время работы? Иначе вы получите смещенную неверную оценку.

Одна из страшилок, чаще всего запоминаемых не из личного опыта, а их общих слов на лекции в институте. В данном случае, как и во многих других, совершенно несущественная и неопределяющая. С тем же успехом можно бояться применить буферный каскад на ОУ на входе перед "цифровым и очень стабильным" АЦП.

Цитата(Alex11 @ Jun 3 2015, 21:30) *
Во-первых, уточните у заказчика, что он подразумевает под средним значением сигнала, ибо математически среднее значение синуса за период равно нулю, а если не за период, то чему угодно. Поэтому нужно понять что требуется - среднеквадратичное, средневыпрямленное или что еще.

Для меня термин "среднее значение" хоть и не до конца точный, но вполне достаточный. При необходимости, квадратичность была бы указано явно.
Полоса входного сигнала начинается с 50 Гц. Ни о какой постоянке речь идти не может. Можно принять по умолчанию, что погрешность задана от шкалы.

Если бы делал я, то единственное, что я бы уточнил, это период усреднения. Или, с другой стороны, частота обновления показаний измерителя. Но, думаю, любое разумное, хоть как-то обоснованное значение может быть произволом студента. Возможно даже, это часть задания - определиться с недостающими требованиями.
Go to the top of the page
 
+Quote Post
Lerk
сообщение Jun 11 2015, 19:48
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 339
Регистрация: 5-05-11
Пользователь №: 64 797



Цитата(Signal @ Jun 11 2015, 17:22) *
Если бы делал я, то единственное, что я бы уточнил, это период усреднения. Или, с другой стороны, частота обновления показаний измерителя. Но, думаю, любое разумное, хоть как-то обоснованное значение может быть произволом студента. Возможно даже, это часть задания - определиться с недостающими требованиями.


Можно банально сделать среднее с накоплением: сколько семплов получил, столько и усреднил. Чем дольше измеряем, тем точнее среднее. Дешево и сердито.
PS. avg(x)[i] = ((i-1)*avg(x)[i-1] + x[i])/i;
Go to the top of the page
 
+Quote Post
serjj
сообщение Jun 15 2015, 06:28
Сообщение #10


Знающий
****

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



Цитата
Можно банально сделать среднее с накоплением: сколько семплов получил, столько и усреднил. Чем дольше измеряем, тем точнее среднее. Дешево и сердито.
PS. avg(x)[i] = ((i-1)*avg(x)[i-1] + x[i])/i;


ИМХО не самый удачный метод усреднения, особенно для real-time, сравните, например, с экспоненциальным взвешиванием (реакция на прямоугольный сигнал некоторой длительности):

Прикрепленное изображение

Нет контроля параметра интегрирования, алгоритм необходимо сбрасывать, после определенного индекса алгоритм уже практически не меняет своего состояния.

Сообщение отредактировал serjj - Jun 15 2015, 06:29
Go to the top of the page
 
+Quote Post
Lerk
сообщение Jun 15 2015, 06:42
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 339
Регистрация: 5-05-11
Пользователь №: 64 797



Цитата(serjj @ Jun 15 2015, 09:28) *
ИМХО не самый удачный метод усреднения, особенно для real-time, сравните, например, с экспоненциальным взвешиванием (реакция на прямоугольный сигнал некоторой длительности):

Прикрепленное изображение

Нет контроля параметра интегрирования, алгоритм необходимо сбрасывать, после определенного индекса алгоритм уже практически не меняет своего состояния.


Так я и не настаиваю sm.gif Задача же не описана подробно.

Вот вы, видимо, сталкивались с задачей оценки реакции на прямоугольный сигнал, и вам это нужно учитывать. Мне же не доводилось решать такую задачу, а те, что доводилось(слабо меняющийся сигнал), прекрасно решаются обычным накопительным усреднением. Тем форум и хорош: теперь автор может выбрать из кучи различных вариантов тот, который ему более всего подходит wink.gif
Go to the top of the page
 
+Quote Post

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

 


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


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