Збір даних і дискретизація: задачі з покроковими розв’язками

Безкоштовні задачі з теми Збір даних і дискретизація з рисунками, підказками й повними розв’язками. Щоразу нові значення, трьох рівнів: Найквіст, LSB і швидкості даних, аліасинг, розряди й кадри UART, гармоніки, SQNR і проєктування системи.

Безкоштовна задачаЛегка
SD0​D1​D2​D3​D4​D5​D6​D7​Tb​ = ?115200 Bd

Лінія UART працює на швидкості 115200 бод. Знайдіть тривалість Tb одного біта в мкс.

baud = 115200 Bd
µs
Наступна задача →

Що ви тренуєте

  1. ЛегкаНайквіст, LSB і швидкості даних
  2. Середняаліасинг, розряди й кадри UART
  3. Складнагармоніки, SQNR і проєктування системи

Як розв’язувати задачі на тему «Збір даних і дискретизація»

  1. Випишіть, що дано: частоту дискретизації, частоти сигналу, кількість розрядів, вхідний діапазон, швидкість у бодах.
  2. У задачах на дискретизацію порівнюйте кожну частоту з fs/2; вища частота виглядає як fa = |f − k·fs| з найближчим кратним fs.
  3. У задачах на роздільність знайдіть 1 LSB = VFSR/2ᴺ або найменше N, для якого 2ᴺ ≥ діапазон/роздільність.
  4. У задачах на швидкість даних і лінії UART враховуйте все, що передається: канали, відліки за секунду, біти чи цілі байти на відлік, а також стартові, паритетні й стопові біти кожного кадру.

Типові помилки

  • Вважати, що частота вище fs/2 зникає: вона з’являється як аліас усередині смуги.
  • Ділити діапазон на N замість 2ᴺ.
  • Округлювати кількість розрядів униз замість угору.
  • Забувати про стартові й стопові біти: 8N1 передає 10 біт на кожен байт.

Основні формули

Критерій Найквіста
fs > 2·fmax, fN = fs/2
Частота аліасу
fa = |f − k·fs|, k = round(f/fs)
Розмір кроку
1 LSB = VFSR/2ᴺ
Похибка квантування (округлення)
±½ LSB
Код АЦП з відсіканням
D = ⌊Vin/LSB⌋
Кількість розрядів для роздільності r
2ᴺ ≥ span/r
Ідеальне SQNR, синус на повну шкалу
SQNR = 6,02·N + 1,76 dB
Швидкість передавання даних
канали × fs × N біт/с
АЦП з мультиплексуванням
fs = 1/(n·(tc + tset))
UART
Tb = 1/бод; 8N1 = 10 біт на байт; байт/с = бод/біт у кадрі
Дільник швидкості передавання (бод)
baud = fclk/(16·D)

Вивчайте тему «Збір даних і дискретизація» з нуля

Перед цим: Системи числення

1Що таке збір даних

Комп’ютер не може безпосередньо зчитати напругу. Система збору даних перетворює фізичну величину на числа: сенсор створює малу напругу, підсилювач її масштабує, а аналого-цифровий перетворювач (АЦП) вимірює її через рівні проміжки часу й видає двійкове число.

TG∿01N, fs​0101

Якість чисел визначають два вибори. Частота дискретизації fs показує, як часто АЦП вимірює, а кількість розрядів N — наскільки дрібно він ділить свій діапазон напруги. Разом вони визначають і те, скільки даних треба зберігати чи передавати.

Самоперевірка АЦП дискретизує з частотою 2 кГц. Скільки відліків він бере за 0,5 с?
  1. 1000
  2. 2000
  3. 250
  4. 4000

Відповідь: 1000. Кількість відліків = fs·t = 2000·0,5 = 1000. Множення на 2 замість 0,5 дає 4000, а ігнорування часу дає 2000.

2Дискретизація та аліасинг

Щоб зафіксувати синусоїду, потрібно більше ніж два відліки на період. Тож частота дискретизації має бути більшою за подвоєну найвищу частоту сигналу. Половина частоти дискретизації — це частота Найквіста:

fs > 2·fmax fN = fs/2

Частота вище fs/2 не зникає. Її відліки виглядають точно так, як відліки нижчої частоти, аліасу. На рисунку синусоїда 7 Гц (суцільна) дискретизується з частотою 10 Гц, і точки так само добре лягають на синусоїду 3 Гц (штрихова).

tf = 7 Hzfs​ = 10 Hz
fa = |f − k·fs|, k = ціле число, найближче до f/fs

