M-PSK qua kênh fading Rayleigh

Một phần của tài liệu đánh giá chất lượng hệ thống thông tin vo tuyến sử dụng phần mềm matlab (Trang 67)

Tách tín hiệu

ỹk •&* . Thu dữ liệu AWG N 8 0 Tạo Fading Các bít lỗi và

Hình 3.9 Sơ đồ mô phỏng truyền dẫn MPSK qua kênh íading sử dụng tách tín hiệu 66 2 1 3 4 7T7 *M í

Hình 3.10 Sơ đồ phân bố tín hiệu (signai constellation) của tín hiệu Dựa trên thuật toán mô phỏng truyền dẫn BPSK qua kênh AWGN, chúng ta

có thể xây dụng thuật toán mô phỏng hệ thống truyền dẫn M-PSK qua kênh fading

Rayleigh nhu sau:

Tạo dữ liệu và điều chế: điều chế M-PSK thực hiện nhóm k = log2M bít

Trong đó A= y[Ẽ^ là biên độ tín hiệu và là pha ban đầu của sơ đồ tín hiệụ Như

vậy, đế tạo ra chuỗi các dấu điều chế M-PSK sk, chúng ta có thể tạo ra các số nguyên

bk = randint (1, N, [0 M - 1])

theta = 2 * pi/M * bk +

Tạo tạp âm AWGN nk: tạp âm ”k được tạo ra như sau

Đe quay pha tín hiệu, bị dịch đi do fading, về vị trí ban đầu, tức là, ỷk = gk * yk. Đế thuận tiện cho mô phỏng chúng ta có thế coi gk được ước một cách chính xác, tức là, gk = gk, và sử dụng ngay gk cho tách tín hiệu coherent.

Mặc dù bằng cách này ảnh hưởng quay pha do fading đã được khắc phục, nhưng góc pha tín hiệu thu vẫn không trùng với góc pha của tín hiệu phát do còn chịu ảnh

hưởng của tạp âm tách đồng bộ bằng lệnh Matlab sau:

êk = Zỳk (3.38)

trong đó z biểu diễn phép tính lấy góc pha, và èk e[o,2;r). Trong Matlab phép tính lấy góc này có thế thực hiện được nhờ hàm có sẵn angle như sau:

thetak=angle (ykHat) (3.39)

Tuy nhiên, do hàm angle của Matlab cho ta các giá trị ồk e [o,±;r]. Vì vậy, đe

b, = M

Trong đó [•] biểu diễn phép tính làm tròn về số nguyên gần nhất về phía 0, tức là phép tính lấy floor. Trong Matlab phép tính [•] được thực hiện bằng hàm có sẵn floor.

Tính toán ti số lỗi dấu SER và tỉ số lỗi bit BER- sai số dấu của giữa tín

hiệu

phát bk và tín hiệu thu được bk, được xác định nhờ so sánh hiệu số ek= bk - bk, mỗi

ek* 0 tương ứng với một dấu bị saị Vì vậy, tỉ số SER có thể tính được tính bởi noSymErr=sum ((bkHat-bk)~=0) (3.43) Đe tính được tỉ số BER chúng ta có thế sử dụng hàm biterr của Matlab như sau:

[noBitErr,BER (k)]=biterr (bkHat,bk,m) (3.44) với m = log2M (3.45) V = I Q BPSK-Fading 2 ^ 1-/^ í r A —+ 1

Bây giờ ta tiến hành mô phỏng hệ thống BPSK khi truyền qua kênh Fading

Rayleigh với các thông số với N = 50000 mẫu tại các điểm bít lỗi là 0,2...30 và so

sánh với kết quả lý thuyết.

10 BER dieu che BPSK qua kenh Fading Rayleigh

cr 10 10 ĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨỴIII — Ly thuyet- BPSK Dieu che- BPSK - r==iii=ii=iÌEÌ=iiii=ii=i===i==ÌTl?f=ể^*| Jiii====Ểii=ii=i=iiiÌiiiii=i=ii=1 ::::::: :::::::::::: HHHỊHHỈ ỊỊHÍFỈlTft*HỶf^^ẳ|Ìi^] rẼẼ|ẼẼẼ|ẼẼẼẼE|ẼẼẼẼẼẼẼẼẼẼ||ẼẼẼẼẼẼẼẼẼẼ| 10 15 20 Eb/No, dB 25 30

