Задания к практическим занятиям (ММ РУиС)

Материал из SRNS
Перейти к: навигация, поиск

Содержание

Занятие 1

Тема занятия: Использование системы контроля версий. Моделирование RC-цепи.

Цели занятия:

  • Создать студенческие репозитории (хранилища) на Google Code.
  • Познакомить студентов с системой контроля версий Subversion (SVN), включая программы-клиенты
  • Познакомить студентов с MATLAB/Octave: интерфейс, переменные, векторы, матрицы, вывод графиков, написание скриптов.
  • Привести пример решения детерминированной математической задачи с помощью компьютерной модели.

Задача 1.1 Использование системы контроля версий

При выполнении практических и лабораторных заданий, а так же домашней подготовке к ним, студенты должны пользоваться личным репозиторием SVN. Для простоты и общности предлагается создавать проекты на Google Code. Это бесплатный сервис для создания собственных репозиториев различных систем контроля версий. Из плюсов - простота, бесплатность, доступность. Минус - ограничение на лицензирование.

Шаг 1. Регистрация аккаунта на googlecode.com

  1. Переходим на страницу https://googlecode.com.
  2. Если уже авторизован другой пользователь - нажимаем кнопку Sign out в правом верхнем углу.
  3. Переходим на страницу авторизации путем нажатия кнопки Sign in в правом верхнем углу, либо Sign in to create a project по центру.
  4. Выбираем Create an account (если в памяти браузера остались данные о старом пользователе, то потребуется более длинная цепочка Manage accounts on this device > Add account > Create an account)
  5. В поле First Name и Last Name студент указывает имя и фамилию соответственно (транслитом, как в загранпаспорте), либо произвольную информацию по собственному усмотрению.
  6. Имя почтового ящика указывается по шаблону: er09.ivanov.ii@gmail.com, где 09 - номер потока, ivanov - фамилия студент, ii - инициалы имени и отчества студента.
  7. Пароль выбирается студентом
  8. Данные о Дне рождения, телефоне, другом почтовом ящике, стране указываются по желанию студента.
  9. Подтверждается согласие с Google Terms of Service и Privacy Policy путем отметки check-box'а, после чего осуществляется переход на следующую страницу кнопкой Next step.
  10. Выбор аватара можно пропустить нажатием кнопки Next step.

Аккаунт создан.

Шаг 2. Создание репозитория

Репозиторий, хранилище - место, где хранятся и поддерживаются какие-либо данные. В рамках курса ММ РТУиС каждый студент будет использовать личный репозиторий системы контроля версий SVN, предоставляемый сервисом Google Code.

  1. Возвращаемся на страницу https://googlecode.com. Выбираем Create a new project.
  2. Заполняем поля:
    1. Project name: mm-er09-ivanov-ii, где mm - математическое моделирование, 09 - номер потока, ivanov - фамилия студента, ii - инициалы имени и отчества
    2. Project summary: "Modeling of radio systems and signals" (или другое по собственному усмотрению)
    3. Description: "Modeling of radio systems and signals: master course" (или другое по собственному усмотрению)
    4. Version control system: Subversion
    5. Source code license: на усмотрение студента
    6. Project label(s): matlab, radio, signals (или другое по собственному усмотрению)
    7. Ввести капчу
  3. Создать репозиторий нажатием кнопки Create project

Шаг 3. Пригласить преподавателей участвовать в проекте

Системы контроля версий созданы не только и не столько для того, чтобы иметь всю историю изменения проекта, а для совместной работы над ним группой. Пригласим поучаствовать во вновь созданном проекте преподавателей.

  1. На странице проекта выбираем Project Home > People > Add member.
  2. Вводим адреса электронной почты gmail преподавателей, например, korogodiniv@gmail.com.
  3. Не изменяем статус - Commiter, нажимаем кнопку Add members

Аккаунты преподавателей добавились в список Project People, теперь они могут следить за проектом, вносить в него правки при необходимости.

Шаг 4. Получить рабочую копию на локальный компьютер

Для пользователей Subversion (GNU/Linux)

Для загрузки рабочей копии проекта с сервера на локальный компьютер используется команда svn checkout. Рабочие каталоги пользователей следует размещать в директории /home/student/Modeling. Пример команды (вводится в окно терминала, например, konsole):

svn checkout https://mm-er09-ivanov-ii.googlecode.com/svn/trunk/ /home/student/Modeling/mm-er09-ivanov-ii --username er09.ivanov.ii@gmail.com

где mm-er09-ivanov-ii - название проекта, er09.ivanov.ii - логин пользователя.

