Перейти к содержанию
    

Передискретизация и увеличение разрядности АЦП

Возникли вопросы. Спуры это палки которые постоянно сидят в спектре? Всмысле никакая фильтрация их уже не уберет если они попадают в полосу частот? У меня спектр чистенький до -120дб ровная полоска.

Чтобы оценить "внутреннюю разрядность"... я так понял можно делая FFT на длительной реализации? Чтобы FFT работало как избирательный фильтр убирающий шумы квантования. И тогда спуры будет видно?

 

Не понял. Окно (взвешивающая функция) нужно чтобы минимизировать артефакты FFT преобразования. Т.е просто убирает сигнал вначале и в конце реализации. Разве оно работает как НЧ фильтр? Вы предлогаете делать свертку функции окна с сигналом? Зачем?

 

Не вижу причины, по которой результат должен быть хуже, чем от FFT. Если в нужной нам полосе получается 120 дБ, то его же (120 дБ) можно получить и методом 'фильтрация - децимация'. То есть, дополнительных разрядов получается значительно больше, чем 2. Если линейность АЦП 120 дБ обеспечивает. Кстати, в сигма дельте результат также зависит от порядка модулятора.

 

Ну да, для нулевой частоты FFT как раз ФНЧ. Свертка делается между сигналом и окном. Для других частот уже получается (от перестановки результат ведь не меняется) свертка сигнала с косинусным и синусным ядром полосового фильтра. Только, действительно, это я не в тему, так как фильтр будет другой, для всей полосы. Но длина фильтра будет примерно как у понравившегося режима FFT

 

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

Не вижу противоречия. Фильтр-то один. Просто ядро у одного упрощенное и требует меньше ресурса. А у другого позволяет получить подходящую характеристику. То есть, в общем случае применяется FIR. А прямоугольное окно - это один из его вариантов (вырождений).

Изменено пользователем sup-sup

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не вижу противоречия. Фильтр-то один. Просто ядро у одного упрощенное и требует меньше ресурса. А у другого позволяет получить подходящую характеристику. То есть, в общем случае применяется FIR. А прямоугольное окно - это один из его вариантов (вырождений).

В том и вопрос - какое окно самое подходящее для максимального подавления шума за пределами полосы сигнала. Прямоугольное или ...? Так как у нас оверсэмплинг, то понятно, что лишнюю полосу можно и нужно отрезать. Как ее отрезать, чтобы пропустить сигнал по-максимуму, а шум по минимуму? У прямоугольного окна первый минимум на АЧХ на частоте fs/N, а у всех остальных окон на более высокой частоте. Зато после все непрямоугольные окна давят намного лучше.

Без расчета не определить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В том и вопрос - какое окно самое подходящее для максимального подавления шума за пределами полосы сигнала. Прямоугольное или ...? Так как у нас оверсэмплинг, то понятно, что лишнюю полосу можно и нужно отрезать. Как ее отрезать, чтобы пропустить сигнал по-максимуму, а шум по минимуму? У прямоугольного окна первый минимум на АЧХ на частоте fs/N, а у всех остальных окон на более высокой частоте. Зато после все непрямоугольные окна давят намного лучше.

Без расчета не определить.

Если взять крайности, то прямоугольная АЧХ лучше всего подходит для подавления внеполосных помех любого происхождения перед децимацией из-за максимального использования рабочей полосы частот. Допустим, частота Fs/2=100kHz. Если фильтр имеет пропускание до 99 кГц, а нужное затухание от 101 кГц, то это очень хорошо, но фильтр получится очень длинный (в 'идеале', бесконечная ИХ sin(x)/x) и нереализуемый.

Другая крайность - прямоугольная ИХ, что дает вид АЧХ sin(x)/x (неравномерность в полосе, широкую переходную полосу, пульсирующее затухание вне полосы).

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

Если опять вернуться к FFT, то его частотное разрешение обратно пропорционально размеру окна FFT, что можно применить для первоначальной оценке размера фильтра.

Изменено пользователем sup-sup

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Дык вроде на окно то сигнал умножается . Вот к примеру я выбрал окно Хэннинга...или нет, чтото я запутался :smile3046:

 