Hình 3.11 Mô phỏng BER của điều chế BPSK qua kênh Fading 69

K

Nhận xét:

- Ket quả mô phỏng hoàn toàn phù họp với tính toán lý thuyết.

- Khi tăng Eb/No thì BER giảm (tức là tỷ lệ lồi bít giảm). Trong thông tin vô

tuyến số đế BER từ 10-3 trở xuống thì trong điều chế BPSK qua kênh Fading muốn

đạt được BER như vậy phải tăng công suất phát từ 24dB trở lên. ^QPSK-Fading — 2 QXK X + 1

Bây giờ ta tiến hành mô phỏng hệ thống BPSK khi truyền qua kênh Fading

Rayleigh với các thông số với N = 50000 mẫu tại các điểm bít lỗi là 0,2...30 và so

sánh với kết quả lý thuyết.

Hình 3.12 Mô phỏng BER của điều chế QPSK qua kênh Fading

Nhận xét:

- Ket quả mô phỏng hoàn toàn phù họp với tính toán lý thuyết.

- Khi tăng Eb/No thì BER giảm (tức là tỷ lệ lỗi bít giảm). Trong thông tin vô

tuyến số để BER từ 10‘3 trở xuống thì trong điều chế QPSK qua kênh Fading y k “ § k s k + nk đồng bộTách tín hiệu ỷ Thu dừ /S?ì—► liệu v i ị=Q{jừ AWG N Tạo Fading 8 k s k

Hình 3.13 Sơ đồ mô phỏng truyền dẫn MQAM qua kênh fading sử dụng

tách tín hiệu đồng bộ (coherent detection)

Trường hợp điều chế biên độ cầu phương (QAM: Ọuadrature Amplitude Modulation). Đe tận dụng công cụ Matlab chúng ta sẽ tận dụng hàm điều chế có sẵn

qammod.m trong Matlab. Thuật toán mô phỏng QAM qua kênh fading Rayleigh

được trình bày dưới đây [7].

bk = randint (1, N, [0, M - l ] ) (3.48)

sk = qammod (bk, M)

Tạo kênh fading: kênh fading gk như sau

gk=l/sqrt (2)* (randn (l,N)+j*randn (1,N)) (3.50) Tạo tạp âm AWGN nk: tạp âm nk được tạo ra như sau

một cách chính xác, tức là, gk = gk, và sử dụng ngay gkcho tách tín hiệu coherent. Mặc dù bằng cách này ảnh hưởng quay pha do ĩading đã được khắc phục, nhưng

góc pha tín hiệu thu vẫn không trùng với góc pha của tín hiệu phát do còn chịu ảnh

hưởng của tạp âm tách đồng bộ bằng lệnh Matlab sau:

ykHat=conj (gk).*yk./abs (gk).A2 (3.53) Sử dụng phưong pháp tách tín hiệu hợp lẽ tối đa (MLD), bộ tách tín hiệu thực

noSymErr=sum ((bkHat-bk)~=0) (3.56)

với

m = log2M (3.58)

ạ 4-QAM qua kênh Fading Rayleigh

Bây giờ ta tiến hành mô phỏng hệ thống 4-QAM khi truyền qua kênh Fading

Rayleigh với các thông số với N = 50000 mẫu tại các điếm bít lỗi là 0,2...30 và so

Hình 3.14 Mô phỏng BER của điều chế 4-QAM qua kênh Fading

Nhận xét:

- Ket quả mô phỏng hoàn toàn phù hợp với tính toán lý thuyết.

- Khi tăng Eb/No thì BER giảm (tức là tỷ lệ lỗi bít giảm). Trong thông tin vô

tuyến số để BER tù’ 10'3 trở xuống thì trong điều chế BPSK qua kênh Fading ■ 16QAM-Fading H'

Bây giờ ta tiến hành mô phỏng hệ thống 16-QAM khi truyền qua kênh Fading

Rayleigh với các thông số với N = 50000 mẫu tại các điếm bít lỗi là 0,2...30 và so

Hình 3.15 Mô phỏng BER của điều chế 16-QAM qua kênh Fading

Nhận xét:

- Ket quả mô phỏng hoàn toàn phù hợp với tính toán lý thuyết

- Khi tăng Eb/No thì BER giảm (tức là tỷ lệ lỗi bít giảm). Trong thông tin vô

tuyến số để BER từ 10'3 trở xuống thì trong điều chế 16-QAM qua kênh Fading muốn đạt được BER như vậy phải tăng công suất phát tù’ 26dB trở lên

Hình 3.16 Giao diện chương trình ‘sosanhber’

Hình 3.18 Mô phỏng BER của điều chế ỌPSK

Figure 1

Hình 3.20 Mô phỏng BER của điều chế 16-QAM

Nhận xét: Tại vị trí lOdB (cùng công suất phát) thì điều chế qua kênh Fading

và qua kênh AWGN thì tỷ lệ lỗi bít khác nhau, BER của điều chế truyền qua kênh

AWGN bé hơn nhiều so với BER truyền qua kênh Fading. Muốn đạt đuơc tỷ lệ lỗi

bít bằng với điều chế truyền qua kênh AWGN thì khi truyền qua kênh Fading

Nhận xét:

- Kĩ thuật điều chế BPSK, QPSK, 4-QAM có tỷ lệ lồi bít như nhaụ

- Tại vị trí 8dB thì tỷ lệ lồi bít của 16-QAM lớn hơn kỹ thuật điều chế BPSK,

QPSK, 4-QAM. Muốn đạt được tỷ lệ lỗi bít như kĩ thuật điều chế BPSK,

Hình 3.22 Mô phỏng BER điều chế của các kỹ thuật điều chế qua kênh Fading

Nhận xét: Khi truyền qua Fading các kỳ thuật điều chế BPSK, QPSK, 4-

ỌAM thì tỷ lệ lồi bít gần như nhaụ Riêng điều chế 16-QAM qua kênh Fading, cùng

một công suất phát thì tỷ lệ lồi bít lớn hơn.

3.7. Kết luận chương

Ket quả mô phỏng đánh giá chất lượng hệ thống trong trường hợp kênh chịu

K E T L U Ạ N

Đe tài “Đánh giá chất lượng hệ thống thông tin vô tuyến sử dụng phần

mềm

Matlab” đã thực sự đem lại cho em nhiều hiếu biết về hệ thống thông tin vô

tuyến;

các kỹ thuật xử lý tín hiệu, đặc biệt là kỹ thuật điều chế; các tác động của kênh truyền vô tuyến đối với hệ thống thông tin như: Hiện tượng Doppler, fading, AWGN, ISI, méọ

Từ những kiến thức thu nhận được, em đã mô phỏng thành công các tác động

của kênh truyền vô tuyến như AWGN, fading lên các hệ thống thông tin số khác nhau: M-PSK, M-QAM đế so sánh và đánh giá chất lượng của các hệ thống đó.

Ket quả mô phỏng hoàn toàn phù hợp với lý thuyết, khang định Matlab là công cụ mạnh hỗ trợ việc tính toán, nó có thế thay thế hệ thống thực, đế mô phỏng

rồi mới triển khai trên hệ thống thực.

Tuy nhiên, do thời gian cũng như khả năng tìm hiếu có hạn nên bản đồ án này

TÀI LIỆU THA M KHẢO

[1] H.Harada and R. Prasad, Simulation and softwave Radio for Mobile

Com

municatỉons, Artech House, 2002

[2] Nguyễn Quốc Bình, Các hệ thống thông tin hiện nay trình bày thông

qua sử

dụng Matlab, Nhà xuất bản Quân đội nhân dân, Hà Nội 2003.

[3] Nguyễn Quốc Bình, Kỹ thuật truyền dẫn số, Nhà xuất bản Quân đội nhân dân, Hà Nội 2000.

[4] Nguyễn Quốc Bình, Mô phỏng các hệ thống thông tin số, Nhà xuất bản Quân

đội nhân dân, Hà Nội 2002.

PHẦN PHỤ LỤC BPSKquaA WGN.m

EbNodB=0:l:10;

EbNo=10.A (EbNodB./lO); N=5*10A5;

% Tao tin hieu BPSK {+1,-1}

bk=rand (1,N)>0.5;

sk=l-2*bk;

% Tinh toan nang luong bit tin hieu Eb Eb=norm (sk)A2/N;

% Mat do pho AWGN

No=Eb./EbNo;

Vong lap tinh toan BER theo Eb/No for k=ĩ dength (EbNo)

% Tao AWGN

nk=sqrt (No (k)./2).* (randn (l,N)+j*randn (1,N));

semilogy (EbNodB,BER,'rp7LineWidth',2); axis ( [0 10 10A-6 1])

legend ('Ly thuyet-BPSK','Dieu che-BPSK')

QPSKquaA WGN.m

clear all; N=5*10A5;

EbNodB=0:l:10;

EbNo=10.A (EbNodB/10);

for k=l ilength (EbNodB) si=2* (round (rand (l,N))- 0.5);

sq=2* (round (rand (l,N))- 0.5);

sk=si+j*sq;

nk= (1/sqrt (2*EbNo (k)))* (randn (l,N)+j*randn (1,N));

yk=sk+nk;

si_=sign (real (yk));

semilogy (EbNodB,ber,'bp-7LineWidth',2); hold on semilogy (EbNodB,Lythuyet_BER,'rp7LineWidth',2); axis ( [0 10 10A-6 1]) grid on bonQA MquaA w GN.1V

m=log2 (M); % Number of bits/symbol N=5*10A5; % So Symbol gui di EbNodB=0:l:10;

EbNo=10.A (EbNodB./lO);

% Generate random integers ranging from 0:M-1 b=randint (1,N, [0 M-l]); % Random intergers from 0:M-1

sk=qammod (b,M); Es=norm (sk).A2/length (sk);

% Noise variance of AWGN

SER (k)=noSymErr/N; % Symbol Error rate

[noBitErr,BER (k)]=biterr (bkHat,b,m); end

% BER Ly thuyet cua truy en dan 4QAM qua kenh AWGN Lythuyet_BER=l/2*erfc (sqrt (EbNo)); % Ve do thi close all íigure semilogy (EbNodB,BER,'bp-7LineWidth',2) muoisauQA MquaA w GN.m

m=log2 (M); % Number of bits/symbol N=5*10A5; % So Symbol gui di EbNodB=0:2:20;

% Iteration for estimating BER for k=l :length (EbNo)

% Generate AWGN with variance sigmaA2

n=sigma (k)* (randn (l,N)+j*randn (1,N));

% Rx signal

yk=sk+n;

bkHat=qamdemod (yk,M); % Error calculation

noSymErr=sum ((bkHat-b)~=0); % Number of Symbol errors

SER (k)=noSymErr/N; % Symbol Error rate [noBitErr,BER (k)]=biterr (bkHat,b,m);% end

% BER Ly thuyet cua truy en dan 16QAM qua kenh AWGN Lythuyet_BER=3/8*erfc (sqrt (2/5*EbNo))-9/64* (erfc (2/5*EbNo)).A2;

% Ve do thi

BPSKquaFading. m

clear

N = 5*10A5 % number of bits or symbols EbNodB = 0:2:30; % multiple Eb/NO

EbNO = 10.A (EbNodB/10); % Transmitter

bk = rand (1,N)>0.5; % generating 0,1 with equal probability s = 2*bk-l; % BPSK modulation 0 -> -1; 1 -> 0 for k = 1 :length (EbNodB)

n = 1/sqrt (2)* [randn (1,N) + j*randn (1,N)]; % white gaussian noise, OdB variance

h = 1/sqrt (2)* [randn (1,N) + j*randn (1,N)]; % Rayleigh channel

% Channel and noise Noise ađition

y = h.*s + 10A (-EbNodB (k)/20)*n;

% equalization

yHat = ỵ/h;

% receiver - hard decision decoding

ipElat = real (yHat)>0; % counting the errors

nErr (k) = size (find ([bk- ipHat]),2);

Dieuche BER = nErr/N;

end

% BER Ly thuyet cua truyen dan BPSK qua kenh fading Lythuyet BER = 0.5.* (1-sqrt (EbNỌ/ (EbNƠ1)));

QPSK quaFading. m

% Dinh nghĩa tham so

m=log2 (M); % Number of bits/symbol N=5*10A5; % So Symbol gui di Es=l; % Symbol energy

EbNodB=0:2:30;

EbNo=10.A (EbNodB./lO); % Tao tin hieu QPSK

bk=randint (1,N, [0 M-l]); % Random intergers from 0:M-1 sk=sqrt (Es)*exp (j* (2*pi/M*bk+pi/M));

% Tao Rayleigh fading

noSymErr=sum ((bkHat-bk)~=0); % Number of Symbol errors

SER (k)=noSymErr/N; % Symbol Error rate [noBitErr,BER (k)]=biterr (bkHat,bk,m); end

% BER ly thuyet cua truyen dan QPSK qua kenh Rayleigh fading Lythuyet_BER= 1/2* (l-l./sqrt (l+l./EbNo)); % Plot BER semilogy (EbNodB,BER,'bp-7LineWidth',2) hold on semilogy (EbNodB,Lythuyet_BER,'rp7LineWidth',2); bonQA MquaFadỉng.m

m=log2 (M); % Number of bits/symbol

N=5*10A5; % So Symbol gui di

EbNodB=0:2:30; EbNo=10.A (EbNodB./lO);

% Generate random integers ranging from 0:M-1 bk=randint (1,N, [0 M-l]); % Random intergers from 0:M-1

sigma=sqrt (Es./ (2*m.*EbNo));

% ĩteration for estimating BER

for k=l :length (EbNo)

% Generate AWGN with variance sigmaA2 nk=sigma (k)* (randn (l,N)+j*randn (1,N));

% Rx signal

yk=sk.*gk+nk;

ykHat=conj (gk).*yk./abs (gk).A2; % Coherent detection

% Decision

bkHat=qamdemod (ykHat,M); % Error calculation

noSyinErr=sum ((bkHat-bk)~=0); % Number of Symbol errors

SER (k)=noSymErr/N; % Symbol Error rate [noBitErr,BER (k)]=biterr (bkHat,bk,m); end

% BER Ly thuyet cua truyen dan 4QAM qua kenh Fadinh Rayleigh Lythuyet_BER= 1/2* (l-l./sqrt (l+l./EbNo));

clear all M=16;

m=log2 (M); % Number of bits/symbol N=5*10A5; % So Symbol gui di EbNodB=0:2:30;

EbNo=10.A (EbNodB./lO);

% Generate random integers ranging from 0:M-1 b=randint (1,N, [0 M-l]); % Random intergers from 0:M-1

sk=qammod (b,M); Es=norm (sk).A2/length (sk);

% Generate faded signal according to channel type g=l/sqrt (2)* (randn (l,N)+j*randn (1,N));

s=sk.*g; % Faded signal

% Noise variance of AWGN

sigma=sqrt (Es./ (2*m.*EbNo));

% ĩteration for estimating BER

for k=l ilength (EbNo)

% Generate AWGN with variance sigmaA2

n=sigma (k)* (randn (l,N)+j*randn (1,N));

% Ve do thi close all íĩgure semilogy (EbNodB,BER,'bp-7LineWidth',2) hold on semilogy (EbNodB,Lythuyet_BER,'rp7LineWidth',2); axis ([0 30 10A-6 1]) xlabel ('Eb/Nó) ylabel ('BER') BPSK.m EbNodB=0:2:30; EbNo=10.A (EbNodB./lO); N=5*10A5;

% Tao tin hieu BPSK {+1,-1}

bk=rand (1,N)>0.5;

% Tao AWGN % Tin hieu thu

yk=sk+nk;

% Tach tin hieu shat=sign (real (yk)); error=sk-shat;

noError=length (find (error~=0)); BER (k)=noError/N;

%tao fading

g = 1/sqrt (2)* [randn (1,N) + j*randn (1,N)]; % Rayleigh channel

% Channel and noise Noise ađition y = s.*g + nk;

% equalization

yHat = ỵ/g;

% receiver - hard decision decoding ipHat = real (yHat)>0;

% counting the errors

nErr (k) = size (find ( [bk- ipHat]),2);

ber = nErr/N;

legend ('Sim qua fading', 'Sim qua awgn','Theory qua fading','Theory qua awgn'); xlabel ('Es/No, dB') clear all; close all; N=5*10A5; EbNodB=0:2:20; EbNo=10.A (EbNodB/10);

%tao tin hieu cho fading

M=4;

m=log2 (M); % Number of bits/symbol

Es=l; % Symbol energy

b=randint (1,N, [0 M-l]); % Random intergers from 0:M-1 skk=sqrt (Es)*exp (ị* (2*pi/M*b+pi/M));

% Tao Rayleigh

g=l/sqrt (2)* (randn (l,N)+j*randn (1,N));

ber2= (N-sum (sq==sq_))/N;

ber (n)=mean ([berl ber2]);

%tinh ber qua fading

g=l/sqrt (2)* (randn (l,N)+j*randn (1,N)); ykk=skk.*g+nk; % Coherent detection ykHat=conj (g).*ykk; % Decision thetak=angle (ykHat);

thetak=mod (thetak+2*pi,2*pi); % Convert from [0,+/-pi] — > [0,2*pi) bkHat=floor (M/ (2*pi)*thetak);

% Error calculation

noSymErr=sum ((bkHat-b)~=0); % Number of Symbol errors SER (n)=noSymErr/N; % Symbol Error rate

[noBitErr,BER (n)]=biterr (bkHat,b,m);

end

% BER ly thuyet cua truy en dan QPSK qua kenh AWGN Lythuyet_BER = l/2*erfc (sqrt (EbNo*2)*sin (pi/4))

grid

bonQA M.m

clear all

M=16;

% Define parameters

m=log2 (M); % Number of bits/symbol N=5*10A5; % So Symbol gui di EbNodB=0:2:30;

EbNo=10.A (EbNodB./lO);

% Generate random integers ranging from 0:M-1 bk=randint (1,N, [0 M-l]); % Random intergers from 0:M-1

sk=qammod (bk,M);

Es=norm (sk).A2/length (sk);

% Noise variance of AWGN

sigma=sqrt (Es./ (2*m.*EbNo));

% Iteration for estimating BER

for k=l ilength (EbNo)

ykkHat=conj (gk).*ykk./abs (gk).A2; % Coherent detection

% Decision

bkkHat=qamdemod (ykkHat,M); % Error calculation

nErr=sum ((bkkHat-bk)~=0); % Number of Symbol errors

ser (k)=nErr/N; % Symbol Error rate [noBitErr,ber (k)]=biterr (bkkHat,bk,m);% end

% BER ly thuyet cua truyen dan 4QAM qua kenh AWGN Lythuyet_BER=l/2*erfc (sqrt (EbNo));

% BER ly thuyet cua truyen dan 4QAM qua kenh Fading Lythuyet_BER=3/8*erfc (sqrt (2/5*EbNo))-9/64* (erfc (2/5*EbNo)).A2; % ve do thi close all m uoisauQA M. m clear all M=16; % Defme parameters

EbNodB=0:2:30;

EbNo=10.A (EbNodB./lO);

% Generate random integers ranging from 0:M-1 b=randint (1,N, [0 M-l]); % Random intergers from 0:M-1

sk=qammod (b,M);

Es=norm (sk).A2/length (sk);

% Noise variance of AWGN

sigma=sqrt (Es./ (2*m.*EbNo));

% Iteration for estimating BER

for k=l dength (EbNo)

% Generate AWGN with variance sigmaA2

n=sigma (k)* (randn (1 ,N)+j*randn (1,N)); %tao awgn % Rx signal yk=sk+n; bkHat=qamdemod (yk,M); % Error calculation

% BER ly thuyet cua truy en dan 16ỌAM qua kenh AWGN Lythuyet_BER=3/8*erfc (sqrt (2/5*EbNo))-9/64* (erfc (2/5*EbNo)).A2;

% BER ly thuyet cua truyen dan 16QAM qua kenh Fading Lt_BER=3/8* (l-l./sqrt (1+5./ (2*EbNo))); % ve do thi close all figure close all (EbNodB,ber,'bp--',EbNodB,BER,'rp--',EbNodB,Lt_BER,'mp-- ',EbNodB,Lythuyet_BER,'kp—'); A w GN'dieuchẹm EbNodB=0:2:20; EbNo=10.A (EbNodB./lO); N=5*10A5;

for k=l :length (EbNodB) % Tinh BER BPSK

% Tao tinhieuBPSK {+1,- 1}

nk=sqrt (No (k)./2).* (randn (l,N)+j*randn (1,N));

% Tin hieu thu

y=s+nk;

% Tach tin hieu

shat=sign (real (y));

error=s-shat;

nError=length (fínd (error~=0)); ber (k)=nError/N;

% Tinh BER QPSK

si=2* (round (rand (l,N))-0.5); sq=2* (round (rand (l,N))-0.5);

Eb=nonri (s)A2/N;

% Mat do pho AWGN

No=Eb./EbNo;

nk=sqrt (No (k)./2).* (randn (l,N)+j*randn (1,N)); sk=si+j*sq;

yk=sk+nk;

% Error calculation

noSyinErr=sum ((bkkkHat-bkk)~=0); % Number of Symbol errors

serk (k)=noSymErr/N; % Symbol Error rate [nErr,berkk (k)]=biterr (bkkkHat,bkk,2);

% Tinh BER 16QAM

bkkk=randint (1,N, [0 16-1]); % Random intergers from 0:M-1 skkk=qammod (bkkk, 16); Es=norm (skkk).A2/length (skkk); % Noise variance of AWGN sigma=sqrt (Es./ (8.*EbNo)); nkkk=sigma (k)* (randn (l,N)+j*randn (1,N)); % Rx signal ykkkk=skkk+nkkk; bkkkkHat=qamdemod (ykkkk, 16); % Error calculation

nSymErr=sum ((bkkkkHat-bkkk)~=0); % Number of Symbol errors

serkk (k)=nSymErr/N; % Symbol Error rate 100

=============================================== ===========F adingDieuchẹ m EbNodB=0:2:30; EbNo=10.A (EbNodB./lO); N=10A5;

for k=l dength (EbNodB) % Tinh BER BPSK

b = rand (1,N)>0.5; % generating 0,1 with equal probability

s = 2*b-l; % BPSK modulation 0 -> -1; 1 -> 0

n = 1/sqrt (2)* [randn (1,N) + j*randn (1,N)]; % white gaussian noise, OdB variance

h = 1/sqrt (2)* [randn (1,N) + j*randn (1,N)]; % Rayleigh channel

% Channel and noise Noise ađition

y = h.*s + 10A (-EbNodB (k)/20)*n;

% equalization

yHat = ỵ/h;

% receiver - hard decision decoding

ipHat = real (yHat)>0; % counting the errors

nk=sigma (k)* (randn (l,N)+j*randn (1,N));

% Tin hieu thu

yk=sk.*g+nk;

% Coherent detection

ykHat=conj (g).*yk;

% Decision

thetak=angle (ykHat);

thetak=mod (thetak+2*pi,2*pi); % Convert from [0,+/-pi] —> [0,2*pi) bkHat=floor (4/ (2*pi)*thetak);

% Error calculation

nErr=sum ((bkHat-bk)~=0); % Number of Symbol errors

ser (k)=nErr/N; % Symbol Error rate

[nErr,berk (k)]=biterr (bkHat,bk,2); % Tinh BER 4QAM

Một phần của tài liệu đánh giá chất lượng hệ thống thông tin vo tuyến sử dụng phần mềm matlab (Trang 67)

Tải bản đầy đủ (DOC)

(102 trang)
w