Chủ Nhật, 12 tháng 7, 2020

5.6 Mô phỏng kênh thông tin - Kênh nhiễu trắng

Đề bài: Hãy mô phỏng kênh truyền nhiễu trắng cho điều chế BPSK từ 0 đến 10 dB.
            a. Vẽ đồ thị tỷ lệ lỗi bit cho điều chế BPSK.
            b. So sánh với xác suất lỗi bit cho điều chế BPSK.

Giải: Chúng ta biết rằng tỷ lệ lỗi bit của điều chế BPSK ở kênh truyền nhiễu trắng là  với  là tỷ số tín hiệu trên nhiễu. Điểm đặc biệt của chương trình Matlab của bài 5.6 bên dưới là:

  • Không dùng vòng lặp for và chỉ xử lý trên ma trận
  • Số lượng bit chạy là 1 triệu bit trên một điểm chạy.
  • Không sử dụng hàm điều chế/giải điều chế của Matlab.
Để tính toán tỷ lệ lỗi bit lý thuyết để so sánh, chúng ta sử dụng hàm qfunc().

==================== CODE MATLAB ====================

 clear all
clc
%
SNRdB = (0:1:10)';
N = 10^6;
M = 2;
% Tao ra du lieu phan bo deu co so hang là bang voi so diem mo phong và so
% cot là so mau thu
x = randi([0 M-1],length(SNRdB),N);
% Dieu che: thuc hien ánh xa bit '1' là -1 và bit '0' là 1
xM = [1  -1];
Tx = xM(x + 1);

% Ty so tin hieu tren nhieu: chuyen doi tu dB sang so thuc
SNR = 10.^(SNRdB/10);

% Cong suat nhieu voi cong suat tin hieu bang 1W
nP = 1./SNR;

% Tao nhieu trang cong
aN = sqrt(nP/2).*(randn(size(Tx)) + 1i*randn(size(Tx)));
% Cong nhieu vao tin hieu
Rx = Tx + aN;

% Giai dieu che: Gia su vung quyet dinh cua bit 1 là nua trai khong gian và bit 0 là nua phai không gian.
x_ = 0.* (real(Rx) > 0) + 1.*(real(Rx) <= 0);

% Tính ty le loi bit
BER_s = sum(x_~=x,2)/N;

% BER ly thuyet
BER_t = qfunc(sqrt(2*SNR));

% Ve do thi BER
semilogy(SNRdB,BER_s,'s',SNRdB,BER_t);
legend('Mo phong','Ly thuyet');
xlabel('SNR theo dB');
ylabel('Ty le loi bit');
set(gcf,'color','white');

Hình 5.2: Tỷ lệ lỗi bit của điều chế BPSK ở kênh truyền nhiễu trắng: mô phỏng và lý thuyết.  

 

Không có nhận xét nào:

Đăng nhận xét

2.16 Tìm giá trị nhỏ nhất và lớn nhất trong ma trận

Cho ma trận X = [1 2 3; 4 5 6; 7 8 9]. Hãy a. Tìm giá trị lớn nhất và giá trị nhỏ nhất theo hàng. b. Tìm giá trị lớn nhất và nhỏ nhất theo...