Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
331,76 KB
Nội dung
Bàitậplớntruyềndẫn- 1 -Bàitập môn học: KỹThuậttruyềndẫnBài I: Biểu diễn tín hiệu của một số mã đường dây và vẽ phổ của chúng. I.1. Mã nguồn chương trình Matlab: 1.Mã NRZ: file nrz_l.m function y=nrz_l(x) for i=1:length(x) if x(i)==0 temp(i) = -1; else temp(i) = +1; end; end y=temp; 2.Mã CMI: file cmi_1.m function y = cmi(x); polar = +1; %chon cuc tinh cua bit 1 dau tien la duong for i=1:length(x) if x(i)==1 temp(2*i-1) = polar; temp(2*i) = polar; polar = -polar; %xac dinh cuc tinh cho bit 1 tiep theo else temp(2*i-1) = -1; temp(2*i) = +1; end end y = temp; Bàitậplớntruyềndẫn- 2 - 3.Mã HDB3: File hdb3.m function y = hdb3(x) next_polar = +1; b=0; %so bit B giua 2 bit V i=1; while i<= length(x) if x(i)==1 temp(i)=next_polar; next_polar = -next_polar; b=b+1; i=i+1; else if (i<=length(x)-3)&(x(i+1)==0) & (x(i+2)==0) & (x(i+3)==0) %truong hop 4 bit 0 lien tiep if mod(b,2)==1 temp(i) = 0; %bit 0 temp(i+1) = 0; %bit 0 temp(i+2) = 0; %bit 0 temp(i+3) = -next_polar;%bit V next_polar = -next_polar; b=0; i=i+4; else temp(i) = next_polar; %bit B temp(i+1) = 0; %bit 0 temp(i+2) = 0; %bit 0 temp(i+3) = next_polar; %bit V next_polar = -next_polar; b=0; i=i+4; end else temp(i)=0; %truong hop 3 bit ke tiep khac 000 i=i+1; end end Bàitậplớntruyềndẫn- 3 - end y=temp; 4. Mã AMI: File ami.m function y=ami(x) b=+1; for i=1: length(x) if x(i)==1 temp(i)=b; b=-b; else temp(i)=0; end end y=temp; 5. Mã Manchester: File manchester.m function y= manchester(x) for i=1 : length(x) if x(i)==1 temp(2*i-1) = +1; temp(2*i) = -1; else temp(2*i-1) = -1; temp(2*i) = +1; end end y=temp; 6. Mã Polar RZ: File polar_RZ function y = polar_RZ(x) for i=1:length(x) if x(i)==1 temp(2*i-1) = 1; temp(2*i) = 0; else temp(2*i-1) = -1; temp(2*i) = 0; end; Bàitậplớntruyềndẫn- 4 - end y=temp; 7. Mã Unipolar RZ: File unipolar_RZ.m function y=unipolar_RZ(x) for i=1:length(x) if x(i)==1 temp(2*i-1) =1; temp(2*i) =0; else temp(2*i-1) =0; temp(2*i) =0; end end y=temp; I.2.Chương trình vẽ và phân tích phổ của tín hiệu ở dạng mã đường dây File maduongday.m clear; %Xoa cac bien hien co bits = 30; %so bit se khao sat t = 1:30; data2 = round(rand(1, bits)); %Ma hoa chuoi du lieu goc% %hdb3 la mot ham duoc dinh nghia o file hdb3.m %ami la mot ham duoc dinh nghia o file ami.m %unipolar_RZ la mot ham duoc dinh nghia o file unipolar_RZ.m disp('chon dang ma duong day'); disp('1: ma NRZ'); disp('2: ma HDB3'); disp('3: ma AMI'); disp('4: ma NRZ_L'); disp('----'); disp('10: RZ'); disp('20: ma polar_RZ'); Bàitậplớntruyềndẫn- 5 - disp('30: ma Manchester'); disp('40: ma CMI'); linecode = input('chon dang ma se phan tich: '); switch linecode %%Truong hop cac ma don bit day du case {1} data3 = data2; TenDoThi='NRZ'; case {2} data3 = hdb3(data2); TenDoThi='HDB3'; case {3} data3=ami(data2); TenDoThi='AMI'; case {4} data3=nrz_l(data2); TenDoThi='NRZ-L'; %Truong hop cac ma co ve khong hay nua bit case {10} data3=RZ(data2); data2=reshape([data2; data2],1,length(data2)*2); t=0.5:0.5:30; TenDoThi='RZ'; case {20} data3=polar_RZ(data2); data2=reshape([data2; data2],1,length(data2)*2); TenDoThi='polar_RZ'; t=0.5:0.5:30; case {30} data3=manchester(data2); data2=reshape([data2; data2],1,length(data2)*2); TenDoThi='Manchester'; t=0.5:0.5:30; case {40} data3=cmi(data2); data2=reshape([data2; data2],1,length(data2)*2); Bàitậplớntruyềndẫn- 6 - TenDoThi='CMI'; t=0.5:0.5:30; otherwise error('nhap gia tri sai'); end %Do thi thoi gian cua du lieu goc subplot(3, 1, 1); stairs(t,data2) ylabel('Bien do'); title(TenDoThi); axis([0 bits+1 -1.2 1.2]); grid off; %Do thi thoi gian cua du lieu da ma hoa subplot(3, 1, 2); stairs(t,data3); ylabel(['Bien do']); axis([0 bits+1 -1.2 1.2]); grid off; %Enconding using NRZ-L% %Mo rong khong gian lay mau% sampleRate = 2; if mod(linecode,10)==0 Y1 = reshape(ones(sampleRate, 1)*data3, 1, sampleRate*bits*2); else Y1 = reshape(ones(sampleRate, 1)*data3, 1, sampleRate*bits); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %tinh FFT va ve do thi pho cong suat% N=sampleRate*bits; if mod(linecode,10) == 0 FFT_Y1 = abs(fft(Y1, N*2))/N/2; FFT_Y1 = fftshift(FFT_Y1); subplot(3, 1, 3); F = [-N:N-1]./N; plot(F, FFT_Y1); Bàitậplớntruyềndẫn- 7 - xlabel('frequency/F_s voi F_s = 4/T_b= 4*f_C_L_K' ) else FFT_Y1 = abs(fft(Y1, N))/N; FFT_Y1 = fftshift(FFT_Y1); F = [-N/2:N/2-1]./N*2; subplot(3, 1, 3); axis([0 1 0 1]); plot(F, FFT_Y1); xlabel('frequency/F_s voi F_s = 2/T_b= 2*f_C_L_K' ) end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% shg; %Ket thuc chuong trinh Một số kết quả cho các trường hợp: Bàitậplớntruyềndẫn- 8 -Bàitậplớntruyềndẫn- 9 -Bàitậplớntruyềndẫn- 10 - [...]... [y,t]=dmod(data1,Fc,Fd,Fs,'qask',M); plot(t,y); otherwise error('nhap sai gia tri yeu cau'); - 12 -Bàitậplớntruyềndẫn end %%%%%%%%%xem ket qua duoi dang do thi%%%%%%%%%%%% shg II.2 Kết quả mô phỏng thu được ASK - 13 - Bài tậplớntruyền dẫn QASK - 14 - Bài tậplớntruyền dẫn PSK - 15 - Bài tậplớntruyền dẫn FSK - 16 - ... tin hieu goc ban dau% subplot(3,1,1); stairs([1:bits],data); - 11 - Bài tậplớntruyền dẫn axis([1 bits -0 .2 1.2] ); subplot(2,1,2) %tinh toan va chuyen 3 bit lien tiep thanh cac muc tin hieu tuong ung for i=1:symbols temp(i)=data(3*i-2)*4+data(3*i-1)*2+data(3*i); end; data1= temp; subplot(3,1,2); stairs([0:symbols-1],data1); axis([0 symbols -0 .2 M] ); %mo rong khong gian lay mau% data1= reshape(ones(Fd,1)*data1,.. .Bài tậplớntruyền dẫn Bài II: Biểu diễn tín hiệu điều chế số II.1.Mã nguồn chương trình %ve tin hieu dieu che so bang goc va phan tich pho cua cac tin hieu nay %cac loai dieu che duoc minh hoa o doan chuong trinh . các trường hợp: Bài tập lớn truyền dẫn - 8 - Bài tập lớn truyền dẫn - 9 - Bài tập lớn truyền dẫn - 10 - Bài tập lớn truyền dẫn - 11 - Bài II: Biểu diễn. thu được ASK Bài tập lớn truyền dẫn - 14 - QASK Bài tập lớn truyền dẫn - 15 - PSK Bài tập lớn truyền dẫn - 16 - FSK