You are on page 1of 17

Prijenos zvuka – V06

Načini prijenosa digitalnog signala

U ovoj laboratorijskoj vježbi se prikazuju osnovni principi prijenosa digitalnog signala u


osnovnom pojasu i u pojasu na frekvenciji analognog signala nosioca.
Signali dobiveni iz različitih tipova elektroakustičkih pretvarača su analogni, odnosno kontinuirani
u vremenu s različitim vrijednostima amplituda koje mogu poprimiti. Takvi signali i sustavi se često
žele analizirati pomoću računala. Da bi se kontinuirani signal mogao procesirati na računalu
potrebno ga je prvo digitalizirati. Kod digitalnog prijenosa zvučnog signala obrada podataka i
priprema za digitalnu modulaciju se radi na računalu. To znači uzorkovati ga i prebaciti u memoriju
računala na adekvatan način, tamo ga prema potrebi obraditi te ga ponovno pretvoriti u analogni
oblik i privesti pretvaraču.

U svim digitalnim načinima prijenosa audiosignala (DRM, DAB) koriste se digitalni


modulacijski postupci. Nakon analogno digitalne pretvorbe dobije se niz 0 ili 1 koji se pretvara u
odgovarajući tok simbola. Simboli se stvaraju iz bitova prema određenim pravilima. Ako se
pretpostavi jedan jednostavni slučaj u kojemu se koristi sustav s četiri simbola (-3,-1,1,3) tada je za
svaki simbol potrebno dva bita.
Pretpostavimo da u situaciji kada na generator simbola (čiji izlaz ovisi o tipu digitalne modulacije,
PAM= ''Pulse amplitude modulation'', QAM=''Quadrature amplitude modulation'',
QPSK=''Quadrature Phase Shift Keying''...) dolaze bitovi, parovima bitova odgovaraju dodijeljeni
simboli. Za svaku vrstu digitalne modulacije postoje drukčija pravila. Kod PAM signala parovi
bitova tvore realne brojeve prema npr. sljedećem pravilu:
'00' odgovara simbol '-3'
'01' odgovara simbolu '-1'
'10' odgovara simbolu '1'
'11' odgovara simbolu '3'.

Zadatak za pripremu 1.
Ako na definirani sustav dolaze bitovi u redoslijedu: 01101101001001000111, s brzinom toka 10
bita po sekundi.
a) Nactrati tok bitova u vremenu ako stanju 0 odgovara naponska razina -1V, a stanju jedan
odgovara naponska razina 1V.
b) Pretvoriti navedeni tok bitova u simbole prema definiranom pravilu za PAM modulaciju (simboli
su realni brojevi).
c) Odrediti brzinu generiranog toka simbola po jedinici vremena.
d) Pretvoriti navedeni tok bitova u simbole prema definiranom pravilu za QPSK modulaciju
(simboli su kompleksni brojevi, a pravilo je dano na slici 1 a).

Ako se bitovi preslikavaju u simbole koji su realni brojevi tada govorimo o PAM ('Pulse
amplitude modulation') signalu. To je digitalna modulacija u kojoj postoji samo modulacija
amplitude. Tu treba biti oprezan i reći da se i faza modulira jer simbol -3 ima amplitudu 3, a fazu
180 stupnjeva dok simbol 3 ima amplitudu 3 i fazu 0 stupnjeva. Polaritet pravokutnog signala
određuje fazu nosioca na koji se ovaj digitalni tok podataka modulira.
U većini digitalnih modulacija simboli se obično prikazuju u konstelacijskom dijagramu kao
kompleksni brojevi. Ralni dio kompleksnog broja (I) može npr. određivati prvi bit u simbolu, dok
imaginarni dio (Q) može određivati drugi bit u simbolu. Tako ako niz bitova '01', taj par prema
definiranom pravilu ima realnu komponentu I=-1 i imaginarnu komponentu Q=1. Ukupno (-1+1j).
Prikazani sustav simbola s ovako definiranim pravilima je dan u kompleksnom dijagramu na slici
1a).

Prijenos zvuka – V06 - 0


Pravila se mogu i drukčije definirati i to ovisi o tome kako je sustav implementiran. Moguće je i
pretpostaviti simbole kao realne brojeve (PAM) i tada je konstelacijski dijagram prikazan na slici
1).
Q
Q
01
11
1
01='-1'
11='3'
-1 1 I I
00='-3' 10='1'

00 -1 10

Slika 1. Konstelacijski dijagram u slučaju prikaza simbola s kompleksnim i realnim


brojevima.

Tok simbola određuje amplitudu i fazu nosioca u digitalnom modulacijskom postupku. Kod
QPSK-a modulacije postoji samo promjena faze dok kod QAM modulacijskog postupka postoji i
modulacija faze i amplitude.

Slika 2. Konstelacijski dijagram kod 16-QPSK-a i 16-QAM modulacijskog postupka