Да и еще такой момент, КИХ делать не хотелось бы, слишком затратно. БИХ лучше :) думаю чтонибудь эллиптическое 2го порядка мнебы хватило. Квадратное окно...или усреднитель прельщает минимумом вычислительных затрат.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дык вроде на окно то сигнал умножается . Вот к примеру я выбрал окно Хэннинга...или нет, чтото я запутался :smile3046:

 

Да и еще такой момент, КИХ делать не хотелось бы, слишком затратно. БИХ лучше :) думаю чтонибудь эллиптическое 2го порядка мнебы хватило. Квадратное окно...или усреднитель прельщает минимумом вычислительных затрат.

 

Я там неточно про окно. Окно требуемого фильтра не будет совпадать с окном FFT.

В оконном FFT сигнал умножается на окно, затем делается FFT. Но FFT это группа операций свертки сигнала (перемноженного уже на окно) с синусом и косинусом. На нулевой частоте получается ФНЧ, а на всех остальных полосовые фильтры эквивалентные по АЧХ с ФНЧ. Если мы сделаем фрагмент ДПФ только для одной частоты, то получим FIR. Разница только в том, что в FFT умножение сигнала на окно (с целью экономии) заранее делается, а в фильтрах окно умножается на синус (косинус) заранее (тоже для экономии) и результат является ядром (ИХ) фильтра, который потом много раз используется. Результат один и тот же.

КИХ (чем БИХ) лучше тем, что он по своему построению увеличивает разрядность тем больше, чем он длиннее. А БИХ, он накапливает ошибку. Кроме этого, нелинейная фазовая характеристика, что испортит сигнал на высоких частотах.

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

Изменено пользователем sup-sup

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но в статье предлогается брать сумму по группам из 16 отсчетов. Внутренний голос подсказывает, что при этом произойдет увеличение шумов в корень из 16 раз, т.е в 4 раза (если считать в LSB). Однако вес одного LSB теперь будет в 16 раз меньше (входной диапазон напряжений АЦП остался тем же, а диапазон "кодов" на выходе сумматора вырос в 16 раз). Т.е если перевести полученный с сумматора код в "вольты", то эффективный шум вроде как уменьшается в 4 раза. Так ли это и какой смысл после этого делать деление на 16 -сигнал станет чище конечно, но шумы квантования при этом возрастают?  :laughing:

если принять что за время децимации - 16 отчетов сигнал не изменяется, а шум изменяется, то получается вы считаете мат. ожидание случайной величины:

МОсш= сумма значенией СВ / число значений,

где МОсш - это значение вашего сигнала с шумом, МОс- мат. ожидание сигнала- те значение самого сигнала

но МО нормального шума равно нулю, а МО суммы сигнала и шума равно МОс+МОш

МОсш= МОс+МОш= МОс+0. (если число значений бесконечно, если их не бесконечно, то МОш "примерно 0")

вот и выходит простое сложение уменьшает шумы в некотором роде.

 

если вам не важны искажения фазы и разрядность позволяет создать БИХ фильтр с небольшими шумами, то можно применять- я так делал, работало.

если важна фаза- то придется КИХ, кстати суммирование и деление на число отчетов- тоже КИХ фильтр.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если принять что за время децимации - 16 отчетов сигнал не изменяется, а шум изменяется, то получается вы считаете мат. ожидание случайной величины:

МОсш= сумма значенией СВ / число значений,

где МОсш - это значение вашего сигнала с шумом, МОс- мат. ожидание сигнала- те значение самого сигнала

но МО нормального шума равно нулю, а МО суммы сигнала и шума равно МОс+МОш

МОсш= МОс+МОш= МОс+0. (если число значений бесконечно, если их не бесконечно, то МОш "примерно 0")

вот и выходит простое сложение уменьшает шумы в некотором роде.

 

Вопрос был не в этом :) а в том что при делении на кол-во слагаемых мы уменьшаем число рабочих бит и таким образом уменьшаем (ограниченное разрядностью) отношение сигнал/шум. Но впринципе с этим уже разъяснил ув.hobgoblin. Т.е делить надо не на число слагаемых, а на кол-во бит, на которое увеличивается эффективное разрешение сигнал/шум, в моем случае на 2 бита (в 4 раза).

 

если вам не важны искажения фазы и разрядность позволяет создать БИХ фильтр с небольшими шумами, то можно применять- я так делал, работало.

 

 

