MATLAB ỨNG DỤNG TRONG VIỄN THÔNG - Trang 272

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
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

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.