Простий цифровий радіоприймач
Продовжую розвивати тему. Сьогодні трохи відвернемося від внутрішньої структури приймача і поговоримо про навколозалізну тематику. А саме про головний елемент цифрового приймача, від якого залежить дуже багато - АЦП. Ну і ще про деякі фішки. Постараюся, як можу пояснити все найпростіше.
АЦП
Для наших цілей застосовні, мабуть, лише високошвидкісні конвеєрні АЦП, тому йтиметься про них. На характеристиках по постійному струму та інтерфейсах загострювати увагу не буду, думаю з цим легко розбереться кожен сам. Для початку визначимо основні характеристики АЦП змінного струму, які дуже важливі як при розрахунках, так і при виборі конкретної моделі АЦП. Поїхали ...
SNR - відношення сигнал шумSINAD - відношення сигналу до шуму та спотвореньENOB - ефективна кількість розрядівSFDR -динамічний діапазон вільний від гармонік.
SNR - відношення сигнал шум.
Це відношення СКЗ амплітуди сигналу до середнього значення суми квадратів решти всіх складових спектру за винятком перших 6 (або 5) гармонік сигналу і постійної складової. У будь-якого АЦП в залежності від розрядності є деяка помилка квантування (помилка визначення вхідного значення), яка створює так званий шум квантування. Тобто. що менше розрядність АЦП, то сильніше він шумить і менше SNR. Для будь-якого АЦП справедливе таке співвідношення:
SNR = 6.02 * N + 1.76 [дБ] (1)
Де N – кількість розрядів. За цією формулою ми можемо оцінити теоретичний SNR, який може мати АЦП певної розрядності. Наприклад, для 12-розрядного АЦП, це число буде:
SNR = 6.02 * 12 + 1.76 = 74 дБ.
Шумквантування можна сказати, що розподілений рівномірно по всій зоні Найквіста. Багато хто задається питанням, як може бути SNR радіоприймача або іншої системи з цифровим фільтром вище, ніж SNR АЦП? Давайте подивимося на графік:

