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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Передискретизация и увеличение разрядности АЦП, вопрос по реализации
Alexashka
сообщение Apr 1 2011, 10:15
Сообщение #1


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Всем добрый день!

Встала такая задача: у имеющегося 10-битного АЦП нужно повысить эффективную разрядность до 12 бит. 

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

Прочитал эту статью Прикрепленный файл  Enhancing_ADC_resolution_by_oversampling.pdf ( 117.96 килобайт ) Кол-во скачиваний: 561
однако остались вопросы. Например я делаю передискретизацию в 16 раз. Т.е это означает увеличение эфф.разрядности на 2 бита. При должной фильтрации наверно так и будет. Но в статье предлогается брать сумму по группам из 16 отсчетов. Внутренний голос подсказывает, что при этом произойдет увеличение шумов в корень из 16 раз, т.е в 4 раза (если считать в LSB). Однако вес одного LSB теперь будет в 16 раз меньше (входной диапазон напряжений АЦП остался тем же, а диапазон "кодов" на выходе сумматора вырос в 16 раз). Т.е если перевести полученный с сумматора код в "вольты", то эффективный шум вроде как уменьшается в 4 раза. Так ли это и какой смысл после этого делать деление на 16 -сигнал станет чище конечно, но шумы квантования при этом возрастают?  laughing.gif
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 1 2011, 10:46
Сообщение #2


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

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



Цитата(Alexashka @ Apr 1 2011, 13:15) *
Т.е если перевести полученный с сумматора код в "вольты", то эффективный шум вроде как уменьшается в 4 раза. Так ли это и какой смысл после этого делать деление на 16 -сигнал станет чище конечно, но шумы квантования при этом возрастают?

То есть вопрос - отбрасывать ли два младших разряда, или оставить?
Вам же надо 12 разрядов. Вот их и оставьте. А поделить на 16 - значит выбросить все 4 младших. Зачем?
Go to the top of the page
 
+Quote Post
Tanya
сообщение Apr 1 2011, 11:08
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Тема перемещена по просьбе ТС.
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Apr 1 2011, 11:45
Сообщение #4


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Цитата(ViKo @ Apr 1 2011, 13:46) *
То есть вопрос - отбрасывать ли два младших разряда, или оставить?
Вам же надо 12 разрядов. Вот их и оставьте. А поделить на 16 - значит выбросить все 4 младших. Зачем?

Да, по идее так и должно быть, только будет ли простое сложение достаточной фильтрацией чтобы повысить разрядность?

И вот собственно что в тексте не понял: 
Цитата
Adding these extra samples and right-shifting the result by a factor n,
yields a result with resolution increased by n bits.
 

Как так, делаем правый cдвиг на n бит (деление на 2^n) и получаем сигнал с бОльшим разрешением. Разрешение насколько я понимаю это величина LSB? Если сложить 4 выборки и поделить на 4 получим простое усреднение, а LSB-то останется таким же.

И вот еще цитата: 
Цитата
Normal averaging will only even out signal fluctuations, while Decimation will increase the resolution.
 

Опять не понятно. Усреднение убирает флуктуации. Это понятно, но как прореживание увеличивает разрешение?! Или это слово resolution можно вставлять где угодно, как в русское слово из 3х букв?  biggrin.gif
Go to the top of the page
 
+Quote Post
hobgoblin
сообщение Apr 1 2011, 13:32
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 202
Регистрация: 2-10-06
Из: Петербург
Пользователь №: 20 881



Цитата(Alexashka @ Apr 1 2011, 15:45) *
Да, по идее так и должно быть, только будет ли простое сложение достаточной фильтрацией чтобы повысить разрядность?

Обычно, по крайней мере в сигма-дельта АЦП, по отдельности такое усреднение не используют, а сначала понижают в несколько раз путем усреднения (или CIC-фильтром), а потом ставят децимирующий FIR фильтр. Делается это по двум причинам. Во первых АЧХ будет иметь завал и единичный коэффициент пропускания только на DC. Во вторых вдали от DC будет засчет наложения попадать внеполосный шум. Представляете себе АЧХ moving average фильтра? Подумайте что с ним будет при понижении частоты отсчетов на выходе в N раз.

Цитата
И вот собственно что в тексте не понял:  

