Полная версия этой страницы:
FFT
TigerSHARC
Mar 26 2010, 16:35
экспериментирую с БПФ и реальным сигналом.
Вся математика считается на PC. Принимаю выборку с внешнего АЦП и строю спектр.
Так вот было замечено, что получается погрешность по первой гармонике - очень мала. А потом чем выше гармоника, тем хуже.
причём зависит не только от номера гармоники, но и от амплитуды.
скажем если 10-я гармоника амплитудой 0.5 то погрешность 2%, а если 5, то погрешность уже порядка 10%... почему так может быть?
ещё заметил что погрешность вычисления сильно зависит спектрального состава вцелом.
Я понимаю, что чем выше гармоника - тем выше погрешность вычисления её амплитуды, но, когда я проверяю математику с массивом заполненым искуственно (просто заполняю массив в C вместо того чтобы выборки с АЦП принимать - то у меня погрешность по 40-й гармонике составляет 2.5%.
Чем может быть обусловлена такая разница? Я ждал что на железе будет чуть хуже, а тут несколько порядков!!!
Nukers
Mar 26 2010, 17:27
Схему входных каскадов, соединенных с АЦП в студию и модельку АЦП!
Нужно посмотреть как шумят входные цепи и сам АЦП (это тепловой шум, наводки и.т.д.).
TigerSHARC
Mar 26 2010, 17:40
И как ты посмотришь по схемке как шумят АЦП и погрешность аналоговых цепей?
Схема - секретная разработка (ты же знаешь) ))))
Если бы это были "наводки и т.п." то можно было бы всё поправить просто введя поправку ( тафталогия но так и есть). А тут погрешность растёт нелинейно в зависимости от амплитуды гармоники. Поправки непомогают.
Ну расскажи что это даст и как ты по схеме решил посмотреть шумы входных цепей и АЦП
Для справки АЦП - 16 бит.
Nukers
Mar 26 2010, 18:55
Посмотрю наименование каждого элемента, вносящего существенные искажения (в основном АЦП и ОУ, так же микросхемы питания всех цепей). Все зависит так же от тока, протекающего по элементам. Не хочешь выкладывать, да не особо и надо. Но мой тебе совет смотреть на шумы аналоговой части, что логично.

Вот например
http://www.analog.com/static/imported-file...eets/AD7880.pdf см. стр.7, там спектр выходного шума при "чистой" входной синусоиде. На стр.8 формула, отражающая полное искажение АЦП в зависимости от амплитуды различных гармоник.
Еще про искажения в АЦП
http://www.efo.ru/doc/Silabs/Silabs.pl?2089Про резисторы, например
http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%....80.D0.BE.D0.B2Вообщем и целом вот.
TigerSHARC
Mar 26 2010, 19:26
!!! КТО НИБУДЬ ПРОКОМЕНТИРУЙТЕ ПОСТ ВЫШЕ - МНЕ НЕ ВЕРЯТ!!!
Сань, глупо учитывать все погрешности резисторов конденцаторов - они мизерны.
Ладно, чтобы у Nukers не возникало повода для опасений отвечаю:
шумы резисторов ))) и аналоговой части в целом учёл. Они непринибрежимо малы.
Что делать?
А если серьёзно, то все шумы аналоговой части - постоянная во времени вещь - вывод можно их учесть програмно ( ну разве нет?)
Так вот тут суть в том что зависимость погрешности сама по себе анормальна (как я думаю). Погрешность ( причём в процентах) зависит не только от частоты гармоники (что логично) но и от амплитуды.
AsJohnAs
Mar 26 2010, 19:46
Ну может дело того в частоте семплирования..
Если она не стабильна, то в итоге это и будет разбегание гармоник в FFT.
TigerSHARC
Mar 26 2010, 20:32
Вот это уже более вероатно.
Можно рассмотреть как вариант.
Как может получится такое? как может получится что она нестабильна? смотрю на осциллографе - на ацп импульсы поступают как надо...
sup-sup
Mar 26 2010, 20:42
Цитата(TigerSHARC @ Mar 26 2010, 19:35)