Подсмотреть синтаксис команды можно на веб-странице проекта на вкладке Source > Checkout


Для пользователей TortoiseSVN (Windows)

Для получения новой рабочей копии используется функция SVN Checkout (SVN Извлечь), вызываемая в контекстном меню после нажатия правой кнопкой мыши в требуемой папке.

201302 SVN1.png

В открывшемся окне вводится адрес хранилища и имя папки на компьютере, в которой будет расположена рабочая копия.

201302 SVN2.png

После нажатия кнопки Ok происходит загрузка последней ревизии на локальную машину.

201302 SVN3.png

Шаг 5. Создать структуру каталогов

В каталоге проекта будут храниться файлы всех практических и лабораторных занятий: отчеты, скрипты, графики.

В файловом менеджере операционной системы создаем директории в рабочем каталоге:

/lab
..../1
..../2
..../3
..../4
/praxis
......./1
......./2
......./3
......./4
......./5
......./6
......./7
......./8

Шаг 6. Добавить файлы/каталоги под систему контроля версий

Созданы директории внутри рабочего каталога, но система контроля версий ещё не знает об их существовании, не следит за их изменениями. Необходимо занести директории под контроль SVN'а.

Для пользователей Subversion/RabbitVCS (GNU/Linux)

Добавляем каталоги под контроль версий с помощью кнопки Add в контекстном меню RabbitVCS (аналог консольной команды svn add, вызывается нажатием правой кнопки в файловом менеджере).

201302 SVN5.png

RabbitVCS - графический интерфейс к программе Subversion, установленный в наших лабораториях. Популярный аналог для систем семейства Windows - TortoiseSVN. Пользователи MacOS могут обратить внимание на SmartSVN.

Для пользователей TortoiseSVN (Windows)

Добавляем каталоги под контроль версий с помощью кнопки Add (Добавить) в контекстном меню TortoiseVCS (вызывается нажатием правой кнопки в файловом менеджере).

201302 SVN4.png

Шаг 7. Сделать первый коммит

После выполнения команды Add (Добавить) файлы (каталоги в нашем случае) добавляются в рабочую копию проекта. Командой svn commit (или аналогичной кнопкой в RabbitVCS, TortoiseSVN) производится так называемый "коммит" - добавление новой ревизии на сервер путем отправки туда вашей рабочей копии. Вводится логин вида er09.ivanov.ii@gmail.com, пароль с вкладки Profile > Settings > GoogleCode.com Password веб-страницы аккаунта.

В RabbitVCS (GNU/Linux):

201302 SVN6.png

В TortoiseSVN (Windows):

201302 SVN7.png

Теперь в веб-интерфейсе проекта на вкладке Source > Browse можно наблюдать появление новой ревизии и состояние проекта, ей соответствующее. При этом вы имеете возможность просмотреть и предыдущие ревизии, а если понадобиться - получить их на свой компьютер.

Задача 1.2 Получить задание к лабораторной работе 1, разобрать на примере RC-цепи

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

В рамках практического задания предлагается разобрать подготовку к лабораторной работе на примере примере RC-цепи.

Файлы модели хранить в каталоге praxis/1. Сделать несколько коммитов во время и по завершению работы.

Занятие 2

Тема занятия: Доплеровский сдвиг навигационного сигнала. Описание сигналов антенной решетки.

Цели занятия:

  • развить навыки моделирования: использование векторов, цикл по времени, обработка результатов моделирование, построение графиков и гистограмм.

Задача 2.1 Расчет доплеровского сдвига навигационного сигнала

Постановка задачи:

Автомобильный навигатор является классическим радиоприемным устройством класса аппаратура потребителей спутниковых радионавигационных систем. В процессе своей работы он принимает сигналы от навигационных спутников, оценивает их параметры, выделяет навигационное сообщение, заложенное в сигналах, и, в итоге, решает навигационную задачу - определяет своё местоположение.

Так как навигационные спутники относительно планеты находятся в постоянном движении, да и из-за движения потребителя, возникает эффект Доплера - происходит смещение частоты принимаемого сигнала от номинала. Интересно, в каких пределах может находиться это смещение для неподвижного приемника? Какова гистограмма возможных значений?

Комментарии:

Связь доплеровского сдвига и скорости по линии визирования известна каждому радиотехнику:

\frac{f_d}{f_0} = \frac{V}{c}.

Несущая частота f_0 радионавигационного сигнала известна, задается ИКД. Скорость света c - фундаментальная константа. Остается определить скорость по линии визирования V.

Потребитель по условию задачи неподвижен. Тогда скорость по линии визирования - проекция вектора скорости спутника на линию визирования. Итого, достаточно определить два вектора - орт от спутника к потребителю и вектор скорости спутника.