Как так, делаем правый cдвиг на n бит (деление на 2^n) и получаем сигнал с бОльшим разрешением. Разрешение насколько я понимаю это величина LSB? Если сложить 4 выборки и поделить на 4 получим простое усреднение, а LSB-то останется таким же.



На мой взгляд, понятно написано
Цитата
As seen from Equation 3-1, increasing the resolution from
10-bits to 12-bits requires the summation of 16 10-bit values. A sum of 16 10-bit
values generates a 14-bit result where the last two bits are not expected to hold
valuable information. To get ‘back’ to 12-bit it is necessary to scale the result.

Вы суммируете 16 чисел, то есть грубо говоря умножаете на шестнадцать (сигнал медленно меняется в пределах окна суммирования), а сдвигаете на два бита, то есть делите на 4. Получаете два дополнительных бита разрешения.

Цитата
Опять не понятно. Усреднение убирает флуктуации. Это понятно, но как прореживание увеличивает разрешение?! Или это слово resolution можно вставлять где угодно, как в русское слово из 3х букв?  biggrin.gif

В английской технической литературе используют термин decimation по разному, где-то под этим подразумевается простое прореживание, а где-то низкочастотная фильтрация плюс прореживание по выходу. Второй вариант более правильный, и именно он может дать повышение разрешения.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 1 2011, 13:38
Сообщение #6


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

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



Цитата(Alexashka @ Apr 1 2011, 14:45) *
Да, по идее так и должно быть, только будет ли простое сложение достаточной фильтрацией чтобы повысить разрядность?

На мой взгляд - это будет самое эффективное решение. Когда вес всех участвующих выборок (16 штук) одинаковый.
По цитатам - не понимаю. Нет возможности вникать. Не обращайте внимания.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Apr 1 2011, 15:27
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(Alexashka @ Apr 1 2011, 18:45) *
Разрешение насколько я понимаю это величина LSB? Если сложить 4 выборки и поделить на 4 получим простое усреднение, а LSB-то останется таким же.

разрешение характеризует дисперсию шума квантования.


шум квантования в первом приближении белый. делаете усреднение по N отсчетам - пропорционально уменьшаете полосу => амплитуду шума (дисперсию).

www.analog.com/static/imported-files/tutorials/MT-003.pdf
Go to the top of the page
 
+Quote Post
sup-sup
сообщение Apr 1 2011, 18:57
Сообщение #8


Знающий
****

Группа: Участник
Сообщений: 674
Регистрация: 26-08-05
Пользователь №: 7 997



Цитата(Alexashka @ Apr 1 2011, 13:15) *
Всем добрый день!
Встала такая задача: у имеющегося 10-битного АЦП нужно повысить эффективную разрядность до 12 бит. ..

Делал что-то подобное с 12-битным ADS788. Нужна была полоса до 100 кГц, а частоту сэмплирования можно было выбрать до 2 МГц (при питании 3.3В). В первую очередь подыскал АЦП, чтобы SFDR (Spurious free dynamic range) (кроме подходящей цены, скорости, и т.д..) был бы побольше, чем как для 12 бит. У ADS788 он 86 дБ как раз на 100 кГц, что соответствует примерно 14 разрядам. Сделал пробные оцифровки с частотой примерно 1500 ksps, посмотрел сигнал и сделал по нему спектр и спектрограмму (много раз с разными настройками). Действительно, получил нижний уровень не хуже -90 дБ относительно полной шкалы. Дальше было все понятно - делать FIR фильтр, децимацию. Кроме того, что внутренние шумы оказались меньше одного шага квантования, что приводило к тому, что при оцифровке сигнала, меньшего чем шаг квантования, АЦП выдавал один и тот же код длительное время. Естественно, это приводило к тому, что фильтровать на некоторых существенных отрезках было нечего. Выкрутился тем, что вне полосы подал тон (хотел шум, но простого меандра хватило) с уровнем выше шага квантования и тогда действительно был получен уровень -90 дБ.
Выводы сделал такие, что 1) - нужен АЦП с 'повышенной внутренней разрядностью', пусть хоть он 8-битный и 2) - возможно, для улучшения диапазона в полосе придется добавить шум вне полосы, который потом отфильтровать (почти как в сигма-дельте).
Для оценки фильтра можно применить тот же FFT анализ, подбирая подходящее окно, которое и является импульсной характеристикой фильтра. Понятно, применение прямоугольного окна (что эквивалентно простому суммированию, допустим, по 16 точек) менее эффективно, чем сглаживающего окна. И надо при выборе окна обязательно знать его частотную характеристику, чтобы в полосе сигнала получить единичную передачу (или какая нужна), а все, что вне полосы задавить на минимально необходимую величину.