Після дискретизації ніщо не відрізнить аліас від справжнього сигналу. Саме тому аналоговий антиаліасинговий фільтр прибирає все, що вище fs/2, ще перед АЦП.

Самоперевірка Тон 7 кГц дискретизується з частотою 10 кГц без фільтра. На якій частоті він з’явиться?
  1. 17 кГц
  2. 3 кГц
  3. 5 кГц
  4. 7 кГц

Відповідь: 3 кГц. 7 кГц вище за fs/2 = 5 кГц, тому він «згортається»: |7 − 1·10| = 3 кГц. Він не може лишитися на 7 кГц, 17 кГц дає додавання замість віднімання, а 5 кГц — лише частота згортання.

3Роздільність і квантування

N-розрядний АЦП має 2ᴺ вихідних кодів, від 0 до 2ᴺ − 1. Він ділить свій діапазон повної шкали VFSR на 2ᴺ рівних кроків. Один крок називають 1 LSB (молодший значущий розряд):

1 LSB = VFSR/2ᴺ

АЦП з відсіканням видає код ⌊Vin/LSB⌋, тобто ціле число знизу. АЦП із округленням ніколи не відхиляється від істинного значення більш ніж на ½ LSB: це його похибка квантування.

Щоб розрізнити кроки розміром r на деякому діапазоні, потрібне найменше N, для якого 2ᴺ ≥ діапазон/r. Кожен додатковий розряд зменшує LSB удвічі й додає близько 6 дБ до ідеального відношення сигнал/шум квантування:

SQNR = 6,02·N + 1,76 dB
Самоперевірка 10-розрядний АЦП має діапазон від 0 до 5,12 В. Чому дорівнює 1 LSB?
  1. 10 мВ
  2. 2,5 mV
  3. 5 mV
  4. 512 мВ

Відповідь: 5 mV. 210 = 1024, отже 1 LSB = 5,12/1024 = 0,005 В = 5 мВ. Ділення на N = 10 дає 512 мВ, використання 2⁹ дає 10 мВ, а 2,5 мВ — це найбільша похибка АЦП з округленням, півкроку LSB.

4Швидкості даних і послідовні лінії

Кожен канал дає fs відліків за секунду по N біт. Сира швидкість даних дорівнює канали × fs × N. У пам’яті відлік займає цілі байти, тож 12-бітний відлік займає 2 байти.

UART передає кожен байт як кадр: стартовий біт, 8 бітів даних, необов’язковий біт парності та один або два стопові біти. У поширеному форматі 8N1 це 10 біт на байт. Швидкість у бодах — це кількість біт за секунду, тож один біт триває 1/бод.

байтів за секунду = baud/(бітів у кадрі)

Мультиплексор дозволяє одному АЦП по черзі обслуговувати кілька каналів. Якщо одне перетворення (із часом встановлення) триває t, то кожен із n каналів дискретизується з частотою 1/(n·t).

5Розв’язаний приклад

У більшості задач користуйтеся такою послідовністю:

  1. Порівняйте частоту дискретизації з найвищою частотою сигналу.
  2. Знайдіть розмір кроку за діапазоном і кількістю розрядів.
  3. Підрахуйте дані: канали, відліки за секунду, байти на відлік.
  4. Порівняйте з тим, що здатні прийняти лінія чи пам’ять, враховуючи стартові, паритетні та стопові біти.
Розв’язаний приклад

Реєстратор вимірює 4 канали температури 12-розрядним АЦП у діапазоні від 0 до 4,096 В. Сигнали містять частоти до 20 Гц, і кожен канал дискретизується з частотою 100 Гц. Кожен відлік надсилається як 2 байти через UART зі швидкістю 9600 бод, 8N1. Чи достатня частота дискретизації, чому дорівнює 1 LSB і чи впорається лінія?

1

Перевірка за Найквістом

2·fmax = 2·20 = 40 Hz < 100 Hz

Частота дискретизації достатня.

2

Розмір кроку

1 LSB = 4,096/212 = 4,096/4096 = 0,001 V = 1 mV
3

Дані для передавання

4 канали · 100 відліків/s · 2 байти = 800 байтів/s
4

Пропускна здатність лінії

8N1 передає 10 біт на байт.

9600/10 = 960 bytes/s ≥ 800 bytes/s
5

Перевірте відповідь

На лінії це 800·10 = 8000 біт/с, що менше за 9600 бод. Лінія завантажена на 83 %.

Відповідь

Так: 100 Гц більше за подвоєні 20 Гц, 1 LSB = 1 мВ, а лінії потрібно 800 із її 960 байт/с.