Для простоты ограничимся "плоской" задачей - когда потребитель попадает на подспутниковую траекторию, угловым вращением Земли так же пренебрежем. Иллюстрация - на рисунке:

20140217 Z2 1 1.png

Выберем СК XOY в которой потребитель расположен на оси OY, его радиус-вектор \mathbf{r}_r = (0, R_e), где R_e - радиус Земли (учет высоты над уровнем моря для Москвы, 170-190 м, слабо повлияет на результат).

Если определим вектор спутника \mathbf{r}_{sv} на любой момент витка, то задача будет почти решена, останется:

  • выбрать те положения, для которых y-координата спутника больше y-координаты потребителя (условие видимости),
  • по приращению координат определить вектор скорости спутника \mathbf{V}_{sv},
  • вычитанием найти вектор потребитель-спутник \mathbf{r}_v задающий линию визирования,
  • определить скорость сближения по линии визирования V_v = - \frac{\mathbf{V}_{sv} \cdot \mathbf{r}_v }{|\mathbf{r}_v|},
  • пересчитать скорость сближения в доплеровский сдвиг.

Определить же радиус-вектор спутника легко. Его длина известна, а скорость вращения - примерно оборот за 12 часов (у нас плоская задача, в которой мы пренебрегли различием ECEF и ECI).

Дальше - дело техники.

Шаги по усложнению модели, если результат неубедителен:

  • учесть вращение Земли (наклонение орбит известно из ИКД),
  • учесть случаи, когда потребитель не попадает под подспутниковую траекторию.

Занятие 3

Тема занятия: Описание сигналов антенной решетки.

Цели занятия:

  • привести пример использования метода комплексных амплитуд;
  • изложить методику расчет диаграммы направленности антенной решетки, востребованную при подготовке ко второй лабораторной работе;
  • освоить создание и использование собственных функций в MATLAB;
  • освоить матричные операции;
  • научиться визуализировать поверхности.

Задача 3.1 Сигналы и диаграмма направленности антенной решетки

Постановка задачи: Сигнал, приходящий из дальней зоны, принимается системой пространственно разнесенных антенн - антенной решеткой. Размеры антенной решетки значительно меньше постоянной времени корреляции принимаемых сигналов (огибающая, в первом приближении, совпадает для сигналов разных антенн).

Конфигурация антенной решетки - четырехэлементная, с расположением антенных элементов в углах квадрата со стороной, равной половине длине волны.

201402 Z2 2 1.png

Построить серию диаграмм направленности при фокусировке в различных направлениях (зенит, отклонение в сторону на 10, 30, 45, 60 градусов).

Комментарии:

Сигналы антенных элементов

Каждая m-я антенна формирует на выходе свой собственный сигнал y_m \left( t \right). При фокусировке производят весовое сложение сигналов различных антенн, получая из нескольких сигналов один.

201402 Antenna.png

По условию задачи можно пренебречь разностью огибающей для различных точек апертуры антенны. Для ряда практических задач это допущение прекрасно выполняется. Тогда сигналы антенн отличаются только фазой несущей, их математическая модель может быть представлена в виде:

\begin{align}
  & y_{1}^{{}}\left( t,\alpha _{s}^{{}},\beta _{s}^{{}} \right)=Ah\left( t \right)\cos \left( \omega _{0}^{{}}t+\varphi _{0}^{{}}\left( t \right)+\varphi _{1}^{{}}\left( t,\alpha _{s}^{{}},\beta _{s}^{{}} \right) \right), \\ 
 & y_{2}^{{}}\left( t,\alpha _{s}^{{}},\beta _{s}^{{}} \right)=Ah\left( t \right)\cos \left( \omega _{0}^{{}}t+\varphi _{0}^{{}}\left( t \right)+\varphi _{2}^{{}}\left( t,\alpha _{s}^{{}},\beta _{s}^{{}} \right) \right), \\ 
 & y_{3}^{{}}\left( t,\alpha _{s}^{{}},\beta _{s}^{{}} \right)=Ah\left( t \right)\cos \left( \omega _{0}^{{}}t+\varphi _{0}^{{}}\left( t \right)+\varphi _{3}^{{}}\left( t,\alpha _{s}^{{}},\beta _{s}^{{}} \right) \right), \\ 
 & y_{4}^{{}}\left( t,\alpha _{s}^{{}},\beta _{s}^{{}} \right)=Ah\left( t \right)\cos \left( \omega _{0}^{{}}t+\varphi _{0}^{{}}\left( t \right)+\varphi _{4}^{{}}\left( t,\alpha _{s}^{{}},\beta _{s}^{{}} \right) \right), \\ 
