|
|
  |
Передискретизация и увеличение разрядности АЦП, вопрос по реализации |
|
|
|
Apr 1 2011, 11:45
|

Практикующий маг
     
Группа: Свой
Сообщений: 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х букв?
|
|
|
|
|
Apr 1 2011, 13:32
|

Местный
  
Группа: Свой
Сообщений: 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х букв?  В английской технической литературе используют термин decimation по разному, где-то под этим подразумевается простое прореживание, а где-то низкочастотная фильтрация плюс прореживание по выходу. Второй вариант более правильный, и именно он может дать повышение разрешения.
|
|
|
|
|
Apr 1 2011, 18:57
|
Знающий
   
Группа: Участник
Сообщений: 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
|
|
|
|
|
Apr 1 2011, 19:05
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(sup-sup @ Apr 2 2011, 00:57)  возможно, для улучшения диапазона в полосе придется добавить шум вне полосы, который потом отфильтровать (почти как в сигма-дельте). Дык наличие внеполосного шума это как бы обязательное условие для такого способа повышения разрядности. Иначе выходит то, что у вас и получалось. Цитата(sup-sup @ Apr 2 2011, 00:57)  при оцифровке сигнала, меньшего чем шаг квантования, АЦП выдавал один и тот же код длительное время и никакого повышения разрядности не происходит.
|
|
|
|
|
Apr 2 2011, 13:36
|

Практикующий маг
     
Группа: Свой
Сообщений: 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Гц? Да теперь все стало ясно, спасибо.  Накапливаем дополнительно 4 бита и 2 отбрасываем т.к они содержат одни шумы.
|
|
|
|
|
Apr 2 2011, 13:46
|
Знающий
   
Группа: Участник
Сообщений: 674
Регистрация: 26-08-05
Пользователь №: 7 997

|
Цитата(ViKo @ Apr 2 2011, 13:16)  А почему? Где бы увидеть математическое доказательство? Одно дело - обрезать полосу сигнала, а другое - понизить его шум. Или нет? К сожалению, с математикой трудновато. На пальцах как то понятно, что отфильтровать перед децимацией нужно все, что потом гармошкой сложится в рабочую полосу и не повысит существенно там шум. Так как прямоугольное окно дает sin(x)/x АЧХ, ясно,что это хуже того, что можно получить более оптимальным КИХом. Но может и хватить. Наверное (точно), это (выбор фильтра) зависит от наличия дополнительных внеполосных помех (кроме шума квантования). Все, что лежит выше частоты Найквиста (после децимации) должно быть отфильтровано (до децимации), да так, чтобы не было следов ни шумов квантования, ни любых возможных помех (в пределах заданного себе же порога). Если для этого хватает прямоугольного окна в конкретном случае, то и нормально. Можно прикинуть на пальцах, а можно просимулить в Матлабе сколько надо дБ (20 или 60).
Сообщение отредактировал sup-sup - Apr 2 2011, 13:55
|
|
|
|
|
Apr 2 2011, 14:15
|

Практикующий маг
     
Группа: Свой
Сообщений: 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 преобразования. Т.е просто убирает сигнал вначале и в конце реализации. Разве оно работает как НЧ фильтр? Вы предлогаете делать свертку функции окна с сигналом? Зачем?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|