Задание №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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!