Vježba 5
PCM sustavi

5.1 Uvod

Impulsno kodirana modulacija (Pulse coded modulation – PCM) modulacija se smatra digitalnom modulacijom. Signal, kao nositelj informacije, uzorkuje se u pravilnim vremenskim intervalima te se informacija o amplitudi kodira, odnosno zapisuje nekim brojem. Kodiranje mora biti jednoznačno pridjeljeno. Pošto je broj naponskih razina u nekom intervalu beskonačan potrebno je ograničiti broj različitih naponskih razina i to se naziva kvantiziranje. Na sl. 5.1 grafički je prikazan postupak uzorkovanja i kvantiziranja analognog signala.


pict

Slika 5.1: Grafički prikaz postupka uzorkovanja i kvantiziranja signala.


U slučaju linearne kvantizacije (ravnomjerno kvantiziranje) grešku kvantizacije je jednaka:

ek(nTs) = x(nTs)- xQ(nTs),   |ek(nTs)|max ≤ △x-
                                           2
(5.1)

Ovaj izraz predstavlja grešku granulacije. Ako ulazni signal ima trenutne vrijednosti koje prelaze granice kvantizatora javlja se greška preopterećenja.

         (|
e (nT ) = {  x(nTs)- V,    ∀n : x(nTs) > V
 p   s   |(
            x(nTs)+ V,    ∀n : x(nTs) < - V
(5.2)

Greške granulacije i preopterećenja su prikazane na sl. 5.1.

Kvantizirani signal na izlazu iz ravnomjernog ili neravnomjernog kvantizatora uobičajeno se kodira s L–narnim ravnomjernim kodom. Drugim rječima, svakom kvantiziranom uzorku, čija veličina može biti predstavljena s brojem odgovarajuće kvantne razine, treba pridružiti kodnu grupu ili kodnu riječ od m simbola iz alfabeta. Broj bitova, m po kodnoj grupi, broj kvantizacijskih razina N i broj simbola iz kodnog alfabeta L su povezani izrazom:

N ≤ Lm
(5.3)

Blok shema PCM sustava prikazana je na sl. 5.2.


pict

Slika 5.2: PCM komunikacijski sustav.


Uzimanje uzoraka predstavlja diskretizaciju signala na vremenskoj skali. Postavlja se pitanje koliko često treba uzimati uzorke o amplitudi a da ne dođe do gubitka informacije pošto između dva susjedna uzorka nije poznata amplituda signala. Može se dokazati matematičkim putem da ne dolazi do gubitka informacije u postupku uzorkovanja signala ako je ispunjen sljedeći uvjet:

                 1
fs ≥ 2fc,    fc = △t
(5.4)

gdje je t interval između uzoraka, fs frekvencija uzorkovanja a fc gornja granična frekvencija signala koji se uzorkuje. Može se zaključiti da zbog diskretizacije u vremenu ne dolazi do gubitka informacije što je vrlo važna činjenica. Kao što je već navedeno, osim diskretizacije u vremenskom području nužna je diskretizacija i po amplitudi. Zbog toga dolazi o gubitka informacije, odnosno do pojave šuma. Kod ravnomjerne distribucije signala x(t) u intervalu -V do +V može se pokazati da je odnos signal šum jednak:

Siz     2
Sul = N
(5.5)

osnosno u decibelima:

Siz||
S--|dB = 10log10(N 2) ≈ 6m
 ul
(5.6)

gdje je m broj bitova potreban za kodiranje N diskretnih razina. Važno je napomenuti da ovaj šum nije posljedica utjecaja šuma u komunikacijskom kanalu već se radi o šumu koji je posljedica diskretizacije signala po amplitudi. Bilo koja drugačija distribucija ulaznog signala rezultira s manjim odnosom signal šum.

Susjedni uzorci audio (govorni) i video signala imaju visoku korelaciju, pa se ta činjenica može iskoristiti na način da se ne kvantiziraju uzorci, već razlika između uzoraka. Na taj način se može smanjiti potreban broj bitova za kodiranje pojedinog uzorka, u odnosu na standardni PCM, a da se postigne isti odnos signal šum. Tehnika kodiranja u kojoj se prenosi razlika između susjednih uzoraka se naziva diferencijalna impulsno kodna modulacija (differential pulse coded modulation – DPCM). U prijemniku se tekući uzorak rekonstruira pomoću prethodnog i razlike između prethodnog i onog koji se rekonstruira.

DPCM koderi koji se realiziraju u praksi rade na način da pomoću filtra za predviđanje procjenjuju sljedeću vrijednost i prenose razliku između procijenjene i stvarne vrijesnosti (sl. 5.3). Parametri filtra za predviđanje se računaju iz korelacijskih svojstava signala. DPCM ne unosi dodatnu grešku u kodiranju u odnosu na PCM sustav, dakle prisutan je jedino šum kvantizacije. Odnos signal šum koji se može postići pomoću DPCM sustava također slijedi pravilo 6-dB kao i PCM:

Siz||
Sul|dB ≈ 6m + α
(5.7)

gdje je

- 3 < α < 15  zagovornisignal
(5.8)


pict

Slika 5.3: DPCM koder.


Primarni PCM multipleksni sustav u telefoniji prema CCITT-u sadrži 32 (ili 24 u USA) PCM govorna kanala zajedno s kanalima za signalizaciju i sinkronizaciju. Brzina jednog kanala iznosi 64000 bit/s pa slijedi da se multipleksiranjem po načelu vremenske podjele dobije kapacitet primarnog PCM-a od 64 32 = 2048 kbit/s. Pojedini vremenski odsječak koji odgovara jednom kanalu u vremenskom okviru traje 3.9 μsec i sadrži 8 bitova. Trajanje okvira je 125 μsec i sadrži 256 bitova. Zahvaljući DPCM u u praksi se koriste i brzine od 32 kbit/s i 24 kBit/s umjesto 64 kbit/s kod standardnog PCM-a. Zadaci

  1. Za govorni signal pohranjen u PCM formatu s 65536 diskretnih razina i frekvencijom uzorkovanja 44,1 kHz grafički prikazati odnos signal šum u ovisnosti o broju bitova potrebnih za kodiranje ako se signal kvantizira s 16, 32, 64, 128 i 256 razina.
  2. Usporediti rezultate dobivene u 1. zadatku s teoretskim rezultatom i komentirati.
  3. Ponoviti zadatak 1 za DPCM sustav.
  4. Usporediti odnos signal šum za PCM i DPCM sustav u ovisnosti o broju razina kvantizacije i komentirati.
  5. Koliki kapacitet kanala je potreban za prijenos signala ako se zahtjeva odnos signal šum od barem 35 dB kod PCM odnosno DPCM sustava.
Upute za rad
  1. Učitavanje audio filea (wav format) u matricu <signal> funkcijom <wavread>.
     
         %  ucitavanje uzoraka audio signala 
    [signal fs b] = wavread(’audio_lab.wav’); 
     
         %  definiranje broja razina < N>, maksimalnog i 
         %  minimalnog napona < Vmax>, <Vmin> i razlike 
         %  izmedju dvije susjedne naponske razine <dx>  
    N  = 256; 
    Vmax = 1; 
    Vmin = -1; 
    dx = (Vmax  -  Vmin)/N; 
     
         %  definiranje parametara predikcijskog filtra 
         %  (potreban samo za  DPCM) 
    predictor = [0 1]; 
     
         %  definiranje parametara kvantizatora 
    partition =  - Vmax + dx : dx : Vmax  -  dx; 
    codebook =  - Vmax +dx/2 : dx : Vmax  -  dx/2; 
     
         %  pcm kvantizacija 
    [index, signal_pcm] = ... 
                quantiz(signal, partition, codebook); 
     
         %  dpcm 
    [indeksi_dq signal_dq] = ... 
        dpcmenco(signal, codebook, partition, predictor); 
    signal_dpcm = ... 
        dpcmdeco(indeksi_dq, codebook, predictor); 
     
    signal = signal’; 
     
         %  proracun signal sum omjera za PCM i  DPCM  
    noise_pcm = signal  -  signal_pcm; 
    noise_dpcm = signal  -  signal_dpcm; 
    snr_pcm = 10*log10(var(signal)/var(noise_pcm)) 
    snr_dpcm = 10*log10(var(signal)/var(noise_dpcm))
Pojašnjenje funkcija
  1.  
    [signal fs b] = wavread(’audio1.wav’);
    <signal>
    - uzorci ucitanog signala
    <fs>
    - frekvencija uzorkovanja.
    <b>
    - broj bitova s kojim je audio signal kvantiziran.
    <’audio1.wav’>
    - ime filea u wav formatu u kojem su zapisani uzorci audio signala.
  2.  
    [index, signal_q] = ... 
            quantiz(signal, partition, codebook);
    <index>
    - indeksi u slijedu od 0 do N -1, gdje je N broj kvantizacijskih razina, koji odgovaraju kvantizacijskim razinama kojima je signal kvantiziran
    <signal_q>
    - kvantizirani signal
    <signal>
    - signal koji se kvantizira
    <partition>
    - pragovi kvantizacije
    <codebook>
    - vrijednosti u koje se signal koji se kvantizira preslikava s obzirom na pragove definirane s <partition>
  3.  
    [index signal_q] = ... 
           dpcmenco(signal, codebook, partition, predictor);
    <index>
    - indeksi u slijedu od 0 do N -1, gdje je N broj kvantizacijskih razina, koji odgovaraju kvantizacijskim razinama kojima je signal kvantiziran
    <signal_q>
    - kvantizirani signal
    <signal>
    - signal koji se kvantizira
    <partition>
    - pragovi kvantizacije
    <codebook>
    - vrijednosti u koje se signal koji se kvantizira preslikava s obzirom na pragove definirane s <partition>
  4.  
    signal_dpcm = dpcmdeco(index, codebook, predictor);
    <signal_dpcm>
    - DPCM dekodirani signal
    <index>
    - indeksi u slijedu od 0 do N -1, gdje je N broj kvantizacijskih razina, koji odgovaraju kvantizacijskim razinama kojima je signal kvantiziran.
    <codebook>
    - vrijednosti u koje se signal koji se kvantizira preslikava na temelju vrijednosti varijable <index>
    <predictor>
    - koeficijenti linearnog filtra za predikciju. Koristiti u zadatku vrijednost [0 1].