Mô phỏng hệ thống truyền dẫn tín hiệu tương tự
Trang 1Học Viện Công Nghệ Bưu Chính Viễn
Thông
MÔ PHỎNG HỆ THỐNG TRUYỀN THÔNG
November 2017
Giảng viên : Ngô Thị Thu Trang
Sinh viên :
BÀI TẬP
LỚN
Trang 2BÀI TẬP LỚN - MPHTTT|
MỤC LỤC I MÔ PHỎNG HỆ THỐNG TRUYỀN DẪN TÍN HIỆU TƯƠNG TỰ 1
I.1 Mô tả hệ thống mô phỏng và các tham số được sử dụng trong mô phỏng 1
I.2 Kết quả mô phỏng và nhận xét đánh giá 1
I.3 Mã chương trình 11
II MÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐ 13
II.1 Mô tả hệ thống mô phỏng và các tham số được sử dụng trong mô phỏng 13
II.2 Kết quả mô phỏng và nhận xét đánh giá 13
II.3 Mã chương trình 18
Trang 3MÔ PHỎNG HỆ THỐNG TRUYỀN DẪN TÍN HIỆU TƯƠNG TỰMÔ PHỎNG HỆ THỐNG TRUYỀN
DẪN TÍN HIỆU TƯƠNG TỰ
1
I MÔ PHỎNG HỆ THỐNG TRUYỀN DẪN TÍN HIỆU TƯƠNG TỰ
I.1 Mô tả hệ thống mô phỏng và các tham số được sử dụng trong
mô phỏng
a, Sơ đồ hệ thống
b, Các tham số mô phỏng
Tín hiệu tương tự:
3
1 2
1
( ) k (2 k( ( 1)k ))
k
s t A cos f t t
Mã SV B14DCVT077, vậy theo đề bài có f1 0 Hz f , 2 7 Hz f , 3 7 Hz
Đề bài cho: A lần lượt là [1, 2, 1] i
Điều biến mã xung PCM:
Sử dụng kỹ thuật nén – dãn theo luật = 255
Tần số lấy mẫu fs 4* fkmax
= 4*7 =28 Hz
I.2 Kết quả mô phỏng và nhận xét đánh giá
a, Kết quả mô phỏng
Bộ mã hóa Chuỗi bit
Bộ nén biê độ
Bộ lượng tử hóa đều Tín hiệu
tương tự
Trang 4MÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐMÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐ
2
Tín hiệu gốc:
-2 -1 0 1 2 3
4 Bieu dien tin hieu goc
time (s)
Tín hiệu lượng tử hóa:
0 0.5 1 1.5 2 2.5 3 3.5 -2
-1 0 1 2 3
4 Bieu dien tin hieu goc va tin hieu luong tu hoa
time (s)
Tin hieu goc Tin hieu luong tu hoa
Trang 5MÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐMÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐ
3
Tín hiệu sau khôi phục
0 0.5 1 1.5 2 2.5 3 3.5 -2
-1 0 1 2 3
4 Bieu dien tin sau khoi phuc
time (s)
Trang 6MÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐMÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐ
4
Tín hiệu trước và sau khôi phục
0 0.5 1 1.5 2 2.5 3 3.5 -2
-1 0 1 2 3
4 Bieu dien tin hieu goc va sau khoi phuc
time (s)
Tin hieu sau khoi phuc Tin hieu goc
Phổ tín hiệu
-15 -10 -5 0 5 10 15
10-5
100 Pho tin hieu goc
-15 -10 -5 0 5 10 15
10-10
10-5
100 Pho tin hieu luong tu hoa
-15 -10 -5 0 5 10 15
10-10
10-5
100 Pho tin hieu khoi phuc
Trang 7MÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐMÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐ
5
Sai số
0 0.5 1 1.5 2 2.5 3 3.5 0
0.02 0.04 0.06 0.08 0.1 0.12
time (s)
b, Nhận xét đánh giá
Thực hiện mô phỏng ta thấy mã hóa PCM có tổn thất
Sai số lớn khi biên độ tín hiệu thay đổi lớn, sai số nhỏ khi biên độ tín hiệu ít
có sự thay đổi
Tín hiệu khôi phục có dạng tương tự tín hiệu gốc.
Trang 8MÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐMÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐ
6
I.3 Mã chương trình
Assgnmt1.m
%=========================================================================%
% Sinh vien: Duong Van Hai, Lop D14VT3 %
% Ma sv: B14DCVT077, f1=0, f2=7, f3=7 %
% Tan so lay mau Fs= 28 Hz
%=========================================================================%
close all; clear; clc;
f = [0 7 7] % Tan so cua cac thanh phan
% Thuc hien lay mau trong 3 giay (3 chu ki tin hieu); toc do 28 mau/s
Fs = 28; % Tan so lay mau
t = 0:1/Fs:(3*Fs+1)/Fs; % Vecto thoi gian
% Tao tin hieu tuong tu theo de bai
s = cos(2*pi*f(1)*(t+ ((-1).^2)*t.^2)) + 2*cos(2*pi*f(2)*(t+((-1).^3)*t.^2))+ cos(2*pi*f(3)*(t+ ((-1).^4)*t.^2));
%=============================== Cau b ====================================%
mu = 255; % He so nen
M = 32; % so muc luong tu
[y,amax] = mulaw(s,mu); % nen bien do
[code,yq,sqnr] = uniform_pcm(y,M); % luong tu hoa PCM
xq = invmulaw(yq,mu); % giai nen tin hieu
xq = xq*amax; % giai nen bien do
%=============================== Cau c ====================================%
figure(1) plot(t,s,'r ','linewidth',2); % Tin hieu goc
title ('Bieu dien tin hieu goc','fontsize',15);
xlabel('time (s)'); ylabel('Amplitude');
figure(2) hold on
plot(t,s,'r ','linewidth',2); % tin hieu goc
stairs(t,yq); % tin hieu luong tu hoa
title ('Bieu dien tin hieu goc va tin hieu luong tu hoa','fontsize',15);
xlabel('time (s)'); ylabel('Amplitude');
legend('Tin hieu goc','Tin hieu luong tu hoa');
figure(3) plot(t,xq,'g'); % Tin sau khoi phuc
title ('Bieu dien tin sau khoi phuc','fontsize',15);
xlabel('time (s)'); ylabel('Amplitude');
figure(4) plot(t,xq,'g'); hold on; % Tin hieu sau khoi phuc
plot(t,s,'r ','linewidth',2); % Tin hieu goc
title ('Bieu dien tin hieu goc va sau khoi phuc','fontsize',15);
xlabel('time (s)'); ylabel('Amplitude');
legend('Tin hieu sau khoi phuc','Tin hieu goc');
% Bieu dien pho tin hieu
figure(5) subplot(3,1,1);
[f,Xf] = spectrocal(t,s); semilogy(f,Xf);grid; % Pho tin hieu goc
title('Pho tin hieu goc');
subplot(3,1,2);
[f,Yf] = spectrocal(t,yq); semilogy(f,Yf);grid; % Pho tin hieu luong tu hoa
title('Pho tin hieu luong tu hoa');
subplot(3,1,3);
[f,Zf] = spectrocal(t,xq); semilogy(f,Zf);grid; % Pho tin hieu khoi phuc
Trang 9MÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐMÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐ
7
title('Pho tin hieu khoi phuc');
%=============================== Cau d ===================================%
% Xac dinh va bieu dien sai so tai SNR tuong ung
error = (s-xq).^2; % Xac dinh sai so
figure(6) plot(t,error); % Bieu dien sai so
title('Sai so','fontsize',13);
xlabel('time (s)'); ylabel('error');
mulaw.m
% Mu-law nonlinearity for nonuniform PCM
% x - input sequence
% mu - mu constant
% y - compressed output
% a - maximum amplitute
% Written by Nguyen Duc Nhan - 2012
a = max(abs(x)); % tinh bien do max
y = sign(x).*log(1+mu*abs(x/a))/log(1+mu); % tin hieu sau nen bien do
uniform_pcm.m
% Uniform PCM encoding of a sequence
% x = input sequence
% M = number of quantization levels
% code = the encoded output
% xq = quantized sequence before encoding
% sqnr = signal to quantization noise ratio in dB
% Written by Nguyen Duc Nhan - 2012
Nb = log2(M);
Amax = max(abs(x));
delta = 2*Amax/(M-1);
Mq = -Amax:delta:Amax;
Ml = 0:M-1;
xq = zeros(size(x));
xcode = xq;
for k = 1:M ind = find(x > Mq(k)-delta/2 & x <= Mq(k)+delta/2);
xq(ind) = Mq(k);
xcode(ind) = Ml(k);
end sqnr = 20*log10(.mnorm(x)/norm(x-xq));
code = de2bi(xcode,Nb,'left-msb');
Trang 10MÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐMÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐ
8
invmulaw.m
% The inverse of mu-law nonlinearity
% mu - mu constant
% y - compressed input
% x - expanded output
% Written by Nguyen Duc Nhan - 2012
x = sign(y).*((1+mu).^abs(y)-1)/mu;
Trang 11MÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐMÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐ
9
II MÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐ
II.1 Mô tả hệ thống mô phỏng và các tham số được sử dụng trong
mô phỏng
a, Sơ đồ hệ thống
b, Các tham số mô phỏng
Tín hiệu số:
Thu được từ nhiệm vụ 1 sau bộ mã hóa PCM
Mã đường:
Mã sinh viên B14DCVT077, số cuối cùng là số lẻ nên sử dụng mã đường CMI
Bộ lọc phát
Có đáp ứng | H (w) |
2
1+ ( Wc W )4
Thực hiện phương pháp Monte-Carlo để đánh giá hiệu năng với các tham số:
Độ tin cậy mong muốn pc = 95% (zc = 1,96)
Khoảng tin cậy sc = 10-6
Tốc độ lỗi Pe = 10-5
.(1 ).( / ) 40.10 symbols
Hay thực hiện Monte-Carlo với số lỗi tối thiểu 400 lỗi, số kí hiệu tối đa 4.107
symbol.
Công thức tính xác suất lỗi lí thuyết:
_ 4
0
theory PSK
E
N
II.2 Kết quả mô phỏng và nhận xét đánh giá
a, Kết quả mô phỏng
Câu b và d:
Màn hình MATLAB:
Sinh vien Le Cong Duc – 1021010259 – BTL MPHTTT – Bai 2
Tín hiệu sau giải mã
Kênh AWGN
Bộ lọc phát
Mã đường CMI
Tín hiệu
mã hóa PCM
Trang 12MÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐMÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐ
10
Nhap 2 cho y b va d; 3 cho y c: 2 Vector loi ki hieu mo phong ung voi snr tu 0 toi 13dB la (Theo cac tham so: Pe = 10^(-5), Sc = 10^(-6), Pc = 95%
==> N = 40*10^6, minerr = 400)
ser = Columns 1 through 7 0.2917000 0.2472000 0.1968000 0.1551000 0.1124000 0.0765000 0.0448000
Columns 8 through 14 0.0239500 0.0119500 0.0051111 0.0015074 0.0004060 0.0000681 0.0000082
So sánh kết quả mô phỏng đường cong xác suất lỗi với kết quả lý thuyết đối với kiểu điều chế mà hệ thống sử dụng:
Tín hiệu sau điều chế và qua kênh AWGN:
Trang 13MÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐMÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐ
11
Tín hiệu ban đầu và tín hiệu khôi phục:
Biểu đồ chòm sao:
Trang 14MÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐMÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐ
12
Mẫu mắt tín hiệu:
Trang 15MÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐMÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐ
13
Phổ tín hiệu:
b, Nhận xét đánh giá
Trang 16MÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐMÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐ
14
Thực hiện điều chế 4-PSK tín hiệu số với kết quả cho thấy tín hiệu bị ảnh hưởng khá ít bởi nhiễu AWGN khi so với tín hiệu tương tự Qua đó thấy được một ưu điểm của truyền dẫn số bới truyền dẫn tương tự là hạn chế lỗi.
Sai số kí hiệu nhỏ, tại SNR = 13 dB thì SER < 10-5.
Xác suất lỗi ước tính thu được rất gần với giá trị lí thuyết.
II.3 Mã chương trình
Assgnmt2.m
%=========================================================================%
% Le Cong Duc, D10VT6, Ma sv: 1021010259 %
%=========================================================================%
close all;clear;clc;
N = 9; M = 4; R = N*10^6; % Tham so ban dau
Es = 2*10^-6; phi = pi/4; % Nang luong ki hieu va goc quay pha
disp('Sinh vien Le Cong Duc – 1021010259 – BTL MPHTTT – Bai 2 ');
bt=input('Nhap 2 cho y b va d; 3 cho y c: ');
%============================= Cau b va d ===============================%
case 2
Ns_sym = 1; snrmax = 13; fltsw = 0; Nsym = 10^4;
minerr = 400; maxsym=4*10^7; err=zeros(1,snrmax+1); nsym=err;
snr=0:snrmax; snr_lin = 10.^(snr/10); ser = zeros(1,snrmax);
for k = 1:snrmax+1 Done = false;
%=======Vong lap trong=============================%
while ( ~Done ) [t, d, dr, s, s_flt,s_noisy] = Assgnmt2_run(R,M,Nsym,
Ns_sym,snr(1,k),fltsw,Es,phi); % Thuc hien mo phong
ind = d ~= dr; err(1,k) = err(1,k)+ sum(ind);
nsym(1,k)=nsym(1,k)+ Nsym;
Done = err(1,k)>minerr || nsym(1,k)>maxsym; % Dieu kien dung
end ser(1,k) = err(1,k)/nsym(1,k); % Tinh ti le loi ki hieu
end
disp('Vector loi ki hieu mo phong ung voi snr tu 0 toi 13dB la') disp('(Theo cac tham so: Pe = 10^(-5), Sc = 10^(-6), Pc = 95%');
disp('==> N = 40*10^6, minerr = 400)');
format long; ser = single(ser)
ser_theory = 2*qfunc(sqrt(snr_lin)); % SER li thuyet
semilogy(snr,ser,'ro-.','linewidth',2),hold on; semilogy(snr,ser_theory,'b','linewidth',2);
grid on; legend('SER mo phong','SER ly thuyet');
title('Bieu dien xac suat loi ki hieu mo phong va ly thuyet');
xlabel('snr (dB)'); ylabel('Ps');
Trang 17MÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐMÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐ
15
%================================ Cau c ================================%
case 3 snr = 8; Tsym = 1/R; fltsw = 0; Ns_sym = 100; Ns=Ns_sym*Nsym;
[t, d, d_demod, s, s_flt,s_noisy] = Assgnmt2_run(R,M,Nsym,
Ns_sym,snr,fltsw,Es,phi);
[t1, d_demod1, dr1, s1, s_flt1,s_noisy1] = Assgnmt2_run(R,M,
Nsym,Ns_sym,snr,1,Es,phi); % fltsw = 1
dr = d_demod(fix(Ns_sym/2):Ns_sym:end);
k = scatterplot(s_noisy,1,0,'bx'); hold on; scatterplot(s,1,0,'ro',k); legend('Tin hieu thu','Tin hieu phat');
eyediagram(s,Ns_sym,Ns,Ns_sym/2); % Tin hieu phat khong loc
eyediagram(s_flt1,Ns_sym); % Tin hieu phat co loc
eyediagram(s_noisy,Ns_sym,Ns,Ns_sym/2);%Tin hieu thu khong loc
eyediagram(s_noisy1,Ns_sym); % Tin hieu thu co loc
figure;subplot(2,1,1); plot(t,real(s_noisy),'color','b'); grid on; hold on; plot(t,real(s),'r','linewidth',3);
subplot(2,1,2); plot(t,imag(s_noisy),'color','c');
hold on; plot(t,imag(s),'g','linewidth',3); grid on;figure;
stem(d,'-.','MarkerFaceColor','b'); %Tin hieu ban dau
hold on; stem(dr,'r-.'); grid on; %Tin hieu khoi phuc
[f,Sf] = spectrocal(t,s); [fn,Snf] = spectrocal(t,s_noisy);
figure; subplot(2,1,1);semilogy(f,Sf,'r');
title('Pho tin hieu sau dieu che');xlabel('Hz');
subplot(2,1,2);semilogy(fn,Snf,'g');
title('Pho tin hieu qua kenh AWGN');xlabel('Hz');
end
Assgnmt2_run.m
Ns_sym,SNR,fltsw,Es,phi)
% R: toc do ki hieu, M: kich thuoc tap ki hieu
% Nsym: so ki hieu, Ns_sym: so mau tren moi ki hieu
% SNR: SNR chua tin hieu thu (Es/No), fltsw: chon thuc hien loc hay khong
Tsym= 1/R; % Chu ki ki hieu
d = randint(1,Nsym,M); % Tao tin hieu ngau nhien
h = modem.pskmod('M', M, 'SymbolOrder', 'Gray');
dk = modulate(h,d); % Dieu che 4-PSK (chuyen sang mien phuc)
Tw = Nsym*Tsym; % Cua so mien tin hieu
Ts = Tsym/Ns_sym; % Chu ki lay mau
t = 0:Ts:Tw-Ts; % Vector thoi gian
Ns = Tw/Ts; % Tong so mau
%====== Tao tin hieu phat s theo cong thuc de bai cho ============%
if Ns_sym > 1 for k = 1:Ns
Trang 18MÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐMÔ PHỎNG HỆ THỐNG TRUYỀN DẪN SỐ
16
i = fix(t(k)/Tsym+1);
s(1,k) = (sqrt(2*Es/Tsym)*exp(1i*phi))*dk(i);
end; else
s = dk*(sqrt(2*Es/Tsym)*exp(1i*phi));
end; s_flt=0;
%====== Thuc hien loc neu fltsw = 1 va truyen qua kenh AWGN =======%
if fltsw == 1 [BTx,ATx] = butter(5,2/Ns_sym); % Tao tham so bo loc tin hieu phat
[s_flt] = filter(BTx,ATx,s);
s_noisy = awgn(s_flt,SNR,'measured');
else s_noisy = awgn(s,SNR,'measured');
end
%====== Giai dieu che tin hieu thu duoc ===========================%
h1 = modem.pskdemod('M', M, 'SymbolOrder', 'Gray','phaseoffset',pi/4);
dr = demodulate(h1,s_noisy);
spectrocal.m: Như bài 1