|
|
  |
FFT, железные эксперименты |
|
|
|
Mar 26 2010, 16:35
|
Знающий
   
Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195

|
экспериментирую с БПФ и реальным сигналом.
Вся математика считается на PC. Принимаю выборку с внешнего АЦП и строю спектр.
Так вот было замечено, что получается погрешность по первой гармонике - очень мала. А потом чем выше гармоника, тем хуже. причём зависит не только от номера гармоники, но и от амплитуды.
скажем если 10-я гармоника амплитудой 0.5 то погрешность 2%, а если 5, то погрешность уже порядка 10%... почему так может быть? ещё заметил что погрешность вычисления сильно зависит спектрального состава вцелом.
Я понимаю, что чем выше гармоника - тем выше погрешность вычисления её амплитуды, но, когда я проверяю математику с массивом заполненым искуственно (просто заполняю массив в C вместо того чтобы выборки с АЦП принимать - то у меня погрешность по 40-й гармонике составляет 2.5%.
Чем может быть обусловлена такая разница? Я ждал что на железе будет чуть хуже, а тут несколько порядков!!!
|
|
|
|
|
Mar 26 2010, 18:55
|

Участник

Группа: Участник
Сообщений: 39
Регистрация: 8-12-09
Из: Новочебоксарск
Пользователь №: 54 124

|
Посмотрю наименование каждого элемента, вносящего существенные искажения (в основном АЦП и ОУ, так же микросхемы питания всех цепей). Все зависит так же от тока, протекающего по элементам. Не хочешь выкладывать, да не особо и надо. Но мой тебе совет смотреть на шумы аналоговой части, что логично.  Вот например 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Вообщем и целом вот.
|
|
|
|
|
Mar 26 2010, 20:42
|
Знающий
   
Группа: Участник
Сообщений: 674
Регистрация: 26-08-05
Пользователь №: 7 997

|
Цитата(TigerSHARC @ Mar 26 2010, 19:35)  экспериментирую с БПФ и реальным сигналом.
Вся математика считается на PC. Принимаю выборку с внешнего АЦП и строю спектр.
Так вот было замечено, что получается погрешность по первой гармонике - очень мала. А потом чем выше гармоника, тем хуже. причём зависит не только от номера гармоники, но и от амплитуды.
скажем если 10-я гармоника амплитудой 0.5 то погрешность 2%, а если 5, то погрешность уже порядка 10%... почему так может быть? ещё заметил что погрешность вычисления сильно зависит спектрального состава вцелом.
Я понимаю, что чем выше гармоника - тем выше погрешность вычисления её амплитуды, но, когда я проверяю математику с массивом заполненым искуственно (просто заполняю массив в C вместо того чтобы выборки с АЦП принимать - то у меня погрешность по 40-й гармонике составляет 2.5%.
Чем может быть обусловлена такая разница? Я ждал что на железе будет чуть хуже, а тут несколько порядков!!! При возникновении сомнений (а они должны возникать непременно) делаем измерения, как минимум двумя способами. Если у Вас есть свой АЦП, допустим 16-битный, то записываем кроме как него еще и на цифровой осциллограф, хотя бы и на 8-битный, но с высокой частотой сэмплирования, чем отыграем несколько разрядов. Это позволит избавиться от подозрения на влияние частоты сэмплирования. Просмотр спектра можно выполнить с помощью SpectraPlus (SpectraLab) (есть импорт из текстового файла).
|
|
|
|
|
Mar 26 2010, 21:16
|
Знающий
   
Группа: Участник
Сообщений: 674
Регистрация: 26-08-05
Пользователь №: 7 997

|
Цитата(TigerSHARC @ Mar 27 2010, 00:52)  Да имеется в наличии Тектроникс какой-то... надо посмореть... там и спетр сразу можно построить.
Если я правильно вас понял нужно задать высокую частоту семплирования на АЦП и записать сигнал. Затем просто посмотреть на осциллографе спектр? Но осциллограф выдаёт довольно большую погрешность в спектре сам по себе(или я не прав?) как тогда отследить изменение в погрешности в несколько процентов скажем по 10-й гармонике. Применяю осциллограф Rigol, пишу сигнал на флэшку (512 ks) , затем полученный файл анализирую в программе SpectraPlus (можно скачать с radioscanner.ru). SpectraPlus берет формат wav, но делает импорт из текстового формата, можно приспособиться. Инструмент анализа хороший, есть выбор размера FFT, разные окна,.. Может делать фильтрацию, децимацию, экспорт в wav. Непосредственно на осциллографе получается плохо.
Сообщение отредактировал sup-sup - Mar 26 2010, 21:18
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|