экспериментирую с БПФ и реальным сигналом.
Вся математика считается на PC. Принимаю выборку с внешнего АЦП и строю спектр.
Так вот было замечено, что получается погрешность по первой гармонике - очень мала. А потом чем выше гармоника, тем хуже.
причём зависит не только от номера гармоники, но и от амплитуды.
скажем если 10-я гармоника амплитудой 0.5 то погрешность 2%, а если 5, то погрешность уже порядка 10%... почему так может быть?
ещё заметил что погрешность вычисления сильно зависит спектрального состава вцелом.
Я понимаю, что чем выше гармоника - тем выше погрешность вычисления её амплитуды, но, когда я проверяю математику с массивом заполненым искуственно (просто заполняю массив в C вместо того чтобы выборки с АЦП принимать - то у меня погрешность по 40-й гармонике составляет 2.5%.
Чем может быть обусловлена такая разница? Я ждал что на железе будет чуть хуже, а тут несколько порядков!!!
При возникновении сомнений (а они должны возникать непременно) делаем измерения, как минимум двумя способами. Если у Вас есть свой АЦП, допустим 16-битный, то записываем кроме как него еще и на цифровой осциллограф, хотя бы и на 8-битный, но с высокой частотой сэмплирования, чем отыграем несколько разрядов. Это позволит избавиться от подозрения на влияние частоты сэмплирования. Просмотр спектра можно выполнить с помощью SpectraPlus (SpectraLab) (есть импорт из текстового файла).
TigerSHARC
Mar 26 2010, 20:52
Да имеется в наличии Тектроникс какой-то... надо посмореть... там и спетр сразу можно построить.
Если я правильно вас понял нужно задать высокую частоту семплирования на АЦП и записать сигнал. Затем просто посмотреть на осциллографе спектр?
Но осциллограф выдаёт довольно большую погрешность в спектре сам по себе(или я не прав?) как тогда отследить изменение в погрешности в несколько процентов скажем по 10-й гармонике.
sup-sup
Mar 26 2010, 21:16
Цитата(TigerSHARC @ Mar 27 2010, 00:52)

Да имеется в наличии Тектроникс какой-то... надо посмореть... там и спетр сразу можно построить.
Если я правильно вас понял нужно задать высокую частоту семплирования на АЦП и записать сигнал. Затем просто посмотреть на осциллографе спектр?
Но осциллограф выдаёт довольно большую погрешность в спектре сам по себе(или я не прав?) как тогда отследить изменение в погрешности в несколько процентов скажем по 10-й гармонике.
Применяю осциллограф Rigol, пишу сигнал на флэшку (512 ks) , затем полученный файл анализирую в программе SpectraPlus (можно скачать с radioscanner.ru). SpectraPlus берет формат wav, но делает импорт из текстового формата, можно приспособиться. Инструмент анализа хороший, есть выбор размера FFT, разные окна,.. Может делать фильтрацию, децимацию, экспорт в wav.
Непосредственно на осциллографе получается плохо.
Nukers
Mar 27 2010, 05:35
Я говорил, что надо искажения и шумы АЦП в основном оценивать (резисторы и конденсаторы, только после детальной оценки искажений, вносимых АЦП). Вообщем, тебе уже намекнули, так что работай.
TigerSHARC
Mar 27 2010, 05:49
???? пока что мне только про нестабильность частоты дискретизации сказали. А это никакие не шумы АЦП... зачем ты к этим резисторам привязался?
AsJohnAs
Mar 27 2010, 12:21
В принципе если посчитать как плывут частоты в спектре, то можно примерно понять на сколько плывет частота дискретизации. И посмотрев на расчет понять возможно ли такое. Может там будет такая цифра которая покажет что это идея не состоятельна.
Тогда может действительно надо смотреть на всякие резисторы, конденсаторы.... ведь АЦП наверно сигма-дельта и может ему какие важные правельные кондюки нужно внешние для его адекватной работы...
TigerSHARC
Mar 27 2010, 13:02
Вопрос решён. По-сути в моём вопросе и содержался ответ. Всё делао в самой математике было. Мерял немного неправльно.
Всем спасибо.
Любителям считать шумы резисторов тоже.
Pechka
May 11 2010, 15:19
Нестабильность частоты удобнее смотреть спектроанализаторами без всяких осциллографов. Однако на моей практике ни разу не видел чтобы из-за нестабильности частоты дискретизации были такие проблемы. Обычно из-за частоты дискретизации увеличивается "юбка" возле основной частоты и появляются боковые палки (при подаче чистого синуса на вход). "юбка" и боковые палки будут двигаться вместе с сигналом по спектру. Их амплитуда будет зависеть от амплитуды сигнала. При этом если палки движутся быстрее, чем основной сигнал (в k раз), то эта палка вылазит после k-го переотрожения в результате сэмплирования.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.