Câu hỏi 24: trong miền tần số thì phổ của tín hiệu rời rạc nó liên tụcCâu hỏi 25: phổ biên độ của esd_x có biên độ gần như đều nhau.. còn phổ biên độ của ft_acorr_x có biên độ tăng dần đ
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
Trang 2PHẦN 2: CÁC BÀI THÍ NGHIỆM BÀI SỐ 1: QUÁ TRÌNH NGẪU NHIÊN CỦA TÍN HIỆU 1.1:
Code:
x=-5:0.1:5; % mang cac phan tu tu -5 den 5 cach nhau 0.1
gauss=exp(-x.^2/2)/sqrt(2*pi); % phan bo xac suat Gauss
Trang 3Ý nghĩa của kì vọng: biểu thị các giá trị chính giữa của Gauss
Ý nghĩa của phương sai: biểu thị mức rời rạc của giá trị biến ngẫu nhiên
x=randn(m,n); % vecto x co gia tri ngau nhien tu 1 den 100000
buocnhay=0.1; % buoc nhay =0.1
k=-5:buocnhay:5; % khoang xet tu -5 den 5 cach deu 0.1
px=hist(x,k)/n/buocnhay; % tim so vector trong [-5, 5]
stem(k,px,'go'); % Ve do thi mo phong
Px_LT=exp(-k.^2/2)/sqrt(2*pi); % Tinh Px ly thuyet
hold on; % giu do thi phia tren
plot(k,Px_LT,'m'); % Ve do thi ly thuyet
title('Phan bo xac suat Gauss'); % tieu de do thi
xlabel('x'); % ten truc hoanh
ylabel('P(x)'); % ten truc ting
legend('Ly thuyet','Mo phong'); % ki hieu
hold off;
Đồ thị:
Trang 5BÀI SỐ 2 LƯỢNG TỬ HÓA TUYẾN TÍNH
step=0:0.01:20; % khoang xet [0;20]
thoidiem=sin(randn()+step).*cos(rand()*step); % tao gia tri ngau nhien
[inx xqt] = lquan(thoidiem,-1,1,randi(3)+1); % Tinh cac diem lay mau
plot(step,thoidiem,'go',step,xqt,'s-'); % Ve do thi
grid on;
Trang 6title('Do thi cua tin hieu x(t) va x_q(t)');
Trang 7BÀI SỐ 3: TẠP ÂM LƯỢNG TỬ HÓA TRONG KỸ THUẬT
LƯỢNG TỬ HÓA TUYẾN TÍNH
3.1:
Code:
N = 1000;
x_uni = 2*rand(1,N)-1; % x_uni phan bo deu tu -1 den 1
x_sin = sin(linspace(1,5,N)); % tin hieu sin
nbit = 1:10; % so bit luong tu tu 1 den 10
SNqR_uni = zeros(size(nbit)); % Khoi tao mang SNqR_uni va SNqR_sin chua
SNqR_sin = zeros(size(nbit)); % SNqR cua tin hieu phan bo deu va tin hieu sin
SNqR_lt = 6.02*nbit; % Mang chua SNqR tinh theo ly thuyet
Ps_uni = sum(x_uni.^2)/N; % Cong suat tin hieu x theo (3-3)
Ps_sin = sum(x_sin.^2)/N;
for i = 1:size(nbit,2) % size(n,2) tra ve so cot cua n
[indx_uni, xq_uni] = lquan(x_uni,-1,1,nbit(i)); % Luong tu hoa x_uni
[indx_sin, xq_sin] = lquan(x_sin,-1,1,nbit(i)); % Luong tu hoa x_sin
eq_uni = x_uni - xq_uni; % sai so cua x_uni
eq_sin = x_sin - xq_sin; % sai so cua x_sin
Pq_uni = sum(eq_uni.^2)/N; % cong suat tap am luong tu x_uni
Pq_sin = sum(eq_sin.^2)/N; % cong suat tap am luong tu x_sin
SNqR_uni(i) = 10*log10(Ps_uni/Pq_uni); % SNR_db cua x_uni
SNqR_sin(i) = 10*log10(Ps_sin/Pq_sin); % SNR_db cua x_sin
end
plot(nbit,SNqR_uni,'g-.'); % ve do thi SNR tin hieu phan bo deu mo phong
hold on;
plot(nbit,SNqR_sin,'c '); % ve do thi SNR tin hieu sin mo phong
plot(nbit,SNqR_lt,'k-'); % Ve do thi SNR tin hieu phan bo deu ly thuyet
xlabel('nbit');
legend('Phan bo deu','Hinh sin','Ly thuyet');
title('Do thi SN_qR theo nbit');
ylabel('SN_qR');
grid on;
hold off;
Đồ thị:
Trang 8SNR theo lý thuyết: 6.0200 12.0400 18.0600 24.0800 30.1000 36.1200 42.1400 48.1600
54.1800 60.2000
SNR theo uni: 5.8361 11.7784 17.8588 23.9559 30.1048 35.9538 42.0177 48.0865 53.8967 60.1301
SNR theo sin: 6.4171 12.8834 19.3981 25.6702 32.0389 38.1620 44.3266 50.4033 56.4544 62.5722
Câu hỏi 17: n tăng thêm thì SNR tang lên do hàm mũ
Câu hỏi 18: Vì dựa vào công thức của SNR thì SNR và n tỷ lệ thuận, không phụ thuộc vào kích thước bướclượng tự và dải biên độ lượng tử
Câu hỏi 19: x phân bố trên trong [-1,1]
Trang 9BÀI SỐ 4: MẬT ĐỘ PHỔ NĂNG LƯỢNG VÀ HÀM TỰ
TƯƠNG QUAN CỦA TÍN HIỆU
4.1:
Code:
L = 500; % Chieu dai cua tin hieu là 500 mau
x = randn(1,L); % Tao tin hieu ngau nhien theo phan phoi Gauss
x = xcorr(x); % ham tu tuong quan cua x
n = (-L+1):(L-1); % Cac mau gia tri
plot(n,x); % Ve do thi ham tu tuong quan tin hieu ngau nhien
xlabel('n');
ylabel('r_x_x');
title('Ham tu tuong quan');
hold on;
biendo = linspace(-1,1,L); % bien do tang dan
ttquanbiendo = xcorr(biendo); % ham tu tuong quan cua tang dan bien do
plot(n,ttquanbiendo,'c '); % Ve do thi ham tu tuong quan bien do tang dan
biendo = sin(linspace(-10,10,L)); % tin hieu sin
ttquanbiendo = xcorr(biendo); % ham tu tuong quan
plot(n,ttquanbiendo,'k+'); % Ve do thi ham tu tuong quan cua sin
legend('Ngau nhien','Bien do tang dan','Hinh sin')
hold off;
Đồ thị:
Trang 10Câu hỏi 21: Hàm tự tương quan làm tang biên độ dần đều
Câu hỏi 22: Giá trị lớn nhất nằm khoảng giữa của đồ thị ở điểm n=0
Câu hỏi 23: Tín hiệu khác nhau cho ra hàm tự tương quan khác nhau
4.2:
Code:
L = 50; % do dai tin hieu
N = 500; % So luong cac tan so roi rac [0;2pi]
w = linspace(0,2*pi,N); % Tao N tan so tang dan tu 0 den 2*pi
x = rand(1,L);
fx = freqz(x,1,w); % Bien doi Fourier cac tan so roi rac
esd_x = fx.*conj(fx); % Tinh mat do pho nang luong
acorr_x = xcorr(x); % Tinh tu tuong quan cua x
ft_acorr_x = freqz(acorr_x,1,w).*exp(j*w*(L-1)); % Bien doi Fourier ham tu tuong quan cua x
Trang 11Câu hỏi 24: trong miền tần số thì phổ của tín hiệu rời rạc nó liên tục
Câu hỏi 25: phổ biên độ của esd_x có biên độ gần như đều nhau còn phổ biên độ của ft_acorr_x có biên
độ tăng dần đều
Câu hỏi 26: ta có w= 2pif => 2f=w/pi = wk/N
Câu hỏi 27: Chọn N càng lớn thì độ chính xác càng cao nhưng đổi lại về hiệu năng
Chính vì vật N ít nhất bằng 20
Câu hỏi 28: để phân tích hệ thống LTN khi mà biến đổi Fourier không tồn tại
Trang 12BÀI SỐ 5: MÃ ĐƯỜNG DÂY NRZ
5.1:
Code:
len = 100000; % Do dai dong bit mo phong
SNR_db = 0:2:8; % Tao vector SNR_db = 0 2 4 6 8
SNR = 10.^(SNR_db/10); % Doi SNR tu deci sang lan
bsignal = randi([0 1],1,len); % Dong bit ngau nhiên do dai len
NRZ_signal = bsignal*2-1; % Bien doi dòng bit 0 1 sang -1 1
N0 = 1./SNR;
for i=1:length(SNR_db)
tap_am = sqrt(N0(i))*randn(1,len); % Tao tap am noise voi ti so SNR(i)
receive_tinhieu = NRZ_signal + tap_am; % Tin hieu thu duoc = Tin hieu NRZ ben phat + tap am
giaima_NRZ = sign(receive_tinhieu); % Giai ma tin hieu NRZ thu duoc
[n,BER(i)] = symerr(giaima_NRZ,NRZ_signal); % so sanh voi ber ban dau
va tinh xac suat loi
Trang 13Câu hỏi 29: Vì mã đường dây chuyển đổi chuỗi số nhị phân thành tín hiệu số, mục đích để truyền thông tin số
Câu hỏi 30: Nếu SNR tang thì xác suất lỗi giảm vì bản chất chúng nó tỷ lệ nghích với nhau, chính vì vật đồ thị mô phỏng phù hợp với lý thuyết
Câu hỏi 31: Trường hợp này là trường hợp không mang dấu vì NRZ có 2 loại là đơn cực và lưỡng cực5.2:
Code:
len = 100000; % Do dai dong bit mo phong
SNR_db = 0:2:8; % SNR_db = 0 2 4 6 8
SNR = 10.^(SNR_db/10); % Doi SNR tu deci sang lan
bsignal = randi([0 1],1,len); % Dong bit ngau nhiên do dai len
NRZ_signal = bsignal*2-1; % Bien doi dòng bit 0 1 sang -1 1
N0 = 1./SNR;
for i=1:length(SNR_db)
tap_am = sqrt(N0(i))*randn(1,len); % Tao tap am noise voi ti so SNR(i)
receive_tinhieu = NRZ_signal + tap_am; % Tin hieu thu duoc = Tin
Trang 14hieu NRZ ben phat + tap am
giaima_NRZ = sign(receive_tinhieu); % Giai ma tin hieu NRZ thu duoc
[n,BER(i)] = symerr(giaima_NRZ,NRZ_signal); % so sanh voi ber ban dau
va tinh xac suat loi
end
plot(SNR_db,BER,'ko '); % Ve do thi BER
Pe = 1/2*(1-erf(sqrt(SNR)/sqrt(2))); % Xac suat loi theo ly thuyet
hold on;
plot(SNR_db,Pe,'mx:');
xlabel('SNR_d_B');
ylabel('BER');
legend('Mo phong','Ly thuyet');
title('Do thi so sanh ly thuyet và mong phong theo ty le loi');
Đồ thị:
Theo lý thuyết: 0.1587 0.1040 0.0565 0.0230 0.0060
Theo mô phỏng: 0.1584 0.1031 0.0553 0.0224 0.0059
Trang 15Nhận xét: dựa vào đồ thị thì mô phỏng gần đúng với lý thuyết
Trang 16BÀI SỐ 6: KỸ THUẬT ĐIỀU CHẾ SỐ QPSK
Code:
len = 50000; % Do dai dong bit mo phong
SNR_db = 0; % SNR co don vi Decibel
SNR = 10^(SNR_db/10); % Doi SNR tu Decibel sang lan
tinhieunhiphan = randi([0 1],1,len); % Tao dong bit ngau nhien do dai len
Es = std(tinhieu_qpsk)^2; % Nang luong
N0 = Es/SNR; % Cong suat noise
nhieu_gauss = sqrt(N0/2)*(randn(1,length(tinhieu_qpsk))
+j*randn(1,length(tinhieu_qpsk)));
awgn_qpsk = tinhieu_qpsk + nhieu_gauss; % tin hieu di qua kenh AWGN
plot(awgn_qpsk,'.'); % Ve do thi voi tin hieu co nhieu
Trang 17Với SNR = 3db:
Trang 18Với SNR =6db:
Trang 19Câu hỏi 33: Mục đích để truyền tín hiệu đi xa, còn nguyên nhân là do để phù hợp với kênh truyền, còn mục đích khối điều chế để xử lý tín hiệu truyền đi
Câu hỏi 34: Từ các đồ thị ta thấy tín hiệu nó bao quanh các chòm sao
Câu hỏi 35: Khi thay đổi SNR thì các điểm nó tiến sát gần hơn các chòm sao
Câu hỏi 36: Năng lượng kí hiệu là 3db còn năng lượng bit là 1.5db
Trang 20BÀI SỐ 7: XÁC SUẤT LỖI BIT TRONG ĐIỀU CHẾ QPSK
Code:
len = 50000; % Do dai dong bit mo phong
SNR_db = 0:2:8; % Tao vector SNR_db = 0 2 4 6 8
SNR = 10.^(SNR_db/10); % Doi SNR tu Decibel sang lan
tinhieunhiphan = randi([0 1],1,len); % Tao dong bit ngau nhien do dai len
% Thuc hien dieu che QPSK
Pb = 1/2*erfc(1/sqrt(2).*sqrt(SNR)); % Xac suat loi bit
plot(SNR_db,Pb,'ko '); % Ve do thi ly thuyet
xlabel('SNR_d_B');
ylabel('BER');
title('Do thi ty le bit loi ly thuyet va mo phong');
hold on;
plot(SNR_db,BER); % Ve do thi BER mo phong
legend('Ly thuyet','Mo phong');
hold off;
Trang 21Đồ thị:
Pb lý thuyết 0.1587 0.1040 0.0565 0.0230 0.0060
BER mô phỏng 0.1573 0.1048 0.0569 0.0237 0.0065
Câu hỏi 37: BPSK và QPSK từ chứng minh trên cho thấy xác suất lỗi giống nhau
Câu hỏi 38:Ứng dụng: 3G, truyền hình số, mạng không dây
Trang 22BÀI SỐ 8: MÔ PHỎNG ĐIỀU CHẾ M-QAM QUA KÊNH NHIỄU GAUSS
8.1:
Code:
n_sym = 50000; % So ky tu dieu che
M = [16 32 64]; % So symbol ky hieu
SNR_db = 0:25; % Tao vector SNR = 0 - 25 Decibel
BER = zeros(length(M),length(SNR_db)); % BER de luu ti le loi bit
for i = 1:size(M,2) % size(M,2) la so cot cua M
s_stream = randi([0 M(i)-1],1,n_sym); % Tao dong bieu tuong do dai n_sym
s_mod = qammod(s_stream,M(i),0,'GRAY'); % Dieu che M-QAM
for r = 1:size(SNR_db,2) % Vong lap tinh BER
tinhhieuquaawgn = awgn(s_mod,SNR_db(r),'measured'); % Tin hieu qua nhieu
giaidieuchetinhieu = qamdemod(tinhhieuquaawgn,M(i),0,'GRAY'); % Giaidieu che M-QAM
[num ratio] = biterr(s_stream,giaidieuchetinhieu); % Tinh ti le loi bit
BER(i,r) = ratio; % Luu ti le loi bit vao BER
Trang 23SNR 0dB 5dB 10dB 15dB 20dB 25dB 16-QAM 0.2888 0.1635 0.0777 0.0092 0 0
32-QAM 0.3303 0.2240 0.1376 0.0419 0.0018 0
64-QAM 0.3597 0.2626 0.1740 0.0795 0.0150 0.0001
Câu hỏi 39: Khi M tang thì BER tang theo
Câu hỏi 40: M càng lên cao thì khả năng khối phục tín hiệu càng khó