6Типові помилки

  • Вважати, що частота вище fs/2 просто втрачається: вона з’являється як аліас усередині смуги.
  • Ділити діапазон на N замість 2ᴺ.
  • Округлювати кількість розрядів униз: 2ᴺ має бути не менше за діапазон/роздільність.
  • Рахувати 8 біт на байт у UART: для 8N1 потрібно 10.
  • Забувати, що 10- чи 12-бітний відлік зберігається в 2 цілих байтах.
Самоперевірка Скільки байт за секунду може передати UART зі швидкістю 9600 бод у форматі 8N1?
  1. 1067
  2. 1200
  3. 9600
  4. 960

Відповідь: 960. Кожен байт потребує 10 біт (старт, 8 даних, стоп): 9600/10 = 960. Ділення на 8 забуває стартовий і стоповий біти, а ділення на 9 забуває один із них.

7Як виглядають екзаменаційні запитання

  • Легкий: Найквіст, LSB і швидкості даних. Ви знаходите мінімальну частоту дискретизації, частоту Найквіста, розмір LSB або похибку квантування, тривалість біта UART або сиру швидкість даних.
  • Середній: аліасинг, розряди й кадри UART. Ви знаходите частоту аліасу, кількість розрядів для заданої роздільності, вихідний код для напруги, пам’ять для запису, швидкість у байтах для формату UART або ідеальне SQNR.
  • Важкий: гармоніки, SQNR і проєктування системи. Ви знаходите, куди потрапляє аліас гармоніки, кількість розрядів для потрібного SQNR, найвищу частоту, яку може зафіксувати АЦП із потоком через UART, швидкість АЦП із мультиплексуванням, похибку швидкості в бодах дільника або температурну роздільність вимірювального ланцюга.

Вивчайте крок за кроком у застосункуВивчайте крок за кроком у застосунку

Розв’язані приклади

Приклад 1Легка
SD0​D1​D2​D3​D4​D5​D6​D7​Tb​ = ?2400 Bd

Лінія UART працює на швидкості 2400 бод. Знайдіть тривалість Tb одного біта в мкс.

baud = 2400 Bd

Знайти: Tb (µs)

Показати підказки
  1. Швидкість у бодах — це кількість біт, переданих за секунду.
  2. Tb = 1/baud.
  3. 1 s = 10⁶ µs.
Показати відповідь і покроковий розв’язок

UART: асинхронна послідовна лінія передає кожен байт як кадр: один стартовий біт (низький), біти даних, необов’язковий біт парності та один або два стопові біти (високі). Швидкість у бодах — це кількість біт за секунду, тож один біт триває Tb = 1/бод, а кадр із n біт — n/бод. Поширений формат 8N1 має 10 біт на байт. Генератор швидкості ділить тактову частоту: бод = fclk/(16·D) із цілим D, тож реальна швидкість трохи відрізняється від цільової; похибка менш ніж приблизно 2 % зазвичай прийнятна.

Час біта

Tb = 1/2400 s = 416,7 µs

Відповідь

Tb = 416,7 µs
Приклад 2Середня
Vin​N = 85 V2ᴺ − 101 LSB2,125 V?

8-розрядний АЦП із вхідним діапазоном від 0 до 5 В відсікає: його вихідний код — ⌊Vin/LSB⌋ при 1 LSB = VFSR/2ᴺ. Знайдіть десятковий вихідний код D для входу 2,125 В.

N = 8VFSR = 5 VVin = 2,125 V

Знайти: D

Показати підказки
  1. Спершу знайдіть розмір одного LSB.
  2. 1 LSB = 5/256 = 19,53 mV.
  3. Поділіть вхід на LSB і залиште цілу частину.
Показати відповідь і покроковий розв’язок

Роздільність АЦП: N-розрядний перетворювач ділить свій діапазон повної шкали VFSR на 2ᴺ кодів, від 0 до 2ᴺ − 1. Один крок дорівнює 1 LSB = VFSR/2ᴺ: найменша зміна, яку може показати перетворювач. АЦП з відсіканням дає код ⌊Vin/LSB⌋; АЦП із округленням ніколи не відхиляється від істинного значення більш ніж на ½ LSB, це його похибка квантування. Кожен додатковий розряд зменшує LSB удвічі й додає близько 6 дБ до ідеального відношення сигнал/шум квантування SQNR = 6,02·N + 1,76 дБ для синуса на повну шкалу. Щоб досягти роздільності r на діапазоні, оберіть найменше N, для якого 2ᴺ ≥ діапазон/r.

Розмір кроку

1 LSB = 5/28 = 19,53 mV

Код

