Hiển thị các bài đăng có nhãn lỗi bit. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn lỗi bit. Hiển thị tất cả bài đăng

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

4.61 Tỷ lệ lỗi bit điều chế MPSK

Hãy thực hiện mô phỏng điều chế MPSK với M cho trước và so sánh kết quả mô phỏng với kết quả lý thuyết từ hàm berawgn(). Vẽ đồ thị tỷ lệ lỗi bit của kết quả mô phỏng và lý thuyết trên cùng đồ thị và so sánh.

Giải: Chúng ta có một số lưu ý sau:
- Hàm beragwn() cung cấp tỷ lệ lỗi bit lý thuyết điều chế MPSK với mã hóa Gray. Do đó, để kết quả mô phỏng trùng khớp với kết quả lý thuyết, chúng ta phải sử dụng điều chế và giải điều chế có mã hóa Gray, cụ thể là pskmod(m,M,0,'gray') và pskdemod(Rx/sqrt(Ps),M,0,'gray').
- Khi M > 2 , chúng ta giả sử công suất nhiễu là 1 thì công suất phát theo symbol sẽ là log2(M)*SNR(idx) với M là mức điều chế và SNR(idx) là tỷ lệ tín hiệu trên nhiễu tại điểm mô phỏng thứ idx.
- Khi nhiễu trắng bao gồm cả phần thực và phần ảo, biên độ phần thực và phần ảo của nhiễu cần nhân với hệ số 
- Chúng ta sử dụng hàm bitterr() để tính số lượng bit lỗi khi chuỗi dữ liệu nhận được có giá trị từ 0 đến M-1.
- Số lượng bit truyền và nhận sẽ là log2(M)*N(idx) với N là số lượng bit truyền tại điểm mô phỏng idx.

EbNo = 0:1:10;
SNR = 10.^(EbNo/10);
M = 8;
% Lý thuyết
BER_t = berawgn(EbNo,'psk',M,'nondiff');
% Tính toán số lượng bit cần mô phỏng
N = ceil(100./BER_t);
BER_s = zeros(size(EbNo));
for idx = 1:length(EbNo)
 % Công suất tín hiệu
 Ps = log2(M)*SNR(idx);
 % Công suất nhiễu
 Pn = 1;

 % Tx: Máy phát
 m = randi([0 M-1],1,N(idx));
 Tx = pskmod(m,M,0,'gray');

 % Rx: máy thu
 n = sqrt(Pn/2).*(randn(1,N(idx)) + 1i*randn(1,N(idx)));
 Rx = sqrt(Ps)*Tx + n;
 m_ = pskdemod(Rx/sqrt(Ps),M,0,'gray');
 BER_s(idx) = BER_s(idx) + biterr(m,m_)/(log2(M)*N(idx));
end
semilogy(EbNo,BER_t,'-',EbNo,BER_s,'o');
xlabel('Tỷ lệ tín hiệu trên nhiễu trung bình [dB]');
ylabel('Tỷ lệ lỗi bit');
legend('Lý thuyết','Mô phỏng');

Tỷ lệ lỗi bit lý thuyết và mô phỏng cho điều chế 8-PSK trên kênh truyền nhiễu trắng. 

4.60 Tỷ lệ lỗi bit của điều chế PAM



Sử dụng hàm berawgn(), so sánh tỷ lệ lỗi bit của điều chế PAM khi tăng M từ 2 đến 16.

M = [2 4 8 16];
EbNo = 0:10;
for idx = 1:length(M)
 BER(idx,:) = berawgn(EbNo,'pam',M(idx));
end
semilogy(EbNo,BER);
legend('M = 2','M = 4','M = 8','M = 16','Location','best','NumColumns',2);
xlabel('E_b/N_0 theo dB');
ylabel('Tỷ lệ lỗi bit');

Đồ thị của hàm berawgn() cho điều chế PAM.  


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