HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
BÁO CÁO BÀI TẬP LỚNMôn: Mô phỏng hệ thống truyền thông
SV thực hiện: Lê Văn Mạnh MSSV : B12DCVT122 Lớp : D12VT3
Trang 3
1Nhiệm vụ 1: Mô phỏng qua trình PCM cho tín hiệu tương tự
1.1Mô tả nhiệm vụ‒ Mô phỏng quá trình PCM cho tín hiệu tương tự s(t):
với MSV: B12DCVT122s(t)=1*cos(2*pi*100*t)+2*cos(2*pi*200*t+pi/2)+3*cos(2*pi*200*t+pi/4)
‒ Thực hiện chuyển đổi tín hiệu tương tự thành tín hiệu nhị phân và ngược lại với
tiêu chuẩn nén và giải nén luật A
1.2Mô tả hệ thống mô phỏng và các tham số
Hình 1.1: Hệ thống mã hóa và giải mã PCM sử dụng trong mô phỏng
Mô tả hệ thống và các bước tiến hành mô phỏng:
Lấy mẫu:
‒ Lấy mẫu là quá trình biến đổi tín hiệu tương tự thành một dãy xung rời rạc tuần
hoàn, biên độ xung bằng biên độ tín hiệu tại thời điểm lấy mẫu Dãy xung nàycòn được gọi là tín hiệu điều chế biên độ xung PAM Tín hiệu tương tự đượclấy mẫu bằng cách nhân tín hiệu với chuỗi xung răng lược có chu kỳ bằng chukỳ lấy mẫu
‒ Mô phỏng: Tạo vecto thời gian bắt đầu từ thời điểm 0 đến thời điểm kết thúc tín
hiệu tương tự (T), vecto gồm các phần tử cách đều nhau một khoảng bằng chukỳ xung răng lược: t=0:Ts:T Thay giá trị vecto thời gian vào tín hiệu tương tự,ta được một vecto chứa biên độ các xung PAM
‒ Tham số sử dụng Tín hiệu tương tự được lấy mẫu với tần số fs=8e3 Hz nên chu
kỳ lấy mẫu Ts=1/fs=1.25e-4 s
Trang 4Nén luật A:‒ Bộ nén là một bộ khuếch đại phi tuyến, mục đích của bộ nén này là tạo ra các
mức lượng tử hóa không đều nhằm cải thiện tỷ số tín hiệu trên tạp âm S/N Cóhai phương pháp nén thông dụng là nén luật μ và nén luật A Phương pháp nénluật A như sau: gọi tín hiệu s1(t) là tín hiệu vào bộ nén, tín hiệu s2(t) là tín hiệura ta có mối quan hệ
|s2(t)|=¿
‒ Mô phỏng: Nén luật A có thể thực hiên bằng hàm
compand(s,A,max(s),’A/compressor’) với s là vecto tín hiệu sau lấy mẫu, A làhằng số nén, max(s) là giá trị lớn nhất của s
‒ Tham số sử dụng: Hằng số nén A=87.6Lượng tử hóa:
‒ Lượng tử hóa là quá trình xấp xỉ hóa tín hiệu mẫu tương tự dựa vào số mức
lượng tử M Biên độ của tín hiệu từ GTLN đến GTNN được chia làm cáckhoảng đều nhau gọi là các bước lượng tử Nếu biên độ mẫu tín hiêu tương tựnằm trong bước lượng tử nào thì sẽ được xấp xỉ hóa theo mức lượng tử đó Nếusố mẫu lượng tử càng lớn, khả năng thu được chính xác tín hiệu gốc càng cao
‒ Mô phỏng: Lượng tử hóa thực hiện là đều, sử dụng hàm quantiz(s,P) trong đó s
là tín hiệu mẫu tương tự, P là vecto các mức lượng tử P có dạngP=min(s):delta:max(s) trong đó delta là bước lượng tử
‒ Tham số sử dụng: từ tín hiệu s(t) ta thấy GTLN của tín hiệu là 14 và GTNN của
tín hiệu là -14, số mức lượng tử sử dụng là 256 nên vecto P=-14:28/255:14 vớibước lượng tử delta=28/255
Mã hóa:‒ Là ánh xạ một mức lượng tử thành một từ mã nhị phân Mã hóa thường kết hợp
với bộ A/D, tín hiệu qua bộ mã hóa là các xung vuông có biên độ 0 hoặc 1
‒ Mô phỏng: Sử dụng hàm de2bi để chuyển các mức lượng tử sang từ mã nhị
phân
Giải mã
‒ Ánh xạ từ mã nhị phân 8 bit thành các mức lượng tử có trọng số từ 0=>255.Dựa vào vecto các mức lượng tử Pa để có thể ánh xạ trọng số sang mức biên độbằng thuật toán S(t)=Pa(C(t)+1) trong đó C(t) là trọng số mức lượng tử, S(t) làtín hiệu thu được
Trang 5Tái tạo dạng tín hiệu
‒ Tín hiệu sau bộ giải nén luật A là tín hiệu tương tự ở phía phát Tuy nhiên đâykhông phải là tín hiệu gốc ban đầu do sai số ở khâu lượng tử hóa Để thu đượctín hiệu một cách chính xác, nó được đưa qua một bộ nội suy làm tăng số mẫutín hiệu
‒ Trong mô phỏng sử dụng hàm interp(x,s) để tăng tần số lấy mẫu trong đó x làtín hiệu cần nội suy, s là tỷ số tần số lấy mẫu mới so với tần số lấy mẫu cũ
1.3Kết quả:
012
-505
Hình1.2 Tín hiệu của bản tin gốc và thu
Trang 6Hình1.3 Tín hiệu qua các khâu phía mã hóa
Hình 1.4: Tín hiệu lấy mẫu gốc và tín hiệu giải mã sau xử lý thu được
Trang 710-5
-0.5-0.4-0.3-0.2-0.100.10.20.30.40.510-10
10-5100
Hình1.5 PSD của tín hiệu phát ở dạng xung vuông nhị phân và tín hiệu thu sau xử lý
Trang 81.4Mã chương trình
% %% nhiem vu 1
fs=8e3; % tần số lấy mẫu
step=1/fs; % chu kỳ lấy mẫu
A=87.6; % hằng số nén luật A
t=0:step:1; % vecto thời gian- quá trình lấy mẫu
Pa=-14:28/255:14; % vecto các mức lượng tử hóa, biên độ lớn nhất và nhỏ nhất có thể của s(t) là 14 và -14
s(t)=1*cos(2*pi*100*t)+2*cos(2*pi*200*t+pi/2)+3*cos(2*pi*200*t+pi/4);% quátrình lấy mẫu
sc = compand(s,A,max(s),'A/compressor');% nén luật A
C=quantiz(sc,Pa); % lượng tử hóa% quá trình mã hóa và biến đổi từ ma trận sang veto nhị phân
Code=(de2bi(C))';Code=(Code(:))';%
S=zeros(1,length(C));
% quá trình giải mã
for k=1:length(C)S(k)=Pa(C(k)+1);
end
SC = compand(S,A,max(S),'A/expander');% giải nén luật A
SC=interp(SC,100);% quá trình nội suy, tấn số lấy mẫu mới=100.fs% ve hinh
figure(1) subplot(2,1,1)
for k=1:100 plot(k:0.01:k+0.99,Code(k)*[0 ones(1,98) 0],'color','r') hold on
end
title('Tin hieu goc ban tin') axis([0,100,0,3])
subplot(2,1,2) plot(SC(1:100*100)) title('Tin hieu thu') hold on;
figure(2)subplot(3,1,1)num_3s=3*(1/100)/step;%
stem(t(1:num_3s),s(1:num_3s))title('Dang tin hieu lay mau o 3 chu ky dau tien, fs=8e3 Hz')subplot(3,1,2)
stem(t(1:num_3s),sc(1:num_3s))title('Dang tin hieu qua bo nen ')subplot(3,1,3)
%
for k=1:num_3splot(t(k):step/99:t(k+1),sc(k)*[0 ones(1,98) 0],'color','b')hold on
end
title('Dang tin hieu qua bo luong tu hoa 256 muc')figure(3)
subplot(2,1,1)plot(t(1:num_3s),s(1:num_3s))title('Tin hieu goc lay mau fs=8e3 Hz')subplot(2,1,2)
%
plot(step/100:step/100:3*1/100,SC(1:num_3s*100))title('Tin hieu thu sau bo noi suy co tan so lay mau= 100.fs')figure(4)
subplot(2,1,1) one=ones(1,5);in=[];d=1;
for k=1:5:100*1*2
Trang 9in(k:k+4)=one*Code(d);d=d+1;
end
[Pf,f]=SP(0:length(in)-1,in); semilogy(f,Pf)
title('tin hieu goc') 6
subplot(2,1,2) [Pf1,f1]=SP(0:100*100-1,SC(1:100*100)); semilogy(f1,Pf1)
title('tin hieu sau xu ly')hold off;
Trang 10Bộ điều chế16QAM
2Nhiệm vụ 2: Mô phỏng hệ thống truyền dẫn qua kênh AWGN
2.1Mô tả nhiệm vụ‒ Hệ thống truyền dẫn có điều chế, luồng bit vào là luồng bit từ nhiệm vụ 1‒ Điều chế sử dụng là điều chế 16-QAM
‒ Tín hiệu phát có dạng
Trong đó: dk là ký hiệu sau điều chế, p là dạng xung phát, Tsym là chu kỳ xung phát,Փo là pha tín hiệu phát Xung p có dạng
Trong đó Es là năng lượng 1 ký hiệu
2.2Mô tả hệ thống và các tham số mô phỏnga Sơ đồ khối hệ thống
‒ Do điều chế là 16-QAM nên dòng bit vào điều chế được tách làm 4 nhánh, mỗi
nhánh có tốc độ bằng một nửa tốc độ bit ban đầu Trong mô phỏng, tín hiệuđược tách bằng hàm buffer
‒ Điều chế QAM là điều chế biên độ vuông góc, tín hiệu điều chế có dạng
Bộ giải điềuchế 16QAMAWGN
Trang 11a co s 2 f tT
Trong đó Eo là năng lượng mỗi bit, 0≤t≤Tai và bi là cặp số nguyên độc lập được xác định dựa trên vị trí của điểm bản tin, tọađộ vecto Si trong không gian tín hiệu xác định như sau
,
φ1(t)=-t)=-√T2sin (2 pi fc t )
và φ2(t)=-t)=
√T2cos (2 pi fc t )
‒ Điều chế 16-QAM trong mô phỏng: Điều chế QAM trong Matlab được thực
hiện bằng hàm modem.qammod(M) với M=16 là số trạng thái và hàmmodulate
Kênh AWGN
‒ AWGN là tạp âm Gauss trắng thường gây ra do tạp âm nhiệt hoặc tạp âm nềnmáy thu trong các mạch điện Tạp âm Gauss trắng là biến ngẫu nhiên phân bốchuẩn, có kỳ vọng bằng 0 Tạp âm Gauss trắng tác động lên tín hiệu bằng phép+ lên biên độ của tín hiệu
‒ Trong Matlab, mô phỏng kênh AWGN sử dụng hàm awgn(tín hiệu phát,SNR,P)trong đó SNR là tỷ số công suất tín hiệu trên tạp âm có đơn vị là dB, P là côngsuất tín hiệu đơn vị là dBW Nếu không có P coi công suất phát = 0dBW
‒ Trong bài mô phỏng, ta có công suất của tín hiệu trong khoảng thời gian Tsys làP=<(p(t))^2>=3*Es/Tsys, nếu chọn Es=2/3*Tsys thì công suất tín hiệu làP=10*lg(3*Es/Tsys)=0dBW
Giải điều chế 16-QAM
‒ Sau khi tích phân, ta có ký hiệu điều chế ở bộ thu Thực hiện giải điều chế vàđưa vào khối quyết định cứng thu được dòng bit phát
‒ Do trong mô phỏng ký hiệu điều chế là phức nên có thể thực hiện tích phântrước hoặc sau điều chế đều được
‒ Trong Matlab, bộ giải điều chế QAM sử dụng hàm modem.qamdemod(M) vớiM là số trạng thái,
Trang 122.3Kết quảKết quả mô phỏng trên kênh AWGN có SNR= 8dB
Hình 2.1: Biểu đồ chòm sao tín hiệu sau điều chế và tại bộ thu
Trang 13Hình 2.2: Biểu đồ dạng tín hiệu phát và thu
Trang 14Hình 2.4: Mật độ phổ công suất tín hiệu phát và thu
Trang 152.4Mã chương trình
bit=Code; % dau vao la chuoi bit thuc hien o nhiemvu 1
N=0.5*(1024)^2; % toc do ki hieu
Tsys=1/N; %chu ki 1 bit
t=0:Tsys/100:Tsys; %vec to thoi gian
Es=2/3*Tsys; % chon nang luong cho 1 bit sao cho cong suat tin hieu bang 0dbW
pt=(Es/Tsys)^0.5*(1-cos(2*pi*t/Tsys));%dang xung phat
a=modem.qammod(16); % dieu che 16QAM
a.InputType='bit'; % dau vao
bit_in=buffer(bit,4); % chia dong bit thanh 4 nhanh
dsys=modulate(a,bit_in); % thuc hien dieu che chuoi bit
Re_8dB=awgn(dsys,8); % cho qua kenh AWGN
b=modem.qamdemod(16); % giai dieu che 16QAM
b.OutputType='bit'; %
sig_demod=demodulate(b,Re_8dB); %thuc hien giai dieu che QAM
sig_demod=(sig_demod(:))'; %chuyen sang dang vecto
BER_8dB=sum(abs(sig_demod-bit))/length(bit); %so sanh chuoi bit thu duoc vachuoi bit ban dau de tinh BER
figure(5)subplot(2,1,1)plot(dsys,'*') title('Bieu do chom sao tin hieu sau dieu che')subplot(2,1,2)
plot(awgn(dsys,8),'*') title('Bieu do chom sao tin hieu sau qua kenh AWGN Eb/No=8dB')figure(6)
subplot(2,1,1)stem([real(dsys(1)*(1-cos(2*pi*t/Tsys))) imag(dsys(1)*(1-cos(2*pi*t/Tsys)))]) title('Dang xung phat')
subplot(2,1,2)stem([real(awgn(dsys(1)*pt,8/length(pt))) imag(awgn(dsys(1)*pt,8/length(pt)))]) hold on
plot([real(dsys(1)*(1-cos(2*pi*t/Tsys))) imag(dsys(1)*(1-cos(2*pi*t/Tsys)))],'color','r') title('Dang tin hieu tai bo thu')
eye=[];
for k=1:2000 eye=[eye dsys(k)*(1-cos(2*pi*t/Tsys))];
end
eye_a=awgn(eye,8);eyediagram([real(eye) imag(eye)],length(pt)*2) title('Bieu do mat tin hieu phat')
eyediagram([real(eye_a) imag(eye_a)],length(pt)*2) title('Bieu do mat tin hieu tai bo thu')
figure(9)c=[dsys(1)*pt dsys(2)*pt dsys(3)*pt]; %
thu=awgn(c,8); %
[Pf1,f1]=SP(0:length(c)-1,c);[Pf2,f2]=SP(0:length(c)-1,thu);subplot(2,1,1)
semilogy(f1,Pf1);grid;title('PSD tin hieu phat')subplot(2,1,2)