Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 15 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
15
Dung lượng
345,52 KB
Nội dung
BÀI CÂN BẰNG TRONG TRUYỀN THƠNG KHƠNG DÂY Nhóm 7: Họ tên Nguyễn Phùng Hiếu Trần Văn Hải Bùi Văn Hậu Nguyễn Thị Hậu Trần Ngọc Hồng Hạnh Phạm Đỗ Thành Đạt Mssv 18200103 18200091 18200097 18200099 18200093 18200079 CÂU 1: HIỂU Ý NGHĨA CÂN BẰNG x=[1-i; 1+i; 1+i; 0]; % thông tin h=[1-2i 1-i]; % đáp ứng kênh y=conv(x,h); % nhân chập thông tin với đáp ứng kênh y= -1.0000 - 3.0000i 3.0000 - 3.0000i 5.0000 - 1.0000i 2.0000 + 0.0000i 0.0000 + 0.0000i hf= fft(y,4)./fft(x,4); % thông tin truyền % lấy y chia cho x ước lượng đáp ứng cân hef=1./hf % nghịch đảo đáp ứng cân df= fft(y,4).*hef; % biến đổi fourie nhân với đáp ứng cân hef =0.1538 + 0.2308i 0.0790 + 0.2698i fft(y,8) =9.0000 - 7.0000i -3.4142 -13.6569i df =3.0000 + 1.0000i 3.4142 - 2.0000i d=ifft(df,8) % lấy ifft ngược lại d= 1.0000 - 1.0000i 1.0000 + 1.0000i 1.0000 + 1.0000i -0.0000 + 0.0000i 0.0000 + 0.0000i -0.0000 - 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i %thông tin nhận CÂU 2: HIỂU Ý NGHĨA CÂN BẰNG TRÊN MATLAB SIMULINK Bộ cân - Tạo chuỗi bit truyền - Bắt đầu điều chế QPSK tạo tín hiệu x(t) sau qua kênh truyền h(t) miền thời gian tạo tín hiệu ngõ y(t) - Ta biến đổi FFT để chuyển đổi miền thời gian sang miền tần số, ta thu X(f) Y(f) - Tìm đáp ứng tần số miền tần số, H(f) = Y(f)/X(f) sau qua đáp ứng cân tức lấy nghịch đảo 1/H(f) rút gọn X(f)/Y(f) - Biến đổi ngược IFFT giải điều chế QPSK để khơi phục tín hiệu d(t) - KẾT LUẬN: Với số lỗi 0, cân hoạt động theo lý thuyết khơi phục thành cơng tín hiệu ban đầu truyền CÂU 3: Kiểm tra lý thuyết kênh Rayleigh Kết luận: Theo kết ta thấy điểm kết xét từ mơ hình xét theo giá trị EbNo [0 10] nằm sát với đường lý thuyết vẽ qua bertool Vậy kết luận mơ hình hoạt động với lý thuyết Câu 4: BER: Nhận xét: Mơ hình cân nhân lại với conj(h) chưa chia lại cho abs(h)^2 nên mơ hình cân bằng, với tỉ lệ lỗi lớn so với lý thuyết CÂU 5: Cân với chỗi huấn luyện ¼ Nhận xét: mơ hình sau nhân conj(h) chia abs(h)^2 giống với lý thuyết clear all; clc; % Simulation parameters -%Mô EbNo từ đến 24 với bước nhảy %dB EbN0dB = 0:2:24; %chuyển qua tuyến tính: EbN0 = 10.^(EbN0dB/10); % EbN0 of each symbol of UE %số vòng lặp nloop = 500; %năng lượng symbol lượng nhiễu EsN0dB = EbN0dB + 10*log10(2); %số symbol vòng truyền nSym = 500; %kênh truyền có tap nTap = 2; % %biến để đếm số lỗi: so sánh bit truyền với bit nhận %một mảng toàn số với hàng, chiều dài EbN0 errors = zeros(1,length(EbN0dB)); % %Mô giá trị EbN0 for i=1:length(EsN0dB) %từng giá trị lặp lại 500 lần %sau chạy xong vịng thứ nhảy từ lên tiếp tụ lặp 500 lần for j=1:nloop %****************Transmitter********************** % Data and Modulation %khởi tạo bit truyền với hàm random: tạo mảng hàng, chiều dài nSym*2, giá trị %2 bit = symbol → truyền 500 symbol nên phải: nSym*2 Bit_data = randsrc(1,nSym*2,[0,1]); %chuyển chuỗi bit nhị phân sang thập phân %reset chuỗi bit data thành nSym hàng, cột %gom số nhị phân hàng chuyển thành số thập phân %sau chuyển bị thành hàng qamdata = bi2de(reshape(Bit_data,nSym,2),'left-msb')'; %maping = bin2gray(qamdata,'qam',4); %điều biến qam lệnh qammod %khi điều biến xong tín hiệu truyền số phức x = qammod(qamdata,4,'UnitAveragePower', true); %tín hiệu truyền cho qua kênh truyền %****************Channel Modeling********************** % Rayleigh fading %khỏi tạo kênh truyền hàm random hàng nTap = cột cộng thêm phần ảo %1/sqrt(2): chuẩn hóa cơng suất lên h = 1/sqrt(2)*(randn(1,nTap) + 1i*randn(1,nTap)); %chuyển sang miền tần số H = fft(h,nSym); %AWGN %chuyển từ dB sang tuyến tính EsN0_lin = 10^(EsN0dB(i)/10); %giá trị cơng suất var_noise = 1/(2*EsN0_lin); % Sigma^2 = No/2 = 1/(2*EsN0_lin) %nhiễu AWGN noise = sqrt(var_noise)*(randn(1,length(x) + nTap-1) + 1i*randn(1,length(x)+nTap-1)); %tín hiệu nhận tín hiệu truyền nhân chập với đáp ứng kênh công thêm nhiễu AWGN r = conv(x,h) + noise; %Phía thu thực cân % ********************* Receiver ***********************% %Equalization %tín hiệu thu chuyển sang miền tần số %tín hiệu thu chia đáp ứng kênh Xhat=fft(r,nSym)./H; %chuyển sang miền thời gian xhat=ifft(Xhat); %thu tín hiệu sau cân %Demodulation %tiến hành giải điều biến hàm qamdemod demod=qamdemod(xhat*sqrt(2),4); %chuyển sang chuỗi nhị phân hàm de2bi %truyền tín hiệu sau giải điều biến vào hàm %chuyển từ số thập phân sang số nhị phân data=de2bi(demod',2,'left-msb'); %thu chuỗi bit %reset lại giống chuỗi bit ban đầu để dễ so sánh Bit_data_de=reshape(data,1,nSym*2); % Calculate Errors %lấy lỗi dùng hàm biterr %so sánh bit giải mã với bit truyền ban đầu [numErrors]=biterr(Bit_data_de,Bit_data); errors(i)=errors(i)+numErrors; end end %lấy trung bình tổng số bit lỗi chia trung bình với tổng số symbol truyền tổng số vòng lặp simulatedBER = errors/(nSym*nloop*2) %Vẽ BER %=========================Plot=========================== theoryBER=(1/2)*(1-sqrt(EbN0./(EbN0+1))); %so sánh lý thuyết với thực tế semilogy(EbN0dB,theoryBER,'r-') hold on; semilogy(EbN0dB, simulatedBER,'bo','linewidth',1); grid on; legend('Rayleigh fading ânlytic','Simulation'); title('BER Vs EbNodB over Rayleigh Channel'); xlabel('Eb/No(dB)'); ylabel('BER'); axis([0 24 1e-5 1]) ... 0.0000i 0.0000 + 0.0000i %thông tin nhận CÂU 2: HIỂU Ý NGHĨA CÂN BẰNG TRÊN MATLAB SIMULINK Bộ cân - Tạo chuỗi bit truyền - Bắt đầu điều chế QPSK tạo tín hiệu x(t) sau qua kênh truyền h(t) miền thời... hình hoạt động với lý thuyết Câu 4: BER: Nhận xét: Mơ hình cân nhân lại với conj(h) chưa chia lại cho abs(h)^2 nên mơ hình cân bằng, với tỉ lệ lỗi lớn so với lý thuyết CÂU 5: Cân với chỗi huấn... ban đầu truyền CÂU 3: Kiểm tra lý thuyết kênh Rayleigh Kết luận: Theo kết ta thấy điểm kết xét từ mơ hình xét theo giá trị EbNo [0 10] nằm sát với đường lý thuyết vẽ qua bertool Vậy kết luận mơ