Задание №1 – Основы программирования в среде MATLAB :



Федеральное государственное бюджетное образовательное учреждение высшего образования «Московский авиационный институт

(Национальный исследовательский университет)»

 

Институт №4 «Радиоэлектроника, инфокоммуникации и информационная безопасность»

 

Кафедра 408 «Инфокоммуникации»

 

 

Отчет

По практическим занятиям

По учебной дисциплине: «Общая теория связи-1»  

 

Вариант № 8

 

Работу выполнил:

Студент 2 курса

Группы М4О-211Б-19

Уланов О.О.

 

Работу принял:

Ассистент каф.408 «Инфокоммуникации»

Тяпкин П.С.

 

 

Москва

2021г.


 

Оглавление

Основы программирования в среде MATLAB. 2

Задание ПЗ №1. 2

Задание к ПЗ №2. 2

Задание к ПЗ №3. 3

Индивидуальные задания. 4

Задание №1 – Основы программирования в среде MATLAB: 4

Задание №2 – Разработка программ и построение графиков функций в среде MATLAB. 5

Задание №3 - Расчёт статистических и спектрально-временных характеристик сигналов. 6

Задание №4 - Расчёт зависимостей вероятностей битовой ошибки от отношения сигнал- шум для различных методов модуляции-демодуляции. 9

Задание №5 - Имитационное моделирование процессов формирования, цифровой обработки и определения спектрально-временных характеристик стохастических сигналов в среде MATLAB/Simulink. 11

Задание №6 - Разработка имитационной модели цифровой РСПИ и определение спектрально-временных характеристик её сигналов в среде MATLAB/Simulink. 19

Задание №7 - Планирование и проведение в среде MATLAB/Simulink экспериментов с имитационной моделью цифровой РСПИ с целью определения характеристик её помехоустойчивости. 24

Задание №8 - Разработка имитационной модели цифровой РСПИ (на основе QAM модуляции) и проведение в среде MATLAB/Simulink экспериментов с данной моделью с целью определения характеристик её помехоустойчивости. 26

 


 

Основы программирования в среде MATLAB

Задание ПЗ №1.

1) Построить график функции:
2) Код программы:

% Уланов Олег М4О-211Б-19

% Задаю область значений аргумента

X = -20:20;

% Задаю функцию

Y = abs(X+1) + abs(X-4);

% Строю график через ф-ю PLOT

plot(X,Y,'LineWidth', 2);

xlabel('Аргумент');

ylabel('Значение функции');

title('Отчет по ПЗ #1');

 

ax = gca;

ax.XAxisLocation = 'origin';

ax.YAxisLocation = 'origin';

grid on;

3) Результат:

Задание к ПЗ №2.

1) Описать функции disp и format, используя документацию MatLab:

2) format: синтаксис: format style или format, в первом случае происходит форматирование вывода программы по параметру style: short (4 цифры после запятой), long (15 цифр п.з. для double и 7 цифр для single), shortE (4 цифры п.з. с указанием степени), longE (15 цифр п.з. для double и 7 для single с указанием степени), shortG (shortE без степени если возможно), longG (longE без степени если возможно), shortEng (shortE со степенью из трехзначного числа), longEnd (аналогично ShortEng), + (положит/негативное или равное нулю число), bank (текущий формат с 2 цифрами после запятой), hex (16-ричное представление двоичного double числа), rat (простая дробь). Выделение вывода функцией format: compact (на следующей строке будет выведено требуемое числовое значение под знаком равенства), loose (аналогично, но свободно, т.е. с пропуском одной строки). Во втором случае формат вывода сбрасывается к виду по умолчанию.

3) disp: синтаксис disp(X): показывает значение передаваемой переменной без ее имени, используется для вывода строк, удобного вывода массива, когда не требуется его название, для вывода гипертекста.

Задание к ПЗ №3.

find fliplr

1) Описать функции find и fliplr, используя документацию MatLab:

2) fliplr: отражает массив слева направо. Синтаксис B = fliplr(A) возвращает массив A с его столбцами, инвертированными в лево-правильном направлении (то есть, от вертикальной оси).

Если A вектор-строка, затем fliplr(A) возвращает вектор из той же длины с порядком ее инвертированных элементов. Если A вектор-столбец, затем fliplr(A) просто возвращает A. Для многомерных массивов, fliplr работает с плоскостями, сформированными первыми и вторыми измерениями. Входной массив в виде вектора, матрицы, многомерного массива, таблицы или расписания. Поддерживает комплексные числа. fliplr(A) эквивалентно flip(A,2).

3) Find: Синтаксис k = find(x), то есть k = find(<условие>) или [i, j] = find(X), т.е. [i, j] = find(<условие>), или [i, j, s] = find(X), т.е. [i, j, s] = find(<условие>). Функция k = find(x) определяет индексы ненулевых элементов вектора x; если таких элементов нет, то результатом является пустой вектор. Если входом является матрица X, то при данном способе вызова функции find она рассматривается как вектор-столбец x(i), образованный объединением столбцов исходной матрицы.

Функция [i, j] = find(X) возвращает индексы строк и столбцов ненулевых элементов матрицы X; часто используется при работе с разреженными матрицами.

Функция [i, j, s] = find(X) возвращает индексы, а также вектор-столбец s ненулевых элементов матрицы X.

Если в качестве аргумента функции find используется условие, то первые две функции обладают теми же свойствами, а функция [i, j, s] = = find(<условие>) будет формировать в качестве вектора s вектор единиц вместо значений ненулевых элементов.

Индивидуальные задания

Задание №1 – Основы программирования в среде MATLAB :

1) 1. Вычислить суммы элементов столбцов с помощью оператора sum(A); 2. Вывести результаты суммы элементов строк матрицы с помощью оператора транспонирования A'; 3. Вывести результаты суммы элементов главной диагонали с помощью оператора diag(A); 4. Вычислить сумму элементов анти диагонали (из левого нижнего угла матрицы в правый верхний) с помощью оператора симметричного отражения относительно вертикальной оси fliplr(A).

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

% Ulanov Oleg M4O-211B-19

Matrix = [33+44.4j,    6,          2+10j;

     89,         -73+4.44j,   54;

    -122+76.6j,   67+5.56j,  -56-6j];

format shortG

format compact

disp(Matrix);

% Task 1:

SumCmn = sum(Matrix);

fprintf("Task 1, answer: \n");

disp(SumCmn);

% Task 2:

% Транспонируем НЕ сопряженную матрицу

SumStr = sum(Matrix.');

fprintf("Task 2, answer: \n");

disp(SumStr);

% Task 3:

DiagSum = sum(diag(Matrix));

fprintf("Task 3, answer:");

disp(DiagSum);

% Task 4:

ADSum = sum(diag(fliplr(Matrix)));

fprintf("Task 4, answer:");

disp(ADSum)

Результат:

3) Вывод: в ходе проделанной работы были освоены основные принципы написания программ на языке программирования MATLAB, были получены навыки работы с m-файлом и программой MATLAB в режиме калькулятора; выполнены простейшие алгебраические вычисления (сумма заданных элементов матрицы) и работа с матрицами (транспонирование, нахождение диагонали и анти-диагонали ) с помощью соответствующих операторов (транспонирование, диагональ, оператор симметричного отражения относительного вертикальной оси).


Дата добавления: 2022-11-11; просмотров: 32; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!