Vin/LSB = 2125/19,53 = 108,8
код = ⌊108,8⌋ = 108

Відповідь

D = 108

У двійковому записі це 01101100.

Приклад 3Складна
f0fs​/2fs​1,92 kHz7f₁?

Прямокутний сигнал 1,92 kHz дискретизується з частотою 8 kHz без антиаліасингового фільтра. Прямокутний сигнал містить непарні гармоніки 3f₁, 5f₁, 7f₁, … На якій частоті fa у дискретизованих даних з’являється його гармоніка 7f₁? Подайте в Hz.

f₁ = 1,92 kHzfs = 8 kHzгармоніка: 7f₁

Знайти: fa (Hz)

Показати підказки
  1. Гармоніка лежить на 7·1,92 kHz = 13,44 kHz, вище за fs/2 = 4 kHz.
  2. Вона з’являється на fa = |f − k·fs| з найближчим кратним fs.
  3. 13440/8000 = 1,68.
Показати відповідь і покроковий розв’язок

Дискретизація: АЦП вимірює сигнал fs разів за секунду. За теоремою Найквіста–Шеннона частота f фіксується правильно лише доти, доки f < fs/2, частота Найквіста (згортання), тож частота дискретизації має перевищувати подвоєну найвищу частоту сигналу. Вища частота не втрачається: вона з’являється як аліас на fa = |f − k·fs|, де ціле k дає результат між 0 і fs/2. Відліки не розрізняють їх, тому аналоговий антиаліасинговий фільтр має прибрати все, що вище fs/2, перед АЦП.

Частота гармоніки

7f₁ = 7·1,92 kHz = 13,44 kHz

Найближче кратне частоти дискретизації

m = round(1,68) = 2

Частота аліасу

fa = |13440 − 2·8000| = 2560 Hz

Відповідь

fa = 2560 Hz

Аліас потрапляє всередину смуги сигналу, де жоден цифровий фільтр його не прибере. Допоможе лише аналоговий фільтр перед АЦП.

Запитання й відповіді

Збір даних і дискретизація: що це?

Комп’ютер не може безпосередньо зчитати напругу. Система збору даних перетворює фізичну величину на числа: сенсор створює малу напругу, підсилювач її масштабує, а аналого-цифровий перетворювач (АЦП) вимірює її через рівні проміжки часу й видає двійкове число.

Якість чисел визначають два вибори. Частота дискретизації fs показує, як часто АЦП вимірює, а кількість розрядів N — наскільки дрібно він ділить свій діапазон напруги. Разом вони визначають і те, скільки даних треба зберігати чи передавати.

Збір даних і дискретизація: як розв’язувати задачі крок за кроком?
  1. Випишіть, що дано: частоту дискретизації, частоти сигналу, кількість розрядів, вхідний діапазон, швидкість у бодах.
  2. У задачах на дискретизацію порівнюйте кожну частоту з fs/2; вища частота виглядає як fa = |f − k·fs| з найближчим кратним fs.
  3. У задачах на роздільність знайдіть 1 LSB = VFSR/2ᴺ або найменше N, для якого 2ᴺ ≥ діапазон/роздільність.
  4. У задачах на швидкість даних і лінії UART враховуйте все, що передається: канали, відліки за секунду, біти чи цілі байти на відлік, а також стартові, паритетні й стопові біти кожного кадру.
Збір даних і дискретизація: які помилки найпоширеніші?
  • Вважати, що частота вище fs/2 зникає: вона з’являється як аліас усередині смуги.
  • Ділити діапазон на N замість 2ᴺ.
  • Округлювати кількість розрядів униз замість угору.
  • Забувати про стартові й стопові біти: 8N1 передає 10 біт на кожен байт.
Збір даних і дискретизація: що ви тренуєте?
  • Легка: Найквіст, LSB і швидкості даних
  • Середня: аліасинг, розряди й кадри UART
  • Складна: гармоніки, SQNR і проєктування системи

Кожна задача має нові значення, тож ви вивчаєте метод, а не відповідь. Застрягли? Спершу відкрийте невелику підказку, а повне пояснення — лише коли воно знадобиться.

Як проходить тренування

  • Кожна задача має нові значення, тож ви вивчаєте метод, а не відповідь.
  • Застрягли? Спершу відкрийте невелику підказку, а повне пояснення — лише коли воно знадобиться.
  • Ваш прогрес, помилки та збережені задачі зберігаються, тож перед іспитом ви зможете все повторити.

Теми до і після цієї

Спочатку вивчіть

Курси з цією темою

Інші теми: Електротехніка

Робочий аркуш для друку