Сообщение отредактировал sup-sup - Apr 1 2011, 19:12
Go to the top of the page
 
+Quote Post
rezident
сообщение Apr 1 2011, 19:05
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(sup-sup @ Apr 2 2011, 00:57) *
возможно, для улучшения диапазона в полосе придется добавить шум вне полосы, который потом отфильтровать (почти как в сигма-дельте).
Дык наличие внеполосного шума это как бы обязательное условие для такого способа повышения разрядности. Иначе выходит то, что у вас и получалось.
Цитата(sup-sup @ Apr 2 2011, 00:57) *
при оцифровке сигнала, меньшего чем шаг квантования, АЦП выдавал один и тот же код длительное время
и никакого повышения разрядности не происходит.
Go to the top of the page
 
+Quote Post
sup-sup
сообщение Apr 1 2011, 19:19
Сообщение #10


Знающий
****

Группа: Участник
Сообщений: 674
Регистрация: 26-08-05
Пользователь №: 7 997



Цитата(rezident @ Apr 1 2011, 22:05) *
Дык наличие внеполосного шума это как бы обязательное условие для такого способа повышения разрядности. Иначе выходит то, что у вас и получалось.
и никакого повышения разрядности не происходит.

Ну да, обязательное. Но этот шум может быть и естественным - зачем тогда стараться делать искусственный. В тестовой системе у меня был импульсный источник питания, так его хватало. Но потом его не стало и эффект вылез.

Сообщение отредактировал sup-sup - Apr 1 2011, 19:21
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 2 2011, 10:16
Сообщение #11


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

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



Цитата(sup-sup @ Apr 1 2011, 21:57) *
Понятно, применение прямоугольного окна (что эквивалентно простому суммированию, допустим, по 16 точек) менее эффективно, чем сглаживающего окна.

А почему? Где бы увидеть математическое доказательство?
Одно дело - обрезать полосу сигнала, а другое - понизить его шум. Или нет?
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Apr 2 2011, 13:36
Сообщение #12


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Цитата(hobgoblin @ Apr 1 2011, 17:32) *
Обычно, по крайней мере в сигма-дельта АЦП, по отдельности такое усреднение не используют, а сначала понижают в несколько раз путем усреднения (или CIC-фильтром), а потом ставят децимирующий FIR фильтр. Делается это по двум причинам. Во первых АЧХ будет иметь завал и единичный коэффициент пропускания только на DC. Во вторых вдали от DC будет засчет наложения попадать внеполосный шум. Представляете себе АЧХ moving average фильтра? Подумайте что с ним будет при понижении частоты отсчетов на выходе в N раз.

На мой взгляд, понятно написано
Вы суммируете 16 чисел, то есть грубо говоря умножаете на шестнадцать (сигнал медленно меняется в пределах окна суммирования), а сдвигаете на два бита, то есть делите на 4. Получаете два дополнительных бита разрешения.

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

Я понял, т.е перед оцифровкой тогда мне нужно ограничить спектр до половинной частоты, с которой потом я буду брать отсчеты с выхода сумматора. Скажем я делаю оцифровку 8кГц, потом суммирую группы по 16 отсчетов, т.е на выходе получаю 500Гц. Тогда мне нужно ограничить спектр сигнала на входе АЦП до 250Гц?

Да теперь все стало ясно, спасибо.sm.gif Накапливаем дополнительно 4 бита и 2 отбрасываем т.к они содержат одни шумы.
Go to the top of the page
 
+Quote Post
sup-sup
сообщение Apr 2 2011, 13:46
Сообщение #13


Знающий
****

Группа: Участник
Сообщений: 674
Регистрация: 26-08-05
Пользователь №: 7 997



Цитата(ViKo @ Apr 2 2011, 13:16) *
А почему? Где бы увидеть математическое доказательство?
Одно дело - обрезать полосу сигнала, а другое - понизить его шум. Или нет?

