Kênh truyền và đánh giá chất lượng kênh truyền
241
Ví dụ 16-6. Xử lý một chuỗi dữ liệu nhị phân: điều chế bằng phương pháp 16-QAM, sau
đó truyền qua kênh truyền có nhiễu AWGN với tỷ số Eb/No = 10dB. Thực hiện giải điều chế
và tính tỷ số bit lỗi của chuỗi bit thu được.
Ví dụ này là sự mở rộng của ví dụ 15-2, trong đó ta thêm vào hàm tạo nhiễu Gauss awgn và
hàm tính tỷ lệ lỗi bit biterr.
%% Định nghĩa các thông số.
M = 16;
k = log2(M);
n = 3e4;
nsamp = 1;
%% Nguồn tín hiệu
% Tạo chuỗi dữ liệu nhị phân ngẫu nhiên dưới dạng vector cột.
x = randint(n,1); % Chuỗi bit nhị phẫnngâu nhiên
%% Chuyển đổi các bit thành các ký hiệu k bit.
xsym = bi2de(reshape(x,k,length(x)/k).','left-msb');
%% Điều chế 16-QAM
y = qammod(xsym,M);
%% Tín hiệu phát
ytx = y;
%% Kênh truyền
% Truyền tín hiệu qua kênh truyền AWGN.
EbNo = 10; % Đơn vị dB
snr = EbNo + 10*log10(k) - 10*log10(nsamp);
ynoisy = awgn(ytx,snr,'measured');
%% Tín hiệu thu
yrx = ynoisy;
%% Giải điều chế
zsym = qamdemod(yrx,M);
%% Chuyển đổi ngược từ các ký hiệu thành chuỗi bit nhị phân.
z = de2bi(zsym,'left-msb');
z = reshape(z.',prod(size(z)),1);
%% Tính BER
% So sánh y và z đếm số bit lỗi và tính tỷ lệ lỗi bit
[number_of_errors,bit_error_rate] = biterr(x,z)
Kết quả thực hiện đoạn chương trình trên:
number_of_errors =
80
bit_error_rate =
0.0027