\end{align}

где A - амплитуда сигналов, h\left( t \right) - огибающая, \omega _{0} - несущая частота, \varphi _{0}^{{}}\left( t \right) - фаза в начале антенной системы координат OXYZ, \varphi _{m}^{{}}\left( t , \alpha _{s}^{{}},\beta _{s}\right ) - фазовый набег относительно фазы в начале антенной системы координат для m-й антенны, \alpha_s, \beta_s - угол места и азимут направления на источник сигнала.

В рамках этой задачи удобно применить метод комплексных амплитуд. Тогда модели сигналов преобразуются к виду

y_{m}^{{}}\left( t \right)= Ah\left( t \right)\operatorname{Re}\left[ e_{{}}^{i\left( \omega _{0}^{{}}t+\varphi _{0}^{{}}\left( t \right) \right)}e_{{}}^{i\varphi _{m}^{{}}\left( t, \alpha _{s}^{{}},\beta _{s} \right)} \right],

обозначим

\dot{y}_{m}^{{}}\left( t \right)= Ah\left( t \right) e_{{}}^{i\varphi _{m}^{{}}\left( t, \alpha _{s}^{{}},\beta _{s} \right)} - комплексная амплитуда сигнала m-ой антенны.

Составим вектор из комплексных амплитуд сигналов различных антенн

\mathbf{\dot{y}}_{{}}^{{}}=\left| \begin{matrix}
   \dot{y}_{1}^{{}} & \dot{y}_{2}^{{}} & \dot{y}_{3}^{{}} & \dot{y}_{4}^{{}}  \\
\end{matrix} \right|_{{}}^{T}=Ah\left( t \right)\cdot \left| \begin{matrix}
   e_{{}}^{i\varphi _{1}^{{}}\left( t,\alpha _{s}^{{}},\beta _{s} \right)} & e_{{}}^{i\varphi _{2}^{{}}\left( t,\alpha _{s}^{{}},\beta _{s} \right)} & e_{{}}^{i\varphi _{3}^{{}}\left( t,\alpha _{s}^{{}},\beta _{s} \right)} & e_{{}}^{i\varphi _{4}^{{}}\left( t,\alpha _{s}^{{}},\beta _{s} \right)}  \\
\end{matrix} \right|_{{}}^{T}.

Вектор комплексных амплитуд при приеме образуется после гетеродинирования сигналов (в передающих устройствах последовательность обратная).


Связь фазовых набегов с направлением на источник сигнала

Фазовый набег относительно фазы в начале антенной системы координат определяется положением антенного элемента и направлением прихода сигнала. Его легко рассчитать зная орт \mathbf{k} на источник и радиус-вектор \mathbf{r}_m антенного элемента.

201402 Z2 2 2.png

Разность хода фазового фронта сигнала \Delta r_m есть скалярное произведение орта и радиус-вектора точки пространства

\Delta r_m = \mathbf{r}_m \cdot \mathbf{k},

фазовый набег связан с разностью хода фазового фронта через длину волны несущей сигнала

\varphi_m = 2 \pi \frac{\Delta r_m}{\lambda}.

Для m-oй антенны и направления \alpha, \beta получаем выражение

{{\varphi }_{m}}\left( \alpha ,\beta  \right)=2\pi \frac{{{\mathbf{r}}_{m}}\cdot \mathbf{k}\left( \alpha ,\beta  \right)}{\lambda }


Алгоритм фокусировки

При фокусировке антенны в направлении углов \alpha_f, \beta_f производится умножение вектора-строки фокусировки на вектор-столбец комплексных сигналов

\dot{U}=\mathbf{\beta_w }\left( \alpha _{f}^{{}},\beta _{f}^{{}} \right)\mathbf{\dot{y}}\left( \alpha _{s}^{{}},\beta _{s}^{{}} \right)_{{}}^{{}}.

Вектор фокусировки определяется ожидаемыми фазовыми набегами для направления фокусировки

\mathbf{\beta_w }\left( \alpha_f ,\beta_f  \right)=\left| \begin{matrix}
   e_{{}}^{-i\varphi _{1}^{{}}\left( t,\alpha_f ,\beta_f  \right)} & e_{{}}^{-i\varphi _{2}^{{}}\left( t,\alpha_f ,\beta_f  \right)} & e_{{}}^{-i\varphi _{3}^{{}}\left( t,\alpha_f ,\beta_f  \right)} & e_{{}}^{-i\varphi _{4}^{{}}\left( t,\alpha_f ,\beta_f  \right)}  \\