К сожалению, с математикой трудновато. На пальцах как то понятно, что отфильтровать перед децимацией нужно все, что потом гармошкой сложится в рабочую полосу и не повысит существенно там шум. Так как прямоугольное окно дает sin(x)/x АЧХ, ясно,что это хуже того, что можно получить более оптимальным КИХом. Но может и хватить. Наверное (точно), это (выбор фильтра) зависит от наличия дополнительных внеполосных помех (кроме шума квантования). Все, что лежит выше частоты Найквиста (после децимации) должно быть отфильтровано (до децимации), да так, чтобы не было следов ни шумов квантования, ни любых возможных помех (в пределах заданного себе же порога). Если для этого хватает прямоугольного окна в конкретном случае, то и нормально. Можно прикинуть на пальцах, а можно просимулить в Матлабе сколько надо дБ (20 или 60).

Сообщение отредактировал sup-sup - Apr 2 2011, 13:55
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Apr 2 2011, 14:15
Сообщение #14


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Цитата(sup-sup @ Apr 1 2011, 22:57) *
Делал что-то подобное с 12-битным ADS788. Нужна была полоса до 100 кГц, а частоту сэмплирования можно было выбрать до 2 МГц (при питании 3.3В). В первую очередь подыскал АЦП, чтобы SFDR (Spurious free dynamic range) (кроме подходящей цены, скорости, и т.д..) был бы побольше, чем как для 12 бит. У ADS788 он 86 дБ как раз на 100 кГц, что соответствует примерно 14 разрядам. Сделал пробные оцифровки с частотой примерно 1500 ksps, посмотрел сигнал и сделал по нему спектр и спектрограмму (много раз с разными настройками). Действительно, получил нижний уровень не хуже -90 дБ относительно полной шкалы. Дальше было все понятно - делать FIR фильтр, децимацию. Кроме того, что внутренние шумы оказались меньше одного шага квантования, что приводило к тому, что при оцифровке сигнала, меньшего чем шаг квантования, АЦП выдавал один и тот же код длительное время. Естественно, это приводило к тому, что фильтровать на некоторых существенных отрезках было нечего. Выкрутился тем, что вне полосы подал тон (хотел шум, но простого меандра хватило) с уровнем выше шага квантования и тогда действительно был получен уровень -90 дБ.
Выводы сделал такие, что 1) - нужен АЦП с 'повышенной внутренней разрядностью', пусть хоть он 8-битный и 2) - возможно, для улучшения диапазона в полосе придется добавить шум вне полосы, который потом отфильтровать (почти как в сигма-дельте).
Для оценки фильтра можно применить тот же FFT анализ, подбирая подходящее окно, которое и является импульсной характеристикой фильтра. Понятно, применение прямоугольного окна (что эквивалентно простому суммированию, допустим, по 16 точек) менее эффективно, чем сглаживающего окна. И надо при выборе окна обязательно знать его частотную характеристику, чтобы в полосе сигнала получить единичную передачу (или какая нужна), а все, что вне полосы задавить на минимально необходимую величину.

Возникли вопросы. Спуры это палки которые постоянно сидят в спектре? Всмысле никакая фильтрация их уже не уберет если они попадают в полосу частот? У меня спектр чистенький до -120дб ровная полоска.
Чтобы оценить "внутреннюю разрядность"... я так понял можно делая FFT на длительной реализации? Чтобы FFT работало как избирательный фильтр убирающий шумы квантования. И тогда спуры будет видно?
Цитата
Для оценки фильтра можно применить тот же FFT анализ, подбирая подходящее окно, которое и является импульсной характеристикой фильтра. Понятно, применение прямоугольного окна (что эквивалентно простому суммированию, допустим, по 16 точек) менее эффективно, чем сглаживающего окна.

Не понял. Окно (взвешивающая функция) нужно чтобы минимизировать артефакты FFT преобразования. Т.е просто убирает сигнал вначале и в конце реализации. Разве оно работает как НЧ фильтр? Вы предлогаете делать свертку функции окна с сигналом? Зачем?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 2 2011, 14:22
Сообщение #15


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

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



Цитата(sup-sup @ Apr 2 2011, 16:46) *
Так как прямоугольное окно дает sin(x)/x АЧХ, ясно,что это хуже того, что можно получить более оптимальным КИХом.

В том-то и дело, что любое окно в фильтре КИХ служит для уменьшения пульсаций АЧХ за пределами полосы пропускания (боковых лепестков) путем расширения основного, расширения полосы пропускания. Вот я и сомневаюсь, что через такую АЧХ не пролезет больше шума.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 1st July 2025 - 11:44
Рейтинг@Mail.ru


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