Đăng ký Đăng nhập
Trang chủ Báo cáo bài tập lớn môn mô phỏng hệ thống truyền thông...

Tài liệu Báo cáo bài tập lớn môn mô phỏng hệ thống truyền thông

.PDF
15
13
123

Mô tả:

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG  BÁO CÁO BÀI TẬP LỚN Môn: Mô phỏng hệ thống truyền thông SV thực hiện: MSSV : Lớp : Lê Văn Mạnh B12DCVT122 D12VT3 Hà Nội, 2016 1 Mục lục 1 Nhiệm vụ 1: Mô phỏng qua trình PCM cho tín hiệu tương tự 1.1 Mô tả nhiệm vụ ‒ Mô phỏng quá trình PCM cho tín hiệu tương tự s(t): với MSV: B12DCVT122 s(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 2 1.2 Mô 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ày còn được gọi là tín hiệu điều chế biên độ xung PAM. Tín hiệu tương tự được lấ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 chu kỳ 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 chu kỳ 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 ‒ Né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én luậ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ệu ra 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.6 ‒ Lượng tử hóa: 3 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ác khoả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ếu số 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ạng P=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ới bướ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. Giải nén luật A ‒ Giả sử tín hiệu vào bộ giải nén là s1(t), tín hiệu ra bộ giải nén là s2(t) ta có |s2(t)|= Tá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 đây không phải là tín hiệu gốc ban đầu do sai số ở khâu lượng tử hóa. Để thu được tí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ẫu tí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ũ ‒ 4 1.3 Kết quả: Tin hieu goc ban tin 3 2 1 0 0 10 20 30 40 50 60 70 80 90 100 6000 7000 8000 9000 10000 Tin hieu thu 10 5 0 -5 0 1000 2000 3000 4000 5000 Hình1.2 Tín hiệu của bản tin gốc và thu Hình1.3 Tín hiệu qua các khâu phía mã hóa 5 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 6 10 10 10 10 10 10 10 tin hieu goc 0 -5 -10 -0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5 0.2 0.3 0.4 0.5 tin hieu sau xu ly 5 0 -5 -10 -0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 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ý 7 1.4 Mã 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_3s plot(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 8 in(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; 9 2 Nhiệm vụ 2: Mô phỏng hệ thống truyền dẫn qua kênh AWGN 2.1 Mô 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.2 Mô tả hệ thống và các tham số mô phỏng a. Sơ đồ khối hệ thống dòng bít vào Bộ điều chế 16QAM AWGN Bộ giải điều chế 16QAM b. Các tham số Dòng bit vào: ‒ Dòng bít vào từ nhiệm vụ 1 Điều chế 16-QAM: ‒ 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 10 E0 bi sin ( 2πf c t ) T si (t) = + E0 a i co s ( 2πf c t ) T Trong đó Eo là năng lượng mỗi bit, 0≤t≤T ai 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 s i = [ s i1 s i2 ] T si1 = ∫ si (t)φ1 (t) = 0 T si2 = ∫ s i (t)φ2 (t) = Trong đó: ‒ 0 E0 bi 2 E0 ai 2 , φ1(t)=- và φ2(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àm modulate. 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ền má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ông suấ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ân trướ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ới M là số trạng thái, ‒ 11 2.3 Kế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 12 Hình 2.2: Biểu đồ dạng tín hiệu phát và thu Hình 2.3: Biểu đồ mắt tín hiệu phát và thu 13 Hình 2.4: Mật độ phổ công suất tín hiệu phát và thu 2.4 Mã chương trình bit=Code; % dau vao la chuoi bit thuc hien o nhiemvu 1 14 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 va chuoi 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)*(1cos(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)*(1cos(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) semilogy(f2,Pf2);grid; title('PSD tin hieu thu') 15
- Xem thêm -

Tài liệu liên quan

Tài liệu xem nhiều nhất