Professional Documents
Culture Documents
Osk p10 v01
Osk p10 v01
201
OSK Mladen Vučić
• uočiti
- koristi se kompleksno miješanje i obrada kompleksne ovojnice
- izvor kvadraturnog signala je numerički upravljan digitalni sintezator
frekvencije (Numerically Controlled Oscilator, NCO)
- koristi se višetaktna obrada signala
- broj bitova signala raste kako prema izlazu sklopa
202
OSK Mladen Vučić
• uočiti
- podrhtavanje bridova je fazna modulacija signala takta
du (t )
∆u j (t ) = ∆t j
dt
∆u j (t ) = U m 2πf cos(2πft ) ⋅ ∆t j
- najgori slučaj
∆u j max (t ) = U m 2πf ⋅ ∆t j
203
OSK Mladen Vučić
• uočiti
- dobiveni šum nema veze s kvantizacijom amplitude
- šum je veći za višu frekvenciju ulaznog signala
⇒ prijemnici s poduzorkovanjem su osjetljivi na "clock jitter"
• opisani model temeljen je na najgorem slučaju, ali (nažalost !) pokazuje se
dobrim za procjenu utjecaja podrhtavanja brida takta
• u literaturi se mogu naći i točniji (čitaj složeniji) modeli koji uzimaju u obzir
spektralna svojstva signala i dr.
Primjer 11.1
Sinusni signal frekvencije 225MHz uzorkovan je frekvencijom uzorkovanja
od 50MHz. Koliko smije najviše iznositi apsolutno i relativno podrhtavanje brida
takta da dobiveni odnos signal/šum ne bude lošiji od 60dB?
Rješenje
• absolutno podrhtavanje
- polazimo od izvedenog izraza za SNR
SNR > −20 log10 (2 2πf ⋅ t jRMS )
• relativno podrhtavanje
t jRMS
= t jRMS f s
Ts
- u zadanom slučaju
t jRMS f s = 5e − 13 s ⋅ 50e6Hz = 2.5e − 5 !!!
• uočiti
- period uzorkovanja iznosi Ts=20ns
- podrhtavanje (RMS) mora biti 5 redova veličine manje od Ts
205
OSK Mladen Vučić
206
OSK Mladen Vučić
Primjer 11.2
A/D pretvarač radi na frekvenciji uzorkovanja od fs=50MHz. Granična
frekvencija ulaznog kruga iznosi fg=600MHz. Šum ulaznog kruga može se
reprezentirati naponskim izvorom čiji efektivni napon Un= 5nV / Hz . Koliko iznosi
ekvivalentna snaga šuma na ulazu A/D pretvarača? Koliko iznosi efektivni napon
šuma na ulazu AD pretvarača?
Rješenje
• frekvencijsko područje 0<f<600MHz sadrži 24 područja širine fs/2
fg 600MHz
Na = = = 24
fs / 2 50MHz/2
• efektivni napon šuma koji će se vidjeti na ulazu pretvarača (kao posljedica A/D
pretvorbe) iznosi
U nIN = Pn = 1.22e − 4V
• uočiti
- snaga izlaznog šuma jednaka je snazi "cijelog" ulaznog šuma
- napon kojim se opisuje šum pretvarača ima veću spektralnu gustoću
snage od napona kojim se opisuje samo ulazni krug
207
OSK Mladen Vučić
• na isti ovaj način šumu doprinose i sve komponente koje se nalaze "ispred"
A/D pretvarača
⇒posebno treba paziti na ulazni NPF jer on uklanja aliase koji dolaze na
ulaz prijemnika (npr. iz antene)
• šum kvantizacije
• pretpostavimo
- uniformnu kvantizaciju
- broj bitova A/D pretvarača, N
⇒2N razina
- broj bitova je dovoljno velik
⇒pogreška kvantizacije ima približno jednoliku raspodjelu
vjerojatnosti
208
OSK Mladen Vučić
2
- uvrštavanjem izraza za σ Q i ULSB
2 2
Um /2 Um /2
SNR = 10 log10 = 10 log10
2 2
U LSB Um
12 2 N −1
12
- sređivanjem se dobiva (poznato iz SPUS-a)
3 3
SNR = 10 log10 2 2 N = 10 log10 + N ⋅ 20 log10 (2 )
2 2
Primjer 11.3
Koliko iznosi SNR na izlazu 12 bitnog i 14 bitnog A/D pretvarača?
Rješenje
• primjena gornje formule
SNR12 = 1.76 + 6.02 ⋅ 12 = 74dB
209
OSK Mladen Vučić
• nelinearnost
• idealan A/D pretvarač
- susjedni kodovi na izlazu dobivaju se za promjenu ulaznog napona od
∆uul = U LSB
2
2
(U LSB + U DNL )2 U LSB (1 + ε )2
σQ = =
12 12
⇒odnos signal/šum u ovom slučaju je
2
Um /2
SNR = 10 log10
σ Q2
2 2
Um /2 Um /2
SNR = 10 log10 = 10 log10
2
U LSB (1 + ε )2 Um
2
(1 + ε )2
12 2 N −1
12
- sređivanjem se dobiva
3 1
SNR = 10 log10 ⋅ 2 2 N ⋅
2 (1 + ε ) 2
210
OSK Mladen Vučić
Primjer 11.4
Koliko iznosi smanjenje SNR kod A/D pretvarača koji imaju diferencijalnu
nelinearnost od 0.5 LSB i 1 LSB u odnosu na pretvarač koji nema nelinearnosti?
Rješenje
• primjena gornje formule
SNR = 1.76 + 6.02 ⋅ N − 20 log10 (1 + ε )
• manji SNR nije jedini problem koji proizlazi iz nelinearnosti A/D pretvarača
- za druge probleme vidi poglavlje koje obrađuje "dither"
• uočiti:
- dosad smo analizirali pojedinačne izvore šuma
• Koliko iznosi ukupan SNR A/D pretvarača?
- kvantizacija i DNL
σ Q = U LSB
(1 + ε ) = U m (1 + ε )
=
Um
(1 + ε )
2 3 N −1 2 3 N
2 2 3
211
OSK Mladen Vučić
• SNR
U nAD
SNRsin = −20 log10
U rms,sin
2
U
(U m 2πf ⋅ t jRMS ) 2
+ m (1 + ε ) + (U nIN )2
N
2 3
SNRsin = −20 log10
Um
2
2 2
2 (1 + ε ) 2U nIN
SNRsin = −20 log10 (2 2πf ⋅ t jRMS )
2
+
N
+
U
2 3 m
2 2
2 (1 + ε ) 2U nIN , LSB
SNRsin = −20 log10 (2 2πf ⋅ t jRMS )
2
+
N
+
2 3 2N
• SNR
U nAD
SNRsquare = −20 log10
U rms,square
2
(U m 2πf ⋅ t jRMS ) 2 U
+ m (1 + ε ) + (U nIN )2
2N
SNRsquare = −20 log10
Um
2 2
SNRsquare = −20 log10 (2πf ⋅ t jRMS ) 2 1 + ε U nIN
+
N
+
2 Um
213
OSK Mladen Vučić
Primjer 11.5
Zadan je A/D pretvarač ADS5542. Pronaći u podacima proizvođača
parametre koji govore o šumu i komentirati ih.
Rješenje
• podaci is dokumentacije koju daje proizvođač
- broj bitova: N=14
- najveća frekvencija uzorkovanja: fs=80MHz
- tipična vrijednost srednje DNL: ε=0.5LSB
- efektivna vrijednost izlaznog šuma: UnIN,LSB=1.1LSB
- odnos signal/šum: SNR=70.7dB za f=220MHz
- podrhtavanje trenutka uzorkovanja: taPP=0.3ps (PP a ne RMS !)
• uočiti:
- SNR koji bi bio posljedica samo kvantizacije iznosi
SNR = 1.76 + 6.02 ⋅ N = 86dB > 70.7dB
⇒dominiraju drugi šumovi !!!
- SNR koji bi bio posljedica samo podrhtavanja trenutka uzorkovanja
(samo A/D bez oscilatora), taRMS= taPP/3 do taPP/6
- uz tjRMS=taPP/4 dobivamo
SNRsin = −20 log10 (2 2πf ⋅ t jRMS ) = 76.7dB
2 2
1 + ε U nIN , LSB
SNRsquare = −20 log10 (2πf ⋅ t jRMS ) 2
+ + = 76.3dB
2N 2N
• uočiti:
- izraz predstavlja procjenu SNR-a
- mjerenje koje daje proizvođač od 70.7dB uključivalo je i clock jitter
- postoji i niz drugih izvora šumova koji ovdje nisu obrađeni
214
OSK Mladen Vučić
215
OSK Mladen Vučić
Primjer 11.6
Prijemnik koristi A/D pretvarač čiji SNRAD iznosi 70dB uz sinusni model
ulaznog signala, a ulazna dinamika ±Um=±1V. Pretvarač radi s frekvencijom
uzorkovanja fs=50MHz. Koliko mora iznositi snaga ulaznog signala koji se još
uvijek može detektirati, pod pretpostavkom da on zauzima frekvencijsko područje
širine B=3kHz.
Rješenje
• processing gain iznosi
f 50e6
PG = 10 log10 s = 10 log10 = 39.2dB
2B 2 ⋅ 3e3
216
OSK Mladen Vučić
• pretvorba SOB→TC
- invertiranje najznačajnijeg bita
• uočiti
- SOB i TC predstavljaju cjelobrojne vrijednosti
- ove vrijednosti po iznosu ne odgovaraju naponu koji se nalazi na ulazu
u A/D
⇒ možemo ih interpretirati na različite načine
217
OSK Mladen Vučić
• cjelobrojna interpretacija
- decimalna točka (radix point) podrazumijeva se iza zadnje znamenke
- npr., kod dvojnog komplementa
0111(2) → 7(10)
M
1000(2) → -8(10)
• u formatu 1.(N-1)
- brojevi su prikazani u normiranom obliku
⇒najmanji negativni broj je -1
⇒najveći pozitivni broj je 1-2-(N-1) (ne postoji broj +1 !!!)
- množenje uvijek daje broj u intervalu [-1, 1-2-(N-1)] osim za slučaj
(-1(10))×(-1(10))=1(10)
• uočiti
- točka se ne piše već se podrazumijeva
- točka zapravo uopće ne postoji (točka je zamišljena !!!)
218
OSK Mladen Vučić
• zaključak
⇒možemo zanemariti MSB na izlazu množila
219
OSK Mladen Vučić
220
OSK Mladen Vučić
• podsjetimo se (SPUS)
- pretpostavimo da su x i y nezavisni procesi
⇒ u tom slučaju vrijedi
E [x ⋅ y ] = E [x ]⋅ E [ y ]
[
- Koliko iznosi E x 2 ⋅ y 2 ? ]
- možemo pisati
[ ]
x 2 = x 2 + xost = E x 2 + xost
y 2 = y 2 + yost = E [y 2 ]+ yost
- uvrštavanje daje
[ ]
[ ][
E x 2 ⋅ y 2 = E E ( x 2 ) + xost ⋅ E ( y 2 ) + yost
]
[ ] [
E x 2 ⋅ y 2 = E E ( x 2 ) ⋅ E ( y 2 ) + E ( x 2 ) ⋅ yost + E ( y 2 ) ⋅ xost + xost ⋅ yost ]
E [x 2 ⋅ y 2 ] = E [E ( x 2 ) ⋅ E ( y 2 )] + E [E ( x 2 ) ⋅ yost ]+ E [E ( y 2 ) ⋅ xost ]+ E [xost ⋅ yost ]
= E(x2 ) ⋅ E( y 2 ) =0 =0 =0
⇒1. pribrojnik: očekivanje produkta konstanti je produkt
konstanti
⇒2. i 3. pribrojnik: očekivanje produkta konstante i šuma bez
srednje vrijednosti daje 0
⇒ukoliko su xost i yost nekorelirani (što je u praksi razumna
pretpostavka), očekivanje njihovog produkta je 0
- konačan rezultat
[
E x2 ⋅ y2 ] = E( x2 ) ⋅ E( y 2 )
221
OSK Mladen Vučić
- drugi ulaz
- signal
xq 2 [n] = x2 [n] + q2 [n]
• pretpostavka
- šumovi q1[n] i q2[n] su statistički nezavisni
222
OSK Mladen Vučić
Px1Px 2
SNR y = 10 log10
Px 2 Pq1 + Px1Pq 2
• uočiti
- usporediti SNRy s SNRx1 i SNRx2
⇒ SNR nakon množenja je lošiji za 3dB !!!
- na izlazu množila još nismo napravili odsijecanje !!!
⇒ odsijecanje unosi dodatni šum kvantizacije
2
2 U LSB 3
Pq3 = σ Q3 =
12
223
OSK Mladen Vučić
Px21 Px21
SNR y1 = 10 log10 = 10 log10
2 Px1Pq1 + Pq1 Pq1( 2 Px1 + 1)
P Px1
SNR y1 = 10 log10 x1 + 10 log10
Pq1 2 Px1 + 1
• uočiti
- drugi pribrojnik je uvijek negativan
⇒ dodatno smanjenje SNR
- npr.
⇒ x1 s vrijednostima u intervalu [-1,1) redovito ima snagu manju od
1/2 (tu snagu bi imao sinusni signal)
1 Px1
Px1 = ⇒ 10 log10 = −6dB
2 2 Px1 + 1
224
OSK Mladen Vučić
• uočiti
- i dalje ostaje mala DC vrijednost jer se 0.5 uvijek zaokružuje
"prema gore"
- ovo je u praksi uglavnom zanemarivo
226
OSK Mladen Vučić
- ulazni signal
xul [n ] = cos[ωul n]
- izlaz iz miješala
y[n ] = cos[ω0n] ⋅ cos[ωul n]
1
y[n] = {cos[(ω0 − ωul )n] + cos[(ω0 + ωul )n]}
2
- filtrom se uklanja npr. gornja komponenta i dobiva se
1
ytransp.[n] = cos[(ω0 − ωul )n]
2
• uočiti
1
- pojačanje amplitude miješala iznosi
2
- ovo pojačanje može se kompenzirati filtrom ili drugim sklopom koji
slijedi iza množila
227
OSK Mladen Vučić
11.6 Decimacija
• kod kompleksnog miješanja kompleksna ovojnica nalazi se na frekvencijama
oko 0
• kompleksna ovojnica zauzima mali dio Nyquistovog frekvencijskog područja tj.
f s >> B
• primjer
- faktor decimacije
R=3
- uzima se svaki treći uzorak
⇒ nova frekvencija uzorkovanja
f f
f s 2 = s1 = s1
R 3
228
OSK Mladen Vučić
• razlikujemo decimatore
- visokog stupnja (R>10)
- niskog stupnja
• problemi u dizajnu decimatora
- gušenje filtra u području gušenja mora biti veliko
- za veliki R je područje propuštanja filtra jako usko
- ako je fs velika potrebna je velika procesna moć sklopovlja
- ovo "potroši" velik dio procesne moći procesora
⇒ kod velikih fs, decimatori se često izvode sklopovski
(a ne pomoću DSP procesora)
• Problem: Kako napraviti strm i uzak filtar na velikom fs?
- filtar mora imati visok red
⇒ traži mnogo množenja po uzorku
• Rješenje
⇒CIC decimator
229
OSK Mladen Vučić
1
h[n] = {δ [n] + δ [n − 1] + L + δ [n − R + 1]}
R
1 ∞
y[n] = ∑ x[k ]{δ [n − k ] + δ [n − k − 1] + L + δ [n − k − R + 1]}
R k = −∞
1
y[n ] = {x[n] + x[n − 1] + L x[n − R + 1]}
R
⇒filtar usrednjava R uzoraka signala
H ( z ) = Z {h[n]} =
1
R
[ ]
1 R −1
1 + z −1 + L z −( R −1) = ∑ z − k
R k =0
[
a1 1, q, q1,L q R −1 ] → S R = a1
1− qR
1− q
- u našem slučaju
1 1 1− z−R
a1 = , q = z −1 ⇒ S R = H ( z) =
R R 1 − z −1
230
OSK Mladen Vučić
• uočiti
- impulsni odziv ima konačno trajanje
⇒ radi se o FIR filtru
- dobivena prijenosna funkcija je racionalna funkcija
⇒ implementacija je rekurzivna
- množenje s (1 − z −1 )
Y ( z ) − z −1Y ( z ) = X ( z )
- uočiti
- ovaj sklop kumulativno zbraja ⇒ digitalni integrator
231
OSK Mladen Vučić
- primjer za R=3
y[n] = x[n] − x[n − 3]
- uočiti
- uzorci između onih koje uzima ↓R ne trebaju
⇒ ne treba ih niti računati
⇒cijeli sklop se može napraviti ovako za bilo koji R
232
OSK Mladen Vučić
- amplitudna karakteristika
H (e jω
)=
1 [1 − cos(ωR)]2 + sin 2 (ωR) = 1 1 − 2 cos(ωR) + cos 2 (ωR) + sin 2 (ωR)
R [1 − cos(ω )]2 + sin 2 (ω ) R 1 − 2 cos(ω ) + cos 2 (ω ) + sin 2 (ω )
1 1
− cos(ωR)
1 2 − 2 cos(ωR) 1
H (e jω ) = = 2 2
R 2 − 2 cos(ω ) R 1 1
− cos(ω )
2 2
x 1 − cos( x)
sin 2 =
x 2
ωR
sin
jω 1 2
H (e ) =
R ω
sin
2
233
OSK Mladen Vučić
• uočiti
- filtar ima nultočke
- nakon decimacije, nultočke se nalaze na frekvencijama 2kπ
- do aliasa u željenom kanalu dolazi zbog komponenata oko nultočki
- izvan željenog kanala dolazi do mnogo većeg aliasinga nego u kanalu
- područje oko prve latice dominira u aliasingu
- aliasing je najveći na frekvenciji ωa
2π
ωa = − ωc
R
- u području propuštanja filtra amplituda nije konstantna već pada s
porastom frekvencije
⇒ ovo odstupanje može se jednostavno kompenzirati u narednim
stupnjevima (filtar koj ito radi zove se CIC kompenzator)
• problem
- aliasing u željenom kanalu je unatoč nultočkama prevelik
• rješenje
- povećati red filtra
⇒ CIC decimator višeg reda
234
OSK Mladen Vučić
• implementacija
• amplitudna karakteristika
N
ωR
sin
jω 1 2
H (e ) =
R N sin ω
2
- primjer za R=8 i N=10
235
OSK Mladen Vučić
• u praksi se ponekad (rijetko) koristi i izvedba koja u comb sekciji radi MR, a ne
s R uzoraka
N
1 1 − z − RM
H ( z) =
R 1 − z −1
- parametar M se naziva diferencijalno kašnjenje "comb" filtra
- decimatori opisani u prethodnom tekstu odgovaraju slučaju M=1
Primjer 11.7
CIC decimator koristi se za smanjivanje frekvencije uzorkovanja 2048 puta.
Frekvencija uzorkovanja ulaznog signala iznosi 50MHz, a širina kanala 3kHz.
Odrediti parametre decimatora tako da prigušenje neželjenih aliasa bude barem
120dB. Koliko za taj slučaj iznosi najveće gušenje u području željenog kanala.
Pretpostaviti da je diferencijalno kašnjenje "comb" sekcije jednako 1.
Rješenje
• zadani su slijedeći parametri
f s = 50MHz
f c = 3kHz
Aa ≥ 120dB
M =1
• faktor decimacije iznosi
R = 2048
236
OSK Mladen Vučić
• gušenje na frekvenciji ωa
( )ω =ω
20 log10 H e jω
a
≤ − Aa
− 120
N≥ = 6.95
2.69e - 3 ⋅ 2048
sin
1 2
20 log10
2048 2.69e - 3
sin
2
N =7
7
3.77e − 4 ⋅ 2048
sin
jω 1 2
H (e ) = = 0.84 ⇒ 1.5dB
ω =3.77e−4 2048 7 3.77e − 4
sin
2
237
OSK Mladen Vučić
• uočiti
- kašnjenja se implementiraju pomoću registara
- u integratorskoj sekciji signal propagira kroz N zbrajala
⇒ s povećanjem N pada maksimalna frekvencija takta na kojem
CIC decimator može raditi
- "comb" sekcija radi s niskom frekvencijom uzorkovanja, fs/R
⇒ ovdje problem s propagacijom ne postoji
• uočiti
- ovim je u svakoj integratorskoj sekciji dodano kašnjenje za 1 uzorak
⇒ prijenosna funkcija u tom slučaju ima oblik
N
1 1 − z −R
H ( z) = z −N
R 1 − z −1
- faktor z-N unosi fazni pomak, ali ne utječe na amplitudu
238
OSK Mladen Vučić
• stabilnost
• promotrimo opet sklop digitalnog integratora
• prijenosna funkcija
1 z
H ( z) = =
1 − z −1 z −1
239
OSK Mladen Vučić
Primjer 11.8
Na primjeru CIC decimatora s N=1, M=1 i R=3 pokazati što se događa kad
CIC decimator ode u zasićenje.
Rješenje
• decimator
1 1 − z −3
H ( z) =
3 1 − z −1
240
OSK Mladen Vučić
( )
Bout , max = log 2 2 Bin −1 ⋅ ( RM ) N + 1
↑ ↑
najveći broj po modulu predznak
Bout , max = N log 2 ( RM ) + Bin
241
OSK Mladen Vučić
Primjer 11.9
Kolike su potrebne širine registara CIC decimatora iz primjera 11.8, ako
širina riječi ulaznog signala iznosi 17 bitova?
Rješenje
• u primjeru 11.8 dobiveni su parametri decimatora
N =7
R = 2048
M =1
• uočiti
- ovo je sklopovski zahtjevna implementacija
242
OSK Mladen Vučić
• blokovska shema
• Hogenauer-ov model
• zadano je
- parametri decimatora, N, R i M
- širina ulazne riječi, Bin
- širina izlazne riječi, Bout
• potrebno je odrediti
- broj bitova koji treba odbaciti u pojedinom stupnju
B1, B2, ..., BN, BN+1, ..., B2N, B2N+1
↑ ↑ ↑
integratori "comb-ovi" izlazni registar
243
OSK Mladen Vučić
2
σk =
( )
2 Bk
2
=
22 Bk
, k = 1,L,2 N + 1
12 12
- od svakog izvora do izlaza decimatora možemo odrediti prijenosnu
funkciju odnosno impulsni odziv
hk [n] , k = 1,L,2 N + 1
• širine registara moraju biti takve da doprinos šuma zbog odsijecanja koji se vidi
na izlazu bude manji od onog koji izaziva odsijecanje izlaznog registra
σ12,out + σ 22,out + L + σ 22N ,out ≤ σ 22N +1,out
• ideja
- "natjerati" σ12,out ,L,σ 22N ,out da budu podjednake
⇒ u tom slučaju vrijedi
1 2
σ k2,out ≤ σ 2 N +1,out
2N
244
OSK Mladen Vučić
22 Bk 1 2
⋅ ∑ hk2 [n] ≤ σ 2 N +1,out
12 n 2N
1 6σ 22N +1,out
Bk ≤ log 2 , k = 1,L,2 N
2 N ∑ h 2
k [n ]
n
2 B2 N +1
2
σ 22N +1,out =
12
- impulsni odzivi se mogu dobiti iz prijenosnih funkcija
1 − z − RM
H1( z ) =
N
=
(
1 − z − RM )
N
1 − z −1
(1 − z−1)N
H 2 ( z) =
(
1 − z − RM )
N
1 − z − RM
=
N
(1 − z −1)
(1 − z−1) 1 − z
N −1 −1
245
OSK Mladen Vučić
11.7 Filtri
• prvo filtriranje kompleksne ovojnice izvedeno je već u CIC decimatoru
- ovo filtriranje je vrlo blago
- pazi se samo na uklanjanje aliasinga
• nakon decimacije frekvencija je občno dovoljno niska da se daljnje filtriranje
može izvesti klasičnim FIR filtrom
- ovi filtri igraju ulogu filtara kanala
- strmi su i time definiraju selektivnost
- određivanje prijenosnih funkcija ovih filtara
- vidi ranija poglavlja o dizajnu kompleksnih filtara
- implementacija
- vidi DOS, PPDOS i slične predmete
f
PG = 10 log10 s = 10 log10 (2 ) = 3dB
2 fs
4
• uočiti
- filtriranje koje smanjuje frekvencijsko područje na pola traži filtar koji
radi s 0.5 bitova širom riječi
246
OSK Mladen Vučić
11.8 Interpolacija
• interpolacija
- rekonstrukcija signala između vrijednosti koje su poznate u diskretnim
trenucima
247
OSK Mladen Vučić
• vidi SIS
u d [n ] = u c (nT s )
∞
ud [n] = ∑ ud [k ]δ [n − k ]
k = −∞
∞
ud [n] = ∑ uc (kTs )δ [n − k ]
k = −∞
∞
uδ (t ) = ∑ uc (kTs )δ (t − kTs )
k = −∞
248
OSK Mladen Vučić
249
OSK Mladen Vučić
||
- dokaz
∞
u DA (t ) = uδ (t ) ∗ g (t ) = ∫ uδ (τ ) g (t − τ )dτ
−∞
∞
uδ (t ) = ∑ uc (kTs )δ (t − kTs )
k = −∞
∞ ∞
u DA (t ) = ∑ uc (kTs ) ∫ δ (τ − kTs ) g (t − τ )dτ
k = −∞ −∞
∞
u DA (t ) = ∑ uc (kTs )g (t − kTs )
k = −∞
250
OSK Mladen Vučić
f
G ( f ) = Ts sinc
fs
• uočiti
- amplitudni dio spektra je izobličen
- komponente željenog signala blizu Nyquistove frekvencije su prigušene
za za iznos od
20log10(sinc(0.5))≈4dB
- postoje značajne neželjene komponente, izvan područja |f|>fs/2
⇒ potrebno je filtriranje niskopropusnim filtrom granične frekvencije
fs/2
• tokom obrade digitalnih signala poželjno je da signali zauzimaju što veći dio
Nyquistovog frekvencijskog područja
⇒Shannonov teorem treba biti zadovoljen što "tjesnije"
• kod prijelaza iz digitalne u analognu domenu ovaj slučaj nije povoljan
- kod korištenja klasičnog D/A pretvarača potrebno je
⇒ povećati frekvenciju uzorkovanja prije D/A pretvorbe
ili
⇒ napraviti korekciju amplitude nakon D/A pretvorbe
• uočiti
- nakon interpolacije s faktorom L željeni signal zauzima frekvencijsko
područje |f|≤(fs/2)/L, a ne područje |f|≤fs/2
- interpolacija nultog reda koju radi D/A pretvarač tada manje utječe
251
OSK Mladen Vučić
n=0:N-1;
x=cos(w0*n); % polazni signal
y=zeros(1,L*length(x));
y(1:L:length(y))=x; % signal s ubacenim nulama
figure;
stem(n,x,'r');
title('Polazni signal');
xlabel('n');
figure;
stem(n,y(1:length(x)),'r');
title('Signal s ubacenim nulama');
xlabel('n');
252
OSK Mladen Vučić
• uočiti
- nule nisu "pravi" uzorci
- Kako popraviti stvar?
- došlo je do pomaka frekvencije
⇒ pogledajmo ponašanje signala x[n] i y[n] u frekvencijskoj domeni
• Z-transformacija
∞
Y ( z ) = ∑ y[n ]z − n = ∑ y[n]z −n
n = −∞ n =0, ±1, ±2,L
Y ( z) = ∑ x[n / L ]z −n
n =0,± L, ±2 L,L
- uvedimo supstituciju
n/ L = m ⇒ n = Lm
- supstitucija daje
Y ( z) = ∑ x[m]z − Lm
m =0,±1, ±2,L
Y (z ) = X z L( )
• frekvencijska karakteristika
( ) ( )
Y e jω = X e jωL
- primjer za L=4
253
OSK Mladen Vučić
• uočiti
- cijeli postupak vrijedi za realne i za kompleksne signale
- filtar radi s frekvencijom uzorkovanja L⋅fs
- za visoke iznose L⋅fs javlja se problem implementacije filtra
⇒ CIC interpolator
- ili obrnuto
π π
ω g = min ,
R L
254
OSK Mladen Vučić
255
OSK Mladen Vučić
• implementacija
• uočiti
- integratori rade s visokom frekvencijom uzorkovanja pa je kritično
vrijeme propagacije
- maksimalna frekvencija takta postiže se ako se signal iz svakog
stupnja vodi s izlaza, a ne s ulaza registra (vidi CIC decimator)
• primjer, L=8
• uočiti
- zrcalne komponente nalaze se oko nultočaka prijenosne funkcije filtra
- pogreška uzrokovana zrcalnim komponentama je manja ako signal
zauzima manji dio Nyquistovog banda
256
OSK Mladen Vučić
Primjer 11.10
Koje funkcije za promjenu frekvencije uzorkovanja postoje u programskom
paketu MATLAB?
Rješenje
• funkcije za interpolaciju i decimaciju koriste se u višetaktnoj obradi signal
• višetaktna obrada signala nalazi se u sklopu alata Signal Processing Toolbox
257
OSK Mladen Vučić
258
OSK Mladen Vučić
b=fir1(20,1/4);
w=linspace(-pi,pi,1000);
H=freqz(b,1,w);
plot(w,20*log10(abs(H)));
axis([min(w),max(w),-60,0]);
xlabel('Frekvencija, rad')
ylabel('Pojacanje, dB')
• bez obzira koji filtar se koristi, funkcija decimate ima određen najmanji broj
ulaznih uzoraka
⇒najmanji broj uzoraka je određen utitravanjem filtra
⇒U gornjem primjeru je korišten FIR filtar niskog reda da bi se mogao
prikazati mali broj uzoraka. U praksi se koristi viši red.
259
OSK Mladen Vučić
• uočiti
- odziv se razlikuje od prethodnog slučaja
⇒ posljedica amplitudne i fazne karakteristike decimacijskog filtra
260
OSK Mladen Vučić
- kompleksni signal
u 0 [n ] = A{cos[Ω 0 n] + j sin[Ω 0 n]} = Ae jΩ0n
• uočiti
- iznos frekvencije u diskretnoj domeni
− π ≤ Ω0 < π
261
OSK Mladen Vučić
• za vježbu
- "Provući" u mislima kroz ove uzorke odgovarajući kontinuirani signal?
⇒ interpolacija
- Koliko perioda signala se nalazi na svakoj slici?
• primjer - generiranje kompleksnog signala u MATLAB-u
Omega0=0.66*pi;
A=1;
N=50;
n=0:N-1;
u0=A*exp(j*Omega0*n);
• uočiti
- pokazan postupak koristi arimetiku u pomičnom zarezu
- blokovska shema
262
OSK Mladen Vučić
• određivanje faze
- faza linearno raste
∆φ [n]
= Ω0
∆n
- jednadžba diferencija generatora faze
φ [n] = φ [n − 1] + Ω 0
- implementacija generatora faze
• uočiti
- u gornjem slučaju faza raste u beskonačnost
- sinus (kosinus) je periodičan s periodom 2π
⇒ faza može biti implementirana na kružnici, tj.
0 ≤ φ [n] < 2π
⇒ ovaj slučaj je pogodan za implementaciju u cjelobrojnoj aritmetici
• implementacija u cjelobrojnoj aritmetici
- uzmimo akumulator širine N bitova
- korak, ∆, iznosi
2N
∆ = Ω0
2π
f ω
Ω0 = 2π 0 = 2π 0
fs ωs
f ω
∆ = 0 2N = 0 2N
fs ωs
263
OSK Mladen Vučić
• uočiti
- nije moguće generirati signal bilo koje frekvencije
∆
f0 = f0 (∆ ) = f s
2N
- željena frekvencija može se postići u koracima
∆f0 min = f0 (∆ + 1) − f0 (∆)
∆ +1 ∆
∆f0 min = f s N
− fs
2 2N
f
∆f0 min = Ns
2
- vrijednost ∆f0min predstavlja rezoluciju frekvencije
264
OSK Mladen Vučić
N ∆ f0 2N
12 12.2 kHz 4096=4k
14 3.05 kHz 16k
16 763 Hz 64k
18 191 Hz 256k
20 47.7 Hz 1M
24 2.98 Hz 8M
32 0.0116 Hz 6G
• uočiti
- odsijecanje faze uzrokuje faznu pogrešku
265
OSK Mladen Vučić
Primjer 11.11
Korištenjem MATLAB programskog okruženja potrebno je napraviti model
generatora faze. Korištenjem tog modela ilustrirati pogrešku koju izaziva
odsijecanje faze pod pretpostavkom da pretvorba faze u sinus unosi zanemarivu
pogrešku.
Rješenje
• za rad s cjelobrojnim vrijednostima koristit ćemo skup funkcija koje se nalaze u
skupu alat Fixed-Point Toolbox
• funkcije iz ovog skupa alata rade s klasom cjelobrojnih objekata
(Fixed-Point Numeric Object) koji se nazivaju fi objekti
• fi objekti su opisani pomoću 3 tipa svojstava (Properties)
- Data Properties
- fimat Properties
- numerictype Properties
• primjer kreiranja objekta s predefiniranim (default) svojstvima
- kreiranje cijelog broja s predznakom, vrijednošću 2, duljinom riječi od
16 bitova i širinom frakcije od 13 bitova
fi(2) % fi je konstruktor
ans =
2
DataTypeMode: Fixed-point: binary point scaling
Signed: true
WordLength: 16
FractionLength: 13
RoundMode: nearest
OverflowMode: saturate
ProductMode: FullPrecision
MaxProductWordLength: 128
SumMode: FullPrecision
MaxSumWordLength: 128
CastBeforeSum: true
function ACCfi=dds_faza(f0,fs,N,BrojUzoraka)
% INICIJALIZACIJA
TipAcc=numerictype('WordLength',N,...
'FractionLength',0,...
'Signed',0,...
'Scaling','BinaryPoint',...
'DataTypeMode', 'Fixed-point: binary point
scaling'...
);
PravilaAcc=fimath(... % zbrajanje
'CastBeforeSum',1,...
'OverflowMode','wrap',...
'SumMode','SpecifyPrecision',...
'SumWordLength',N,...
'SumFractionLength',0,...
'MaxSumWordLength',128,...
... % mnozenje
'RoundMode','convergent',...
'ProductMode','SpecifyPrecision',...
'ProductWordLength',N,...
'ProductFractionLength',0,...
'MaxProductWordLength',128);
% RACUNANJE KORAKA
DELTA=f0/fs;
DELTAfi=fi(DELTA*2^N,TipAcc,PravilaAcc);
% RACUNANJE FAZE
ACCfi=fi(zeros(BrojUzoraka,1),TipAcc,PravilaAcc);
for k=2:BrojUzoraka
ACCfi(k)=ACCfi(k-1)+DELTAfi;
end
267
OSK Mladen Vučić
• prikaz faze
- parametri fs=50e6, f0=5/124* fs, N=32 bita
• uočiti
- faza više nije linearna već je na nju superponirana pogreška
⇒ fazna modulacija
(vidi poglavlje 8.3.2 Fazna i frekvencijska modulacija)
⇒očekuju se neželjene komponente u spektru
- pogreška je periodična
⇒ u spektru se očekuju diskretne neželjene komponente
- osnovni harmonik fazne pogreške ima visoku frekvenciju
⇒ očekuje se širok spektar
• Kolike su amplitude neželjenih komponenata?
⇒napravimo analizu u spektralnoj domeni
268
OSK Mladen Vučić
• programski odsječak
N=input('Sirina rijeci akumulatora, N = ');
P=input('Sirina faze nakon odsijecanja, P = ');
fs=50e6;
f0=5/124*fs;
BrojUzoraka=10000;
ACCfi=dds_faza(f0,fs,N,BrojUzoraka);
FazaInteger=ACCfi.data;
FazaInteger=floor(FazaInteger/2^(N-P))*2^(N-P);
Faza=FazaInteger*2*pi/2^N;
u0=sin(Faza);
% Ovo nije funkcija iz MATLAB-a.
% Napisati samostalno za vjezbu.
[H,f]=aspec01(u0,fs,'Blackman');
plot(f,20*log10(abs(H)),'r');
axis([min(f),max(f),-120,0]);
title(['N=',num2str(N),', P=',num2str(P)]);
xlabel('f,Hz');
ylabel('Amplituda');
• primjeri spektara
269
OSK Mladen Vučić
• uočiti
- postoje neželjeni šiljci u spektru
⇒ postoje nelinearna izobličenja
- energija neželjenih komponenata je koncentrirana na pojedinim
mjestima u spektru
- ovakva izobličenja izražavamo "dinamičkim rasponom signala bez
neželjenih komponenata" (Spurious Free Dynamic Range, SFDR)
⇒ vidi poglavlje 6.6.2 Nelinearna izobličenja
- u ovom slučaju SFDR iznosi
SFDR=84dBc
Primjer 11.12
Dan je digitalni prijemnik s uzorkovanjem u osnovnom frekvencijkom
području. Ulazna dinamika prijemnika iznosi ±Um=±1V, a efektivna vrijednost
signala kojeg je još moguće detektirati iznosi Umin=2.5µV (ovakav prijemnik
analiziran je u primjeru 11.6). Koliko mora iznositi SFDR numerički upravljanog
oscilatora koji se koristi u ovakvom prijemniku?
270
OSK Mladen Vučić
Rješenje
• dinamičko područje prijemnika iznosi
Um 1
20 log10 2 = 20 log10 2 = 109dB
min,rms
U 2 . 5e − 6
• primjer spektra
- prethodni slučaj s N=32 i P=14
- bez dithera - s dodanim "ditherom" od 5 bitova
• uočiti
- diskretne komponente su se preraspodijelile u spektru
- SFDR je veći
272
OSK Mladen Vučić
• uočiti
- LUT ima konačnu širinu riječi
⇒ pogreška uslijed kvantizacije amplitude
• kvantizacijski šum može se izraziti pomoću odnosa signala i šuma kao
SNR = (6.02M + 1.76)dB
273
OSK Mladen Vučić
• primjer
- faza nema odsijecanja, N=P=24
- kvantizacija amplitude M=14
- frekvencija f0=fs/32, fs=50MHz
275