MÔ TẢ MÔ PHỎNG

Một phần của tài liệu Đồ Án Mô phỏng kỹ thuật trải phổ ứng dụng trong mạng di (Trang 54)

e. Số bít cùn gA và số bít khá cD khi dãy PN7 dịch một bít

3.1. MÔ TẢ MÔ PHỎNG

Mô phỏng hệ thống thu phát trải phổ trực tiếp nhằm đánh giá tỷ lệ lỗi bít (BER) tại máy thu phụ thuộc tỷ số tín/tạp và phụ thuộc số lượng người sử dụng. Hệ thống mô phỏng bao gồm các thành phần sau:

• Máy phát trải phổ trực tiếp

• Máy thu trải phổ trực tiếp

• Mô hình của kênh truyền sử dụng kênh truyền đa đường có tác động của

nhiễu trắng phân bố Gaussian. Đây là mô hình kênh truyền phổ biến nhất được sử dụng khi mô phỏng hệ thống CDMA. Mô hình này giả thiết tín hiệu phát đi được cộng thêm nhiễu trắng có phổ công suất phân bố đều trên mọi khoảng tần số.

• Số lượng người dùng đồng thời trong hệ thống (số lượng người phát tín

hiệu đồng thời) có thể thay đổi

• Tỷ số tín/tạp tại máy thu thay đổi trong một khoảng cho trước

• Sử dụng điều chế BPSK

Hệ thống mô phỏng giả thiết không sử dụng các sơ đồ mã hóa có sửa sai hoặc sử dụng nhiều an ten thu phát. Mô phỏng cũng bỏ qua hiệu ứng Fading gây ra khi máy thu nhận được nhiều hơn một tín hiệu do phản xa từ các vật chắn của môi trường.

Sơ đồ mô phỏng được thể hiện trên Hình 3.1 dưới đây. Trong sơ đồ có các thành phần sau:

• Người dùng n: mô phỏng máy phát thứ n do người dùng tương ứng sử

dụng để phát tín hiệu lên kênh truyền. Mỗi người dùng sử dụng một máy phát hoàn chỉnh được mô tả trong Hình 3.2. Tín hiệu cần phát đi được tạo ra ngẫu nhiên từ một bộ sinh số ngẫu nhiên. Độ dài của chuỗi tín hiệu cần phát đi được tính theo bit và có thể thay đổi. Chú ý: nếu chiều dài càng lớn thì càng mất nhiều thời gian để xử lý. Giả thiết, tất cả n người dùng đều phát đi các chuỗi dữ liệu có độ dài bằng nhau.

• Kênh truyền: có chứa n tín hiệu tương ứng với nu máy phát. Kênh truyền

được giả thiết có sự tác động của nhiễu trắng dẫn đến tín hiệu thu được ở máy thu sẽ khác với tín hiệu phát ra.

• Máy thu: mô phỏng máy thu tại trạm BTS sử dụng trong mạng di động để

đồng thời thu tín hiệu của nu người dùng, tách tín hiệu của mỗi người và đánh giá tỷ lệ lỗi bit khi truyền. Sơ đồ máy thu hoàn chỉnh được mô tả trong Hình 3.3.

Hình 3.1: Sơ đồ mô phỏng hệ thống trải phổ trực tiếp 3.2. Mô hình hệ thống máy thu phát trải phổ trực tiếp

Hình 3.1 mô tả mô hình hệ thống trải phổ trực tiếp, chuỗi dữ liệu ban đầu được đem đến khâu điều chế. Sau đó tín hiệu được đem đi trải phổ bằng cách cho nhân với chuỗi PN. Tần số của PN cao hơn nhiều lần của tín hiệu dữ liệu. Sau đó tín hiệu được phát đi

Hình 3.2: Sơ đồ máy phát DS-SS Dữ liệu vào Sóng mang fc Điều chế BPSK PN mk Sd(t ) Sss(t) P(t) PN PN PN PN

Ở phần thu ta thực hiện quá trình ngược lại. Trước hết chúng ta thực hiện nén phổ rồi sau đó đem tín hiệu đã được nén phổ đi giải điều chế BPSK, cuối cùng khôi phục lại tín hiệu gốc.

Hình 3.3: Sơ đồ khối thu DS-SS

Cần chú ý là do môi trường nên luôn có nhiễu tác động khi truyền tín hiệu. Do đó, tín hiệu thu được bao gồm tín hiệu phát và nhiễu.

Đây là lược đồ phổ của tiến trình trên:

Hình 3.4: Phổ của dữ liệu được điều chế với tần số sóng mang f0

Hình 3.5: Phổ của dữ liệuđược trải phổ 1/2PT f0 0 mk Sss(t) PN Sóng mang fc Dữ liệu Giải điều chế BPSK Bộ lọc dải thông p(t) f0 0 1/2PTc

Hình 3.6: Tín hiệu nhận được có nhiễu