\end{matrix} \right|


Диаграмма направленности

Характеристикой направленности называют зависимость нормированной комплексной амплитуды \frac{\dot{U}\left( \alpha _{s}^{{}},\beta _{s}^{{}}|\alpha _{f}^{{}},\beta _{f}^{{}} \right)}{A_i h\left( t \right)} на выходе системы пространственной обработки от направления прихода пробного сигнала \alpha_s,\beta_s при заданном направлении фокусировки \alpha_f,\beta_f. Здесь A_i - амплитуда одного сигнала на выходе всенаправленной антенны.

Функция F\left( \alpha _{s}^{{}},\beta _{s}^{{}}|\alpha _{f}^{{}},\beta _{f}^{{}} \right)=\left| \frac{\dot{U}\left( \alpha _{s}^{{}},\beta _{s}^{{}}|\alpha _{f}^{{}},\beta _{f}^{{}} \right)}{A_ih\left( t \right)} \right|_{{}}^{2} называется диаграммой направленности.

Для принятой модели сигналов диаграмма направленности определяется выражением:

F\left( \alpha _{s}^{{}},\beta _{s}^{{}}|\alpha _{f}^{{}},\beta _{f}^{{}} \right)=F_{am}^{{}}\left( \alpha _{s}^{{}},\beta _{s}^{{}} \right)\left| \mathbf{\beta }\left( \alpha _{f}^{{}},\beta _{f}^{{}} \right)\cdot \left| \begin{matrix}
   e_{{}}^{i\varphi _{1}^{{}}\left( t,\alpha _{s}^{{}},\beta _{s}^{{}} \right)} & e_{{}}^{i\varphi _{2}^{{}}\left( t,\alpha _{s}^{{}},\beta _{s}^{{}} \right)} & e_{{}}^{i\varphi _{3}^{{}}\left( t,\alpha _{s}^{{}},\beta _{s}^{{}} \right)} & e_{{}}^{i\varphi _{4}^{{}}\left( t,\alpha _{s}^{{}},\beta _{s}^{{}} \right)}  \\
\end{matrix} \right|_{{}}^{T} \right|_{{}}^{2},

где F_{am}^{{}}\left( \alpha _{s}^{{}},\beta _{s}^{{}} \right) - диаграмма направленности одного антенного элемента.


Вывод диаграммы направленности в трехмерном виде

Результатом вычислений диаграммы направленности является массив значений F\left( \alpha _{s}^{{}},\beta _{s}^{{}}|\alpha _{f}^{{}},\beta _{f}^{{}} \right) для угла \alpha_s от -180 до 180 градусов, \beta_s от -90 до 90 (данный выбор диапазона углов не соответствует традиционному определению сферических координат, зато удобен для вывода диаграммы направленности):

alpha = deg2rad(-180:2:180);
beta = deg2rad(-90:2:90);
...
F

Для задания поверхности недостаточно задать массивы координат её точек, т.к. нужна информация о том, какие точки являются соседними - что с чем соединять. Поэтому в MATLAB используются не три вектора координат, а три матрицы, задающие сетку параметров.

201402 Z2 2 3.png

Для "растягивания" векторов координат абсцисс и ординат используется функция meshgrid

[alpha_m, beta_m] = meshgrid(alpha, beta);

Значения \alpha_s, \beta_s, F задают три координаты в сферической системе координат. В MATLAB доступны функции построения поверхностей в прямоугольной декартовой системе координат, поэтому перед построением необходимо произвести соответствующее преобразование. Для преобразования из сферической в прямоугольную систему существует функция [x, y, z] = sph2cart(beta_m, alpha_m, F), производящая отображение:

x = F .* cos(alpha_m) .* cos(beta_m);
y = F .* cos(alpha_m) .* sin(beta_m);
z = F .* sin(alpha_m);

Для вывода поверхности используется функция surf(x, y, z)

figure(1);
surf(x, y, z);
xlabel('x'); ylabel('y'); zlabel('z');

Для лучшего восприятия следует сделать равные пределы по всем трем осям

minc = min( [min(min(x)) min(min(y)) min(min(z))] );
maxc = max( [max(max(x)) max(max(y)) max(max(z))] );
xlim([minc maxc]); ylim([minc maxc]); zlim([minc maxc]);

Например, для четвертьволнового вибратора

F = abs(cos(alpha_m).*1);

вывод диаграммы направленности

201402 Z2 2 4.png
Персональные инструменты
Пространства имён

Варианты
Действия
SRNS Wiki
Рабочие журналы
Приватный файлсервер
QNAP Сервер
Инструменты