|
|
  |
уменьшение шумов при АЦП, MSP430 ADC12 |
|
|
|
Mar 1 2009, 21:21
|

тут может быть ваша реклама
    
Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280

|
Приветствую. Трудно сказать в этот ли раздел пишу, может про МСП надо... но тем не менее. При обработке измерений, полученных с АЦП, хотелось бы легким способом добиться снижения шумов. Мне представляется возможным сделать это путем осреднения нескольких результатов, полученных примерно в один момент времени. То есть интересующая меня частота дискретизация находится в пределах ~500 Гц, но каждые 2 мс я делаю преобразование не 1 раз, а скажем 10 раз подряд с частотой >> 500 Гц, чтоб выборки относились к, условно, одному моменту времени. Но посматривая документацию по встроенному в МСП430 1611 АЦП я увидел, что там есть возможность (стр 17-7 UserGuide http://www.ti.com/litv/pdf/slau049f ) управлять длительностью выборки (sample time). Там даны минимальные времена, необходимые, чтоб конвертация была валидной, но ничего не сказано про влияние увеличения этого времени. Правильно ли я понимаю, что увеличение этого времени приведет к результатам эквивалентным описанным выше, то есть к осреднению нормального шума в сконвертированном сигнале. И вместо 10 конвертаций каждые 2 мс я могу сделать одно "длинную".
|
|
|
|
|
Mar 1 2009, 22:07
|
Знающий
   
Группа: Участник
Сообщений: 609
Регистрация: 3-03-07
Из: San Jose
Пользователь №: 25 837

|
Цитата(jorikdima @ Mar 2 2009, 00:21)  Правильно ли я понимаю, что увеличение этого времени приведет к результатам эквивалентным описанным выше, то есть к осреднению нормального шума в сконвертированном сигнале. И вместо 10 конвертаций каждые 2 мс я могу сделать одно "длинную". Нет, не правильно, увеличение времени выборки уменьшит только ошибку времени установления УВХ, а на шумы не повлияет. Но если Вы хотите усреднением увеличить разрешение АЦП, а не уменьшить внешние шумы, то и время выборки надо увеличивать тоже, на 2-3 тау для усреднения по 10 отсчетам.
--------------------
|
|
|
|
|
Mar 2 2009, 07:02
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(jorikdima @ Mar 2 2009, 09:50)  Есть такой, но это поканально. То есть в регистры ADC12MEM0 ... ADC12MEM7 запишуться данные с 8 разных входов АЦП. В зависимости от конфигурации АЦП можно и с одного канала снимать, а в конце выставлять прерывание Код ADC12CTL0 = ADC12ON+MSC+SHT0_15+SHT1_15; // On, автомат. преобр,1024цикла,вкл.опор.напр.(1,5В)-???! ADC12CTL1 = CONSEQ_1+ADC12SSEL_0+ADC12DIV_7+CSTARTADD_0+SHS_0+SHP; ADC12MEM0 = 0;ADC12MEM1 = 0;ADC12MEM2 = 0;ADC12MEM3 = 0; ADC12MEM4 = 0;ADC12MEM5 = 0;ADC12MEM6 = 0;ADC12MEM7 = 0; switch(chanel) { case ChanTemp: ADC12CTL0 |= REFON; Delay(10); ADC12MCTL0 = INCH_6+SREF_1; ADC12MCTL1 = INCH_6+SREF_1; ADC12MCTL2 = INCH_6+SREF_1; ADC12MCTL3 = INCH_6+SREF_1; ADC12MCTL4 = INCH_6+SREF_1; ADC12MCTL5 = INCH_6+SREF_1; ADC12MCTL6 = INCH_6+SREF_1; ADC12MCTL7 = EOS+INCH_6+SREF_1; break; Что-то типа вот так
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|