На малюнку зображено розподіл густини шуму квантування АЦП у першій зоні Найквіста. Як я вже сказав вище, щільність шуму розподілена рівномірно по всій зоні, проте смуга пропускання приймачаFпр значно менше всієї зони. Отже, до цієї зони потрапляє лише частина цього шуму. Якщо решта зони Найквіста буде відфільтрована цифровим фільтром, тоді у формулу розрахунку SNR системи додатися так званий коефіцієнт обробки або системне посилення.
Кобр = 10 lg (Fсемпл/2*Fпр)
Звідки загальний SNR системи дорівнюватиме
SNR = 6.02N + 1.76 + Kобр
Давайте тепер прикинемо теоретичний SNR нашого приймача, що має 12-розрядний АЦП, 80 мега вибірок в секунду, і смугу пропускання 3 кГц.
SNR = 6.02 * 12 + 1.76 + 10 lg (80000000/2 * 3000) = 115.249 дБ.
Як би це не здавалося дивним, але SNR системи за таких умов відповідає, аж 18-бітному АЦП. Розумію, це викликає деякий розрив шаблону, але що вдієш, така сувора реальність. Однак, це теоретично максимальне значення, насправді все виходить дещо не так райдужно.
SINAD – відношення сигналу до шуму та спотворень
В принципі ті ж яйця що і SNR, тільки вже враховуються ті самі 6 гармонік, які ми відкинули у визначенні SNR.
ENOB – ефективна кількість розрядів
Якщо рівняння (1) замість SNR підставити SINAD і виразити N, ми отримаємо ефективне число розрядів ENOB.
ENOB = (SINAD – 1.76)/6.02
Справа в тому щомолодші біти АЦП через його не ідеальність є шумом і не несуть корисної інформації. І саме значення ENOB говорить нам про те, скільки бітів можуть нести інформацію. По суті це реальна розрядність АЦП.
SNR = 6.02 * 11.4 + 1.76 + 10 lg (80000000/2 * 3000) = 111.637 дБ.
Зі зниженням вхідної частоти ENOB, звичайно, дещо збільшується але, як правило, незначно і цей розрахунок я вважаю більш вірним. Краще трохи занизити параметри ніж завищити, хто вважає інакше?: о).
Ще раз повторюю це, по суті, ідеальний розрахунок. Насправді є хренова хмара нюансів, наприклад до шуму квантування додасться шум джерела живлення, шум попереднього підсилювача, фазовий шум, і навіть високомні резистори шумлять більше ніж низькоомні (не знали? А резистори зворотного зв'язку в ОУ на ВЧ не просто такі низькі ...) , кривість розведення плати і т.п. Нюансів багато, а це лише абетка початкового рівня.
SFDR – динамічний діапазон вільний від гармонік (спур).
Це ставлення СКЗ сигналу до СКЗ найгіршої (найбільшої по амплітуді) гармоніки (спури) незалежно від цього, де вона наклалася чи що її джерелом. SFDR дуже важливий параметр, що дозволяє оцінити найменше значення сигналу, яке можна відрізнити від потужної перешкоди блокуючого прийому. Значення SFDR може вказуватись як щодо повної шкали (dBSF), так і щодо амплітуди сигналу (dBc). Чим більше це число, тим краще. Виглядати всі ці чудеса можуть якось так

Залежно від вхідної частоти сигналу, SFDR звичайно змінюється. І як правило при підвищенні частоти SFDR знижується через нелінійності та інші спотворення, які вносить сама АЦП. Все це зазвичай зазначено в датасіті у вигляді графіків і припроектування системи дивіться, де ви збираєтеся працювати і які характеристики АЦП у цій зоні.
Я розглянув лише частину характеристик по змінному струму (які вважаю мінімальним джентльменським набором), є ще інтермодуляційні спотворення IMD, диференціальні нелінійні спотворення DNL, загальні нелінійні спотворення THD, інтермодуляційні спотворення другого і третього порядку IMD2. І вивчення цих характеристик я залишу вам на домашнє завдання: о).
Це страшне слово Джіттер
У кожного тактового сигналу, є така погана якість фазова не стабільність фронтів - JITTER. Через що від вибірки до вибірки в коді АЦП з'являється деяка похибка, обумовлена зміною фронту синхронізації.

Ця помилка накопичується та створює так званий фазовий шум, який додається до загального шуму системи, знижуючи її SNR. Рівень фазового шуму тим більше, що вища швидкість наростання вхідного сигналу АЦП, тобто. ніж вища частота. Отже, при високих вхідних частотах вимоги до тактового генератора стають дедалі вищими.
Наприклад, ось так виглядає графік зниження SNR, що залежить від величини джиттера для АЦП AD9236.