если важна фаза- то придется КИХ, кстати суммирование и деление на число отчетов- тоже КИХ фильтр.

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

Вот это как раз вопрос...в сигнале желательно не потерять амплитуду импульсов, я так понимаю это может произойти если применить фильтр не с линейной ФЧХ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот это как раз вопрос...в сигнале желательно не потерять амплитуду импульсов, я так понимаю это может произойти если применить фильтр не с линейной ФЧХ?

применяйте простейший CIC с прореживанием N , если T импульса будет более чем в 2 раза больше чем N/Fs то в выходных отсчетах всегда будет появляться неискаженная амплитуда.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

Вот это как раз вопрос...в сигнале желательно не потерять амплитуду импульсов, я так понимаю это может произойти если применить фильтр не с линейной ФЧХ?

Смотря какая длительность импульса и какая фазовая характеристика. В случае с БИХ тоже есть вариант получить хорошую фазовую характеристику. Кое-какую информацию можно почерпнуть здесь

http://www.dspguide.com/ch19/4.htm

 

Вариант с усреднением будет самым простым, и вероятно для вашей задачи его хватит за глаза. Второй вариант, получше с точки зрения подавления внеполосных шумов, как уже написал тау, это взять CIC фильтр, который тоже просто реализуется. Учтите, что оба варианта дадут непрямоугольную АЧХ в основной полосе после децимации, и может потребоваться применение дополнительного короткого КИХ фильтра (но уже работающего с меньшей частотой отсчетов) для коррекции частотной характеристики. И КИХ с непрямоугольным окном, и БИХ фильтр могут оказаться сложными для реализации (во втором случае из-за возможно потребующегося увеличения разрядности при вычислениях), и не факт, что вам это действительно нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

применяйте простейший CIC с прореживанием N

то есть просто "сложить и поделить", правильно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, правильно.

При этом , если ТС подгадает с длительностью интервала суммирования отсчетов Fs , совместив во времени с ожидаемым "импульсом" , то SNR будет максимально возможным для такого случая и белого шума.

Изменено пользователем тау

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за наводку тау, hobgoblin, не слышал ранее про такие фильтры.

Вот нашел как раз по теме статейку:

http://dsplib.ru/content/cic/cic.html

и читается легко :)

 

применяйте простейший CIC с прореживанием N , если T импульса будет более чем в 2 раза больше чем N/Fs то в выходных отсчетах всегда будет появляться неискаженная амплитуда.

Спасибо, это обнадеживает!)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот нашел как раз по теме статейку:

http://dsplib.ru/content/cic/cic.html

Есть книжка - Ричард Лайонс. Цифровая обработка сигналов. Вот она действительно, легко читается. :) Имеется, где положено. Там есть раздел, посвященный каскадным интеграторам - гребенчатым фильтрам. И все остальные вопросы ЦОС тоже описаны.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Промоделировал я "простейший CIC с прореживанием N". Получилось то что и ожидалось, однако с амплитудами не очень хорошо. Завал на частотах близких к fs/2 уже приличный (около 0.64), однако некоторые импульсы обрезаются сильней чем 0.64. Это понятно связано с тем что выборка не попадает в точку максимальной амплитуды. Вопрос, это впринципе невозможно вылечить, т.е выбрав такую частоту дискретов, я должен смириться с тем, что некоторые импульсы будут измерены с искажениями? 

 

На первом рисунке показаны результаты с испытательным сигналом в виде линейно-частотно-модулированного сигнала (f меняется от 0 до 250Гц, т.е до fs/2). Виден завал АЧХ после прореживающего CIC.

 

На втором рисунке -результаты обработки периодического Sinc паттерна.

 

post-4576-1301998398_thumb.png

 

post-4576-1301998406_thumb.png

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

однако некоторые импульсы обрезаются сильней чем 0.64. Это понятно связано с тем что выборка не попадает в точку максимальной амплитуды. Вопрос, это впринципе невозможно вылечить, т.е выбрав такую частоту дискретов, я должен смириться с тем, что некоторые импульсы будут измерены с искажениями? 

завал АЧХ конечно будет, об этом Вам писали, надо применять корректирующий ких фильтр, а вот там где "выборка не попадает в точку" это не искажения, это "обман зрения".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...