Hình 3.7: Phổ tín hiệu trước khi lọc nhiễu

Hình 3.8: Tín hiệu sau khi nén phổ qua bộ lọc

Hình 3.9: Phổ Tín hiệu và nhiễu cuối cùng thu được Tín hiệu sau

khi nén phổ

Nhiễu sau khi giãn phổ

Tín hiệu

3.3. Mô phỏng sử dụng môi trường Matlab 3.3.1. Chương trình

%% MO PHONG HE THONG CDMA SU DUNG TRAI PHO TRUC TIEP

nu = input('So luong nguoi dung dong thoi = '); u =[];

s = [];

ml = input('Do dai chuoi tin hieu goc (tinh theo bit) = '); hl = 2^nextpow2(nu);

user = input('Ve do thi tin hieu cua nguoi dung thu = '); if user > nu

errordlg('STT cua nguoi dung phai nho hon so luong nguoi dung', 'Loi nhap du lieu');

exit; end

% Tao chuoi ngau nhien co bien do trong khoong [0 - 1] cho NU nguoi dung. Chuoi ngau nhien duoc su dung nhu chuoi thong tin ma nguoi dung can truyen di

% Tao ra gia tri khoi dau khac nhau dua tren dong ho may cho bo tao so ngau nhien. Khi do, moi lan chay ham randi se tra lai cac ket qua khac nhau

RandStream.setDefaultStream(RandStream('mt19937ar','seed',sum(100*clock)) ); for k = 1:nu u_binary(k,:) = randi([0 1], 1, ml); end % Dieu che BPRK for k = 1:nu u_BPSK(k,:) = u_binary(k,:)*2-1; end

% Lan luot phat cac chuoi ngau nhien cua moi nguoi dung len kenh truyen co nhieu trang

for n = 1:nu

s(n,:) = cdmat(u_BPSK(n,:), hl, n); end

% Lay tong cua cac tin hieu truyen di cua NU nguoi dung cd1 = sum(s);

%% Lay mau tin hieu can truyen cd = rectpulse(cd1, 4);

loo = 0;

for SNR = 0:0.1:4 loo = loo + 1;

% Mo phong nhieu trang tren duong truyen tac dong len tin hieu can % truyen di voi ty so tin/tap SNR

t = awgn(cd, SNR, 'measured');

%% Ket hop va tao ra tin hieu truyen di co nhieu (downsampling) or = intdump(t, 4);

% Thu NU tin hieu tuong ung voi NU nguoi dung phat di sr = []; for p = 1:nu sr(p,:) = cdmar(or, hl, p, ml); end binary_rx = (sr + 1) / 2;

% Tinh toan BER (ty le loi bit cua tin hieu phat so voi tin hieu thu [n(loo), r(loo)] = symerr(u_BPSK, sr);

end

%% Ve tin hieu phat va tin hieu thu. Day la tin hieu tong cua NU nguoi dung figure;

% Tin hieu phat di subplot(211); plot(cd1);

title(['Tin hieu tong cua ', num2str(nu), ' nguoi dung']); xlabel('Thoi gian');

ylabel('Bien do'); grid;

% Tin hieu thu ve subplot(212); plot(or);

title('Tin hieu thu duoc co nhieu'); xlabel('Thoi gian');

ylabel('Bien do'); grid;

%% Ve bieu do tin/tap phu thuoc ty le loi bit SNR = 0:0.1:4;

figure;

semilogy(SNR, r, 'r-x');

title(['Ty le loi bit phu thuoc ty so tin/tap']); xlabel('Ty so tin/tap');

ylabel('Ty le loi bit'); grid;

%% Ve tin hieu cho 1 nguoi dung nao do (duoc chon o dau chuong trinh) figure;

% Tin hieu goc

subplot(221); stem(u_binary(user, 1:ml), 'filled');grid xlabel('Bit');

ylabel('Bien do');

title(['Tin hieu goc cua nguoi dung ', num2str(user)]); % Tin hieu sau dieu che BPSK

subplot(222); stem(u_BPSK(user, 1:ml), 'filled');grid xlabel('Bit');

ylabel('Bien do');

title(['Tin hieu dieu che BPRK cua nguoi dung ', num2str(user)]); % Tin hieu sau trai pho

subplot(223);

stem(s(user, 1:ml), 'filled'); grid

xlabel('Bit'); ylabel('Bien do');

title(['Tin hieu sau trai pho cua nguoi dung ', num2str(user)]); % Tin hieu thu duoc voi nhieu

stem(sr(user, 1:ml), 'filled'); grid

xlabel('Bit'); ylabel('Bien do');

title(['Tin hieu thu da giai ma cua nguoi dung ', num2str(user)]);

Một phần của tài liệu Đồ Án Mô phỏng kỹ thuật trải phổ ứng dụng trong mạng di (Trang 54)