Для оцінки SNR обумовленого тільки величиною джиттера (для ідеального АЦП), існує таке співвідношення:
SNRj = 20lg(1/ (2 * пі * f * tj))
Де f – частота вхідного сигналу, tj – величина джиттера
Виходячи з цього співвідношення можна прикинути який генератор нам потрібен для конкретних завдань. Щоб зберегти SNR АЦП на належному рівні, розрахунковий SNRj за джиттером повинен бути більшим за SNR АЦП. У цьому випадку забезпечується умова, коли рівень фазового шуму менший за шум квантування АЦП.
В принципі для нашого КВ приймача з деякимзниженням характеристик на ВЧ, можна застосувати генератор з величиною джиттера трохи більше 1 пикосекунды. Такі генератори відносно дешеві і коштують, зазвичай, трохи більше 300р. Чого не скажеш про крутіші генератори, ціна яких може перевищувати вартість самої АЦП. Тому до вибору генератора варто підходити з усією серйозністю і не брати аби який…
Якщо в системі планується застосувати драйвер тактування, то відповідно до величини джиттера генератора додається джиттер драйверів. Про це не слід забувати.
Однак, це не відноситься до драйверів тактування (ADF4001) з системою ФАПЧ, які дозволяють з генератора, що шумить, зробити менш шумний. Тобто. знизити величину джиттера.
Дизеринг
Фішка досить відома, але все ж таки розповім пару слів про неї. Ті більше в моєму макеті дизеринг передбачений, хто вивчав схему думаю звернули увагу на ФНЧ, що йдуть від ПЛІС до входу попереднього підсилювача. Дизеринг - це підмішування псевдовипадкового шуму на вхід АЦП, даний метод дозволяє підвищити точність системи, знизити вплив нелінійності АЦП.
Як це працює:
Уявимо, що наш 12-розрядний АЦП є ідеальним і не шумить. Повна шкала у нього нехай буде 4096 мВ. Якщо ми на вхід цього АЦП подамо постійну напругу, то вимірювати його зможемо з точністю 1 мВ або +-0.5мВ.
Давайте додамо на вхід нашого АЦП разом із постійною напругою 1000 мВ трохи шуму, амплітудою близько 0.5 – 1.5 молодшого розряду. В результаті на виході АЦП ми зможемо спостерігати код 1000, а також 1001, 999, трохи рідше за 998, 1002 і т.д. Тепер давайте обчислимо середнє значення, допустимо 100 відліків, результат нам дасть напругу з точністю приблизно в 10 разів вище або близько 0.1мВ. Тобто. корінь із 100.
Далі якщо АЦПідеальний і шум правильний, як за розподілом, так і по амплітуді збільшуючи кількість відліків, що підсумовуються, і обчислюючи середнє значення можна збільшувати точність вимірювання, теоретично практично межі немає.
Але зазвичай буває, “кришталеві мрії розбиваються про чавунну Ж дійсності”(с). Шум який ми підмішуємо насправді заважає, він знижує SNR нашого АЦП, і з'являється на виході системи, що, зрозуміло, дуже не приємно. Для того щоб знизити пролаз шуму на вихід застосовують шум по можливості невеликий амплітуди і зі спектром за межами області частот, що цікавить.
Нелінійності АЦП можна знизити так само, але вже з набагато великою амплітудою позасмугового шуму. Тобто. ми можемо певною мірою збільшити SFDR АЦП.
У сучасних АЦП дизеринг вже вбудований у сам чіп, і досить дрогнути ногою і ось воно, наше щастя…: о)
Завербуємо на службу аліасинг.
Існує думка, що аліасинг (накладення спектра) зло. Але це тільки від частини, в радіозв'язку ця штука дуже корисна і дозволяє обійтися без будь-яких додаткових змішувачів, переносячи більш високочастотні сигнали в першу зону Найквіста. Звідки дає можливість застосовувати менш швидкісні, дешевші АЦП, але заодно працювати з УКХ.
Давайте подивимося, як нашим КВ приймачем із частотою дискретизації 80МГц ми змогли б приймати УКХ, наприклад, у звичайному мовному діапазоні, на частоті 100 МГц. Сигнал із частотою 100 МГц знаходиться у 3 зоні Найквіста і він субдискретизований. Тому він переноситься в першу зону, однак так як ширина смуги сигналу на частоті 100 МГц значно менше (допустимо для FM смуга 30 КГц), ніж Fs/2 сигнал залишається передескритизовано і з'явиться на частоті 20 Мгц (100МГц - 80МГц) без втрати інформації .

Для нормальної роботи цього методу потрібно за допомогою смугового фільтра обрізати всі зони Найквіста крім третьої. Ось таким не хитрим чином ми можемо слухати УКХ. На жаль, характеристики АЦП на більш високих частотах знижуються, а вимоги до тактового генератора збільшуються. Але я думаю тепер ви вже можете прикинути на скільки знизяться SNR і SFDR нашого АЦП при роботі з УКХ…
Для визначення в яких вищих зонах Найквіста з конкретною моделлю АЦП ми можемо працювати, в датасіті зазвичай вказується максимальна смуга пропускання АЦП.
Ну і вистачить думаю цього разу… Дякуємо за увагу!
Для загального розвитку:
Коментарі ( 33 )
підкажіть як зробити цифрову фільтрацію на основі БПФ - секційна згортка за методом перекриття з накопиченням. Роблю як у підручнику — беру блок доповнюю нулями вдвічі більше, ріжу те, що не потрібно — ОБПФ — стать результату із сумою минулої половини на вихід, а другу половину — для підсумовування з наступним. АЛЕ — сплески на краях вихідних блоків...