Добавил:
salahtinov.ilua2010.ru@gmail.com Реклама разрешена - рекламирую. Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб 2 МИС

.docx
Скачиваний:
4
Добавлен:
09.08.2022
Размер:
49.89 Кб
Скачать

Министерство Цифрового Развития, Связи и Массовых Коммуникаций Российской Федерации Федеральное Государственное Бюджетное Образовательное Учреждение Высшего Образования Ордена Трудового Красного знамени «Московский технический университет связи и информатики»

Кафедра Информационная Безопасность

Лабораторная работа №2

на тему: «Оптимальное прекодирование в системах MIMO»

Москва, 2021

Цель работы: получить навыки работы с программой MATLAB, ознакомиться с процедурой оптимальной адаптивной передачи сигналов в системах MIMO с помощью сингулярного разложения SVD (Singular Value Decomposition)

Код программы:

clc; clear; SNR=0:1:10 Modulator1 = comm.RectangularQAMModulator('ModulationOrder',16,'BitInput',true,'PhaseOffset',0,'NormalizationMethod','Average power'); Demodulator1 = comm.RectangularQAMDemodulator('ModulationOrder',16,'BitOutput',true,'PhaseOffset',0,'NormalizationMethod','Average power'); Modulator2=comm.RectangularQAMModulator('ModulationOrder',16,'BitInput',true,'PhaseOffset',0,'NormalizationMethod','Average power'); Demodulator2=comm.RectangularQAMDemodulator('ModulationOrder',16,'BitOutput',true,'PhaseOffset',0,'NormalizationMethod','Average power'); Postavte_5_pozhaluista = semilogy(SNR,res1(4, Modulator1, Demodulator1),'-o', SNR, res2(4, Modulator2, Demodulator2), '--x'); ylabel('BER'); xlabel('Eb/No, dB'); legend('QAM-16 optimal precoded', 'QAM-16'); set(Postavte_5_pozhaluista,'LineWidth',3); grid; function result = res1(bits, Modulator, Demodulator) N =2; M = 2; SNR=0:1:10 result=zeros(1,length(SNR)); H = randn(M,N)+1i*randn(M,N); % U - левая унитарная матрица % S - Матрица сингулярных чисел % V - правая матрица [U, S, V] = svd(H) Precoding_matr = V/S; % Precoded_msg = Precoding_matr*symbol_msg; % y = H*Precoded_msg + noise; H_demodulate = U'; for index2=1:1000 for index=1:10 msg=randi([0 1],[N*bits,1]); symbol_msg=step(Modulator,msg); disp=0.01; Precoded_msg = Precoding_matr*symbol_msg; noise=sqrt(disp)*(randn(M,1)+1i*randn(M,1)+1i*randn(M,1)); y = H*Precoded_msg + noise; demodulate_msg = step(Demodulator, H_demodulate*y); [count, probability]=biterr(msg, demodulate_msg); result(index) = result(index) + probability/SNR(index); end end for index=1:10 result(index)= result(index)/1000; end end function result = res2(bits, Modulator, Demodulator) N=2; M=2; H=(randn(M,N)+1i*randn(M,N)); SNR= 0:1:10; result=zeros(1,length(SNR)); for index2=1:1000 for index=1:10 msg=randi([0 1],[N*bits,1]); symbol_msg=step(Modulator,msg); disp=0.01; noise=sqrt(disp)*randn(M,1)+1i*randn(M,1)+1i*randn(M,1); y=H*symbol_msg+noise; H_decorr=pinv(H); demodulate_msg=step(Demodulator, H_decorr*y); [count, probability]=biterr(msg, demodulate_msg); result(index)= result(index)+ probability/SNR(index); end end for index=1:10 result(index)= result(index)/1000; end end

Рисунок 1. График зависимости BER от ОСШ

Вывод: в данной лабораторной работе мы получили навыки работы с программой MATLAB, ознакомились с процедурой оптимальной адаптивной передачи сигналов в системах MIMO с помощью сингулярного разложения SVD (Singular Value Decomposition)

Соседние файлы в предмете Моделирование информационных систем