Pitanje: Ako je tok podataka 10Mbita/s koliki je tok simbola kod 16-QAM modulacijskog postupka.
Kod digitalnih modulacijskih postupaka tok bitova se pretvara u tok simbola (koji su općenito
imaginarni brojevi)
I I+Q
Ulazni tok bitova
Pridruživanje
simbola toku
bitova
Q

Slika 3. Pretvaranje toka bitova u tok simbola (općenito kompleksni brojevi)

Prijenos zvuka – V06 - 1


Ako se koristi prikaz simbola kao niz kompleksnih brojeva onda općenito postoje dva niza u
vremenu (kofazna (I) i kvadraturna komponenta (Q)). Iz osnovnih principa teorije signala poznato
je da pravokutni impuls ima beskonačnu širinu pojasa. U svrhu ograničavanja širine pojasa tako da
signal upada u prenošeni pojas vrši se oblikovanje impulsa (iz pravokutnog niza simbola s oštrim
bridovima ka valnom obliku sa zaobljenim bridovima koji ima širinu pojasa prikladnu za prijenos
kroz ograničeni komunikacijski kanal. Ograničavanje pojasa se postiže propuštanjem pravokutnog
signala kroz kosinusni filtar.

Slika 4. Prikaz realnog pravokutnog signala i propuštenog kroz kosinusni filtar.

Ako je širina pojasa signala veća od širine pojasa predviđenog komunikacijskog kanala
dolazi do intersimbolne interferencije (ISI) koja izobličuje signal u vremenskoj domeni. Stoga se
niz simbola prije modulacije na prijenosni signal propušta kroz filtar za oblikovanje impulsa.
Postoje nekoliko tipova filtara koji omogućuju oblikovanje impulsa da se ne pojavi intersimbolna
interferencija. Intersimbolna interferencija se opisuje na signalu u vremenskoj domeni. Vremenska i
frekvencijska domena signala su uvijek isprepletene i treba ih promatrati paralelno.
Ako se pretpostavi da je simbol idealan impuls (idealan impuls je Diracov impuls beskonačno visok
i beskonačno kratak tako da ukupna površina ispod signala 1). Njegova širina u frekvencijskoj
domeni je beskonačna i jednaka 1. Ovdje bi se mogao razmatrati i pravokutan impuls koji nema
beskonačnu visinu i beskonačnu širinu ali mu je brzina porasta na rubovima beskonačna i on ima
beskonačnu širinu spektra ali u obliku sin(x)/x funkcije. Frekvencijska širina datog
komunikacijskog kanala (uvijek je širina kanala ograničena) je konačna pa se idealan impuls pri
prolasku kroz ograničeni kanal filtrira i raspršuje u vremenskoj domeni, pri čemu to raspršenje
utječe na prethodno primljene simbole jer se simboli u tom slučaju međusobno isprepliću. Na slici 5
su prikazani odzivi toka simbola (pravokutni signal) kroz filtar koji ima ograničenu širinu pojasa.
Vidi se međusobno ispreplitanje odziva. Bitno je da se ti odzivi isprepliću tako da kad prvi simbol
ima maksimum da ostali imaju minimume (0) i da na taj način ne utječu na primanje trenutnog
simbola.

Slika 5. Odziv niza simbola (samo dva stanja) u kanalu s ograničenom širinom pojasa

Prijenos zvuka – V06 - 2


Većina fizikalnih prijenosnih medija su nesposobni za prenošenje informacija koje se nalaze u
osnovnom pojasu blizu DC komponente (0 Hz-a) pa se signal u osnovnom pojasu modulira na
nosilac i prenosi se određeni frekvencijski pojas koji je dozvoljen za određeni kanal oko nosioca.
Princip odašiljača u pojasnom prijenosu je dan na slici 6.

ej·ωc·t
Kompleksni
simboli Kompleksni
signal oko
Koder nosioca
PAM, Izlazni Re{ }
QAM, filtar
Bitovi QPSK Realni signal u
frekvencijskom
Kompleksni području oko
signal u osnovnom
nosioca
pojasu

Slika 6. Odašiljanje u pojasu oko nosioca

e -j·ωc·t

Niskopropusni Pod
uzorkovanje Detektor Dekoder
filtar

Kompleksni Kompleksni Niz bitova


signal 'baseband' simboli

Slika 7. Prijam u pojasu oko nosioca

Frekvencijsko multipleksiranje s ortogonalnim podnosiocima (OFDM)


OFDM (Orthogonal Frequency–Division Multiplexing), odnosno frekvencijsko multipleksiranje s
ortogonalnim podnositeljima je digitalni modulacijski postupak u kojem je frekvencijsko područje
podijeljeno na veći broj bliskih podkanala u kojima se primjenjuje neki od uobicajenih modulacijskih
postupaka, a najčešće QAM (Quadrature amplitude modulation). U OFDM sustavu, signali podnosioci
čine ortogonalni skup signala kao što prikazuje slika 8. Kofazna komponenta (I) simbola se modulira na
funkciju kosinus a kvadraturna komponenta (Q) se modulira na funkciju sinus te se oni superponiraju.

Prijenos zvuka – V06 - 3


Slika 8. Sustav za prijenos podataka s više podnosioca.

Zahvaljujući svojstvu ortogonalnosti, izborom odgovarajućeg signala za demodulaciju u prijamniku je


moguće dobiti procjenu simbola koji modulira onu komponentu koja je upotrijebljena za modulaciju
neovisno o simbolima koji moduliraju ostale podnosioce. Dakle općenito izbor nosilaca treba
ispunjavati sljedeći uvjet:

Ts je trajanje simbola.
U praksi je uobičajeno koristiti funkcije sinus i kosinus koje ispunjavaju uvjet ortogonalnosti:
cos(ωi·t), sin(ωi·t),uz N broj podnosioca i 0 i N 1 i 0 t Ts , uz sljedeći izbor frekvencija,
ωi=ωc+2·π·k/Ts, a Ts i coznačavaju (trajanje simbola) i centralnu frekvenciju nosica.

U usporedbi s prijenosom podataka moduliranih na jedan podnosioc, na ovaj način se povećava trajanje
simbola u podkanalu jer se praktično ostvaruje paralelni, odnosno istovremeni prijenos više simbola, ali
u različitim frekvencijskim područjima.

Prijenos zvuka – V06 - 4


Efektivno je jedan komunikacijski kanal podijeljen u niz paralelnih kanala Na slici 9 je prikazan
prijenos s dva podnosioca i odgovarajući tok simbola za svaki pojedinačni nosilac.

Slika 9. Smanjenje toka simbola kod prijenosa s dva podnosioca.

Osnovne karakteristike prijenosa s jednim nosiocem i više podnosioca

- u konvencionalnom načinu prijenosa svaki simbol okupira cijeli pojas


- OFDM istovremeno se odašilje nekoliko simbola na većem broju podnosilaca
- kanal se dijeli na više podkanala koji imaju ravnu frekvencijsku karakteristiku
- ako je feding na pojedinoj frekvenciji jako izražen doći će do gubitka simbola, zato se uvode dodatni
simboli na strani odašiljača u svrhu zaštite od pogreške.

Matematički zapis OFDM signala

Svi podnosioci za vrijeme trajanja simbola u simboličnom kompleksnom zapisu se mogu prikazati kao:
N 1
S s (t )   An (t )  e j  nt n (t ) 
n 0

N 1
s(t )   (an cos(2f nt )  bn sin( 2f nt )
n 0

an i bn su simboli kofazne i ortogonalne komponente. Frekvencije na kojima se prenose pojedini


simboli su dani izrazom:

Klasični OFDM postupak modulacije i demodulacije zahtijeva veliki broj modulatora i demodulatora

Prijenos zvuka – V06 - 5


(za svaku pojedinačni podnosilac) pa se u novije vrijeme koriste algoritmi diskretne inverzne Fourierove
transformacije za OFDM modulaciju te diskretne Fourierove transformacije za demodulaciju signala.
Blok shema modulatora i demodulatora na principu diskretne Fourierove transformacije i inverzne
Fourierove transformacije je dana na slici 10.

Receiver

Slika 10. OFDM modulacija i demodulacija primjenom IFFT-a i FFT-a

Zadatak za pripremu 2.
Ako se tok bitova od R=10 Mbita/s modulira 16-QAM modulacijskim postupkom te se dovodi na
OFDM odašiljač sa 16 podnosioca odrediti tok simbola koji se prenosi na svakom podnosiocu
(redukcija toka podataka se prvo izvodi digitalnim modulacijskim postupkom a kasnije i prenošenjem s
podnosiocima). Koliki je frekvencijski razmak između svakog podnosioca (odrediti trajanje simbola iz
toka bitova).

RAD NA VJEŽBI:

1. Osnovni princip prijenosa digitalnog signala u osnovnom pojasu


(''baseband'')
Osnovni zadatak u ovom dijelu vježbe je generirati različite vrste digitalnog modulacijskog
signala u osnovnom pojasu te prikazati signal u vremenskoj domeni (kao simbole koji se mijenjaju).
U ovdje obrađenim primjerima se prikazuje stvaranje jednostavnog PAM, QAM i QPSK-a
signala u osnovnom pojasu (oko DC komponente) koji se propuštaju kroz filtar za oblikovanje
impulsa i dobivaju se odgovarajući valne oblici (realni ili u općenitom slučaju kompleksni). Nakon
toga se signalima dodaje šum i prikazuju se spektri signala bez šuma i sa šumom. Blok shema
sustava koji je implementiran u MATLABU je prikazana na slici 11.

PAM Yn
QAM
QPSK Xn
Ulazni simboli
Ak
Zn
šum

Slika 11. Digitalna modulacija u osnovnom pojasu (''baseband'') s dodanim šumom kanala

Zadatak na vježbi 1: Prikazati konstelacijski dijagram 4- PAM, 8- PSK i 16 QAM niza simbola te
odrediti parametre sustava (minimalni razmak između simbola, prosječnu snagu po simbolu za
takav sustav te potrebnu širinu pojasa za prijenos određenog broja bitova/s).

Prijenos zvuka – V06 - 6


Kod realizacije zadatka koristiti predloške za generiranje pojedinih vrsta simbola ovisno o
modulacijskom postupku.

Niz slučajnih PAM simbola se može generirati u MATLAB PAM.m datoteci s nizom naredbi u
sljedećem odsječku koda.

clear;clc;close all;
a = [-3 -1 1 3]; % alfabet simbola
ind = randi([0 3],100,1); % slucajni vektor sa vrijednostima od 0 do 3
ind = ind+1; % Vektor uključuje vrijednosti između 1 i 4
pam = a(ind); % Slučajna 4-PAM sekvenca
% pam = a(randint(100,1,4)+1) % isti rezultat bez ind varijable
% pam = randint(100,1,4)*2-3 % najkraći put realizacije problema
% pam = randi([0 3],100,1)*2-3 % nondepricated
figure(1)
set(gcf,'Color',[1,1,1])
stairs(pam,'Linewidth',3);xlabel ('n',
'Fontsize',22);ylabel('x(n)','Fontsize',22);grid on;
set(gca,'fontsize',22);

Zadatak: modificirati kod tako da se dobije 8 PAM simbola sa jednakim razmakom između
simbola?

Kod za generiranje 8-PSK simbola (PSK.m) je prikazan niže te je nadodana funkcija za


dodavanje šuma.

%Kod za generiranje 8PSK-a signala pomocu naredbe pskmod je dan u


sljedecim linijama
clear;clc;close all;
M = 8; % Velicina alfabeta
x = randi([0, (M-1)],5000,1); % Signal poruke
% 8-PSK-a modulacija.
y = pskmod(x,M)
scatterplot(y);

% dodavanje šuma prijenosnog kanala u osnovnom pojasu


ynoisy = awgn(y,15,'measured');
% Konstelacijski dijagram od signala
scatterplot(ynoisy);

Modificirati kod za generiranje 16 PSK i 64-PSK sustava te usporediti razmak između


simbola te prosječnu snagu ovog sustava po simbolu.

Kod za generiranje 16-QAM sustava je prikazan ispod:

%QAM
clear;clc;close all;
M = 16;
x = [0:M-1];
y = qammod(x,M);
scale = modnorm(y,'peakpow',1);
y = scale*y; % Skaliranje QAM signala s obzirom na snagu signala.
scatterplot(y); % Crtanje konstelacijskog dijagram

% ukljucivanje teksta iznad simbola.


hold on; % zadržavanje slike

Prijenos zvuka – V06 - 7


for jj=1:length(y)
text(real(y(jj)),imag(y(jj)),[' ' num2str(jj-1)]);
end
hold off;

Modificirati kod da se dobije 64/QAM sustav.

Koji je sustav (8 PAM, 16 PSK i 64 QAM) manje osjetljiv na šum u komunikacijskom kanalu?
Kako bi izračunali snagu šuma zadanog funkcijom ''awgn'' te kako bi odredili odnos signal šum za
vrijeme trajanja jednog simbola određene amplitude?

Važno za zapamtiti u dosadašnjem razmatranju: U digitalnim modulacijskim postupcima tok


bitova (0,1) se pretvara u simbole prema određenim pravilima. Simboli su najopćenitije kompleksni
brojevi (I,Q).

Kako su idealni simboli pravokutni impulsi koji imaju beskonačnu širinu pojasa potrebno je tu
širinu pojasa reducirati s obzirom na širinu prijenosnog kanala. Zbog toga se generirani simboli
propuštaju kroz filtar za oblikovanje impulsa.

Simboli koji se odašilju moraju se ograničiti u frekvencijskoj domeni. Postoji nekoliko tipova filtara
(pravokutni, sin(x)/x, kosinusni filtar). Da bi filtar mogao oblikovati impuls on mora zadovoljavati
uvjete koji povezuju trajanje simbola (izračuna se iz brzine protoka simbola) i dozvoljene širinu
pojasa.

Slika 12. Filtri za oblikovanje impulsa u obliku poluvala kosinusa (frekvencijska domena)

U praktičnim primjenama se često koristi kosinusno oblikovani filtar koji se matematički može
prikazati sljedećom jednadžbom:

sin(  t / T ) cos(    t / T )
p(t ) 
 t /T


1  (2    t / T ) 2 
T- trajanje jednog simbola[s], (definirano preko brzine protoka simbola)
α- faktor proširenja osnovnog pojasa (idealni filtri imaju oštar brid a to je nemoguće realizirati u
praksi i zato se uvodi faktor proširenja pojasa).
Kada se napravi Fourierova transformacija od signala p(t) dobije se u frekvencijskoj domeni
funkcija:

Prijenos zvuka – V06 - 8


 1 
T za f  
2 T
 
T    T  1     1- 1 
H( f )    1  cos  f  2  T   za 2  T  f  2  T 
2       
0 u drugim slucajevima 
 
 

Impulsni odziv kosinusnog filtra

U MATLAB-u na razmatranom primjeru pretpostavljene četiri vrijednosti simbola {-3,-


1,1,3}, tok podataka (simbola) SR= 1/T=8000 symbol/sec. Koliki je tok bitova? Pretpostavljen je
faktor prekoračenja pretpostavljenog pojasa α=0.5. Ako je maksimalna širina kanala npr. 6kHz
prema Nyquistovu kriteriju da li se ovakav tok simbola može prenijeti kroz kanal bez pojavljivanja
intersimbolne interferencije.

Kod koji implementira kosinusni filtar za oblikovanje impulsa i propušta PAM signal kroz njega
bez i s utjecajem šuma je prikazan:
clear;clc;close all;
a = [-3 -1 1 3]; % alfabet simbola
ind = randi([0 3],100,1); % slucajni vektor sa vrijednostima od 0
do 3
ind = ind+1; % Vektor ukljucuje vrijednosti izmedju 0 i 4
pam = a(ind); % Slucajna 4-PAM sekvenca
% pam = a(randint(100,1,4)+1) % isti rezultat bez ind varijable
% pam = randint(100,1,4)*2-3 % najkraci put realizacije problema
figure(1)
set(gcf,'Color',[1,1,1])
stairs(pam,'Linewidth',3);xlabel ('n',
'Fontsize',22);ylabel('x(n)','Fontsize',22);grid on;
set(gca,'fontsize',22);

Fs = 24000; % Frekvencija uzorkovanja 24000 Hz jer radimo s


digitalnim filtrima
T = 1/8000; % Simbol u vremenskom intervalu [s].
t = -5*T:1/Fs:5*T; % Vremenski vektor (intervali uzorkovanja)
t = t+1e-10; % nazivnik da ne bude 0
alfa = 0.5; % faktor proširenja pojasa
p = (sin(pi*t/T)./(pi*t/T)).*(cos(alfa*pi*t/T)./(1-
(2*alfa*t/T).^2)); % Kosinusno oblikovani FIR filtar
figure(2)
set(gcf,'Color',[1,1,1])
plot(t,p); hold on; stem(t,p); xlabel('Vrijeme
[s]','Fontsize',22); ylabel('p(t)','Fontsize',22); hold off;
set(gca,'fontsize',22);grid on;
N = length(pam); % Broj simbola
r = Fs*T; % Faktor naduzorkovanja 3 uzorka po simbolu
pams = zeros(size(1:r*N));
pams(1:r:r*N) = pam; % Naduzorkovana sekvenca {a1 0 0 a2 0 0 a3}
xn = filter(p,1,pams); % Oblikovanje impulsa
N=length(xn);

Prijenos zvuka – V06 - 9


t1=0:1/Fs:N/Fs-1/Fs;
figure(3);
set(gcf,'Color',[1,1,1])
plot(t1(1:200),xn(1:200), 'Linewidth',3); xlabel ('t[s]',
'Fontsize',22);ylabel('y(n)','Fontsize',22);grid on; % crtanje
odsjecka generiranog signala
set(gca,'fontsize',22);grid on;

%dodavanje šuma
var_zn = 0.1; % Varijanca šuma
zn = sqrt(var_zn)*randn(size(xn)); % Generiranje slucajnog šuma
yn = xn + zn;

%prikaz spektra signala


Nfft = 2048; % Velicina FFT
P = fftshift(fft(p,Nfft)); % Spectrum (FFT) od filtra
X = fftshift(fft(pams,Nfft)); % Spectrum (FFT) od PAM valnog
oblika

Xn = fftshift(fft(xn,Nfft)); % Spectrum (FFT) od PAM valnog oblika


Y = fftshift(fft(yn,Nfft)); % Spectrum (FFT) od PAM valnog oblika
sa šumom
f = -Fs/2:Fs/Nfft:Fs/2-Fs/Nfft; % Frekvencijska os za crtanje
spektra
figure(5);
set(gcf,'Color',[1,1,1])
subplot(211);plot(f,abs(P), 'Linewidth',3);grid;title('Spektar
kosinusnog filtra', 'Fontsize',22); xlabel('f
[Hz]','Fontsize',22);
set(gca,'fontsize',22);

subplot(212);plot(f,20*log10(abs(P)),'Linewidth',3);grid;title('Sp
ektar kosinusnog filtra u dB','Fontsize',22);
xlabel('f[Hz]','Fontsize',22);
set(gca,'fontsize',22);
figure (6);
set(gcf,'Color',[1,1,1])
subplot(211);plot(f,abs(X));grid;title('Spektar signala bez filtra
za oblikovanje','Fontsize',22); xlabel('f[Hz]','Fontsize',22);
set(gca,'fontsize',22);
subplot(212);plot(f,20*log10(abs(X)));grid;title('Spektar signala
bez filtra za oblikovanje u dB','Fontsize',22); xlabel('f
[Hz]','Fontsize',22);
set(gca,'fontsize',22);
figure (7);
set(gcf,'Color',[1,1,1])
subplot(211);plot(f,abs(Xn));grid;title('Spektar signala s filtrom
za oblikovanje','Fontsize',22); xlabel('f[Hz]','Fontsize',22);
set(gca,'fontsize',22);
subplot(212);plot(f,20*log10(abs(Xn)));grid;title('Spektar signala
s filtrom za oblikovanje u dB','Fontsize',22); xlabel('f
[Hz]','Fontsize',22);
set(gca,'fontsize',22);
Prijenos zvuka – V06 - 10
figure (8);
set(gcf,'Color',[1,1,1])
subplot(211);plot(f,abs(Y), 'Linewidth',3);grid;title('Spektar
signala sa sumom','Fontsize',22); xlabel('f [Hz]','Fontsize',22);
set(gca,'fontsize',22);

subplot(212);plot(f,20*log10(abs(Y)),'Linewidth',3);grid;title('Sp
ektar signala sa sumom u dB','Fontsize',22); xlabel('f
[Hz]','Fontsize',22);
set(gca,'fontsize',22);

Usporediti originalni PAM signal i PAM signal propušteni kroz filtar za oblikovanje
simbola. U vremenskoj i frekvencijskoj domeni.

2. Osnovni princip prijenosa u pojasu nosioca (''passband'')

Prvi korak je generiranje digitalnog signala za prijenos. U razmatranom slučaju se koristi 16 QAM
modulacijski postupak. QAM simboli sa 16 stanja su generirani sljedećim setom naredbi. Skup
brojeva iz kojeg se biraju realni i imaginarni dio je dan a,b={-3,-1,1,1}

Ovaj odsječak programa (QAMzaprijenos.m) generira niz od 2000 slučajnih simbola s


mogućih 16 kombinacija (Realni dio kompleksnog broja biramo iz skupa od 4 broja i imaginarni
dio kompleksnog broja biramo iz skupa od 4 broja).

Prije odašiljanja kroz kanal potrebno je izvršiti oblikovanje impulsa (Realni i imaginarni dio
kompleksnog broja određuju amplitudu i fazu nosioca fc). Ako bi se idealni simboli u obliku
pravokutnih impulsa prenosili tada bi širina pojasa bila beskonačna.
Ovdje se koristi standardni filter za oblikovanje impulsa u obliku kosinusa (već opisan u
prethodnim poglavljima).
Faktor proširenja α=0.35, a kako se sustav prikazuje u digitalnoj domeni (izlazni filtar je
implementiran kao digitalni) koristit će se 16 uzoraka po simbolu.

Uloga nosioca u komunikacijskim sustavima je prenošenje osnovnog pojasa signala (oko


frekvencijske komponente 0) u željeno frekvencijsko područje.
Zadatak na vježbi: Uočiti pojedine dijelove programa (generiranje i oblikovanje simbola, podizanje
na frekvenciju nosioca, spuštanje u osnovni pojas, demodulator) te modificirati program tako da se
u njega doda šum kanala određene snage u pojasu prijenosnog signala (realnom signalu). Koristiti
naredbu za generiranje niza slučajnih brojeva te niz nadodati realnom signalu.
Prikazati konstelacijski dijagram signala bez utjecaja šuma na prijemu i s utjecajem šuma?

clear; %brisanje radnog prostora


clc; %brisanje ekrana u MATLABu
close all; %zatvaranje vec otvorenih slika
M = 4; % M^2-QAM
temp_M = -(M-1):2:(M-1); % generiranje QAM simbola
%moguce je koristiti naredbu qammod
for i=1:M % alternativna mogucnost
for k = 1:M
QAM(i,k) = temp_M(i) + j*temp_M(k);
Prijenos zvuka – V06 - 11
end
end
QAM = QAM(:).'; % alfabet simbola
% index = randint(1,2000,[1 M^2]);
index = randi([1 M^2],1,2000);
sym = QAM(index); % slucajna QAM sekvenca
%oblikovanje impulsa u digitalnoj domeni
over = 16; % faktor naduzorkovanja (broj uzoraka po simbola
pulse = rcosine(1,over,'normal',0.35); % kosinusni filtar
[trash,pos] = max(pulse); % kašenjenje filtra

sig = kron(sym,[1 zeros(1,over-1)]); % dodavanje nula radi


mogucnosti digitalog filtriranja
sig = filter(pulse,1,sig); % signal nakon filtra (valni oblik u
osnovnom pojasu)
sig = sig(pos:end); % maknuti tranzijent

N=length(sig);
%graficki prikaz
figure(1);
set(gcf,'Color',[1,1,1])
subplot(211)
plot(real(sig(1:800)));xlabel('t[s]','Fontsize',22);
ylabel('Re{x(t)}','Fontsize',22); grid on; % plotting a piece of
the baseband signal in time domain
set(gca,'fontsize',22);
subplot(212)
plot(imag(sig(1:800)));xlabel('t[s]','Fontsize',22);
ylabel('Im{x(t)}','Fontsize',22); grid on;
set(gca,'fontsize',22);
xlabel('t[s]','Fontsize',22); ylabel('Re\{x(t)\}','Fontsize',22);

w_c = 0.4; % normirana frekvencija nosioca na pola frekvencije


uzorkovanja
r = 2*real(sig.*exp(j*w_c*pi*(0:length(sig)-1))); % realan signal
oko w_c

figure(2);
set(gcf,'Color',[1,1,1])
plot(r(1:800));xlabel('n','Fontsize',22);
ylabel('x(t)','Fontsize',22); grid;title ('Signal moduliran na
frekvenciju nosioca','Fontsize',22);
set(gca,'fontsize',22);

%demodulator
y = r.*exp(-j*w_c*pi*(0:length(r)-1)); % I/Q spuštanje oko DC-a
W=-1:0.001:1
Y = freqz(y(1000:2023),1,W); %spektar signala na ovoj razini
Y = Y./max(abs(Y)); % normaliziranje spektra za crtanje
figure(4);
set(gcf,'Color',[1,1,1])
plot(W/pi,abs(Y));grid on;xlabel('Normirana
frekvencija','Fontsize',22); ylabel('abs(Y(f))','Fontsize',22);
Prijenos zvuka – V06 - 12
set(gca,'fontsize',22);

f = remez(50,[0 0.2 0.3 1],[1 1 0 0]); % dizajn filtra na


prijamniku
F = freqz(f,1,W); % karakteristika filtra
hold on;
plot(W/pi,abs(F),'r','LineWidth',2);
hold off;
y = filter(f,1,y); % filtrirani signal
y = y(26:end); % maknuti tranzijente ybog odziva filtra
Y = freqz(y(1000:2023),1,W); % spektar signala nakon propuštanja
kroz filtar
Y = Y./max(abs(Y)); % normalizacija spektra zbog crtanja
figure(5);
set(gcf,'Color',[1,1,1])
plot(W/pi,abs(Y));xlabel('Normirana frekvencija','Fontsize',22);
ylabel('abs(Y1(f))','Fontsize',22);
set(gca,'fontsize',22);
grid;
axis([-1 1 0 1.1]);
figure (6);
set(gcf,'Color',[1,1,1])
plot(y(1+over:over:end),'*','MarkerSize',8);xlabel('Kofazna
komponenta', 'Fontsize',22);ylabel('Kvadraturna
komponenta','Fontsize',22);
set(gca,'fontsize',22);
axis([-4 4 -4 4]);grid;

Pokrenuti OFDMtr.m program te analizirati njegove dijelove (generiranje signala, priprema za


prijenos na podnosioce...). skicirati i objasniti dobivene grafove ovim programom za generiranje
OFD signala.

clc;
clear all;
close all;
%..............................................................
% Initiation
%..............................................................
no_of_data_bits = 64%Number of bits per channel extended to 128
M =4 %Number of subcarrier channel
n=256;%Total number of bits to be transmitted at the transmitter
block_size = 16; %Size of each OFDM block to add cyclic prefix
cp_len = floor(0.1 * block_size); %Length of the cyclic prefix
%............................................................
% Transmitter
%.........................................................
%.........................................................
% Source generation and modulation
%........................................................
% Generate random data source to be transmitted of length 64

Prijenos zvuka – V06 - 13


data = randsrc(1, no_of_data_bits, 0:M-1);
figure(1),stem(data); grid on; xlabel('Data Points');
ylabel('Amplitude')
title('Original Data ')
% Perform QPSK modulation on the input source data
qpsk_modulated_data = pskmod(data, M);
figure(2),stem(qpsk_modulated_data);title('QPSK Modulation ')
%............................................................
%.............................................................
% Converting the series data stream into four parallel data stream
to form
% four sub carriers
S2P = reshape(qpsk_modulated_data, no_of_data_bits/M,M)
Sub_carrier1 = S2P(:,1)
Sub_carrier2 = S2P(:,2)
Sub_carrier3 = S2P(:,3)
Sub_carrier4 = S2P(:,4)
figure(3),
subplot(4,1,1),stem(Sub_carrier1),title('Subcarrier1'),grid on;
subplot(4,1,2),stem(Sub_carrier2),title('Subcarrier2'),grid on;
subplot(4,1,3),stem(Sub_carrier3),title('Subcarrier3'),grid on;
subplot(4,1,4),stem(Sub_carrier4),title('Subcarrier4'),grid on;
%.................................................................
.
%.................................................................
.
% IFFT OF FOUR SUB_CARRIERS
%.................................................................
%..............................................................
number_of_subcarriers=4;
cp_start=block_size-cp_len;
ifft_Subcarrier1 = ifft(Sub_carrier1)
ifft_Subcarrier2 = ifft(Sub_carrier2)
ifft_Subcarrier3 = ifft(Sub_carrier3)
ifft_Subcarrier4 = ifft(Sub_carrier4)
figure(4), subplot(4,1,1),plot(real(ifft_Subcarrier1),'r'),
title('IFFT on all the sub-carriers')
subplot(4,1,2),plot(real(ifft_Subcarrier2),'c')
subplot(4,1,3),plot(real(ifft_Subcarrier3),'b')
subplot(4,1,4),plot(real(ifft_Subcarrier4),'g')
%...........................................................
%...........................................................
% ADD-CYCLIC PREFIX
%..........................................................
%............................................................
for i=1:number_of_subcarriers,
ifft_Subcarrier(:,i) = ifft((S2P(:,i)),16)% 16 is the ifft point
for j=1:cp_len,
cyclic_prefix(j,i) = ifft_Subcarrier(j+cp_start,i)
end
Append_prefix(:,i) = vertcat( cyclic_prefix(:,i),
ifft_Subcarrier(:,i))
% Appends prefix to each subcarriers
Prijenos zvuka – V06 - 14
end
A1=Append_prefix(:,1);
A2=Append_prefix(:,2);
A3=Append_prefix(:,3);
A4=Append_prefix(:,4);
figure(5), subplot(4,1,1),plot(real(A1),'r'),title('Cyclic prefix
added to all the sub-carriers')
subplot(4,1,2),plot(real(A2),'c')
subplot(4,1,3),plot(real(A3),'b')
subplot(4,1,4),plot(real(A4),'g')
figure(11),plot((real(A1)),'r'),title('Orthogonality'),hold on
,plot((real(A2)),'c'),hold on ,
plot((real(A3)),'b'),hold on ,plot((real(A4)),'g'),hold on ,grid
on
%Convert to serial stream for transmission
[rows_Append_prefix cols_Append_prefix]=size(Append_prefix)
len_ofdm_data = rows_Append_prefix*cols_Append_prefix
% OFDM signal to be transmitted
ofdm_signal = reshape(Append_prefix, 1, len_ofdm_data);
figure(6),plot(real(ofdm_signal)); xlabel('Time');
ylabel('Amplitude');
title('OFDM Signal');grid on

%.............................................................
channel = randn(1,2) + sqrt(-1)*randn(1,2);
after_channel = filter(channel, 1, ofdm_signal);
awgn_noise = awgn(zeros(1,length(after_channel)),0);
recvd_signal = awgn_noise+after_channel; % With AWGN noise
figure(7),plot(real(recvd_signal)),xlabel('Time');
ylabel('Amplitude');
title('OFDM Signal after passing through channel');grid on;
%...........................................................

%..........................................................
recvd_signal_paralleled = reshape(recvd_signal,rows_Append_prefix,
cols_Append_prefix);
%........................................................
%........................................................
% Remove cyclic Prefix
%.......................................................
%......................................................
recvd_signal_paralleled(1:cp_len,:)=[];
R1=recvd_signal_paralleled(:,1);
R2=recvd_signal_paralleled(:,2);
R3=recvd_signal_paralleled(:,3);
R4=recvd_signal_paralleled(:,4);
figure(8),plot((imag(R1)),'r'),subplot(4,1,1),plot(real(R1),'r'),
title('Cyclic prefix removed from the four sub-carriers')
subplot(4,1,2),plot(real(R2),'c')
subplot(4,1,3),plot(real(R3),'b')
subplot(4,1,4),plot(real(R4),'g')
%...................................................
%...................................................
Prijenos zvuka – V06 - 15
% FFT Of recievied signal
for i=1:number_of_subcarriers,
% FFT
fft_data(:,i) = fft(recvd_signal_paralleled(:,i),16);
end
F1=fft_data(:,1);
F2=fft_data(:,2);
F3=fft_data(:,3);
F4=fft_data(:,4);
figure(9), subplot(4,1,1),plot(real(F1),'r'),title('FFT of all the
four sub-carriers')
subplot(4,1,2),plot(real(F2),'c')
subplot(4,1,3),plot(real(F3),'b')
subplot(4,1,4),plot(real(F4),'g')
%................................
%..............................
% Signal Reconstructed
%..................................
%..................................
% Conversion to serial and demodulationa
recvd_serial_data = reshape(fft_data, 1,(16*4));
qpsk_demodulated_data = pskdemod(recvd_serial_data,4);
figure(10)
stem(data)
hold on
stem(qpsk_demodulated_data,'rx');
grid on;xlabel('Data Points');ylabel('Amplitude');
title('Recieved Signal with error')

Koliko se uspori orginalni tok podataka kada se bitovi pretvore u simbole?


Koliko se uspori tok podataka kada se tok simbola rasporedi na podnosioce?

Prijenos zvuka – V06 - 16

You might also like