https://www.srns.ru/api.php?action=feedcontributions&user=Korogodin&feedformat=atom
SRNS - Вклад участника [ru]
2024-03-28T12:17:33Z
Вклад участника
MediaWiki 1.20.3
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:CorrStruct.svg
Файл:CorrStruct.svg
2022-10-19T04:36:25Z
<p>Korogodin: </p>
<hr />
<div></div>
Korogodin
https://www.srns.ru/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BE%D1%82%D0%B7%D1%8B%D0%B2%D0%BE%D0%B2
Список отзывов
2022-06-27T16:43:32Z
<p>Korogodin: /* Отзывы научных руководителей */</p>
<hr />
<div>{{Форма3}}<br />
{{TOCright}}<br />
<br />
<br />
== Отзывы рецензентов ==<br />
{| class="wikitable" border="1"<br />
|+ Бакалаврские работы<br />
|-<br />
! Год<br />
! Руководитель<br />
! Рецензент<br />
! Студент<br />
! Файл отзыва<br />
! Текст работы<br />
|-<br />
| 2020<br />
| [[Михайлов М.С.]]<br />
| [[Корогодин И.В.]]<br />
| Малёв Е.Д.<br />
| [[media:20200608_Рецензия_ВКРБ_Малев.odt|odt]]<br />
| [[media:20200608_ВКРБ_Малев.docx|docx]]<br />
|-<br />
| 2019<br />
| [[Михайлов М.С.]]<br />
| [[Корогодин И.В.]]<br />
| Тропина Д.О.<br />
| [[media:Отзыв на бакалаврскую Тропина 2019.docx|docx]]<br />
| -<br />
|-<br />
| 2019<br />
| [[Михайлов М.С.]]<br />
| [[Корогодин И.В.]]<br />
| Пастухова М.С.<br />
| [[media:Отзыв на бакалаврскую Пастухова 2019.odt|odt]]<br />
| -<br />
|-<br />
| 2016<br />
| [[Куликов Р.С.]]<br />
| [[Корогодин И.В.]]<br />
| Антипенкова А.В.<br />
| [[media:Отзыв на бакалаврскую Антипенкова 2016.docx|docx]]<br />
| [[media:2016_ВКРБ_Антипенкова.pdf|pdf]]<br />
|-<br />
| 2014<br />
| [[Шатилов А.Ю.]]<br />
| [[Болденков Е.Н.]]<br />
| Сергеев Н.И.<br />
| [[media:Отзыв на бакалаврскую Сергеев 2014.doc|doc]]<br />
| [[media:20140623 Сергеев Н.И.бакалаврская работа.pdf|pdf]]<br />
|-<br />
| 2014<br />
| [[Болденков Е.Н.]]<br />
| [[Корогодин И.В.]]<br />
| Охлюев О.А.<br />
| [[media:Отзыв_рецензента_на_бакалаврскую_Охлюев_2014.doc|doc]]<br />
| <br />
|-<br />
| 2012<br />
| [[Болденков Е.Н.]]<br />
| [[Корогодин И.В.]]<br />
| Днепров Д.В.<br />
| [[media:Отзыв рецензента на бакалаврскую Днепров Д 2012.doc|doc]]<br />
| <br />
|-<br />
| 2011<br />
| [[Корогодин И.В.]]<br />
| [[Болденков Е.Н.]]<br />
| Мокрушин А.С.<br />
| [[media:Отзыв на бакалаврскую Мокрушин А С 2011.odt|odt]]<br />
| [[media:Бакалаврская работа Мокрушин А.С, 2011.pdf|pdf]]<br />
|-<br />
| 2011<br />
| [[Евсиков Ю.А.]]<br />
| [[Болденков Е.Н.]]<br />
| Ляченков А. В.<br />
| [[media:Отзыв_на_бакалаврскую_Ляченков_А_В_2011.odt|odt]]<br />
| [[media:Цифровое_моделирование_РЭУС.docx|docx]]<br />
|-<br />
| 2011<br />
| [[Корогодин И.В.]]<br />
| [[Нагин И.А.]]<br />
| Колганов А.М.<br />
| [[media:Отзыв_рецензента_на_бакалаврскую_Колганов_2011.doc|doc]]<br />
|<br />
|-<br />
| 2010<br />
| <br />
| [[Болденков Е.Н.]]<br />
| Бычков Р.Ю.<br />
| [[media:Отзыв_на_бакалаврскую_Бычков_2010.odt|odt]]<br />
|<br />
|-<br />
| 2010<br />
| <br />
| [[Болденков Е.Н.]]<br />
| Анохин И.В.<br />
| [[media:Отзыв_на_бакалаврскую_Анохин_2010.odt|odt]]<br />
|<br />
|}<br />
<br />
{| class="wikitable" border="1"<br />
|+ Дипломные работы<br />
|-<br />
! Год<br />
! Руководитель<br />
! Рецензент<br />
! Студент<br />
! Файл отзыва<br />
! Файл работы<br />
|-<br />
| 2016<br />
| [[Болденков Е.Н.]]<br />
| [[Корогодин И.В.]]<br />
| Симонов Е.А.<br />
| [[media:Отзыв_на_диплом_Симонов_Е_А_2016.odt|odt]]<br />
| <br />
|-<br />
| 2013<br />
| Нагин И. А.<br />
| [[Болденков Е.Н.]]<br />
| Куликов И. С.<br />
| [[media:Отзыв на диплом Куликов И С 2013.odt|odt]]<br />
| [[media:|pdf]]<br />
|-<br />
| 2012<br />
| Замолодчиков В. Н.<br />
| [[Болденков Е.Н.]]<br />
| Суриков О. В.<br />
| [[media:Отзыв рецензента на диплом Сурикова 2012.odt|odt]]<br />
| [[media:2012 Диплом Суриков О В.pdf|pdf]]<br />
|}<br />
<br />
{| class="wikitable" border="1"<br />
|+ Магистерские диссертации<br />
|-<br />
! Год<br />
! Руководитель<br />
! Рецензент<br />
! Студент<br />
! Файл<br />
|-<br />
| 2016<br />
| Белянушкин А. С.<br />
| [[Корогодин И.В.]]<br />
| [[Нагин И.А.]]<br />
| [[media:2016_Рецензия_Белянушкин.docx|docx]]<br />
|-<br />
| 2016<br />
| Калитенко Б. В.<br />
| [[Корогодин И.В.]]<br />
| [[Нагин И.А.]]<br />
| [[media:2016_Рецензия_Калитенко.docx|docx]]<br />
|-<br />
| 2016<br />
| Охлюев О. А.<br />
| [[Болденков Е.Н.]]<br />
| [[Нагин И.А.]]<br />
| [[media:Отзыв_рецензента_на_магистерскую_Охлюева_О_А_2016.doc|doc]]<br />
|-<br />
| 2015<br />
| Михайлов М.С.<br />
| [[Корогодин И.В.]]<br />
| Мандель В.И.<br />
| [[media:Отзыв_рецензента_на_магистерскую_Мандель_2015.odt|odt]]<br />
|-<br />
| 2014<br />
| [[Корогодин И.В.]]<br />
| [[Польщиков В.П.]]<br />
| [[Днепров В.В.]]<br />
| [[media:Отзыв_рецензента_на_магистерскую_Днепров_В_В_2014.doc|doc]]<br />
|-<br />
| 2012<br />
| [[Перов А.И.]]<br />
| [[Болденков Е.Н.]]<br />
| [[Захарова Е.В.]]<br />
| [[media:Отзыв на магистерскую Захарова 2012.odt|odt]]<br />
|-<br />
| 2012<br />
| [[Болденков Е.Н.]]<br />
| [[Корогодин И.В.]]<br />
| [[Липа И.В.]]<br />
| [[media:Отзыв_рецензента_на_магистерскую_Липа_2012.doc|doc]]<br />
|-<br />
| 2011<br />
| Пермяков В.А.<br />
| [[Корогодин И.В.]]<br />
| Михайлов М.С.<br />
| [[media:Отзыв_рецензента_на_магистерскую_Михайлов_2011.doc|doc]]<br />
|}<br />
<br />
<br />
{| class="wikitable" border="1"<br />
|+ Кандидатские диссертации<br />
|-<br />
! Год<br />
! Организация<br />
! Руководитель<br />
! Рецензент<br />
! Аспирант<br />
! Файл<br />
|-<br />
| 2013<br />
| МАИ<br />
| Фомин Анатолий Иванович<br />
| [[Болденков Е.Н.]]<br />
| Ялин Андрей Константинович<br />
| [[media:Отзыв на автореферат кандидатской Ялина 2013.odt|odt]]<br />
|}<br />
<br />
== Отзывы научных руководителей ==<br />
{| class="wikitable" border="1"<br />
|+ Бакалаврские работы<br />
|-<br />
! Год<br />
! Руководитель<br />
! Студент<br />
! Файл<br />
|-<br />
| 2022<br />
| [[Корогодин И.В.]]<br />
| Потехин Р.Н.<br />
| [[media:2022_Отзыв_руководителя_на_бакалаврскую_Потехин_Р.doc|doc]]<br />
|-<br />
| 2022<br />
| [[Корогодин И.В.]]<br />
| Калько Д.А.<br />
| [[media:2022_Отзыв_руководителя_Калько.doc|doc]]<br />
|-<br />
| 2022<br />
| [[Корогодин И.В.]]<br />
| Павлов В.А.<br />
| [[media:2022_Отзыв_руководителя_на_бакалаврскую_Павлов_В.doc|doc]]<br />
|-<br />
| 2019<br />
| [[Корогодин И.В.]]<br />
| Михайлова О.К.<br />
| [[media:Отзыв_руководителя_на_бакалаврскую_Михайлова_О_2019.doc|doc]]<br />
|-<br />
| 2014<br />
| [[Корогодин И.В.]]<br />
| Белянушкин Б.В.<br />
| [[media:Отзыв_руководителя_на_бакалаврскую_Белянушкин_2014.doc|doc]]<br />
|-<br />
| 2014<br />
| [[Корогодин И.В.]]<br />
| Калитенко Б.В.<br />
| [[media:Отзыв_руководителя_на_бакалаврскую_Калитенко_2014.doc|doc]]<br />
|-<br />
| 2013<br />
| [[Корогодин И.В.]]<br />
| Павлов М.В.<br />
| [[media:Отзыв руководителя Павлов 2013.odt|odt]]<br />
|-<br />
| 2012<br />
| [[Корогодин И.В.]]<br />
| Днепров В.В.<br />
| [[media:Отзыв руководителя на бакалаврскую Днепров В 2012.doc|doc]]<br />
|-<br />
| 2011<br />
| [[Евсиков Ю.А.]]<br />
| Ляченков А.В.<br />
| jpg: [[media:20110608 Отзыв руководителя на работу Ляченкова 1.jpg|1]], [[media:20110608 Отзыв руководителя на работу Ляченкова 2.jpg|2]]<br />
|-<br />
| 2011<br />
| [[Корогодин И.В.]]<br />
| Колганов А.М.<br />
| [[media:Отзыв_руководителя_Колганов_2011.odt|odt]]<br />
|-<br />
| 2011<br />
| [[Болденков Е.Н.]]<br />
| Ожогин А.В.<br />
| [[media:20110622 Отзыв руководителя бакалаврской Ожогин.odt|odt]]<br />
|-<br />
| 2010<br />
| [[Болденков Е.Н.]]<br />
| [[Липа И.В.]]<br />
| [[media:Отзыв_руководителя_Липа_2010.jpg|jpg]]<br />
|-<br />
| 2010<br />
| [[Болденков Е.Н.]]<br />
| Силаев И.А.<br />
| [[media:Отзыв_руководителя_Силаев_2010.jpg|jpg]]<br />
|}<br />
<br />
{| class="wikitable" border="1"<br />
|+ Дипломные работы<br />
|-<br />
! Год<br />
! Руководитель<br />
! Студент<br />
! Файл<br />
|-<br />
| 2022<br />
| [[Корогодин И.В.]]<br />
| Казанцев К.О.<br />
| [[media:2022_Kazancecev.odt|odt]]<br />
|-<br />
| 2021<br />
| [[Корогодин И.В.]]<br />
| Жеребин В.Р.<br />
| [[media:2021_Zherebin.odt|odt]]<br />
|-<br />
| 2021<br />
| [[Корогодин И.В.]]<br />
| Кагин И.И.<br />
| [[media:2021_Kagin.odt|odt]]<br />
|-<br />
| 2021<br />
| [[Корогодин И.В.]]<br />
| Волнухина Е.Д.<br />
| [[media:2021_Volnuhina.odt|odt]]<br />
|-<br />
| 2019<br />
| [[Корогодин И.В.]]<br />
| Галушко В. Д.<br />
| [[media:20190201_Galushko.odt|odt]]<br />
|-<br />
| 2017<br />
| [[Болденков Е.Н.]]<br />
| Мишин А. И.<br />
| [[media:20170124_Mishin.odt|odt]]<br />
|-<br />
| 2016<br />
| [[Болденков Е.Н.]]<br />
| Симонов Е. А.<br />
| [[media:20160210_Simonov.odt|odt]]<br />
|-<br />
| 2013<br />
| [[Болденков Е.Н.]]<br />
| Ожогин А. В.<br />
| [[media:Ожогин отзыв руководителя диплома 2013.odt|odt]]<br />
|-<br />
| 2012<br />
| [[Болденков Е.Н.]]<br />
| Силаев И. А.<br />
| [[media:Отзыв руководителя Силаев 2012.odt|odt]]<br />
|-<br />
| 2011<br />
| [[Болденков Е.Н.]]<br />
| Павлов Р.В.<br />
| [[media:Отзыв_руководителя_Павлов_2010.odt|odt]]<br />
|-<br />
| 2011<br />
| [[Болденков Е.Н.]]<br />
| Кожухов А.А.<br />
| [[media:Отзыв_руководителя_Кожухов_2010.odt|odt]]<br />
|-<br />
| 2011<br />
| [[Болденков Е.Н.]]<br />
| Жиров Д.В.<br />
| [[media:Отзыв_руководителя_Жиров_2010.odt|odt]]<br />
|}<br />
<br />
{| class="wikitable" border="1"<br />
|+ Магистерские диссертации<br />
|-<br />
! Год<br />
! Руководитель<br />
! Магистрант<br />
! Файл<br />
|-<br />
| 2022<br />
| [[Корогодин И.В.]]<br />
| Мутасов Г.Р.<br />
| [[media:2022_Отзыв_Мутасов_ВКР.odt|odt]]<br />
|-<br />
| 2016<br />
| [[Болденков Е.Н.]]<br />
| Охлюев О. А.<br />
| [[media:Отзыв_руководителя_на_магистерскую_Охлюева_О_А_2016.odt|odt]]<br />
|-<br />
| 2014<br />
| [[Корогодин И.В.]]<br />
| [[Днепров В.В.]]<br />
| [[media:201405_Отзыв_руководителя_Днепров_В.doc|doc]]<br />
|-<br />
| 2011<br />
| Пермяков В.А.<br />
| Михайлов М.С.<br />
| [[media:20110617_Отзыв_руководителя_Михайлов.doc|doc]]<br />
|}<br />
<br />
[[Категория:ГАК]]</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_%D0%9E%D1%82%D0%B7%D1%8B%D0%B2_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8F_%D0%9A%D0%B0%D0%BB%D1%8C%D0%BA%D0%BE.doc
Файл:2022 Отзыв руководителя Калько.doc
2022-06-27T16:43:23Z
<p>Korogodin: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BE%D1%82%D0%B7%D1%8B%D0%B2%D0%BE%D0%B2
Список отзывов
2022-06-27T16:13:39Z
<p>Korogodin: /* Отзывы научных руководителей */</p>
<hr />
<div>{{Форма3}}<br />
{{TOCright}}<br />
<br />
<br />
== Отзывы рецензентов ==<br />
{| class="wikitable" border="1"<br />
|+ Бакалаврские работы<br />
|-<br />
! Год<br />
! Руководитель<br />
! Рецензент<br />
! Студент<br />
! Файл отзыва<br />
! Текст работы<br />
|-<br />
| 2020<br />
| [[Михайлов М.С.]]<br />
| [[Корогодин И.В.]]<br />
| Малёв Е.Д.<br />
| [[media:20200608_Рецензия_ВКРБ_Малев.odt|odt]]<br />
| [[media:20200608_ВКРБ_Малев.docx|docx]]<br />
|-<br />
| 2019<br />
| [[Михайлов М.С.]]<br />
| [[Корогодин И.В.]]<br />
| Тропина Д.О.<br />
| [[media:Отзыв на бакалаврскую Тропина 2019.docx|docx]]<br />
| -<br />
|-<br />
| 2019<br />
| [[Михайлов М.С.]]<br />
| [[Корогодин И.В.]]<br />
| Пастухова М.С.<br />
| [[media:Отзыв на бакалаврскую Пастухова 2019.odt|odt]]<br />
| -<br />
|-<br />
| 2016<br />
| [[Куликов Р.С.]]<br />
| [[Корогодин И.В.]]<br />
| Антипенкова А.В.<br />
| [[media:Отзыв на бакалаврскую Антипенкова 2016.docx|docx]]<br />
| [[media:2016_ВКРБ_Антипенкова.pdf|pdf]]<br />
|-<br />
| 2014<br />
| [[Шатилов А.Ю.]]<br />
| [[Болденков Е.Н.]]<br />
| Сергеев Н.И.<br />
| [[media:Отзыв на бакалаврскую Сергеев 2014.doc|doc]]<br />
| [[media:20140623 Сергеев Н.И.бакалаврская работа.pdf|pdf]]<br />
|-<br />
| 2014<br />
| [[Болденков Е.Н.]]<br />
| [[Корогодин И.В.]]<br />
| Охлюев О.А.<br />
| [[media:Отзыв_рецензента_на_бакалаврскую_Охлюев_2014.doc|doc]]<br />
| <br />
|-<br />
| 2012<br />
| [[Болденков Е.Н.]]<br />
| [[Корогодин И.В.]]<br />
| Днепров Д.В.<br />
| [[media:Отзыв рецензента на бакалаврскую Днепров Д 2012.doc|doc]]<br />
| <br />
|-<br />
| 2011<br />
| [[Корогодин И.В.]]<br />
| [[Болденков Е.Н.]]<br />
| Мокрушин А.С.<br />
| [[media:Отзыв на бакалаврскую Мокрушин А С 2011.odt|odt]]<br />
| [[media:Бакалаврская работа Мокрушин А.С, 2011.pdf|pdf]]<br />
|-<br />
| 2011<br />
| [[Евсиков Ю.А.]]<br />
| [[Болденков Е.Н.]]<br />
| Ляченков А. В.<br />
| [[media:Отзыв_на_бакалаврскую_Ляченков_А_В_2011.odt|odt]]<br />
| [[media:Цифровое_моделирование_РЭУС.docx|docx]]<br />
|-<br />
| 2011<br />
| [[Корогодин И.В.]]<br />
| [[Нагин И.А.]]<br />
| Колганов А.М.<br />
| [[media:Отзыв_рецензента_на_бакалаврскую_Колганов_2011.doc|doc]]<br />
|<br />
|-<br />
| 2010<br />
| <br />
| [[Болденков Е.Н.]]<br />
| Бычков Р.Ю.<br />
| [[media:Отзыв_на_бакалаврскую_Бычков_2010.odt|odt]]<br />
|<br />
|-<br />
| 2010<br />
| <br />
| [[Болденков Е.Н.]]<br />
| Анохин И.В.<br />
| [[media:Отзыв_на_бакалаврскую_Анохин_2010.odt|odt]]<br />
|<br />
|}<br />
<br />
{| class="wikitable" border="1"<br />
|+ Дипломные работы<br />
|-<br />
! Год<br />
! Руководитель<br />
! Рецензент<br />
! Студент<br />
! Файл отзыва<br />
! Файл работы<br />
|-<br />
| 2016<br />
| [[Болденков Е.Н.]]<br />
| [[Корогодин И.В.]]<br />
| Симонов Е.А.<br />
| [[media:Отзыв_на_диплом_Симонов_Е_А_2016.odt|odt]]<br />
| <br />
|-<br />
| 2013<br />
| Нагин И. А.<br />
| [[Болденков Е.Н.]]<br />
| Куликов И. С.<br />
| [[media:Отзыв на диплом Куликов И С 2013.odt|odt]]<br />
| [[media:|pdf]]<br />
|-<br />
| 2012<br />
| Замолодчиков В. Н.<br />
| [[Болденков Е.Н.]]<br />
| Суриков О. В.<br />
| [[media:Отзыв рецензента на диплом Сурикова 2012.odt|odt]]<br />
| [[media:2012 Диплом Суриков О В.pdf|pdf]]<br />
|}<br />
<br />
{| class="wikitable" border="1"<br />
|+ Магистерские диссертации<br />
|-<br />
! Год<br />
! Руководитель<br />
! Рецензент<br />
! Студент<br />
! Файл<br />
|-<br />
| 2016<br />
| Белянушкин А. С.<br />
| [[Корогодин И.В.]]<br />
| [[Нагин И.А.]]<br />
| [[media:2016_Рецензия_Белянушкин.docx|docx]]<br />
|-<br />
| 2016<br />
| Калитенко Б. В.<br />
| [[Корогодин И.В.]]<br />
| [[Нагин И.А.]]<br />
| [[media:2016_Рецензия_Калитенко.docx|docx]]<br />
|-<br />
| 2016<br />
| Охлюев О. А.<br />
| [[Болденков Е.Н.]]<br />
| [[Нагин И.А.]]<br />
| [[media:Отзыв_рецензента_на_магистерскую_Охлюева_О_А_2016.doc|doc]]<br />
|-<br />
| 2015<br />
| Михайлов М.С.<br />
| [[Корогодин И.В.]]<br />
| Мандель В.И.<br />
| [[media:Отзыв_рецензента_на_магистерскую_Мандель_2015.odt|odt]]<br />
|-<br />
| 2014<br />
| [[Корогодин И.В.]]<br />
| [[Польщиков В.П.]]<br />
| [[Днепров В.В.]]<br />
| [[media:Отзыв_рецензента_на_магистерскую_Днепров_В_В_2014.doc|doc]]<br />
|-<br />
| 2012<br />
| [[Перов А.И.]]<br />
| [[Болденков Е.Н.]]<br />
| [[Захарова Е.В.]]<br />
| [[media:Отзыв на магистерскую Захарова 2012.odt|odt]]<br />
|-<br />
| 2012<br />
| [[Болденков Е.Н.]]<br />
| [[Корогодин И.В.]]<br />
| [[Липа И.В.]]<br />
| [[media:Отзыв_рецензента_на_магистерскую_Липа_2012.doc|doc]]<br />
|-<br />
| 2011<br />
| Пермяков В.А.<br />
| [[Корогодин И.В.]]<br />
| Михайлов М.С.<br />
| [[media:Отзыв_рецензента_на_магистерскую_Михайлов_2011.doc|doc]]<br />
|}<br />
<br />
<br />
{| class="wikitable" border="1"<br />
|+ Кандидатские диссертации<br />
|-<br />
! Год<br />
! Организация<br />
! Руководитель<br />
! Рецензент<br />
! Аспирант<br />
! Файл<br />
|-<br />
| 2013<br />
| МАИ<br />
| Фомин Анатолий Иванович<br />
| [[Болденков Е.Н.]]<br />
| Ялин Андрей Константинович<br />
| [[media:Отзыв на автореферат кандидатской Ялина 2013.odt|odt]]<br />
|}<br />
<br />
== Отзывы научных руководителей ==<br />
{| class="wikitable" border="1"<br />
|+ Бакалаврские работы<br />
|-<br />
! Год<br />
! Руководитель<br />
! Студент<br />
! Файл<br />
|-<br />
| 2022<br />
| [[Корогодин И.В.]]<br />
| Потехин Р.Н.<br />
| [[media:2022_Отзыв_руководителя_на_бакалаврскую_Потехин_Р.doc|doc]]<br />
|-<br />
| 2022<br />
| [[Корогодин И.В.]]<br />
| Павлов В.А.<br />
| [[media:2022_Отзыв_руководителя_на_бакалаврскую_Павлов_В.doc|doc]]<br />
|-<br />
| 2019<br />
| [[Корогодин И.В.]]<br />
| Михайлова О.К.<br />
| [[media:Отзыв_руководителя_на_бакалаврскую_Михайлова_О_2019.doc|doc]]<br />
|-<br />
| 2014<br />
| [[Корогодин И.В.]]<br />
| Белянушкин Б.В.<br />
| [[media:Отзыв_руководителя_на_бакалаврскую_Белянушкин_2014.doc|doc]]<br />
|-<br />
| 2014<br />
| [[Корогодин И.В.]]<br />
| Калитенко Б.В.<br />
| [[media:Отзыв_руководителя_на_бакалаврскую_Калитенко_2014.doc|doc]]<br />
|-<br />
| 2013<br />
| [[Корогодин И.В.]]<br />
| Павлов М.В.<br />
| [[media:Отзыв руководителя Павлов 2013.odt|odt]]<br />
|-<br />
| 2012<br />
| [[Корогодин И.В.]]<br />
| Днепров В.В.<br />
| [[media:Отзыв руководителя на бакалаврскую Днепров В 2012.doc|doc]]<br />
|-<br />
| 2011<br />
| [[Евсиков Ю.А.]]<br />
| Ляченков А.В.<br />
| jpg: [[media:20110608 Отзыв руководителя на работу Ляченкова 1.jpg|1]], [[media:20110608 Отзыв руководителя на работу Ляченкова 2.jpg|2]]<br />
|-<br />
| 2011<br />
| [[Корогодин И.В.]]<br />
| Колганов А.М.<br />
| [[media:Отзыв_руководителя_Колганов_2011.odt|odt]]<br />
|-<br />
| 2011<br />
| [[Болденков Е.Н.]]<br />
| Ожогин А.В.<br />
| [[media:20110622 Отзыв руководителя бакалаврской Ожогин.odt|odt]]<br />
|-<br />
| 2010<br />
| [[Болденков Е.Н.]]<br />
| [[Липа И.В.]]<br />
| [[media:Отзыв_руководителя_Липа_2010.jpg|jpg]]<br />
|-<br />
| 2010<br />
| [[Болденков Е.Н.]]<br />
| Силаев И.А.<br />
| [[media:Отзыв_руководителя_Силаев_2010.jpg|jpg]]<br />
|}<br />
<br />
{| class="wikitable" border="1"<br />
|+ Дипломные работы<br />
|-<br />
! Год<br />
! Руководитель<br />
! Студент<br />
! Файл<br />
|-<br />
| 2022<br />
| [[Корогодин И.В.]]<br />
| Казанцев К.О.<br />
| [[media:2022_Kazancecev.odt|odt]]<br />
|-<br />
| 2021<br />
| [[Корогодин И.В.]]<br />
| Жеребин В.Р.<br />
| [[media:2021_Zherebin.odt|odt]]<br />
|-<br />
| 2021<br />
| [[Корогодин И.В.]]<br />
| Кагин И.И.<br />
| [[media:2021_Kagin.odt|odt]]<br />
|-<br />
| 2021<br />
| [[Корогодин И.В.]]<br />
| Волнухина Е.Д.<br />
| [[media:2021_Volnuhina.odt|odt]]<br />
|-<br />
| 2019<br />
| [[Корогодин И.В.]]<br />
| Галушко В. Д.<br />
| [[media:20190201_Galushko.odt|odt]]<br />
|-<br />
| 2017<br />
| [[Болденков Е.Н.]]<br />
| Мишин А. И.<br />
| [[media:20170124_Mishin.odt|odt]]<br />
|-<br />
| 2016<br />
| [[Болденков Е.Н.]]<br />
| Симонов Е. А.<br />
| [[media:20160210_Simonov.odt|odt]]<br />
|-<br />
| 2013<br />
| [[Болденков Е.Н.]]<br />
| Ожогин А. В.<br />
| [[media:Ожогин отзыв руководителя диплома 2013.odt|odt]]<br />
|-<br />
| 2012<br />
| [[Болденков Е.Н.]]<br />
| Силаев И. А.<br />
| [[media:Отзыв руководителя Силаев 2012.odt|odt]]<br />
|-<br />
| 2011<br />
| [[Болденков Е.Н.]]<br />
| Павлов Р.В.<br />
| [[media:Отзыв_руководителя_Павлов_2010.odt|odt]]<br />
|-<br />
| 2011<br />
| [[Болденков Е.Н.]]<br />
| Кожухов А.А.<br />
| [[media:Отзыв_руководителя_Кожухов_2010.odt|odt]]<br />
|-<br />
| 2011<br />
| [[Болденков Е.Н.]]<br />
| Жиров Д.В.<br />
| [[media:Отзыв_руководителя_Жиров_2010.odt|odt]]<br />
|}<br />
<br />
{| class="wikitable" border="1"<br />
|+ Магистерские диссертации<br />
|-<br />
! Год<br />
! Руководитель<br />
! Магистрант<br />
! Файл<br />
|-<br />
| 2022<br />
| [[Корогодин И.В.]]<br />
| Мутасов Г.Р.<br />
| [[media:2022_Отзыв_Мутасов_ВКР.odt|odt]]<br />
|-<br />
| 2016<br />
| [[Болденков Е.Н.]]<br />
| Охлюев О. А.<br />
| [[media:Отзыв_руководителя_на_магистерскую_Охлюева_О_А_2016.odt|odt]]<br />
|-<br />
| 2014<br />
| [[Корогодин И.В.]]<br />
| [[Днепров В.В.]]<br />
| [[media:201405_Отзыв_руководителя_Днепров_В.doc|doc]]<br />
|-<br />
| 2011<br />
| Пермяков В.А.<br />
| Михайлов М.С.<br />
| [[media:20110617_Отзыв_руководителя_Михайлов.doc|doc]]<br />
|}<br />
<br />
[[Категория:ГАК]]</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_%D0%9E%D1%82%D0%B7%D1%8B%D0%B2_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8F_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%BA%D0%B0%D0%BB%D0%B0%D0%B2%D1%80%D1%81%D0%BA%D1%83%D1%8E_%D0%9F%D0%B0%D0%B2%D0%BB%D0%BE%D0%B2_%D0%92.doc
Файл:2022 Отзыв руководителя на бакалаврскую Павлов В.doc
2022-06-27T16:13:14Z
<p>Korogodin: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BE%D1%82%D0%B7%D1%8B%D0%B2%D0%BE%D0%B2
Список отзывов
2022-06-27T16:00:19Z
<p>Korogodin: /* Отзывы научных руководителей */</p>
<hr />
<div>{{Форма3}}<br />
{{TOCright}}<br />
<br />
<br />
== Отзывы рецензентов ==<br />
{| class="wikitable" border="1"<br />
|+ Бакалаврские работы<br />
|-<br />
! Год<br />
! Руководитель<br />
! Рецензент<br />
! Студент<br />
! Файл отзыва<br />
! Текст работы<br />
|-<br />
| 2020<br />
| [[Михайлов М.С.]]<br />
| [[Корогодин И.В.]]<br />
| Малёв Е.Д.<br />
| [[media:20200608_Рецензия_ВКРБ_Малев.odt|odt]]<br />
| [[media:20200608_ВКРБ_Малев.docx|docx]]<br />
|-<br />
| 2019<br />
| [[Михайлов М.С.]]<br />
| [[Корогодин И.В.]]<br />
| Тропина Д.О.<br />
| [[media:Отзыв на бакалаврскую Тропина 2019.docx|docx]]<br />
| -<br />
|-<br />
| 2019<br />
| [[Михайлов М.С.]]<br />
| [[Корогодин И.В.]]<br />
| Пастухова М.С.<br />
| [[media:Отзыв на бакалаврскую Пастухова 2019.odt|odt]]<br />
| -<br />
|-<br />
| 2016<br />
| [[Куликов Р.С.]]<br />
| [[Корогодин И.В.]]<br />
| Антипенкова А.В.<br />
| [[media:Отзыв на бакалаврскую Антипенкова 2016.docx|docx]]<br />
| [[media:2016_ВКРБ_Антипенкова.pdf|pdf]]<br />
|-<br />
| 2014<br />
| [[Шатилов А.Ю.]]<br />
| [[Болденков Е.Н.]]<br />
| Сергеев Н.И.<br />
| [[media:Отзыв на бакалаврскую Сергеев 2014.doc|doc]]<br />
| [[media:20140623 Сергеев Н.И.бакалаврская работа.pdf|pdf]]<br />
|-<br />
| 2014<br />
| [[Болденков Е.Н.]]<br />
| [[Корогодин И.В.]]<br />
| Охлюев О.А.<br />
| [[media:Отзыв_рецензента_на_бакалаврскую_Охлюев_2014.doc|doc]]<br />
| <br />
|-<br />
| 2012<br />
| [[Болденков Е.Н.]]<br />
| [[Корогодин И.В.]]<br />
| Днепров Д.В.<br />
| [[media:Отзыв рецензента на бакалаврскую Днепров Д 2012.doc|doc]]<br />
| <br />
|-<br />
| 2011<br />
| [[Корогодин И.В.]]<br />
| [[Болденков Е.Н.]]<br />
| Мокрушин А.С.<br />
| [[media:Отзыв на бакалаврскую Мокрушин А С 2011.odt|odt]]<br />
| [[media:Бакалаврская работа Мокрушин А.С, 2011.pdf|pdf]]<br />
|-<br />
| 2011<br />
| [[Евсиков Ю.А.]]<br />
| [[Болденков Е.Н.]]<br />
| Ляченков А. В.<br />
| [[media:Отзыв_на_бакалаврскую_Ляченков_А_В_2011.odt|odt]]<br />
| [[media:Цифровое_моделирование_РЭУС.docx|docx]]<br />
|-<br />
| 2011<br />
| [[Корогодин И.В.]]<br />
| [[Нагин И.А.]]<br />
| Колганов А.М.<br />
| [[media:Отзыв_рецензента_на_бакалаврскую_Колганов_2011.doc|doc]]<br />
|<br />
|-<br />
| 2010<br />
| <br />
| [[Болденков Е.Н.]]<br />
| Бычков Р.Ю.<br />
| [[media:Отзыв_на_бакалаврскую_Бычков_2010.odt|odt]]<br />
|<br />
|-<br />
| 2010<br />
| <br />
| [[Болденков Е.Н.]]<br />
| Анохин И.В.<br />
| [[media:Отзыв_на_бакалаврскую_Анохин_2010.odt|odt]]<br />
|<br />
|}<br />
<br />
{| class="wikitable" border="1"<br />
|+ Дипломные работы<br />
|-<br />
! Год<br />
! Руководитель<br />
! Рецензент<br />
! Студент<br />
! Файл отзыва<br />
! Файл работы<br />
|-<br />
| 2016<br />
| [[Болденков Е.Н.]]<br />
| [[Корогодин И.В.]]<br />
| Симонов Е.А.<br />
| [[media:Отзыв_на_диплом_Симонов_Е_А_2016.odt|odt]]<br />
| <br />
|-<br />
| 2013<br />
| Нагин И. А.<br />
| [[Болденков Е.Н.]]<br />
| Куликов И. С.<br />
| [[media:Отзыв на диплом Куликов И С 2013.odt|odt]]<br />
| [[media:|pdf]]<br />
|-<br />
| 2012<br />
| Замолодчиков В. Н.<br />
| [[Болденков Е.Н.]]<br />
| Суриков О. В.<br />
| [[media:Отзыв рецензента на диплом Сурикова 2012.odt|odt]]<br />
| [[media:2012 Диплом Суриков О В.pdf|pdf]]<br />
|}<br />
<br />
{| class="wikitable" border="1"<br />
|+ Магистерские диссертации<br />
|-<br />
! Год<br />
! Руководитель<br />
! Рецензент<br />
! Студент<br />
! Файл<br />
|-<br />
| 2016<br />
| Белянушкин А. С.<br />
| [[Корогодин И.В.]]<br />
| [[Нагин И.А.]]<br />
| [[media:2016_Рецензия_Белянушкин.docx|docx]]<br />
|-<br />
| 2016<br />
| Калитенко Б. В.<br />
| [[Корогодин И.В.]]<br />
| [[Нагин И.А.]]<br />
| [[media:2016_Рецензия_Калитенко.docx|docx]]<br />
|-<br />
| 2016<br />
| Охлюев О. А.<br />
| [[Болденков Е.Н.]]<br />
| [[Нагин И.А.]]<br />
| [[media:Отзыв_рецензента_на_магистерскую_Охлюева_О_А_2016.doc|doc]]<br />
|-<br />
| 2015<br />
| Михайлов М.С.<br />
| [[Корогодин И.В.]]<br />
| Мандель В.И.<br />
| [[media:Отзыв_рецензента_на_магистерскую_Мандель_2015.odt|odt]]<br />
|-<br />
| 2014<br />
| [[Корогодин И.В.]]<br />
| [[Польщиков В.П.]]<br />
| [[Днепров В.В.]]<br />
| [[media:Отзыв_рецензента_на_магистерскую_Днепров_В_В_2014.doc|doc]]<br />
|-<br />
| 2012<br />
| [[Перов А.И.]]<br />
| [[Болденков Е.Н.]]<br />
| [[Захарова Е.В.]]<br />
| [[media:Отзыв на магистерскую Захарова 2012.odt|odt]]<br />
|-<br />
| 2012<br />
| [[Болденков Е.Н.]]<br />
| [[Корогодин И.В.]]<br />
| [[Липа И.В.]]<br />
| [[media:Отзыв_рецензента_на_магистерскую_Липа_2012.doc|doc]]<br />
|-<br />
| 2011<br />
| Пермяков В.А.<br />
| [[Корогодин И.В.]]<br />
| Михайлов М.С.<br />
| [[media:Отзыв_рецензента_на_магистерскую_Михайлов_2011.doc|doc]]<br />
|}<br />
<br />
<br />
{| class="wikitable" border="1"<br />
|+ Кандидатские диссертации<br />
|-<br />
! Год<br />
! Организация<br />
! Руководитель<br />
! Рецензент<br />
! Аспирант<br />
! Файл<br />
|-<br />
| 2013<br />
| МАИ<br />
| Фомин Анатолий Иванович<br />
| [[Болденков Е.Н.]]<br />
| Ялин Андрей Константинович<br />
| [[media:Отзыв на автореферат кандидатской Ялина 2013.odt|odt]]<br />
|}<br />
<br />
== Отзывы научных руководителей ==<br />
{| class="wikitable" border="1"<br />
|+ Бакалаврские работы<br />
|-<br />
! Год<br />
! Руководитель<br />
! Студент<br />
! Файл<br />
|-<br />
| 2022<br />
| [[Корогодин И.В.]]<br />
| Потехин Р.Н.<br />
| [[media:2022_Отзыв_руководителя_на_бакалаврскую_Потехин_Р.doc|doc]]<br />
|-<br />
| 2019<br />
| [[Корогодин И.В.]]<br />
| Михайлова О.К.<br />
| [[media:Отзыв_руководителя_на_бакалаврскую_Михайлова_О_2019.doc|doc]]<br />
|-<br />
| 2014<br />
| [[Корогодин И.В.]]<br />
| Белянушкин Б.В.<br />
| [[media:Отзыв_руководителя_на_бакалаврскую_Белянушкин_2014.doc|doc]]<br />
|-<br />
| 2014<br />
| [[Корогодин И.В.]]<br />
| Калитенко Б.В.<br />
| [[media:Отзыв_руководителя_на_бакалаврскую_Калитенко_2014.doc|doc]]<br />
|-<br />
| 2013<br />
| [[Корогодин И.В.]]<br />
| Павлов М.В.<br />
| [[media:Отзыв руководителя Павлов 2013.odt|odt]]<br />
|-<br />
| 2012<br />
| [[Корогодин И.В.]]<br />
| Днепров В.В.<br />
| [[media:Отзыв руководителя на бакалаврскую Днепров В 2012.doc|doc]]<br />
|-<br />
| 2011<br />
| [[Евсиков Ю.А.]]<br />
| Ляченков А.В.<br />
| jpg: [[media:20110608 Отзыв руководителя на работу Ляченкова 1.jpg|1]], [[media:20110608 Отзыв руководителя на работу Ляченкова 2.jpg|2]]<br />
|-<br />
| 2011<br />
| [[Корогодин И.В.]]<br />
| Колганов А.М.<br />
| [[media:Отзыв_руководителя_Колганов_2011.odt|odt]]<br />
|-<br />
| 2011<br />
| [[Болденков Е.Н.]]<br />
| Ожогин А.В.<br />
| [[media:20110622 Отзыв руководителя бакалаврской Ожогин.odt|odt]]<br />
|-<br />
| 2010<br />
| [[Болденков Е.Н.]]<br />
| [[Липа И.В.]]<br />
| [[media:Отзыв_руководителя_Липа_2010.jpg|jpg]]<br />
|-<br />
| 2010<br />
| [[Болденков Е.Н.]]<br />
| Силаев И.А.<br />
| [[media:Отзыв_руководителя_Силаев_2010.jpg|jpg]]<br />
|}<br />
<br />
{| class="wikitable" border="1"<br />
|+ Дипломные работы<br />
|-<br />
! Год<br />
! Руководитель<br />
! Студент<br />
! Файл<br />
|-<br />
| 2022<br />
| [[Корогодин И.В.]]<br />
| Казанцев К.О.<br />
| [[media:2022_Kazancecev.odt|odt]]<br />
|-<br />
| 2021<br />
| [[Корогодин И.В.]]<br />
| Жеребин В.Р.<br />
| [[media:2021_Zherebin.odt|odt]]<br />
|-<br />
| 2021<br />
| [[Корогодин И.В.]]<br />
| Кагин И.И.<br />
| [[media:2021_Kagin.odt|odt]]<br />
|-<br />
| 2021<br />
| [[Корогодин И.В.]]<br />
| Волнухина Е.Д.<br />
| [[media:2021_Volnuhina.odt|odt]]<br />
|-<br />
| 2019<br />
| [[Корогодин И.В.]]<br />
| Галушко В. Д.<br />
| [[media:20190201_Galushko.odt|odt]]<br />
|-<br />
| 2017<br />
| [[Болденков Е.Н.]]<br />
| Мишин А. И.<br />
| [[media:20170124_Mishin.odt|odt]]<br />
|-<br />
| 2016<br />
| [[Болденков Е.Н.]]<br />
| Симонов Е. А.<br />
| [[media:20160210_Simonov.odt|odt]]<br />
|-<br />
| 2013<br />
| [[Болденков Е.Н.]]<br />
| Ожогин А. В.<br />
| [[media:Ожогин отзыв руководителя диплома 2013.odt|odt]]<br />
|-<br />
| 2012<br />
| [[Болденков Е.Н.]]<br />
| Силаев И. А.<br />
| [[media:Отзыв руководителя Силаев 2012.odt|odt]]<br />
|-<br />
| 2011<br />
| [[Болденков Е.Н.]]<br />
| Павлов Р.В.<br />
| [[media:Отзыв_руководителя_Павлов_2010.odt|odt]]<br />
|-<br />
| 2011<br />
| [[Болденков Е.Н.]]<br />
| Кожухов А.А.<br />
| [[media:Отзыв_руководителя_Кожухов_2010.odt|odt]]<br />
|-<br />
| 2011<br />
| [[Болденков Е.Н.]]<br />
| Жиров Д.В.<br />
| [[media:Отзыв_руководителя_Жиров_2010.odt|odt]]<br />
|}<br />
<br />
{| class="wikitable" border="1"<br />
|+ Магистерские диссертации<br />
|-<br />
! Год<br />
! Руководитель<br />
! Магистрант<br />
! Файл<br />
|-<br />
| 2022<br />
| [[Корогодин И.В.]]<br />
| Мутасов Г.Р.<br />
| [[media:2022_Отзыв_Мутасов_ВКР.odt|odt]]<br />
|-<br />
| 2016<br />
| [[Болденков Е.Н.]]<br />
| Охлюев О. А.<br />
| [[media:Отзыв_руководителя_на_магистерскую_Охлюева_О_А_2016.odt|odt]]<br />
|-<br />
| 2014<br />
| [[Корогодин И.В.]]<br />
| [[Днепров В.В.]]<br />
| [[media:201405_Отзыв_руководителя_Днепров_В.doc|doc]]<br />
|-<br />
| 2011<br />
| Пермяков В.А.<br />
| Михайлов М.С.<br />
| [[media:20110617_Отзыв_руководителя_Михайлов.doc|doc]]<br />
|}<br />
<br />
[[Категория:ГАК]]</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_%D0%9E%D1%82%D0%B7%D1%8B%D0%B2_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8F_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%BA%D0%B0%D0%BB%D0%B0%D0%B2%D1%80%D1%81%D0%BA%D1%83%D1%8E_%D0%9F%D0%BE%D1%82%D0%B5%D1%85%D0%B8%D0%BD_%D0%A0.doc
Файл:2022 Отзыв руководителя на бакалаврскую Потехин Р.doc
2022-06-27T15:59:51Z
<p>Korogodin: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BE%D1%82%D0%B7%D1%8B%D0%B2%D0%BE%D0%B2
Список отзывов
2022-06-27T15:21:25Z
<p>Korogodin: /* Отзывы научных руководителей */</p>
<hr />
<div>{{Форма3}}<br />
{{TOCright}}<br />
<br />
<br />
== Отзывы рецензентов ==<br />
{| class="wikitable" border="1"<br />
|+ Бакалаврские работы<br />
|-<br />
! Год<br />
! Руководитель<br />
! Рецензент<br />
! Студент<br />
! Файл отзыва<br />
! Текст работы<br />
|-<br />
| 2020<br />
| [[Михайлов М.С.]]<br />
| [[Корогодин И.В.]]<br />
| Малёв Е.Д.<br />
| [[media:20200608_Рецензия_ВКРБ_Малев.odt|odt]]<br />
| [[media:20200608_ВКРБ_Малев.docx|docx]]<br />
|-<br />
| 2019<br />
| [[Михайлов М.С.]]<br />
| [[Корогодин И.В.]]<br />
| Тропина Д.О.<br />
| [[media:Отзыв на бакалаврскую Тропина 2019.docx|docx]]<br />
| -<br />
|-<br />
| 2019<br />
| [[Михайлов М.С.]]<br />
| [[Корогодин И.В.]]<br />
| Пастухова М.С.<br />
| [[media:Отзыв на бакалаврскую Пастухова 2019.odt|odt]]<br />
| -<br />
|-<br />
| 2016<br />
| [[Куликов Р.С.]]<br />
| [[Корогодин И.В.]]<br />
| Антипенкова А.В.<br />
| [[media:Отзыв на бакалаврскую Антипенкова 2016.docx|docx]]<br />
| [[media:2016_ВКРБ_Антипенкова.pdf|pdf]]<br />
|-<br />
| 2014<br />
| [[Шатилов А.Ю.]]<br />
| [[Болденков Е.Н.]]<br />
| Сергеев Н.И.<br />
| [[media:Отзыв на бакалаврскую Сергеев 2014.doc|doc]]<br />
| [[media:20140623 Сергеев Н.И.бакалаврская работа.pdf|pdf]]<br />
|-<br />
| 2014<br />
| [[Болденков Е.Н.]]<br />
| [[Корогодин И.В.]]<br />
| Охлюев О.А.<br />
| [[media:Отзыв_рецензента_на_бакалаврскую_Охлюев_2014.doc|doc]]<br />
| <br />
|-<br />
| 2012<br />
| [[Болденков Е.Н.]]<br />
| [[Корогодин И.В.]]<br />
| Днепров Д.В.<br />
| [[media:Отзыв рецензента на бакалаврскую Днепров Д 2012.doc|doc]]<br />
| <br />
|-<br />
| 2011<br />
| [[Корогодин И.В.]]<br />
| [[Болденков Е.Н.]]<br />
| Мокрушин А.С.<br />
| [[media:Отзыв на бакалаврскую Мокрушин А С 2011.odt|odt]]<br />
| [[media:Бакалаврская работа Мокрушин А.С, 2011.pdf|pdf]]<br />
|-<br />
| 2011<br />
| [[Евсиков Ю.А.]]<br />
| [[Болденков Е.Н.]]<br />
| Ляченков А. В.<br />
| [[media:Отзыв_на_бакалаврскую_Ляченков_А_В_2011.odt|odt]]<br />
| [[media:Цифровое_моделирование_РЭУС.docx|docx]]<br />
|-<br />
| 2011<br />
| [[Корогодин И.В.]]<br />
| [[Нагин И.А.]]<br />
| Колганов А.М.<br />
| [[media:Отзыв_рецензента_на_бакалаврскую_Колганов_2011.doc|doc]]<br />
|<br />
|-<br />
| 2010<br />
| <br />
| [[Болденков Е.Н.]]<br />
| Бычков Р.Ю.<br />
| [[media:Отзыв_на_бакалаврскую_Бычков_2010.odt|odt]]<br />
|<br />
|-<br />
| 2010<br />
| <br />
| [[Болденков Е.Н.]]<br />
| Анохин И.В.<br />
| [[media:Отзыв_на_бакалаврскую_Анохин_2010.odt|odt]]<br />
|<br />
|}<br />
<br />
{| class="wikitable" border="1"<br />
|+ Дипломные работы<br />
|-<br />
! Год<br />
! Руководитель<br />
! Рецензент<br />
! Студент<br />
! Файл отзыва<br />
! Файл работы<br />
|-<br />
| 2016<br />
| [[Болденков Е.Н.]]<br />
| [[Корогодин И.В.]]<br />
| Симонов Е.А.<br />
| [[media:Отзыв_на_диплом_Симонов_Е_А_2016.odt|odt]]<br />
| <br />
|-<br />
| 2013<br />
| Нагин И. А.<br />
| [[Болденков Е.Н.]]<br />
| Куликов И. С.<br />
| [[media:Отзыв на диплом Куликов И С 2013.odt|odt]]<br />
| [[media:|pdf]]<br />
|-<br />
| 2012<br />
| Замолодчиков В. Н.<br />
| [[Болденков Е.Н.]]<br />
| Суриков О. В.<br />
| [[media:Отзыв рецензента на диплом Сурикова 2012.odt|odt]]<br />
| [[media:2012 Диплом Суриков О В.pdf|pdf]]<br />
|}<br />
<br />
{| class="wikitable" border="1"<br />
|+ Магистерские диссертации<br />
|-<br />
! Год<br />
! Руководитель<br />
! Рецензент<br />
! Студент<br />
! Файл<br />
|-<br />
| 2016<br />
| Белянушкин А. С.<br />
| [[Корогодин И.В.]]<br />
| [[Нагин И.А.]]<br />
| [[media:2016_Рецензия_Белянушкин.docx|docx]]<br />
|-<br />
| 2016<br />
| Калитенко Б. В.<br />
| [[Корогодин И.В.]]<br />
| [[Нагин И.А.]]<br />
| [[media:2016_Рецензия_Калитенко.docx|docx]]<br />
|-<br />
| 2016<br />
| Охлюев О. А.<br />
| [[Болденков Е.Н.]]<br />
| [[Нагин И.А.]]<br />
| [[media:Отзыв_рецензента_на_магистерскую_Охлюева_О_А_2016.doc|doc]]<br />
|-<br />
| 2015<br />
| Михайлов М.С.<br />
| [[Корогодин И.В.]]<br />
| Мандель В.И.<br />
| [[media:Отзыв_рецензента_на_магистерскую_Мандель_2015.odt|odt]]<br />
|-<br />
| 2014<br />
| [[Корогодин И.В.]]<br />
| [[Польщиков В.П.]]<br />
| [[Днепров В.В.]]<br />
| [[media:Отзыв_рецензента_на_магистерскую_Днепров_В_В_2014.doc|doc]]<br />
|-<br />
| 2012<br />
| [[Перов А.И.]]<br />
| [[Болденков Е.Н.]]<br />
| [[Захарова Е.В.]]<br />
| [[media:Отзыв на магистерскую Захарова 2012.odt|odt]]<br />
|-<br />
| 2012<br />
| [[Болденков Е.Н.]]<br />
| [[Корогодин И.В.]]<br />
| [[Липа И.В.]]<br />
| [[media:Отзыв_рецензента_на_магистерскую_Липа_2012.doc|doc]]<br />
|-<br />
| 2011<br />
| Пермяков В.А.<br />
| [[Корогодин И.В.]]<br />
| Михайлов М.С.<br />
| [[media:Отзыв_рецензента_на_магистерскую_Михайлов_2011.doc|doc]]<br />
|}<br />
<br />
<br />
{| class="wikitable" border="1"<br />
|+ Кандидатские диссертации<br />
|-<br />
! Год<br />
! Организация<br />
! Руководитель<br />
! Рецензент<br />
! Аспирант<br />
! Файл<br />
|-<br />
| 2013<br />
| МАИ<br />
| Фомин Анатолий Иванович<br />
| [[Болденков Е.Н.]]<br />
| Ялин Андрей Константинович<br />
| [[media:Отзыв на автореферат кандидатской Ялина 2013.odt|odt]]<br />
|}<br />
<br />
== Отзывы научных руководителей ==<br />
{| class="wikitable" border="1"<br />
|+ Бакалаврские работы<br />
|-<br />
! Год<br />
! Руководитель<br />
! Студент<br />
! Файл<br />
|-<br />
| 2019<br />
| [[Корогодин И.В.]]<br />
| Михайлова О.К.<br />
| [[media:Отзыв_руководителя_на_бакалаврскую_Михайлова_О_2019.doc|doc]]<br />
|-<br />
| 2014<br />
| [[Корогодин И.В.]]<br />
| Белянушкин Б.В.<br />
| [[media:Отзыв_руководителя_на_бакалаврскую_Белянушкин_2014.doc|doc]]<br />
|-<br />
| 2014<br />
| [[Корогодин И.В.]]<br />
| Калитенко Б.В.<br />
| [[media:Отзыв_руководителя_на_бакалаврскую_Калитенко_2014.doc|doc]]<br />
|-<br />
| 2013<br />
| [[Корогодин И.В.]]<br />
| Павлов М.В.<br />
| [[media:Отзыв руководителя Павлов 2013.odt|odt]]<br />
|-<br />
| 2012<br />
| [[Корогодин И.В.]]<br />
| Днепров В.В.<br />
| [[media:Отзыв руководителя на бакалаврскую Днепров В 2012.doc|doc]]<br />
|-<br />
| 2011<br />
| [[Евсиков Ю.А.]]<br />
| Ляченков А.В.<br />
| jpg: [[media:20110608 Отзыв руководителя на работу Ляченкова 1.jpg|1]], [[media:20110608 Отзыв руководителя на работу Ляченкова 2.jpg|2]]<br />
|-<br />
| 2011<br />
| [[Корогодин И.В.]]<br />
| Колганов А.М.<br />
| [[media:Отзыв_руководителя_Колганов_2011.odt|odt]]<br />
|-<br />
| 2011<br />
| [[Болденков Е.Н.]]<br />
| Ожогин А.В.<br />
| [[media:20110622 Отзыв руководителя бакалаврской Ожогин.odt|odt]]<br />
|-<br />
| 2010<br />
| [[Болденков Е.Н.]]<br />
| [[Липа И.В.]]<br />
| [[media:Отзыв_руководителя_Липа_2010.jpg|jpg]]<br />
|-<br />
| 2010<br />
| [[Болденков Е.Н.]]<br />
| Силаев И.А.<br />
| [[media:Отзыв_руководителя_Силаев_2010.jpg|jpg]]<br />
|}<br />
<br />
{| class="wikitable" border="1"<br />
|+ Дипломные работы<br />
|-<br />
! Год<br />
! Руководитель<br />
! Студент<br />
! Файл<br />
|-<br />
| 2022<br />
| [[Корогодин И.В.]]<br />
| Казанцев К.О.<br />
| [[media:2022_Kazancecev.odt|odt]]<br />
|-<br />
| 2021<br />
| [[Корогодин И.В.]]<br />
| Жеребин В.Р.<br />
| [[media:2021_Zherebin.odt|odt]]<br />
|-<br />
| 2021<br />
| [[Корогодин И.В.]]<br />
| Кагин И.И.<br />
| [[media:2021_Kagin.odt|odt]]<br />
|-<br />
| 2021<br />
| [[Корогодин И.В.]]<br />
| Волнухина Е.Д.<br />
| [[media:2021_Volnuhina.odt|odt]]<br />
|-<br />
| 2019<br />
| [[Корогодин И.В.]]<br />
| Галушко В. Д.<br />
| [[media:20190201_Galushko.odt|odt]]<br />
|-<br />
| 2017<br />
| [[Болденков Е.Н.]]<br />
| Мишин А. И.<br />
| [[media:20170124_Mishin.odt|odt]]<br />
|-<br />
| 2016<br />
| [[Болденков Е.Н.]]<br />
| Симонов Е. А.<br />
| [[media:20160210_Simonov.odt|odt]]<br />
|-<br />
| 2013<br />
| [[Болденков Е.Н.]]<br />
| Ожогин А. В.<br />
| [[media:Ожогин отзыв руководителя диплома 2013.odt|odt]]<br />
|-<br />
| 2012<br />
| [[Болденков Е.Н.]]<br />
| Силаев И. А.<br />
| [[media:Отзыв руководителя Силаев 2012.odt|odt]]<br />
|-<br />
| 2011<br />
| [[Болденков Е.Н.]]<br />
| Павлов Р.В.<br />
| [[media:Отзыв_руководителя_Павлов_2010.odt|odt]]<br />
|-<br />
| 2011<br />
| [[Болденков Е.Н.]]<br />
| Кожухов А.А.<br />
| [[media:Отзыв_руководителя_Кожухов_2010.odt|odt]]<br />
|-<br />
| 2011<br />
| [[Болденков Е.Н.]]<br />
| Жиров Д.В.<br />
| [[media:Отзыв_руководителя_Жиров_2010.odt|odt]]<br />
|}<br />
<br />
{| class="wikitable" border="1"<br />
|+ Магистерские диссертации<br />
|-<br />
! Год<br />
! Руководитель<br />
! Магистрант<br />
! Файл<br />
|-<br />
| 2022<br />
| [[Корогодин И.В.]]<br />
| Мутасов Г.Р.<br />
| [[media:2022_Отзыв_Мутасов_ВКР.odt|odt]]<br />
|-<br />
| 2016<br />
| [[Болденков Е.Н.]]<br />
| Охлюев О. А.<br />
| [[media:Отзыв_руководителя_на_магистерскую_Охлюева_О_А_2016.odt|odt]]<br />
|-<br />
| 2014<br />
| [[Корогодин И.В.]]<br />
| [[Днепров В.В.]]<br />
| [[media:201405_Отзыв_руководителя_Днепров_В.doc|doc]]<br />
|-<br />
| 2011<br />
| Пермяков В.А.<br />
| Михайлов М.С.<br />
| [[media:20110617_Отзыв_руководителя_Михайлов.doc|doc]]<br />
|}<br />
<br />
[[Категория:ГАК]]</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_%D0%9E%D1%82%D0%B7%D1%8B%D0%B2_%D0%9C%D1%83%D1%82%D0%B0%D1%81%D0%BE%D0%B2_%D0%92%D0%9A%D0%A0.odt
Файл:2022 Отзыв Мутасов ВКР.odt
2022-06-27T15:21:15Z
<p>Korogodin: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Screenshot_20220610_172558.png
Файл:Screenshot 20220610 172558.png
2022-06-10T14:28:05Z
<p>Korogodin: </p>
<hr />
<div></div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Screenshot_20220610_172333.png
Файл:Screenshot 20220610 172333.png
2022-06-10T14:26:36Z
<p>Korogodin: </p>
<hr />
<div></div>
Korogodin
https://www.srns.ru/wiki/%D0%9F%D1%83%D0%B1%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F:%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0_2021_BOC-by-BPSK_signal_processing_algorithm_for_BOC_and_AltBOC_signals
Публикация:Михайлова 2021 BOC-by-BPSK signal processing algorithm for BOC and AltBOC signals
2022-06-02T08:04:01Z
<p>Korogodin: /* Галерея */</p>
<hr />
<div><includeonly>{{Статья|PageName = Публикация:Михайлова 2021 BOC-by-BPSK signal processing algorithm for BOC and AltBOC signals<br />
|автор = Olga K. Mikhaylova<br />
|автор2 = Ilya V. Korogodin<br />
|автор3 = <br />
|автор4 = <br />
|название = BOC-by-BPSK signal processing algorithm for BOC and AltBOC signals<br />
|журнал = 2021 International Youth Conference on Radio Electronics, Electrical and Power Engineering (REEPE)<br />
|год = 2021<br />
|издание = <br />
|издатель = <br />
|редактор = <br />
|том = <br />
|номер = <br />
|страницы = 1-6<br />
|doi = 10.1109/REEPE51337.2021.9388088<br />
|url = <br />
|url статьи = https://ieeexplore.ieee.org/document/9388088<br />
|issn = <br />
|язык = english<br />
}}</includeonly><noinclude>{{Статья|BibtexKey = mikhaylova2021REEPE<br />
|автор = Olga K. Mikhaylova<br />
|автор2 = Ilya V. Korogodin<br />
|автор3 = <br />
|автор4 = <br />
|название = BOC-by-BPSK signal processing algorithm for BOC and AltBOC signals<br />
|журнал = 2021 International Youth Conference on Radio Electronics, Electrical and Power Engineering (REEPE)<br />
|год = 2021<br />
|издание = <br />
|издатель = <br />
|редактор = <br />
|том = <br />
|номер = <br />
|страницы = 1-6<br />
|doi = 10.1109/REEPE51337.2021.9388088<br />
|url = <br />
|url статьи = https://ieeexplore.ieee.org/document/9388088<br />
|issn = <br />
|язык = english<br />
}}<br />
<br />
== Аннотация == <br />
<br />
New navigation BOC signal types were introduced during GNSS evaluation GPS L1C, Galileo E5, GLONASS L2OC etc.<br />
The signals structure is complicated in comparison with traditional BPSK signals such as GPS C/A, GLONASS L1OF and others.<br />
It is supposed to use specialized correlators for the BOC signals processing. But it demands hardware modifications and limits the new signals processing by old receivers.<br />
This paper reviews the BOC-by-BPSK signal processing algorithm. The presented algorithm allows to process new BOC signals by traditional BPSK correlator based receivers.<br />
Also, the algorithm allows to adjust the ranging code delay and the subcarrier delay separately.<br />
As the result, it is possible to resolve the ambiguity of the BOC signal envelope delay caused by the multi-peak nature of its correlation function.<br />
<br />
== Галерея ==<br />
<br />
Принт статьи - [[media:mikhaylova2021.pdf|PDF]].<br />
<br />
Презентация - [[media:REEPE_Mikhaylova2021Pres.pdf|PDF]].<br />
<br />
== См. также ==<br />
[[Категория:Статьи в журналах]]<br />
[[Категория:Корогодин, И. В. (публикации)]]<br />
[[Категория:Михайлова, О. К. (публикации)]]<br />
</noinclude></div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Mikhaylova2021.pdf
Файл:Mikhaylova2021.pdf
2022-06-02T08:02:52Z
<p>Korogodin: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%9A%D0%BE%D1%80%D0%BE%D0%B3%D0%BE%D0%B4%D0%B8%D0%BD,_%D0%98%D0%BB%D1%8C%D1%8F_%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B8%D1%87
Корогодин, Илья Владимирович
2022-04-23T11:34:26Z
<p>Korogodin: /* Резюме */</p>
<hr />
<div>{{Учёный <br />
| Имя = Илья Владимирович Корогодин<br />
| Оригинал имени = <br />
| Фото = KorogodinIV.jpg<br />
| Ширина = <br />
| Подпись = <br />
| Дата рождения = 19.09.1987<br />
| Место рождения = <br />
| Гражданство = СССР, Россия<br />
| Научная сфера = радионавигация, навигационная аппаратура, статистическая радиотехника<br />
| Место работы = НИУ МЭИ, каф. РТС, доцент, УИЦ ЛНС, в.н.с.<br />
| Учёная степень = к.т.н. (2013)<br />
| Учёное звание = доц. (2021)<br />
| Альма-матер = МЭИ(ТУ)<br />
| Научный руководитель = [[Перов А.И.]] <br />
| Знаменитые ученики = <br />
| Известен как = <br />
| Награды и премии =<br />
}}<br />
<br />
'''Илья Владимирович Корогодин''' (род. 19.09.1987)<br />
<br />
== Резюме ==<br />
<br />
[[media:Korogodin_Resume.pdf|Резюме]]<br />
<br />
[[media:Korogodin_CV.pdf|Curriculum Vitae]]<br />
<br />
== Ареал обитания ==<br />
<br />
Ауд. Е-615 (УИЦ ЛНС). Электронная почта: [mailto:korogodin@srns.ru korogodin@srns.ru]<br />
<br />
== Диссертации ==<br />
=== Бакалаврская работа ===<br />
:[[media:Korogodin_bachelor.pdf|Синтез и анализ алгоритмов оценивания угла прихода радиосигнала]]<br />
<br />
=== Магистерская диссертация ===<br />
:[[media:Korogodin_MagDisser.pdf.rar|Синтез и анализ алгоритмов обработки сигналов в аппаратуре определения угловой ориентации объектов по сигналам СРНС]]<br />
<br />
=== Диссертация на соискание ученой степени кандидата технических наук ===<br />
<br />
{{Публикация:Корогодин 2013 Разработка алгоритмов обработки сигналов СНС в аппаратуре определения угловой ориентации объектов}}<br />
<br />
== Ученики ==<br />
<br />
{| class="wikitable" align="center"<br />
! Год защиты || Ф.И.О. ||Степень|| Тема || Оценка || Работа || Презентация<br />
|-align="center"<br />
| 2021 || [[Михайлова, Ольга Кирилловна|Михайлова<br>Ольга Кирилловна]] || магистр || Обработка современных сигналов ГНСС с модуляцией цифровой поднесущей традиционными корреляторами || Отлично || [[media:master_thesis_Mikhaylova_signed.pdf|pdf]] || <br />
|-align="center"<br />
| 2021 || [[Кагин, Игорь Игоревич|Кагин<br>Игорь Игоревич]] || специалист || Разработка базовой станции на основе навигационной платы Clonicus || Отлично || || <br />
|-align="center"<br />
| 2021 || [[Жеребин, Владислав Романович|Жеребин<br>Владислав Романович]] || специалист || Разработка канального уровня модулятора/демодулятора низкоскоростной радиолинии (НРЛ) стандарта СТО ГК Роскосмос 1019-2019 || Отлично || || <br />
|-align="center"<br />
| 2021 || [[Волнухина, Елена Дмитриевна|Волнухина<br>Елена Дмитриевна]] || специалист || Разработка генератора дальномерного кода сигнала GPS L1C || Отлично || || <br />
|-align="center"<br />
| 2020 || [[Мутасов, Глеб Романович|Мутасов<br>Глеб Романович]] || бакалавр || Модуляция навигационного сигнала двумя потоками данных как альтернатива применения пилот-компонент || Отлично || || <br />
|-align="center"<br />
| 2019 || [[Михайлова, Ольга Кирилловна|Михайлова<br>Ольга Кирилловна]] || бакалавр || Универсальный генератор дальномерных кодов сигналов навигационных систем || Отлично || [[media:Mikhaylova_bachelor.pdf|pdf]] || <br />
|-align="center"<br />
| 2019 || Галушко<br>Владислав Дмитриевич || специалист || Оценивание углового направления прихода Wi-Fi сигнала || Удовл || || <br />
|-align="center"<br />
| 2019 || Зарипов<br>Эльдар Валерьевич || специалист || Стенд для проведения приемосдаточных испытаний составных частей модернизированного бортового информационно-навигационного комплекса || Отлично || || <br />
|-align="center"<br />
| 2014 || [[Днепров, Владимир Владимирович|Днепров<br>Владимир Владимирович]] || магистр || Совмещение систем слежения за частотой и фазой в НАП СРНС || Отлично || [[media:20141201_DneprovVV_MagD_scan.pdf|pdf]] || <br />
|-align="center"<br />
| 2014 || [[Белянушкин, Александр Сергеевич|Белянушкин<br>Александр Сергеевич]] || бакалавр || Разработка библиотеки протокола обмена данными с навигационной аппаратурой потребителей по протоколу КБ НАВИС || Хорошо || || <br />
|-align="center"<br />
| 2014 || [[Калитенко, Богдан Васильевич|Калитенко<br>Богдан Васильевич]] || бакалавр || Разработка библиотеки протокола обмена данными с навигационной аппаратурой потребителей по протоколу Геостар || Хорошо || || <br />
|-align="center"<br />
| 2012 || [[Днепров, Владимир Владимирович|Днепров<br>Владимир Владимирович]] || бакалавр || Обнаружение навигационного радиосигнала с модуляцией данными || Отлично || || [[media:21062012_Днепров_В.В.ppt|ppt]]<br />
|-align="center"<br />
| 2011 || Мокрушин<br />Алексей Сергеевич || бакалавр || Подавление переотраженного сигнала в корреляторе аппаратуры потребителей СРНС при многолучевом распространении сигнала || Хорошо || || <br />
|-align="center"<br />
| 2011 || Колганов<br />Александр Михайлович || бакалавр || Модель многолучевого распространения сигнала среднеорбитальной спутниковой навигационной системы || Удовл. || [[Media:20110621_Колганов._Бакалаврская_работа.pdf.rar|pdf+scans]] || [[Media:20110617_Колганов_Александр.ppt|ppt]]<br />
|}<br />
<br />
== Публикации ==<br />
{{main|:Категория:Корогодин, И. В. (публикации)}}<br />
<br />
== Прочая интеллектуальная собственность ==<br />
=== Зарегистрированные программы ===<br />
<br />
{{main|:Категория:Корогодин, И. В. (зарег. программы)}}<br />
<br />
* {{Программа:Корогодин 2009 Имитационная модель приемника, предназначенного для определения угловой ориентации объекта по сигналам СРНС}}<br />
* {{Программа:Корогодин 2011 Модель многолучевого распространения сигнала}}<br />
* {{Программа:Корогодин 2011 Модель переходных процессов в идеальном дискретном корреляторе при учете полосы радиочастотной части приемника}}<br />
* {{Программа:Корогодин 2013 Модель системы оценки оскуллирующих параметров орбиты низкоорбитального спутника по измерениям приемника сигналов СРНС}}<br />
* {{Программа:2013 Система автоматизации экспериментов ArcticSEA}}<br />
* {{Программа:2015 Имитационная модель радиочастотного блока и корреляционного канала навигационного приемника}}<br />
<br />
=== Патенты ===<br />
<br />
{{main|:Категория:Корогодин, И. В. (патенты)}}<br />
<br />
* {{:Измеритель разности фаз радиосигналов (патент, полезная модель)}}<br />
* {{:Измеритель разности фаз радиосигналов (патент, изобретение)}}<br />
* {{:Цифровой приемник сигналов спутниковых радионавигационных систем (патент, полезная модель)}}<br />
* {{:Цифровой приемник сигналов спутниковых радионавигационных систем (патент, изобретение)}}<br />
==== Заявки на патент ====<br />
<br />
<!--* {{:Цифровой приемник сигналов спутниковых радионавигационных систем (патент, заявка на изобретение)}}--><br />
<br />
== Конференции ==<br />
<br />
<br />
<br />
* REEPE<br />
** 2021 Доклад про сплит (делала О.К.)<br />
** 2020 Доклад по универсальному генератору ДК вместо О. Михайловой<br />
* PIERS<br />
** [http://www.piers.org/piers2018Toyama/ Toyama, Japan 2012 1-4 Aug] Доклад по Naive BF<br />
** [http://www.piers.org/piers2017Singapore/ Singapore 2017 19-22 Nov] Доклад по OFDM<br />
* MWENT<br />
** [https://mwent.hse.ru/ 2018 14-16 Mar] Доклад по угломеру на базе WiFi<br />
* ION GNSS+<br />
** Portland 2017 25-29 Sep Доклад по DSRC<br />
* Радионавигационные технологии в приборостроении (г. Туапсе)<br />
** 2021 доклад по ЛРНС, по сплит-коррелятору<br />
** 2019 не делал доклад<br />
** 2018 Доклад по OFDM, доклад по спуферам<br />
** 2015 (выступал шеф)<br />
** 2014<br />
** 2012 <br />
** 2011 <br />
** 2010 <br />
* [[RLNC]] (г. Воронеж)<br />
** [[RLNC-2011|2011]] <br />
* Радиоэлектроника, электротехника и энергетика (г. Москва, МЭИ)<br />
** 2012<br />
** 2011<br />
** 2010<br />
** 2009<br />
** 2008<br />
* Молодежь и будущее авиации и космонавтики (г. Москва, МАИ)<br />
** 2010<br />
<br />
== Стипендии и т.п. ==<br />
<br />
* Нагрудный знак НИУ "МЭИ" "За научные достижения" №036 приказ №5091-k от 30.11.2020 г<br />
* [[media:YSA2019.png|Young Scientist Award]] by The USA Electromagnetics Academy (PIERS, Rome, 2019)<br />
* [[media:Корогодин_Грамота2019.jpg|Почетная грамота в честь 80-летия РТФ]]<br />
* [[media:YSA_PIERS2018.jpg|Young Scientist Award]] by The USA Electromagnetics Academy (PIERS, Japan, 2018)<br />
* Размещение на доске почета МЭИ с благодарностью ([https://mpei.ru/AboutUniverse/OficialInfo/Orders2018/MPEI-18-6357k.pdf приказ 6357-к]), 2018<br />
* Медаль Федерации космонавтики России имени Э.К.Циолковского, 2018<br />
* Лучший молодой препод МЭИ 2014<br />
* Стипендия Ученого совета 2008-2009 гг<br />
* Стипендия Президента РФ на 2009/2010 год - приказ Федерального агентства по образованию [http://www.edu.ru/db/MO/Data/d_09/a1623.html №1623] от 19.10.2009 <br />
* Стипендия Правительства РФ на 2011/2012 год - приказ Министерства образования и науки Российской Федерации от 11 ноября 2011 года [http://www.edu.ru/db-mon/mo/Data/d_11/m2659.html № 2659]<br />
<br />
== Дисциплины ==<br />
<br />
* осень 2017 - н.в.: Аппаратура потребителей спутниковых радионавигационных систем (лекции, л.р.)<br />
* весна 2018 - н.в.: Курсовой проект по дисциплине Аппаратура потребителей спутниковых радионавигационных систем <br />
* весна 2014 - весна 2017 (или 16?): Математическое моделирование радиотехнических устройств и систем (лекции, практики, л.р.)<br />
* осень 2012 - осень 2013: Основы построения спутниковых радионавигационных систем (лекции)<br />
* осень 2011 - осень 2012: Основы построения аппаратуры потребителей СРНС (практики)<br />
<br />
[[Категория:УИЦ ЛНС_(персоналии)]]</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Korogodin_Resume.pdf
Файл:Korogodin Resume.pdf
2022-04-23T11:34:21Z
<p>Korogodin: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%90%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0_%D0%BF%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D1%81%D0%BF%D1%83%D1%82%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2%D1%8B%D1%85_%D1%80%D0%B0%D0%B4%D0%B8%D0%BE%D0%BD%D0%B0%D0%B2%D0%B8%D0%B3%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_(%D0%B4%D0%B8%D1%81%D1%86%D0%B8%D0%BF%D0%BB%D0%B8%D0%BD%D0%B0)
Аппаратура потребителей спутниковых радионавигационных систем (дисциплина)
2022-03-31T14:50:16Z
<p>Korogodin: /* Курсовая работа */</p>
<hr />
<div>Дисциплина "Аппаратура потребителей спутниковых радионавигационных систем" входит в вариативную часть общенаучного цикла занятий [http://beta.mpei.ru/Education/educationalprograms/rt/Pages/default.aspx учебного плана] подготовки специалистов по направлению 11.05.01 "Радиоэлектронные системы и комплексы". <br />
<br />
Преподается осеннем и весеннем семестрах пятого года обучения. В осеннем семестре лекции и лабораторные занятия (итог - экзамен), в весеннем - курсовой проект. <br />
<br />
По дисциплине подготовлен [[ЭУМК АП СРНС|электронный учебно-методический комплекс]].<br />
<br />
== Календарный план ==<br />
<br />
<br />
{| class="wikitable"<br />
|-<br />
! Неделя || Даты || Лекция || Лабораторная || Контрольное мероприятие<br />
<br />
|- align=center<br />
| 2 || 07.09<br />
| Основы СРНС. [[media:Receivers_Segments.pdf|Сегменты СРНС]]. [[media:Receivers_PosMethods.pdf|Методы позиционирования]].<br />
| [https://goo.gl/forms/R7Vos1KsJ1taqqXo2 Ошибки позиционирования в городских условиях] <br />
|<br />
<br />
|- align=center<br />
| 3 || 13.09.21-19.09.21<br />
| Навигационные сигналы. <br />
|<br />
| <br />
<br />
|- align=center<br />
| 4 || 20.09.21-26.09.21<br />
| Антенна, МШУ<br />
| <br />
| КМ-1: Модель сигнала ГНСС<br />
<br />
|- align=center<br />
| 5 || 27.09.21-03.10.21<br />
| Радиочастотный блок <br> ([[media:20111008_АП_СРНС_Лекция_3_презентация.pdf|Аналогово-цифровое преобразование. Синтезатор частот. План частот АП СРНС.]] )<br />
| <br />
| <br />
<br />
|- align=center<br />
| 6 || 04.10.21-10.10.21<br />
| Математическая модель коррелятора <br> ([[media:АП_СРНС_corr.pdf|Статистический эквивалент коррелятора]])<br />
|<br />
| КМ-2: Ошибки позиционирования в городских условиях<br />
<br />
|- align=center<br />
| 7 || 11.10.21-17.10.21<br />
| Аппаратная реализация коррелятора <br> ([[media:20111005_АП_СРНС_Лекция_4_презентация.pdf|Принципы построения и структура коррелятора. Цифровой генератор гармонического сигнала и дальномерного кода.]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 8 || 18.10.21-24.10.21<br />
| Следящие системы <br> ([[media:20111215_АП_СРНС_Лекция_8_презентация.pdf|Система слежения за фазой сигнала. Структурная схема ССФ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_9_презентация.pdf|Система слежения за частотой. Структурная схема ССЧ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_10_презентация.pdf|Система слежения за задержкой. Структурная схема ССЗ, дискриминаторы, следящий фильтр. <br> Система слежения за задержкой с поддержкой от ФАП. Комплексный фильтр.]]) <br />
| [https://goo.gl/XruJBM GNSS Planning] <br />
| КМ-3: Статистический эквивалент коррелятора<br />
<br />
|- align=center<br />
| 9 || 25.10.21-31.10.21<br />
| Оценка SNR, детекторы захвата, детекторы CC<br />
| <br />
| <br />
<br />
|- align=center<br />
| 10 || 01.11.21-07.11.21<br />
| Обнаружение сигнала. <br> ([[media:20111005_АП_СРНС_Лекция_5_презентация.pdf|Обнаружение сигнала. Алгоритмы, статистические характеристики обнаружения.]]) <br />
|<br />
| <br />
<br />
|- align=center<br />
| 11 || 08.11.21-14.11.21<br />
| Поиск сигнала <br> ([[media:20111008_АП_СРНС_Лекция_6_презентация.pdf|Поиск сигнала по частоте и задержке. Алгоритмы поиска, быстрый поиск сигнала.]] <br> [[media:20111017_АП_СРНС_Лекция_7_презентация.pdf|Блок быстрого поиска]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 12 || 15.11.21-21.11.21<br />
| Символьная и оверлейная синхронизация <br> <br />
| [[Исследование_коррелятора_АП_СРНС_ГЛОНАСС_с_помощью_имитационной_модели_(лабораторная_работа)|Исследование коррелятора АП СРНС с помощью имитационной модели]]<br />
| КМ-4: Исследование коррелятора АП СРНС ГЛОНАСС с помощью имитационной модели <br />
<br />
|- align=center<br />
| 13 || 22.11.21-28.11.21<br />
| [[media:20111215_АП_СРНС_Лекция_11_презентация.pdf|Демодуляция навигационных данных]]<br />
| <br />
| <br />
<br />
|- align=center<br />
| 14 || 29.11.21-05.12.21<br />
| Кадровая синхронизация, [[media:20111215_АП_СРНС_Лекция_12_презентация.pdf|декодирование]], парсинг<br />
|<br />
| КМ-5: Прогнозирование спутникового созвездия<br />
<br />
|- align=center<br />
| 15 || 08.12.21-12.12.21<br />
| Формирование измерений, расчет положения спутника<br />
|<br />
| <br />
<br />
|- align=center<br />
| 16 || 13.12.21-19.12.21<br />
| Модель наблюдений псевдодальности. <br> [[media:20111128_АП_СРНС_Лекция_14_презентация.pdf|Вторичная обработка измерений. Одношаговый алгоритм решения навигационной задачи.]] <br> [[media:20111215_АП_СРНС_Лекция_16_презентация.pdf|Контроль целостности]]<br />
| Решение навигационной задачи по псевдодальномерным измерениям<br />
| КМ-6: Решение навигационной задачи по псевдодальномерным измерениям<br />
<br />
|- align=center<br />
| 17 || 20.12.21-26.12.21<br />
| Помехоустойчивость АП СРНС<br />
| <br />
| <br />
<br />
|- align=center<br />
| 18 || 27.12.21-02.01.21<br />
| Зачет<br />
|<br />
|<br />
<br />
|}<br />
<br />
[[media:АПСРНС_2021_Списки.ods|Журнал успеваемости]].<br />
<br />
== Правила аттестации ==<br />
<br />
Обязательным условием для получения допуска к экзамену является выполнение всех контрольных мероприятий: сдача двух контрольных и защита 4 лабораторных работ. <br />
<br />
При написании отчетов следует опираться на правила оформления [https://mpei.ru/Science/ScienceDocuments/Documents/Polojenie_2018/0_GOST_7.32-2017.pdf ГОСТ 7.32] (в части форматирования, оформления рисунков, таблиц, списков и т.д.).<br />
<br />
Приемка осуществляется через репозиторий на github на базе проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021].<br />
<br />
== Демо модели ==<br />
<br />
=== Прогноз выходного сигнала коррелятора ===<br />
<br />
Производится обработка сигнала Gps L1 C/A, сформированного лабораторным имитатором сигналов, синхронизированным с приемником. Сигнал перенесен с помощью РЧБ NT1065 на промежуточную частоту <math>f_{if} = 8.54</math> МГц и преобразован многоразрядным АЦП с частотой сэмплирования <math>F_d = 99.375</math> МГц. Установленная на имитаторе мощность обеспечивает уровень отношения сигнал/шум <math>27 + N</math> дБГц, где <math>N</math> - номер вариант по журналу. <br />
<br />
В приемнике производтся корреляционная обработка сигнала, интервал накопления составляет <math>T = 1</math> мс. <br />
<br />
Сигнал имеет сдвиг частоты несущей <math>f_d = 100 N</math> Гц, при этом опорный сигнал коррелятора имеет аналогичный сдвиг <math>f_{d, rep} = f_d</math>. Задержка огибающей известна точно и используется в опорном сигнале <math>\tau = \tau_{rep}</math>.<br />
<br />
Задание: Построить на плоскости I,Q вид множества точек корреляционных сумм, полученных в ходе большого (сотни) числа экспериментов. <br />
<br />
{{Hider|title = Расчет выходного сигнала коррелятора<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
N = 30;<br />
<br />
Fd = 99.375e6;<br />
Td = 1/Fd;<br />
T = 0.001;<br />
fif = 8.34e6;<br />
<br />
fd = 100 * N;<br />
fd_rep = fd;<br />
<br />
phi = 10 * N;<br />
phi_rep = 20 * N;<br />
<br />
qcno_dB = 27 + N;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdn = 50/3;<br />
A = sqrt(qcno * Td) * 2 * stdn; % qcno = A^2 / (4 stdn^2 Td)<br />
<br />
fprintf('A = %f, stdn = %f\n', A, stdn);<br />
<br />
L = fix(T * Fd);<br />
t = (0:(L-1)) * Td;<br />
<br />
PRN_Length = 1023;<br />
PRN = (-1).^(rand(1, PRN_Length) > 0.5);<br />
<br />
tau = 100500e-6;<br />
tau_rep = tau;<br />
<br />
nchip = mod(fix(PRN_Length*(t - tau )/T), PRN_Length) + 1;<br />
nchip_rep = mod(fix(PRN_Length*(t - tau_rep)/T), PRN_Length) + 1;<br />
<br />
Gc = PRN(nchip );<br />
Gc_rep = PRN(nchip_rep);<br />
<br />
So = A * Gc .* cos(2*pi*fif*t + 2*pi*fd *t + deg2rad(phi) );<br />
S_rep_cos = Gc_rep .* cos(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
S_rep_sin = Gc_rep .* sin(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
<br />
K = 1000; I = nan(1, K); Q = nan(1,K);<br />
for k = 1:K<br />
n = randn(1,L)*stdn;<br />
<br />
Gd = (-1).^(rand(1,1) > 0.5);<br />
S = Gd * So;<br />
<br />
y = S + n;<br />
<br />
I(k) = y * S_rep_cos';<br />
Q(k) = y * S_rep_sin';<br />
end<br />
<br />
maxIQ = 1.1*max(abs(I + 1i*Q));<br />
<br />
figure(1);<br />
plot(t*1e3, [y; S; A*Gc]);<br />
xlabel('t, ms')<br />
ylabel('y, S');<br />
grid on<br />
<br />
figure(2);<br />
plot(I, Q, '*')<br />
hold on<br />
plot([-maxIQ maxIQ], [0 0], 'k');<br />
plot([0 0], [-maxIQ maxIQ], 'k');<br />
quiver(-maxIQ, 0, 2*maxIQ, 0, 1, 'k');<br />
quiver(0, -maxIQ, 0, 2*maxIQ, 1, 'k');<br />
hold off<br />
xlabel('I')<br />
ylabel('Q');<br />
axis equal<br />
grid on<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
<br />
=== ЧАП и ФАП на стат эквивалентах ===<br />
<br />
{{Hider|title = Слежение за фазой и частотой<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
T = 0.010;<br />
<br />
Xist = [10; <br />
1];<br />
<br />
Xfilt = [0;<br />
0];<br />
<br />
Xfilt_FLL = [0;<br />
0];<br />
<br />
F = [1 T;<br />
0 1];<br />
<br />
Tmod = 10;<br />
K = fix(Tmod / T);<br />
<br />
G = [0;<br />
1];<br />
<br />
std_ksi = 1.3 * T;<br />
ksi = std_ksi * randn(1, K);<br />
<br />
qcno_dB = 45;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdnIQ = 7;<br />
nI = stdnIQ * randn(1, K);<br />
nQ = stdnIQ * randn(1, K);<br />
A_IQ = sqrt(2*qcno*T) * stdnIQ; <br />
<br />
dF_PLL = 20;<br />
Kfilt_PLL = [ 8/3 * dF_PLL * T;<br />
32/9 * dF_PLL^2 * T];<br />
<br />
dF_FLL = 3;<br />
Kfilt_FLL = [ 8/3 * dF_FLL * T;<br />
32/9 * dF_FLL^2 * T];<br />
<br />
t = (1:K)*T;<br />
phi_ist = nan(1, K);<br />
w_ist = nan(1, K);<br />
phi_filt = nan(1, K);<br />
w_filt = nan(1, K);<br />
phi_filt_FLL = nan(1, K);<br />
w_filt_FLL = nan(1, K);<br />
<br />
phi_corr = 0; Iold = 0; Qold = 0;<br />
for k = 1:K<br />
Xist = F * Xist + G * ksi(k);<br />
<br />
phi_ist(k) = Xist(1);<br />
w_ist(k) = Xist(2);<br />
<br />
% PLL<br />
Xfilt_extr = F*Xfilt;<br />
phi_extr = Xfilt_extr(1);<br />
dPhi = phi_ist(k) - phi_extr;<br />
<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = -Q; <br />
Sd = A_IQ; <br />
<br />
Xfilt = Xfilt_extr + Kfilt_PLL * Ud/Sd;<br />
<br />
phi_filt(k) = Xfilt(1);<br />
w_filt(k) = Xfilt(2);<br />
<br />
% FLL<br />
Xfilt_extr_FLL = F*Xfilt_FLL;<br />
w_extr = Xfilt_extr_FLL(1);<br />
dPhi = phi_ist(k) - phi_corr;<br />
phi_corr = phi_corr + w_extr * T;<br />
dW = w_ist(k) - w_extr;<br />
<br />
I = - A_IQ * cos(dPhi) + nI(k);<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = Q*Iold - I*Qold; <br />
Sd = A_IQ; <br />
Iold = I; Qold = Q;<br />
<br />
Xfilt_FLL = Xfilt_extr_FLL + Kfilt_FLL * Ud/Sd;<br />
<br />
phi_filt_FLL(k) = phi_corr;<br />
w_filt_FLL(k) = Xfilt_FLL(1);<br />
<br />
<br />
end<br />
<br />
figure(1)<br />
subplot(2,1,1)<br />
plot(t, phi_ist/2/pi, t, phi_filt/2/pi, t, phi_filt_FLL/2/pi)<br />
ylabel('\phi, cycles')<br />
subplot(2,1,2)<br />
plot(t, rad2deg(w_ist), t, rad2deg(w_filt), t, rad2deg(w_filt_FLL))<br />
ylabel('\omega, Hz')<br />
xlabel('t, sec')<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
== Вопросы к экзамену ==<br />
<br />
Экзамен проводится в письменной форме: тест, задача и один экзаменационный вопрос ([[media:Вопросы_экз_АП_СРНС.doc|экзаменационные вопросы]]). При подготовке рекомендуется использовать книги по тематике, [[media:2013_ЭУМК_С3.33_Лекции_АП_СРНС.pdf|конспекты лекций]] и презентации.<br />
<br />
== Курсовая работа ==<br />
<br />
Название: '''Расчет траектории движения спутника GPS по данным с демодулятора его сигнала'''<br />
<br />
Курсовая работа по АП СРНС выполняется во втором семестре. В рамках КР студенты знакомятся с рядом инструментов и техник, используемых при разработке навигационных приемников.<br />
<br />
Цель проекта - разработка модулей разбора навигационного сообщения GPS и расчета положения спутника, предназначенных для использования в составе навигационного приемника.<br />
<br />
Требования к разрабатываемому программному модулю:<br />
* требования назначения;<br />
* отсутствие утечек памяти;<br />
* малое время выполнения;<br />
* низкий расход памяти;<br />
* корректное выполнение при аномальных входных данных. <br />
<br />
Для достижения цели выполняется ряд задач, соответствующих этапам проекта и контрольным мероприятиям:<br />
* разработка модуля разбора символов навигационного сообщения<br />
* расчет положения КА в Matlab/Python и его проверка сторонними сервисами;<br />
* реализация модуля расчета положения КА на С/С++ и его тестирование.<br />
<br />
На каждом из этапов действуют следующие правила:<br />
* Взаимодействие осуществляется через github (пул реквесты, комментарии)<br />
* Отчет оформляется по ГОСТ 7.32<br />
* '''Этап сдан тогда, когда принят пул реквест'''<br />
<br />
<br />
<br />
{| class="wikitable"<br />
|+ Варианты заданий:<br />
|-<br />
! Студент !! Номер спутника = варианта !! Логи !! Примечание<br />
|-<br />
! Антропов Евгений Александрович<br />
| 1 || [[media:2022_KR_01.tar.gz|tar.gz]] || <br />
|-<br />
! Бахолдин Никита Владимирович<br />
| 3 || [[media:2022_KR_03.tar.gz|tar.gz]] || <br />
|-<br />
! Берестнев Владимир Сергеевич<br />
| 8 || [[media:2022_KR_08.tar.gz|tar.gz]] || <br />
|-<br />
! Дубинин Леонид Андреевич<br />
| 10 || [[media:2022_KR_10.tar.gz|tar.gz]] || <br />
|-<br />
! Еловский Никита Станиславович<br />
| 12 || [[media:2022_KR_12.tar.gz|tar.gz]] || <br />
|-<br />
! Иванцова Дарья Николаевна<br />
| 17 || [[media:2022_KR_17.tar.gz|tar.gz]] || <br />
|-<br />
! Капитонов Александр Ильич<br />
| 19 || [[media:2022_KR_19.tar.gz|tar.gz]] || <br />
|-<br />
! Коробков Андрей Юрьевич<br />
| 21 || [[media:2022_KR_21.tar.gz|tar.gz]] || <br />
|-<br />
! Куксин Владислав Александрович<br />
| 22 || [[media:2022_KR_22.tar.gz|tar.gz]] || <br />
|-<br />
! Кусакин Павел Александрович<br />
| 31 || [[media:2022_KR_31.tar.gz|tar.gz]] || <br />
|-<br />
! Ливенцов Василий Александрович<br />
| 14 || [[media:2022_KR_14.tar.gz|tar.gz]] || <br />
|-<br />
! Михайлов Иван Олегович<br />
| 24 || [[media:2022_KR_24.tar.gz|tar.gz]] || <br />
|-<br />
! Муратов Николай Сергеевич<br />
| 4 || [[media:2022_KR_04.tar.gz|tar.gz]] || <br />
|-<br />
! Попов Максим Геннадьевич<br />
| 6 || [[media:2022_KR_06.tar.gz|tar.gz]] || <br />
|-<br />
! Солнцева Милана Константиновна<br />
| 7 || [[media:2022_KR_07.tar.gz|tar.gz]] || <br />
|-<br />
! Танкина Анна Михайловна<br />
| 9 || [[media:2022_KR_09.tar.gz|tar.gz]] || <br />
|-<br />
! Цымбал Григорий Романович <br />
| 16 || [[media:2022_KR_16.tar.gz|tar.gz]] || <br />
|-<br />
! Чепелев Игорь Игоревич<br />
| 26 || [[media:2022_KR_26.tar.gz|tar.gz]] || <br />
|}<br />
<br />
<br />
=== Этап 1. Обработка логов навигационного приемника ===<br />
<br />
'''Дедлайн''': 04.03.22 (устранение замечаний и итоговый мёрдж до 13.03.22)<br />
<br />
Конечная цель всего курсового проекта - получить библиотеку функций на Си++, позволяющую рассчитывать положение спутника GPS по данным с демодулятора его сигнала L1 C/A. <br />
На первом этапе реализуем модуль разбора навигационного сообщения до структуры эфемерид, сравним результаты со сторонней программой.<br />
<br />
В неизвестной локации установлен навигационный приемник, принимающий сигналы GPS L1C/A и логирующий результаты этого приема в формате [https://navis.ru/downloads/SOFT/NV08C_BINR_Protocol_Specification_V13_ENG_10082012.pdf NVS BINR]. <br />
Собранный на пятиминутном интервале файл приложен в архиве под именем BINR.bin, см. таблицу вариантов. <br />
Файл содержит наблюдения псевдодальностей и прочих радионавигационных параметров, демодулированные и разобранные данные навигационного сообщения. <br />
<br />
Для удобства студентов данные демодулятора продублированы в текстовый файл in.txt. Каждая строка файла содержит данные одного сабфрейма одного навигационного сигнала в формате:<br />
<source lang="bash"><br />
1 0 013 0R GpsL1CA # 13 212130404 29 125 53 100010111010101010101010001010010111000011001010010111111000101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100<br />
</source><br />
где ''# 13'' - номер спутника, ''212130404'' - счетчик сабфреймов в сигнале, ''53'' - ID сабфрейма в навигационном сообщении, где в первых трех битах содержится номер сабфрейма в фрейме (5 в данном примере), а далее - номер фрейма в сообщении (6 в данном примере), ''1000101110...'' символы с демодулятора в порядке возрастания времени слева направо. <br />
<br />
Требуется:<br />
# Разработать программу, обрабатывающую файл in.txt и выводящую в файл out.txt таблицу эфемерид для спутника согласно варианту [[media:Screenshot_20220215_221319.png|в заданном формате]].<br />
# Обработать файл BINR.bin с помощью программы RTKNAVI из состава RTKLIB. Определить день и место проведения наблюдений, значения эфемерид для спутника согласно номеру варианта (меню открывается в левом нижнем углу экрана по нажатию на квадрат)<br />
# Сравнить полученные таблицы<br />
# Оформить код программы и разместить на Github<br />
# Оформить отчет по этапу и разместить на Github<br />
# Завести Pull Request<br />
<br />
Программа должна компилироваться gcc, все входные данные брать из in.txt, весь вывод осуществлять в out.txt.<br />
<br />
Работа осуществляется в репозитории на github на базе [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021]. Для этого:<br />
# Завести, если до сих пор нет, аккаунт на github<br />
# Если ранее не сделано, сделать форк проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021] (маленькая кнопка сверху справа в вэб-интерфейсе)<br />
# Установить на рабочем компьютере git (для выполнения последующих этапов удобнее будет сделать это в ОС GNU/Linux, вероятно, на виртуальной машине)<br />
# Клонировать свой форк на рабочий компьютер (<code>git clone https://github.com/MySuperAccount/gnssrecbasics2021.git</code>)<br />
# Промежуточные и итоговые результаты по первому этапу хранить в каталоге processing (<code>git pull; git add <files>; git commit -m "Сделал то-то то-то"; git push</code>)<br />
# По результатам первого этапа завести Pull Request в исходный проект '''в ветку, название которой совпадает с вашей фамилией''' (кнопка наверху в вэб-интерфейсе)<br />
# Устранить все замечания, добиться принятия Pull Request'а. <br />
<br />
Этап сдан тогда, когда ваш ПР принят.<br />
<br />
=== Этап 2. Моделирование траектории движения ===<br />
<br />
'''Дедлайн''': 13.04.22 (исправления замечаний до 20.04.22)<br />
<br />
Эфемериды - параметры некоторой модели движения спутника. <br />
В разных ГНСС эти модели разные, а значит отличается и формат эфемерид, и алгоритмы расчета положения спутника.<br />
<br />
Одна из самых простых и удобных моделей - [http://navipedia.org/index.php/GPS_and_Galileo_Satellite_Coordinates_Computation в системе GPS].<br />
<br />
Требуется реализовать на языке Matlab или Python функцию расчета положения спутника GPS на заданный момент по шкале времени UTC.<br />
В качестве эфемерид использовать данные, полученные на предыдущем этапе. <br />
<br />
Построить трехмерные графики множества положений спутника GPS с системным номером, соответствующим номеру студента по списку. Графики в двух вариантах: в СК ECEF WGS84 и соответствующей ей инерциальной СК. Положения должны соответствовать суточному интервалу на дне формирования наблюдений, определенном на предыдущем этапе. Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал. <br />
<br />
Вывести значения координат спутника в файл out.txt в системе ECEF WGS 84 в виде строк: Секунда_от_начала_дня X Y Z<br />
<br />
Используя оценку местоположения с предыдущего этапа, построить Sky Plot за указанный временной интервал и сравнить результат с [http://www.trimble.com/gnssplanningonline/ Trimble GNSS Planning Online].<br />
<br />
Оформить отчет по результатам этапа:<br />
# Реализация в Matlab или Python (описание модели и её листинг)<br />
# Таблица использованных эфемерид<br />
# Трехмерные графики положений спутника в ECEF и ECI (не забудьте подписать оси, изобразите соответствующую Земле сферу в начале СК)<br />
# Расчётный и полученный в GNSS Planing Online SkyView<br />
<br />
Работы по данному этапу осуществляются в каталоге simulation.<br />
Правила приемки этапа те же, что и на первом этапе.<br />
<br />
=== Этап 3. Реализация модуля расчета координат === <br />
<br />
'''Дедлайн''': 11.05.22 (исправления до 18.05.22)<br />
<br />
Требуется разработать на языке С/С++ функцию расчета положения спутника GPS на заданное время по шкале UTC, минимизируя время её исполнения и количество затрачиваемой оперативной памяти. <br />
Вызов функции не должен приводить к выбросу исключений или утечкам памяти при любом наборе входных данных.<br />
<br />
Функция расчета положения спутника в Matlab/Python относительно проста, т.к. доступны библиотеки линейной алгебры и решения уравнений. <br />
Но при разработке встраиваемого ПО приходится сохранять лицензионную частоту, минимизировать вычислительную нагрузку и затраты памяти. <br />
Поэтому отобразить модель из Matlab/Python в прошивку приемника дословно, как правило, не получается. В рассматриваемом примере потребуется, как минимум, выполнить свою реализацию решения трансцендентного уравнения. <br />
<br />
Программный модуль должен сопровождаться unit-тестами (например, используя Check):<br />
* Тесты функции решения уравнения Кеплера<br />
* Тест расчетного положения спутника в сравнении с Matlab/Python<br />
<br />
Во время второго теста должно вычисляться и выводиться средняя длительность исполнения функции. <br />
Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал (как на предыдущем этапе). <br />
<br />
Требуется провести проверку на утечки памяти (например, с помощью утилиты valgrind).<br />
<br />
Оформить отчет по результатам курсового проекта. <br />
В качестве первых двух глав использовать отчёты с предыдущих этапов, в третьей главе отразить результаты этого этапа:<br />
# Код реализации<br />
# Вывод тестов, включая анализ времени исполнения<br />
# Вывод проверок на утечку памяти<br />
# Вывод по этапу <br />
# Заключение по проекту<br />
<br />
Программа должна компилироваться gcc и использовать в качестве входных данных in.txt с первого этапа. <br />
Результат должен записываться в out.txt в строки формата, определенного на втором этапе. <br />
При тестировании должны сравниваться файлы out.txt второго и третьего этапов.<br />
<br />
Работы по третьему этапу следует вести в директории libgpssvpos.<br />
<br />
Правила приемки этапа те же.<br />
<br />
== Курсовая прошлых лет ==<br />
<br />
Задания в [[Курсовой проект АП СРНС 2020|2020]], в [[Курсовая работа АП СРНС 2021|2021]].<br />
<br />
[[Категория:АП СРНС (дисциплина)]]</div>
Korogodin
https://www.srns.ru/wiki/%D0%9A%D0%BE%D1%80%D0%BE%D0%B3%D0%BE%D0%B4%D0%B8%D0%BD,_%D0%98%D0%BB%D1%8C%D1%8F_%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B8%D1%87
Корогодин, Илья Владимирович
2022-03-18T07:25:51Z
<p>Korogodin: </p>
<hr />
<div>{{Учёный <br />
| Имя = Илья Владимирович Корогодин<br />
| Оригинал имени = <br />
| Фото = KorogodinIV.jpg<br />
| Ширина = <br />
| Подпись = <br />
| Дата рождения = 19.09.1987<br />
| Место рождения = <br />
| Гражданство = СССР, Россия<br />
| Научная сфера = радионавигация, навигационная аппаратура, статистическая радиотехника<br />
| Место работы = НИУ МЭИ, каф. РТС, доцент, УИЦ ЛНС, в.н.с.<br />
| Учёная степень = к.т.н. (2013)<br />
| Учёное звание = доц. (2021)<br />
| Альма-матер = МЭИ(ТУ)<br />
| Научный руководитель = [[Перов А.И.]] <br />
| Знаменитые ученики = <br />
| Известен как = <br />
| Награды и премии =<br />
}}<br />
<br />
'''Илья Владимирович Корогодин''' (род. 19.09.1987)<br />
<br />
== Резюме ==<br />
<br />
[[media:Korogodin_CV.pdf|Резюме]]<br />
<br />
== Ареал обитания ==<br />
<br />
Ауд. Е-615 (УИЦ ЛНС). Электронная почта: [mailto:korogodin@srns.ru korogodin@srns.ru]<br />
<br />
== Диссертации ==<br />
=== Бакалаврская работа ===<br />
:[[media:Korogodin_bachelor.pdf|Синтез и анализ алгоритмов оценивания угла прихода радиосигнала]]<br />
<br />
=== Магистерская диссертация ===<br />
:[[media:Korogodin_MagDisser.pdf.rar|Синтез и анализ алгоритмов обработки сигналов в аппаратуре определения угловой ориентации объектов по сигналам СРНС]]<br />
<br />
=== Диссертация на соискание ученой степени кандидата технических наук ===<br />
<br />
{{Публикация:Корогодин 2013 Разработка алгоритмов обработки сигналов СНС в аппаратуре определения угловой ориентации объектов}}<br />
<br />
== Ученики ==<br />
<br />
{| class="wikitable" align="center"<br />
! Год защиты || Ф.И.О. ||Степень|| Тема || Оценка || Работа || Презентация<br />
|-align="center"<br />
| 2021 || [[Михайлова, Ольга Кирилловна|Михайлова<br>Ольга Кирилловна]] || магистр || Обработка современных сигналов ГНСС с модуляцией цифровой поднесущей традиционными корреляторами || Отлично || [[media:master_thesis_Mikhaylova_signed.pdf|pdf]] || <br />
|-align="center"<br />
| 2021 || [[Кагин, Игорь Игоревич|Кагин<br>Игорь Игоревич]] || специалист || Разработка базовой станции на основе навигационной платы Clonicus || Отлично || || <br />
|-align="center"<br />
| 2021 || [[Жеребин, Владислав Романович|Жеребин<br>Владислав Романович]] || специалист || Разработка канального уровня модулятора/демодулятора низкоскоростной радиолинии (НРЛ) стандарта СТО ГК Роскосмос 1019-2019 || Отлично || || <br />
|-align="center"<br />
| 2021 || [[Волнухина, Елена Дмитриевна|Волнухина<br>Елена Дмитриевна]] || специалист || Разработка генератора дальномерного кода сигнала GPS L1C || Отлично || || <br />
|-align="center"<br />
| 2020 || [[Мутасов, Глеб Романович|Мутасов<br>Глеб Романович]] || бакалавр || Модуляция навигационного сигнала двумя потоками данных как альтернатива применения пилот-компонент || Отлично || || <br />
|-align="center"<br />
| 2019 || [[Михайлова, Ольга Кирилловна|Михайлова<br>Ольга Кирилловна]] || бакалавр || Универсальный генератор дальномерных кодов сигналов навигационных систем || Отлично || [[media:Mikhaylova_bachelor.pdf|pdf]] || <br />
|-align="center"<br />
| 2019 || Галушко<br>Владислав Дмитриевич || специалист || Оценивание углового направления прихода Wi-Fi сигнала || Удовл || || <br />
|-align="center"<br />
| 2019 || Зарипов<br>Эльдар Валерьевич || специалист || Стенд для проведения приемосдаточных испытаний составных частей модернизированного бортового информационно-навигационного комплекса || Отлично || || <br />
|-align="center"<br />
| 2014 || [[Днепров, Владимир Владимирович|Днепров<br>Владимир Владимирович]] || магистр || Совмещение систем слежения за частотой и фазой в НАП СРНС || Отлично || [[media:20141201_DneprovVV_MagD_scan.pdf|pdf]] || <br />
|-align="center"<br />
| 2014 || [[Белянушкин, Александр Сергеевич|Белянушкин<br>Александр Сергеевич]] || бакалавр || Разработка библиотеки протокола обмена данными с навигационной аппаратурой потребителей по протоколу КБ НАВИС || Хорошо || || <br />
|-align="center"<br />
| 2014 || [[Калитенко, Богдан Васильевич|Калитенко<br>Богдан Васильевич]] || бакалавр || Разработка библиотеки протокола обмена данными с навигационной аппаратурой потребителей по протоколу Геостар || Хорошо || || <br />
|-align="center"<br />
| 2012 || [[Днепров, Владимир Владимирович|Днепров<br>Владимир Владимирович]] || бакалавр || Обнаружение навигационного радиосигнала с модуляцией данными || Отлично || || [[media:21062012_Днепров_В.В.ppt|ppt]]<br />
|-align="center"<br />
| 2011 || Мокрушин<br />Алексей Сергеевич || бакалавр || Подавление переотраженного сигнала в корреляторе аппаратуры потребителей СРНС при многолучевом распространении сигнала || Хорошо || || <br />
|-align="center"<br />
| 2011 || Колганов<br />Александр Михайлович || бакалавр || Модель многолучевого распространения сигнала среднеорбитальной спутниковой навигационной системы || Удовл. || [[Media:20110621_Колганов._Бакалаврская_работа.pdf.rar|pdf+scans]] || [[Media:20110617_Колганов_Александр.ppt|ppt]]<br />
|}<br />
<br />
== Публикации ==<br />
{{main|:Категория:Корогодин, И. В. (публикации)}}<br />
<br />
== Прочая интеллектуальная собственность ==<br />
=== Зарегистрированные программы ===<br />
<br />
{{main|:Категория:Корогодин, И. В. (зарег. программы)}}<br />
<br />
* {{Программа:Корогодин 2009 Имитационная модель приемника, предназначенного для определения угловой ориентации объекта по сигналам СРНС}}<br />
* {{Программа:Корогодин 2011 Модель многолучевого распространения сигнала}}<br />
* {{Программа:Корогодин 2011 Модель переходных процессов в идеальном дискретном корреляторе при учете полосы радиочастотной части приемника}}<br />
* {{Программа:Корогодин 2013 Модель системы оценки оскуллирующих параметров орбиты низкоорбитального спутника по измерениям приемника сигналов СРНС}}<br />
* {{Программа:2013 Система автоматизации экспериментов ArcticSEA}}<br />
* {{Программа:2015 Имитационная модель радиочастотного блока и корреляционного канала навигационного приемника}}<br />
<br />
=== Патенты ===<br />
<br />
{{main|:Категория:Корогодин, И. В. (патенты)}}<br />
<br />
* {{:Измеритель разности фаз радиосигналов (патент, полезная модель)}}<br />
* {{:Измеритель разности фаз радиосигналов (патент, изобретение)}}<br />
* {{:Цифровой приемник сигналов спутниковых радионавигационных систем (патент, полезная модель)}}<br />
* {{:Цифровой приемник сигналов спутниковых радионавигационных систем (патент, изобретение)}}<br />
==== Заявки на патент ====<br />
<br />
<!--* {{:Цифровой приемник сигналов спутниковых радионавигационных систем (патент, заявка на изобретение)}}--><br />
<br />
== Конференции ==<br />
<br />
<br />
<br />
* REEPE<br />
** 2021 Доклад про сплит (делала О.К.)<br />
** 2020 Доклад по универсальному генератору ДК вместо О. Михайловой<br />
* PIERS<br />
** [http://www.piers.org/piers2018Toyama/ Toyama, Japan 2012 1-4 Aug] Доклад по Naive BF<br />
** [http://www.piers.org/piers2017Singapore/ Singapore 2017 19-22 Nov] Доклад по OFDM<br />
* MWENT<br />
** [https://mwent.hse.ru/ 2018 14-16 Mar] Доклад по угломеру на базе WiFi<br />
* ION GNSS+<br />
** Portland 2017 25-29 Sep Доклад по DSRC<br />
* Радионавигационные технологии в приборостроении (г. Туапсе)<br />
** 2021 доклад по ЛРНС, по сплит-коррелятору<br />
** 2019 не делал доклад<br />
** 2018 Доклад по OFDM, доклад по спуферам<br />
** 2015 (выступал шеф)<br />
** 2014<br />
** 2012 <br />
** 2011 <br />
** 2010 <br />
* [[RLNC]] (г. Воронеж)<br />
** [[RLNC-2011|2011]] <br />
* Радиоэлектроника, электротехника и энергетика (г. Москва, МЭИ)<br />
** 2012<br />
** 2011<br />
** 2010<br />
** 2009<br />
** 2008<br />
* Молодежь и будущее авиации и космонавтики (г. Москва, МАИ)<br />
** 2010<br />
<br />
== Стипендии и т.п. ==<br />
<br />
* Нагрудный знак НИУ "МЭИ" "За научные достижения" №036 приказ №5091-k от 30.11.2020 г<br />
* [[media:YSA2019.png|Young Scientist Award]] by The USA Electromagnetics Academy (PIERS, Rome, 2019)<br />
* [[media:Корогодин_Грамота2019.jpg|Почетная грамота в честь 80-летия РТФ]]<br />
* [[media:YSA_PIERS2018.jpg|Young Scientist Award]] by The USA Electromagnetics Academy (PIERS, Japan, 2018)<br />
* Размещение на доске почета МЭИ с благодарностью ([https://mpei.ru/AboutUniverse/OficialInfo/Orders2018/MPEI-18-6357k.pdf приказ 6357-к]), 2018<br />
* Медаль Федерации космонавтики России имени Э.К.Циолковского, 2018<br />
* Лучший молодой препод МЭИ 2014<br />
* Стипендия Ученого совета 2008-2009 гг<br />
* Стипендия Президента РФ на 2009/2010 год - приказ Федерального агентства по образованию [http://www.edu.ru/db/MO/Data/d_09/a1623.html №1623] от 19.10.2009 <br />
* Стипендия Правительства РФ на 2011/2012 год - приказ Министерства образования и науки Российской Федерации от 11 ноября 2011 года [http://www.edu.ru/db-mon/mo/Data/d_11/m2659.html № 2659]<br />
<br />
== Дисциплины ==<br />
<br />
* осень 2017 - н.в.: Аппаратура потребителей спутниковых радионавигационных систем (лекции, л.р.)<br />
* весна 2018 - н.в.: Курсовой проект по дисциплине Аппаратура потребителей спутниковых радионавигационных систем <br />
* весна 2014 - весна 2017 (или 16?): Математическое моделирование радиотехнических устройств и систем (лекции, практики, л.р.)<br />
* осень 2012 - осень 2013: Основы построения спутниковых радионавигационных систем (лекции)<br />
* осень 2011 - осень 2012: Основы построения аппаратуры потребителей СРНС (практики)<br />
<br />
[[Категория:УИЦ ЛНС_(персоналии)]]</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Korogodin_CV.pdf
Файл:Korogodin CV.pdf
2022-03-04T09:29:34Z
<p>Korogodin: Korogodin загружена новая версия «Файл:Korogodin CV.pdf»: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%90%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0_%D0%BF%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D1%81%D0%BF%D1%83%D1%82%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2%D1%8B%D1%85_%D1%80%D0%B0%D0%B4%D0%B8%D0%BE%D0%BD%D0%B0%D0%B2%D0%B8%D0%B3%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_(%D0%B4%D0%B8%D1%81%D1%86%D0%B8%D0%BF%D0%BB%D0%B8%D0%BD%D0%B0)
Аппаратура потребителей спутниковых радионавигационных систем (дисциплина)
2022-02-16T06:56:11Z
<p>Korogodin: /* Этап 1. Обработка логов навигационного приемника */</p>
<hr />
<div>Дисциплина "Аппаратура потребителей спутниковых радионавигационных систем" входит в вариативную часть общенаучного цикла занятий [http://beta.mpei.ru/Education/educationalprograms/rt/Pages/default.aspx учебного плана] подготовки специалистов по направлению 11.05.01 "Радиоэлектронные системы и комплексы". <br />
<br />
Преподается осеннем и весеннем семестрах пятого года обучения. В осеннем семестре лекции и лабораторные занятия (итог - экзамен), в весеннем - курсовой проект. <br />
<br />
По дисциплине подготовлен [[ЭУМК АП СРНС|электронный учебно-методический комплекс]].<br />
<br />
== Календарный план ==<br />
<br />
<br />
{| class="wikitable"<br />
|-<br />
! Неделя || Даты || Лекция || Лабораторная || Контрольное мероприятие<br />
<br />
|- align=center<br />
| 2 || 07.09<br />
| Основы СРНС. [[media:Receivers_Segments.pdf|Сегменты СРНС]]. [[media:Receivers_PosMethods.pdf|Методы позиционирования]].<br />
| [https://goo.gl/forms/R7Vos1KsJ1taqqXo2 Ошибки позиционирования в городских условиях] <br />
|<br />
<br />
|- align=center<br />
| 3 || 13.09.21-19.09.21<br />
| Навигационные сигналы. <br />
|<br />
| <br />
<br />
|- align=center<br />
| 4 || 20.09.21-26.09.21<br />
| Антенна, МШУ<br />
| <br />
| КМ-1: Модель сигнала ГНСС<br />
<br />
|- align=center<br />
| 5 || 27.09.21-03.10.21<br />
| Радиочастотный блок <br> ([[media:20111008_АП_СРНС_Лекция_3_презентация.pdf|Аналогово-цифровое преобразование. Синтезатор частот. План частот АП СРНС.]] )<br />
| <br />
| <br />
<br />
|- align=center<br />
| 6 || 04.10.21-10.10.21<br />
| Математическая модель коррелятора <br> ([[media:АП_СРНС_corr.pdf|Статистический эквивалент коррелятора]])<br />
|<br />
| КМ-2: Ошибки позиционирования в городских условиях<br />
<br />
|- align=center<br />
| 7 || 11.10.21-17.10.21<br />
| Аппаратная реализация коррелятора <br> ([[media:20111005_АП_СРНС_Лекция_4_презентация.pdf|Принципы построения и структура коррелятора. Цифровой генератор гармонического сигнала и дальномерного кода.]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 8 || 18.10.21-24.10.21<br />
| Следящие системы <br> ([[media:20111215_АП_СРНС_Лекция_8_презентация.pdf|Система слежения за фазой сигнала. Структурная схема ССФ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_9_презентация.pdf|Система слежения за частотой. Структурная схема ССЧ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_10_презентация.pdf|Система слежения за задержкой. Структурная схема ССЗ, дискриминаторы, следящий фильтр. <br> Система слежения за задержкой с поддержкой от ФАП. Комплексный фильтр.]]) <br />
| [https://goo.gl/XruJBM GNSS Planning] <br />
| КМ-3: Статистический эквивалент коррелятора<br />
<br />
|- align=center<br />
| 9 || 25.10.21-31.10.21<br />
| Оценка SNR, детекторы захвата, детекторы CC<br />
| <br />
| <br />
<br />
|- align=center<br />
| 10 || 01.11.21-07.11.21<br />
| Обнаружение сигнала. <br> ([[media:20111005_АП_СРНС_Лекция_5_презентация.pdf|Обнаружение сигнала. Алгоритмы, статистические характеристики обнаружения.]]) <br />
|<br />
| <br />
<br />
|- align=center<br />
| 11 || 08.11.21-14.11.21<br />
| Поиск сигнала <br> ([[media:20111008_АП_СРНС_Лекция_6_презентация.pdf|Поиск сигнала по частоте и задержке. Алгоритмы поиска, быстрый поиск сигнала.]] <br> [[media:20111017_АП_СРНС_Лекция_7_презентация.pdf|Блок быстрого поиска]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 12 || 15.11.21-21.11.21<br />
| Символьная и оверлейная синхронизация <br> <br />
| [[Исследование_коррелятора_АП_СРНС_ГЛОНАСС_с_помощью_имитационной_модели_(лабораторная_работа)|Исследование коррелятора АП СРНС с помощью имитационной модели]]<br />
| КМ-4: Исследование коррелятора АП СРНС ГЛОНАСС с помощью имитационной модели <br />
<br />
|- align=center<br />
| 13 || 22.11.21-28.11.21<br />
| [[media:20111215_АП_СРНС_Лекция_11_презентация.pdf|Демодуляция навигационных данных]]<br />
| <br />
| <br />
<br />
|- align=center<br />
| 14 || 29.11.21-05.12.21<br />
| Кадровая синхронизация, [[media:20111215_АП_СРНС_Лекция_12_презентация.pdf|декодирование]], парсинг<br />
|<br />
| КМ-5: Прогнозирование спутникового созвездия<br />
<br />
|- align=center<br />
| 15 || 08.12.21-12.12.21<br />
| Формирование измерений, расчет положения спутника<br />
|<br />
| <br />
<br />
|- align=center<br />
| 16 || 13.12.21-19.12.21<br />
| Модель наблюдений псевдодальности. <br> [[media:20111128_АП_СРНС_Лекция_14_презентация.pdf|Вторичная обработка измерений. Одношаговый алгоритм решения навигационной задачи.]] <br> [[media:20111215_АП_СРНС_Лекция_16_презентация.pdf|Контроль целостности]]<br />
| Решение навигационной задачи по псевдодальномерным измерениям<br />
| КМ-6: Решение навигационной задачи по псевдодальномерным измерениям<br />
<br />
|- align=center<br />
| 17 || 20.12.21-26.12.21<br />
| Помехоустойчивость АП СРНС<br />
| <br />
| <br />
<br />
|- align=center<br />
| 18 || 27.12.21-02.01.21<br />
| Зачет<br />
|<br />
|<br />
<br />
|}<br />
<br />
[[media:АПСРНС_2021_Списки.ods|Журнал успеваемости]].<br />
<br />
== Правила аттестации ==<br />
<br />
Обязательным условием для получения допуска к экзамену является выполнение всех контрольных мероприятий: сдача двух контрольных и защита 4 лабораторных работ. <br />
<br />
При написании отчетов следует опираться на правила оформления [https://mpei.ru/Science/ScienceDocuments/Documents/Polojenie_2018/0_GOST_7.32-2017.pdf ГОСТ 7.32] (в части форматирования, оформления рисунков, таблиц, списков и т.д.).<br />
<br />
Приемка осуществляется через репозиторий на github на базе проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021].<br />
<br />
== Демо модели ==<br />
<br />
=== Прогноз выходного сигнала коррелятора ===<br />
<br />
Производится обработка сигнала Gps L1 C/A, сформированного лабораторным имитатором сигналов, синхронизированным с приемником. Сигнал перенесен с помощью РЧБ NT1065 на промежуточную частоту <math>f_{if} = 8.54</math> МГц и преобразован многоразрядным АЦП с частотой сэмплирования <math>F_d = 99.375</math> МГц. Установленная на имитаторе мощность обеспечивает уровень отношения сигнал/шум <math>27 + N</math> дБГц, где <math>N</math> - номер вариант по журналу. <br />
<br />
В приемнике производтся корреляционная обработка сигнала, интервал накопления составляет <math>T = 1</math> мс. <br />
<br />
Сигнал имеет сдвиг частоты несущей <math>f_d = 100 N</math> Гц, при этом опорный сигнал коррелятора имеет аналогичный сдвиг <math>f_{d, rep} = f_d</math>. Задержка огибающей известна точно и используется в опорном сигнале <math>\tau = \tau_{rep}</math>.<br />
<br />
Задание: Построить на плоскости I,Q вид множества точек корреляционных сумм, полученных в ходе большого (сотни) числа экспериментов. <br />
<br />
{{Hider|title = Расчет выходного сигнала коррелятора<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
N = 30;<br />
<br />
Fd = 99.375e6;<br />
Td = 1/Fd;<br />
T = 0.001;<br />
fif = 8.34e6;<br />
<br />
fd = 100 * N;<br />
fd_rep = fd;<br />
<br />
phi = 10 * N;<br />
phi_rep = 20 * N;<br />
<br />
qcno_dB = 27 + N;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdn = 50/3;<br />
A = sqrt(qcno * Td) * 2 * stdn; % qcno = A^2 / (4 stdn^2 Td)<br />
<br />
fprintf('A = %f, stdn = %f\n', A, stdn);<br />
<br />
L = fix(T * Fd);<br />
t = (0:(L-1)) * Td;<br />
<br />
PRN_Length = 1023;<br />
PRN = (-1).^(rand(1, PRN_Length) > 0.5);<br />
<br />
tau = 100500e-6;<br />
tau_rep = tau;<br />
<br />
nchip = mod(fix(PRN_Length*(t - tau )/T), PRN_Length) + 1;<br />
nchip_rep = mod(fix(PRN_Length*(t - tau_rep)/T), PRN_Length) + 1;<br />
<br />
Gc = PRN(nchip );<br />
Gc_rep = PRN(nchip_rep);<br />
<br />
So = A * Gc .* cos(2*pi*fif*t + 2*pi*fd *t + deg2rad(phi) );<br />
S_rep_cos = Gc_rep .* cos(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
S_rep_sin = Gc_rep .* sin(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
<br />
K = 1000; I = nan(1, K); Q = nan(1,K);<br />
for k = 1:K<br />
n = randn(1,L)*stdn;<br />
<br />
Gd = (-1).^(rand(1,1) > 0.5);<br />
S = Gd * So;<br />
<br />
y = S + n;<br />
<br />
I(k) = y * S_rep_cos';<br />
Q(k) = y * S_rep_sin';<br />
end<br />
<br />
maxIQ = 1.1*max(abs(I + 1i*Q));<br />
<br />
figure(1);<br />
plot(t*1e3, [y; S; A*Gc]);<br />
xlabel('t, ms')<br />
ylabel('y, S');<br />
grid on<br />
<br />
figure(2);<br />
plot(I, Q, '*')<br />
hold on<br />
plot([-maxIQ maxIQ], [0 0], 'k');<br />
plot([0 0], [-maxIQ maxIQ], 'k');<br />
quiver(-maxIQ, 0, 2*maxIQ, 0, 1, 'k');<br />
quiver(0, -maxIQ, 0, 2*maxIQ, 1, 'k');<br />
hold off<br />
xlabel('I')<br />
ylabel('Q');<br />
axis equal<br />
grid on<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
<br />
=== ЧАП и ФАП на стат эквивалентах ===<br />
<br />
{{Hider|title = Слежение за фазой и частотой<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
T = 0.010;<br />
<br />
Xist = [10; <br />
1];<br />
<br />
Xfilt = [0;<br />
0];<br />
<br />
Xfilt_FLL = [0;<br />
0];<br />
<br />
F = [1 T;<br />
0 1];<br />
<br />
Tmod = 10;<br />
K = fix(Tmod / T);<br />
<br />
G = [0;<br />
1];<br />
<br />
std_ksi = 1.3 * T;<br />
ksi = std_ksi * randn(1, K);<br />
<br />
qcno_dB = 45;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdnIQ = 7;<br />
nI = stdnIQ * randn(1, K);<br />
nQ = stdnIQ * randn(1, K);<br />
A_IQ = sqrt(2*qcno*T) * stdnIQ; <br />
<br />
dF_PLL = 20;<br />
Kfilt_PLL = [ 8/3 * dF_PLL * T;<br />
32/9 * dF_PLL^2 * T];<br />
<br />
dF_FLL = 3;<br />
Kfilt_FLL = [ 8/3 * dF_FLL * T;<br />
32/9 * dF_FLL^2 * T];<br />
<br />
t = (1:K)*T;<br />
phi_ist = nan(1, K);<br />
w_ist = nan(1, K);<br />
phi_filt = nan(1, K);<br />
w_filt = nan(1, K);<br />
phi_filt_FLL = nan(1, K);<br />
w_filt_FLL = nan(1, K);<br />
<br />
phi_corr = 0; Iold = 0; Qold = 0;<br />
for k = 1:K<br />
Xist = F * Xist + G * ksi(k);<br />
<br />
phi_ist(k) = Xist(1);<br />
w_ist(k) = Xist(2);<br />
<br />
% PLL<br />
Xfilt_extr = F*Xfilt;<br />
phi_extr = Xfilt_extr(1);<br />
dPhi = phi_ist(k) - phi_extr;<br />
<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = -Q; <br />
Sd = A_IQ; <br />
<br />
Xfilt = Xfilt_extr + Kfilt_PLL * Ud/Sd;<br />
<br />
phi_filt(k) = Xfilt(1);<br />
w_filt(k) = Xfilt(2);<br />
<br />
% FLL<br />
Xfilt_extr_FLL = F*Xfilt_FLL;<br />
w_extr = Xfilt_extr_FLL(1);<br />
dPhi = phi_ist(k) - phi_corr;<br />
phi_corr = phi_corr + w_extr * T;<br />
dW = w_ist(k) - w_extr;<br />
<br />
I = - A_IQ * cos(dPhi) + nI(k);<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = Q*Iold - I*Qold; <br />
Sd = A_IQ; <br />
Iold = I; Qold = Q;<br />
<br />
Xfilt_FLL = Xfilt_extr_FLL + Kfilt_FLL * Ud/Sd;<br />
<br />
phi_filt_FLL(k) = phi_corr;<br />
w_filt_FLL(k) = Xfilt_FLL(1);<br />
<br />
<br />
end<br />
<br />
figure(1)<br />
subplot(2,1,1)<br />
plot(t, phi_ist/2/pi, t, phi_filt/2/pi, t, phi_filt_FLL/2/pi)<br />
ylabel('\phi, cycles')<br />
subplot(2,1,2)<br />
plot(t, rad2deg(w_ist), t, rad2deg(w_filt), t, rad2deg(w_filt_FLL))<br />
ylabel('\omega, Hz')<br />
xlabel('t, sec')<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
== Вопросы к экзамену ==<br />
<br />
Экзамен проводится в письменной форме: тест, задача и один экзаменационный вопрос ([[media:Вопросы_экз_АП_СРНС.doc|экзаменационные вопросы]]). При подготовке рекомендуется использовать книги по тематике, [[media:2013_ЭУМК_С3.33_Лекции_АП_СРНС.pdf|конспекты лекций]] и презентации.<br />
<br />
== Курсовая работа ==<br />
<br />
Название: '''Расчет траектории движения спутника GPS по данным с демодулятора его сигнала'''<br />
<br />
Курсовая работа по АП СРНС выполняется во втором семестре. В рамках КР студенты знакомятся с рядом инструментов и техник, используемых при разработке навигационных приемников.<br />
<br />
Цель проекта - разработка модулей разбора навигационного сообщения GPS и расчета положения спутника, предназначенных для использования в составе навигационного приемника.<br />
<br />
Требования к разрабатываемому программному модулю:<br />
* требования назначения;<br />
* отсутствие утечек памяти;<br />
* малое время выполнения;<br />
* низкий расход памяти;<br />
* корректное выполнение при аномальных входных данных. <br />
<br />
Для достижения цели выполняется ряд задач, соответствующих этапам проекта и контрольным мероприятиям:<br />
* разработка модуля разбора символов навигационного сообщения<br />
* расчет положения КА в Matlab/Python и его проверка сторонними сервисами;<br />
* реализация модуля расчета положения КА на С/С++ и его тестирование.<br />
<br />
На каждом из этапов действуют следующие правила:<br />
* Взаимодействие осуществляется через github (пул реквесты, комментарии)<br />
* '''Этап сдан тогда, когда принят пул реквест'''<br />
<br />
<br />
<br />
{| class="wikitable"<br />
|+ Варианты заданий:<br />
|-<br />
! Студент !! Номер спутника = варианта !! Логи !! Примечание<br />
|-<br />
! Антропов Евгений Александрович<br />
| 1 || [[media:2022_KR_01.tar.gz|tar.gz]] || <br />
|-<br />
! Бахолдин Никита Владимирович<br />
| 3 || [[media:2022_KR_03.tar.gz|tar.gz]] || <br />
|-<br />
! Берестнев Владимир Сергеевич<br />
| 8 || [[media:2022_KR_08.tar.gz|tar.gz]] || <br />
|-<br />
! Дубинин Леонид Андреевич<br />
| 10 || [[media:2022_KR_10.tar.gz|tar.gz]] || <br />
|-<br />
! Еловский Никита Станиславович<br />
| 12 || [[media:2022_KR_12.tar.gz|tar.gz]] || <br />
|-<br />
! Иванцова Дарья Николаевна<br />
| 17 || [[media:2022_KR_17.tar.gz|tar.gz]] || <br />
|-<br />
! Капитонов Александр Ильич<br />
| 19 || [[media:2022_KR_19.tar.gz|tar.gz]] || <br />
|-<br />
! Коробков Андрей Юрьевич<br />
| 21 || [[media:2022_KR_21.tar.gz|tar.gz]] || <br />
|-<br />
! Куксин Владислав Александрович<br />
| 22 || [[media:2022_KR_22.tar.gz|tar.gz]] || <br />
|-<br />
! Кусакин Павел Александрович<br />
| 31 || [[media:2022_KR_31.tar.gz|tar.gz]] || <br />
|-<br />
! Ливенцов Василий Александрович<br />
| 14 || [[media:2022_KR_14.tar.gz|tar.gz]] || <br />
|-<br />
! Михайлов Иван Олегович<br />
| 24 || [[media:2022_KR_24.tar.gz|tar.gz]] || <br />
|-<br />
! Муратов Николай Сергеевич<br />
| 4 || [[media:2022_KR_04.tar.gz|tar.gz]] || <br />
|-<br />
! Попов Максим Геннадьевич<br />
| 6 || [[media:2022_KR_06.tar.gz|tar.gz]] || <br />
|-<br />
! Солнцева Милана Константиновна<br />
| 7 || [[media:2022_KR_07.tar.gz|tar.gz]] || <br />
|-<br />
! Танкина Анна Михайловна<br />
| 9 || [[media:2022_KR_09.tar.gz|tar.gz]] || <br />
|-<br />
! Цымбал Григорий Романович <br />
| 16 || [[media:2022_KR_16.tar.gz|tar.gz]] || <br />
|-<br />
! Чепелев Игорь Игоревич<br />
| 26 || [[media:2022_KR_26.tar.gz|tar.gz]] || <br />
|}<br />
<br />
<br />
=== Этап 1. Обработка логов навигационного приемника ===<br />
<br />
'''Дедлайн''': 04.03.22 (устранение замечаний и итоговый мёрдж до 13.03.22)<br />
<br />
Конечная цель всего курсового проекта - получить библиотеку функций на Си++, позволяющую рассчитывать положение спутника GPS по данным с демодулятора его сигнала L1 C/A. <br />
На первом этапе реализуем модуль разбора навигационного сообщения до структуры эфемерид, сравним результаты со сторонней программой.<br />
<br />
В неизвестной локации установлен навигационный приемник, принимающий сигналы GPS L1C/A и логирующий результаты этого приема в формате [https://navis.ru/downloads/SOFT/NV08C_BINR_Protocol_Specification_V13_ENG_10082012.pdf NVS BINR]. <br />
Собранный на пятиминутном интервале файл приложен в архиве под именем BINR.bin, см. таблицу вариантов. <br />
Файл содержит наблюдения псевдодальностей и прочих радионавигационных параметров, демодулированные и разобранные данные навигационного сообщения. <br />
<br />
Для удобства студентов данные демодулятора продублированы в текстовый файл in.txt. Каждая строка файла содержит данные одного сабфрейма одного навигационного сигнала в формате:<br />
<source lang="bash"><br />
1 0 013 0R GpsL1CA # 13 212130404 29 125 53 100010111010101010101010001010010111000011001010010111111000101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100<br />
</source><br />
где ''# 13'' - номер спутника, ''212130404'' - счетчик сабфреймов в сигнале, ''53'' - ID сабфрейма в навигационном сообщении, где в первых трех битах содержится номер сабфрейма в фрейме (5 в данном примере), а далее - номер фрейма в сообщении (6 в данном примере), ''1000101110...'' символы с демодулятора в порядке возрастания времени слева направо. <br />
<br />
Требуется:<br />
# Разработать программу, обрабатывающую файл in.txt и выводящую в файл out.txt таблицу эфемерид для спутника согласно варианту [[media:Screenshot_20220215_221319.png|в заданном формате]].<br />
# Обработать файл BINR.bin с помощью программы RTKNAVI из состава RTKLIB. Определить день и место проведения наблюдений, значения эфемерид для спутника согласно номеру варианта (меню открывается в левом нижнем углу экрана по нажатию на квадрат)<br />
# Сравнить полученные таблицы<br />
# Оформить код программы и разместить на Github<br />
# Оформить отчет по этапу и разместить на Github<br />
# Завести Pull Request<br />
<br />
Программа должна компилироваться gcc, все входные данные брать из in.txt, весь вывод осуществлять в out.txt.<br />
<br />
Работа осуществляется в репозитории на github на базе [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021]. Для этого:<br />
# Завести, если до сих пор нет, аккаунт на github<br />
# Если ранее не сделано, сделать форк проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021] (маленькая кнопка сверху справа в вэб-интерфейсе)<br />
# Установить на рабочем компьютере git (для выполнения последующих этапов удобнее будет сделать это в ОС GNU/Linux, вероятно, на виртуальной машине)<br />
# Клонировать свой форк на рабочий компьютер (<code>git clone https://github.com/MySuperAccount/gnssrecbasics2021.git</code>)<br />
# Промежуточные и итоговые результаты по первому этапу хранить в каталоге processing (<code>git pull; git add <files>; git commit -m "Сделал то-то то-то"; git push</code>)<br />
# По результатам первого этапа завести Pull Request в исходный проект '''в ветку, название которой совпадает с вашей фамилией''' (кнопка наверху в вэб-интерфейсе)<br />
# Устранить все замечания, добиться принятия Pull Request'а. <br />
<br />
Этап сдан тогда, когда ваш ПР принят.<br />
<br />
=== Этап 2. Моделирование траектории движения ===<br />
<br />
'''Дедлайн''': 13.04.22 (исправления замечаний до 20.04.22)<br />
<br />
Эфемериды - параметры некоторой модели движения спутника. <br />
В разных ГНСС эти модели разные, а значит отличается и формат эфемерид, и алгоритмы расчета положения спутника.<br />
<br />
Одна из самых простых и удобных моделей - [http://navipedia.org/index.php/GPS_and_Galileo_Satellite_Coordinates_Computation в системе GPS].<br />
<br />
Требуется реализовать на языке Matlab или Python функцию расчета положения спутника GPS на заданный момент по шкале времени UTC.<br />
В качестве эфемерид использовать данные, полученные на предыдущем этапе. <br />
<br />
Построить трехмерные графики множества положений спутника GPS с системным номером, соответствующим номеру студента по списку. Графики в двух вариантах: в СК ECEF WGS84 и соответствующей ей инерциальной СК. Положения должны соответствовать суточному интервалу на дне формирования наблюдений, определенном на предыдущем этапе. Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал. <br />
<br />
Вывести значения координат спутника в файл out.txt в системе ECEF WGS 84 в виде строк: Секунда_от_начала_дня X Y Z<br />
<br />
Используя оценку местоположения с предыдущего этапа, построить Sky Plot за указанный временной интервал и сравнить результат с [http://www.trimble.com/gnssplanningonline/ Trimble GNSS Planning Online].<br />
<br />
Оформить отчет по результатам этапа:<br />
# Реализация в Matlab или Python (описание модели и её листинг)<br />
# Таблица использованных эфемерид<br />
# Трехмерные графики положений спутника в ECEF и ECI (не забудьте подписать оси, изобразите соответствующую Земле сферу в начале СК)<br />
# Расчётный и полученный в GNSS Planing Online SkyView<br />
<br />
Работы по данному этапу осуществляются в каталоге simulation.<br />
Правила приемки этапа те же, что и на первом этапе.<br />
<br />
=== Этап 3. Реализация модуля расчета координат === <br />
<br />
'''Дедлайн''': 11.05.22 (исправления до 18.05.22)<br />
<br />
Требуется разработать на языке С/С++ функцию расчета положения спутника GPS на заданное время по шкале UTC, минимизируя время её исполнения и количество затрачиваемой оперативной памяти. <br />
Вызов функции не должен приводить к выбросу исключений или утечкам памяти при любом наборе входных данных.<br />
<br />
Функция расчета положения спутника в Matlab/Python относительно проста, т.к. доступны библиотеки линейной алгебры и решения уравнений. <br />
Но при разработке встраиваемого ПО приходится сохранять лицензионную частоту, минимизировать вычислительную нагрузку и затраты памяти. <br />
Поэтому отобразить модель из Matlab/Python в прошивку приемника дословно, как правило, не получается. В рассматриваемом примере потребуется, как минимум, выполнить свою реализацию решения трансцендентного уравнения. <br />
<br />
Программный модуль должен сопровождаться unit-тестами (например, используя Check):<br />
* Тесты функции решения уравнения Кеплера<br />
* Тест расчетного положения спутника в сравнении с Matlab/Python<br />
<br />
Во время второго теста должно вычисляться и выводиться средняя длительность исполнения функции. <br />
Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал (как на предыдущем этапе). <br />
<br />
Требуется провести проверку на утечки памяти (например, с помощью утилиты valgrind).<br />
<br />
Оформить отчет по результатам курсового проекта. <br />
В качестве первых двух глав использовать отчёты с предыдущих этапов, в третьей главе отразить результаты этого этапа:<br />
# Код реализации<br />
# Вывод тестов, включая анализ времени исполнения<br />
# Вывод проверок на утечку памяти<br />
# Вывод по этапу <br />
# Заключение по проекту<br />
<br />
Программа должна компилироваться gcc и использовать в качестве входных данных in.txt с первого этапа. <br />
Результат должен записываться в out.txt в строки формата, определенного на втором этапе. <br />
При тестировании должны сравниваться файлы out.txt второго и третьего этапов.<br />
<br />
Работы по третьему этапу следует вести в директории libgpssvpos.<br />
<br />
Правила приемки этапа те же.<br />
<br />
== Курсовая прошлых лет ==<br />
<br />
Задания в [[Курсовой проект АП СРНС 2020|2020]], в [[Курсовая работа АП СРНС 2021|2021]].<br />
<br />
[[Категория:АП СРНС (дисциплина)]]</div>
Korogodin
https://www.srns.ru/wiki/%D0%90%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0_%D0%BF%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D1%81%D0%BF%D1%83%D1%82%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2%D1%8B%D1%85_%D1%80%D0%B0%D0%B4%D0%B8%D0%BE%D0%BD%D0%B0%D0%B2%D0%B8%D0%B3%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_(%D0%B4%D0%B8%D1%81%D1%86%D0%B8%D0%BF%D0%BB%D0%B8%D0%BD%D0%B0)
Аппаратура потребителей спутниковых радионавигационных систем (дисциплина)
2022-02-16T06:56:02Z
<p>Korogodin: /* Этап 3. Реализация модуля расчета координат */</p>
<hr />
<div>Дисциплина "Аппаратура потребителей спутниковых радионавигационных систем" входит в вариативную часть общенаучного цикла занятий [http://beta.mpei.ru/Education/educationalprograms/rt/Pages/default.aspx учебного плана] подготовки специалистов по направлению 11.05.01 "Радиоэлектронные системы и комплексы". <br />
<br />
Преподается осеннем и весеннем семестрах пятого года обучения. В осеннем семестре лекции и лабораторные занятия (итог - экзамен), в весеннем - курсовой проект. <br />
<br />
По дисциплине подготовлен [[ЭУМК АП СРНС|электронный учебно-методический комплекс]].<br />
<br />
== Календарный план ==<br />
<br />
<br />
{| class="wikitable"<br />
|-<br />
! Неделя || Даты || Лекция || Лабораторная || Контрольное мероприятие<br />
<br />
|- align=center<br />
| 2 || 07.09<br />
| Основы СРНС. [[media:Receivers_Segments.pdf|Сегменты СРНС]]. [[media:Receivers_PosMethods.pdf|Методы позиционирования]].<br />
| [https://goo.gl/forms/R7Vos1KsJ1taqqXo2 Ошибки позиционирования в городских условиях] <br />
|<br />
<br />
|- align=center<br />
| 3 || 13.09.21-19.09.21<br />
| Навигационные сигналы. <br />
|<br />
| <br />
<br />
|- align=center<br />
| 4 || 20.09.21-26.09.21<br />
| Антенна, МШУ<br />
| <br />
| КМ-1: Модель сигнала ГНСС<br />
<br />
|- align=center<br />
| 5 || 27.09.21-03.10.21<br />
| Радиочастотный блок <br> ([[media:20111008_АП_СРНС_Лекция_3_презентация.pdf|Аналогово-цифровое преобразование. Синтезатор частот. План частот АП СРНС.]] )<br />
| <br />
| <br />
<br />
|- align=center<br />
| 6 || 04.10.21-10.10.21<br />
| Математическая модель коррелятора <br> ([[media:АП_СРНС_corr.pdf|Статистический эквивалент коррелятора]])<br />
|<br />
| КМ-2: Ошибки позиционирования в городских условиях<br />
<br />
|- align=center<br />
| 7 || 11.10.21-17.10.21<br />
| Аппаратная реализация коррелятора <br> ([[media:20111005_АП_СРНС_Лекция_4_презентация.pdf|Принципы построения и структура коррелятора. Цифровой генератор гармонического сигнала и дальномерного кода.]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 8 || 18.10.21-24.10.21<br />
| Следящие системы <br> ([[media:20111215_АП_СРНС_Лекция_8_презентация.pdf|Система слежения за фазой сигнала. Структурная схема ССФ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_9_презентация.pdf|Система слежения за частотой. Структурная схема ССЧ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_10_презентация.pdf|Система слежения за задержкой. Структурная схема ССЗ, дискриминаторы, следящий фильтр. <br> Система слежения за задержкой с поддержкой от ФАП. Комплексный фильтр.]]) <br />
| [https://goo.gl/XruJBM GNSS Planning] <br />
| КМ-3: Статистический эквивалент коррелятора<br />
<br />
|- align=center<br />
| 9 || 25.10.21-31.10.21<br />
| Оценка SNR, детекторы захвата, детекторы CC<br />
| <br />
| <br />
<br />
|- align=center<br />
| 10 || 01.11.21-07.11.21<br />
| Обнаружение сигнала. <br> ([[media:20111005_АП_СРНС_Лекция_5_презентация.pdf|Обнаружение сигнала. Алгоритмы, статистические характеристики обнаружения.]]) <br />
|<br />
| <br />
<br />
|- align=center<br />
| 11 || 08.11.21-14.11.21<br />
| Поиск сигнала <br> ([[media:20111008_АП_СРНС_Лекция_6_презентация.pdf|Поиск сигнала по частоте и задержке. Алгоритмы поиска, быстрый поиск сигнала.]] <br> [[media:20111017_АП_СРНС_Лекция_7_презентация.pdf|Блок быстрого поиска]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 12 || 15.11.21-21.11.21<br />
| Символьная и оверлейная синхронизация <br> <br />
| [[Исследование_коррелятора_АП_СРНС_ГЛОНАСС_с_помощью_имитационной_модели_(лабораторная_работа)|Исследование коррелятора АП СРНС с помощью имитационной модели]]<br />
| КМ-4: Исследование коррелятора АП СРНС ГЛОНАСС с помощью имитационной модели <br />
<br />
|- align=center<br />
| 13 || 22.11.21-28.11.21<br />
| [[media:20111215_АП_СРНС_Лекция_11_презентация.pdf|Демодуляция навигационных данных]]<br />
| <br />
| <br />
<br />
|- align=center<br />
| 14 || 29.11.21-05.12.21<br />
| Кадровая синхронизация, [[media:20111215_АП_СРНС_Лекция_12_презентация.pdf|декодирование]], парсинг<br />
|<br />
| КМ-5: Прогнозирование спутникового созвездия<br />
<br />
|- align=center<br />
| 15 || 08.12.21-12.12.21<br />
| Формирование измерений, расчет положения спутника<br />
|<br />
| <br />
<br />
|- align=center<br />
| 16 || 13.12.21-19.12.21<br />
| Модель наблюдений псевдодальности. <br> [[media:20111128_АП_СРНС_Лекция_14_презентация.pdf|Вторичная обработка измерений. Одношаговый алгоритм решения навигационной задачи.]] <br> [[media:20111215_АП_СРНС_Лекция_16_презентация.pdf|Контроль целостности]]<br />
| Решение навигационной задачи по псевдодальномерным измерениям<br />
| КМ-6: Решение навигационной задачи по псевдодальномерным измерениям<br />
<br />
|- align=center<br />
| 17 || 20.12.21-26.12.21<br />
| Помехоустойчивость АП СРНС<br />
| <br />
| <br />
<br />
|- align=center<br />
| 18 || 27.12.21-02.01.21<br />
| Зачет<br />
|<br />
|<br />
<br />
|}<br />
<br />
[[media:АПСРНС_2021_Списки.ods|Журнал успеваемости]].<br />
<br />
== Правила аттестации ==<br />
<br />
Обязательным условием для получения допуска к экзамену является выполнение всех контрольных мероприятий: сдача двух контрольных и защита 4 лабораторных работ. <br />
<br />
При написании отчетов следует опираться на правила оформления [https://mpei.ru/Science/ScienceDocuments/Documents/Polojenie_2018/0_GOST_7.32-2017.pdf ГОСТ 7.32] (в части форматирования, оформления рисунков, таблиц, списков и т.д.).<br />
<br />
Приемка осуществляется через репозиторий на github на базе проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021].<br />
<br />
== Демо модели ==<br />
<br />
=== Прогноз выходного сигнала коррелятора ===<br />
<br />
Производится обработка сигнала Gps L1 C/A, сформированного лабораторным имитатором сигналов, синхронизированным с приемником. Сигнал перенесен с помощью РЧБ NT1065 на промежуточную частоту <math>f_{if} = 8.54</math> МГц и преобразован многоразрядным АЦП с частотой сэмплирования <math>F_d = 99.375</math> МГц. Установленная на имитаторе мощность обеспечивает уровень отношения сигнал/шум <math>27 + N</math> дБГц, где <math>N</math> - номер вариант по журналу. <br />
<br />
В приемнике производтся корреляционная обработка сигнала, интервал накопления составляет <math>T = 1</math> мс. <br />
<br />
Сигнал имеет сдвиг частоты несущей <math>f_d = 100 N</math> Гц, при этом опорный сигнал коррелятора имеет аналогичный сдвиг <math>f_{d, rep} = f_d</math>. Задержка огибающей известна точно и используется в опорном сигнале <math>\tau = \tau_{rep}</math>.<br />
<br />
Задание: Построить на плоскости I,Q вид множества точек корреляционных сумм, полученных в ходе большого (сотни) числа экспериментов. <br />
<br />
{{Hider|title = Расчет выходного сигнала коррелятора<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
N = 30;<br />
<br />
Fd = 99.375e6;<br />
Td = 1/Fd;<br />
T = 0.001;<br />
fif = 8.34e6;<br />
<br />
fd = 100 * N;<br />
fd_rep = fd;<br />
<br />
phi = 10 * N;<br />
phi_rep = 20 * N;<br />
<br />
qcno_dB = 27 + N;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdn = 50/3;<br />
A = sqrt(qcno * Td) * 2 * stdn; % qcno = A^2 / (4 stdn^2 Td)<br />
<br />
fprintf('A = %f, stdn = %f\n', A, stdn);<br />
<br />
L = fix(T * Fd);<br />
t = (0:(L-1)) * Td;<br />
<br />
PRN_Length = 1023;<br />
PRN = (-1).^(rand(1, PRN_Length) > 0.5);<br />
<br />
tau = 100500e-6;<br />
tau_rep = tau;<br />
<br />
nchip = mod(fix(PRN_Length*(t - tau )/T), PRN_Length) + 1;<br />
nchip_rep = mod(fix(PRN_Length*(t - tau_rep)/T), PRN_Length) + 1;<br />
<br />
Gc = PRN(nchip );<br />
Gc_rep = PRN(nchip_rep);<br />
<br />
So = A * Gc .* cos(2*pi*fif*t + 2*pi*fd *t + deg2rad(phi) );<br />
S_rep_cos = Gc_rep .* cos(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
S_rep_sin = Gc_rep .* sin(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
<br />
K = 1000; I = nan(1, K); Q = nan(1,K);<br />
for k = 1:K<br />
n = randn(1,L)*stdn;<br />
<br />
Gd = (-1).^(rand(1,1) > 0.5);<br />
S = Gd * So;<br />
<br />
y = S + n;<br />
<br />
I(k) = y * S_rep_cos';<br />
Q(k) = y * S_rep_sin';<br />
end<br />
<br />
maxIQ = 1.1*max(abs(I + 1i*Q));<br />
<br />
figure(1);<br />
plot(t*1e3, [y; S; A*Gc]);<br />
xlabel('t, ms')<br />
ylabel('y, S');<br />
grid on<br />
<br />
figure(2);<br />
plot(I, Q, '*')<br />
hold on<br />
plot([-maxIQ maxIQ], [0 0], 'k');<br />
plot([0 0], [-maxIQ maxIQ], 'k');<br />
quiver(-maxIQ, 0, 2*maxIQ, 0, 1, 'k');<br />
quiver(0, -maxIQ, 0, 2*maxIQ, 1, 'k');<br />
hold off<br />
xlabel('I')<br />
ylabel('Q');<br />
axis equal<br />
grid on<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
<br />
=== ЧАП и ФАП на стат эквивалентах ===<br />
<br />
{{Hider|title = Слежение за фазой и частотой<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
T = 0.010;<br />
<br />
Xist = [10; <br />
1];<br />
<br />
Xfilt = [0;<br />
0];<br />
<br />
Xfilt_FLL = [0;<br />
0];<br />
<br />
F = [1 T;<br />
0 1];<br />
<br />
Tmod = 10;<br />
K = fix(Tmod / T);<br />
<br />
G = [0;<br />
1];<br />
<br />
std_ksi = 1.3 * T;<br />
ksi = std_ksi * randn(1, K);<br />
<br />
qcno_dB = 45;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdnIQ = 7;<br />
nI = stdnIQ * randn(1, K);<br />
nQ = stdnIQ * randn(1, K);<br />
A_IQ = sqrt(2*qcno*T) * stdnIQ; <br />
<br />
dF_PLL = 20;<br />
Kfilt_PLL = [ 8/3 * dF_PLL * T;<br />
32/9 * dF_PLL^2 * T];<br />
<br />
dF_FLL = 3;<br />
Kfilt_FLL = [ 8/3 * dF_FLL * T;<br />
32/9 * dF_FLL^2 * T];<br />
<br />
t = (1:K)*T;<br />
phi_ist = nan(1, K);<br />
w_ist = nan(1, K);<br />
phi_filt = nan(1, K);<br />
w_filt = nan(1, K);<br />
phi_filt_FLL = nan(1, K);<br />
w_filt_FLL = nan(1, K);<br />
<br />
phi_corr = 0; Iold = 0; Qold = 0;<br />
for k = 1:K<br />
Xist = F * Xist + G * ksi(k);<br />
<br />
phi_ist(k) = Xist(1);<br />
w_ist(k) = Xist(2);<br />
<br />
% PLL<br />
Xfilt_extr = F*Xfilt;<br />
phi_extr = Xfilt_extr(1);<br />
dPhi = phi_ist(k) - phi_extr;<br />
<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = -Q; <br />
Sd = A_IQ; <br />
<br />
Xfilt = Xfilt_extr + Kfilt_PLL * Ud/Sd;<br />
<br />
phi_filt(k) = Xfilt(1);<br />
w_filt(k) = Xfilt(2);<br />
<br />
% FLL<br />
Xfilt_extr_FLL = F*Xfilt_FLL;<br />
w_extr = Xfilt_extr_FLL(1);<br />
dPhi = phi_ist(k) - phi_corr;<br />
phi_corr = phi_corr + w_extr * T;<br />
dW = w_ist(k) - w_extr;<br />
<br />
I = - A_IQ * cos(dPhi) + nI(k);<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = Q*Iold - I*Qold; <br />
Sd = A_IQ; <br />
Iold = I; Qold = Q;<br />
<br />
Xfilt_FLL = Xfilt_extr_FLL + Kfilt_FLL * Ud/Sd;<br />
<br />
phi_filt_FLL(k) = phi_corr;<br />
w_filt_FLL(k) = Xfilt_FLL(1);<br />
<br />
<br />
end<br />
<br />
figure(1)<br />
subplot(2,1,1)<br />
plot(t, phi_ist/2/pi, t, phi_filt/2/pi, t, phi_filt_FLL/2/pi)<br />
ylabel('\phi, cycles')<br />
subplot(2,1,2)<br />
plot(t, rad2deg(w_ist), t, rad2deg(w_filt), t, rad2deg(w_filt_FLL))<br />
ylabel('\omega, Hz')<br />
xlabel('t, sec')<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
== Вопросы к экзамену ==<br />
<br />
Экзамен проводится в письменной форме: тест, задача и один экзаменационный вопрос ([[media:Вопросы_экз_АП_СРНС.doc|экзаменационные вопросы]]). При подготовке рекомендуется использовать книги по тематике, [[media:2013_ЭУМК_С3.33_Лекции_АП_СРНС.pdf|конспекты лекций]] и презентации.<br />
<br />
== Курсовая работа ==<br />
<br />
Название: '''Расчет траектории движения спутника GPS по данным с демодулятора его сигнала'''<br />
<br />
Курсовая работа по АП СРНС выполняется во втором семестре. В рамках КР студенты знакомятся с рядом инструментов и техник, используемых при разработке навигационных приемников.<br />
<br />
Цель проекта - разработка модулей разбора навигационного сообщения GPS и расчета положения спутника, предназначенных для использования в составе навигационного приемника.<br />
<br />
Требования к разрабатываемому программному модулю:<br />
* требования назначения;<br />
* отсутствие утечек памяти;<br />
* малое время выполнения;<br />
* низкий расход памяти;<br />
* корректное выполнение при аномальных входных данных. <br />
<br />
Для достижения цели выполняется ряд задач, соответствующих этапам проекта и контрольным мероприятиям:<br />
* разработка модуля разбора символов навигационного сообщения<br />
* расчет положения КА в Matlab/Python и его проверка сторонними сервисами;<br />
* реализация модуля расчета положения КА на С/С++ и его тестирование.<br />
<br />
На каждом из этапов действуют следующие правила:<br />
* Взаимодействие осуществляется через github (пул реквесты, комментарии)<br />
* '''Этап сдан тогда, когда принят пул реквест'''<br />
<br />
<br />
<br />
{| class="wikitable"<br />
|+ Варианты заданий:<br />
|-<br />
! Студент !! Номер спутника = варианта !! Логи !! Примечание<br />
|-<br />
! Антропов Евгений Александрович<br />
| 1 || [[media:2022_KR_01.tar.gz|tar.gz]] || <br />
|-<br />
! Бахолдин Никита Владимирович<br />
| 3 || [[media:2022_KR_03.tar.gz|tar.gz]] || <br />
|-<br />
! Берестнев Владимир Сергеевич<br />
| 8 || [[media:2022_KR_08.tar.gz|tar.gz]] || <br />
|-<br />
! Дубинин Леонид Андреевич<br />
| 10 || [[media:2022_KR_10.tar.gz|tar.gz]] || <br />
|-<br />
! Еловский Никита Станиславович<br />
| 12 || [[media:2022_KR_12.tar.gz|tar.gz]] || <br />
|-<br />
! Иванцова Дарья Николаевна<br />
| 17 || [[media:2022_KR_17.tar.gz|tar.gz]] || <br />
|-<br />
! Капитонов Александр Ильич<br />
| 19 || [[media:2022_KR_19.tar.gz|tar.gz]] || <br />
|-<br />
! Коробков Андрей Юрьевич<br />
| 21 || [[media:2022_KR_21.tar.gz|tar.gz]] || <br />
|-<br />
! Куксин Владислав Александрович<br />
| 22 || [[media:2022_KR_22.tar.gz|tar.gz]] || <br />
|-<br />
! Кусакин Павел Александрович<br />
| 31 || [[media:2022_KR_31.tar.gz|tar.gz]] || <br />
|-<br />
! Ливенцов Василий Александрович<br />
| 14 || [[media:2022_KR_14.tar.gz|tar.gz]] || <br />
|-<br />
! Михайлов Иван Олегович<br />
| 24 || [[media:2022_KR_24.tar.gz|tar.gz]] || <br />
|-<br />
! Муратов Николай Сергеевич<br />
| 4 || [[media:2022_KR_04.tar.gz|tar.gz]] || <br />
|-<br />
! Попов Максим Геннадьевич<br />
| 6 || [[media:2022_KR_06.tar.gz|tar.gz]] || <br />
|-<br />
! Солнцева Милана Константиновна<br />
| 7 || [[media:2022_KR_07.tar.gz|tar.gz]] || <br />
|-<br />
! Танкина Анна Михайловна<br />
| 9 || [[media:2022_KR_09.tar.gz|tar.gz]] || <br />
|-<br />
! Цымбал Григорий Романович <br />
| 16 || [[media:2022_KR_16.tar.gz|tar.gz]] || <br />
|-<br />
! Чепелев Игорь Игоревич<br />
| 26 || [[media:2022_KR_26.tar.gz|tar.gz]] || <br />
|}<br />
<br />
<br />
=== Этап 1. Обработка логов навигационного приемника ===<br />
<br />
'''Дедлайн''': 04.03.21 (устранение замечаний и итоговый мёрдж до 13.03.21)<br />
<br />
Конечная цель всего курсового проекта - получить библиотеку функций на Си++, позволяющую рассчитывать положение спутника GPS по данным с демодулятора его сигнала L1 C/A. <br />
На первом этапе реализуем модуль разбора навигационного сообщения до структуры эфемерид, сравним результаты со сторонней программой.<br />
<br />
В неизвестной локации установлен навигационный приемник, принимающий сигналы GPS L1C/A и логирующий результаты этого приема в формате [https://navis.ru/downloads/SOFT/NV08C_BINR_Protocol_Specification_V13_ENG_10082012.pdf NVS BINR]. <br />
Собранный на пятиминутном интервале файл приложен в архиве под именем BINR.bin, см. таблицу вариантов. <br />
Файл содержит наблюдения псевдодальностей и прочих радионавигационных параметров, демодулированные и разобранные данные навигационного сообщения. <br />
<br />
Для удобства студентов данные демодулятора продублированы в текстовый файл in.txt. Каждая строка файла содержит данные одного сабфрейма одного навигационного сигнала в формате:<br />
<source lang="bash"><br />
1 0 013 0R GpsL1CA # 13 212130404 29 125 53 100010111010101010101010001010010111000011001010010111111000101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100<br />
</source><br />
где ''# 13'' - номер спутника, ''212130404'' - счетчик сабфреймов в сигнале, ''53'' - ID сабфрейма в навигационном сообщении, где в первых трех битах содержится номер сабфрейма в фрейме (5 в данном примере), а далее - номер фрейма в сообщении (6 в данном примере), ''1000101110...'' символы с демодулятора в порядке возрастания времени слева направо. <br />
<br />
Требуется:<br />
# Разработать программу, обрабатывающую файл in.txt и выводящую в файл out.txt таблицу эфемерид для спутника согласно варианту [[media:Screenshot_20220215_221319.png|в заданном формате]].<br />
# Обработать файл BINR.bin с помощью программы RTKNAVI из состава RTKLIB. Определить день и место проведения наблюдений, значения эфемерид для спутника согласно номеру варианта (меню открывается в левом нижнем углу экрана по нажатию на квадрат)<br />
# Сравнить полученные таблицы<br />
# Оформить код программы и разместить на Github<br />
# Оформить отчет по этапу и разместить на Github<br />
# Завести Pull Request<br />
<br />
Программа должна компилироваться gcc, все входные данные брать из in.txt, весь вывод осуществлять в out.txt.<br />
<br />
Работа осуществляется в репозитории на github на базе [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021]. Для этого:<br />
# Завести, если до сих пор нет, аккаунт на github<br />
# Если ранее не сделано, сделать форк проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021] (маленькая кнопка сверху справа в вэб-интерфейсе)<br />
# Установить на рабочем компьютере git (для выполнения последующих этапов удобнее будет сделать это в ОС GNU/Linux, вероятно, на виртуальной машине)<br />
# Клонировать свой форк на рабочий компьютер (<code>git clone https://github.com/MySuperAccount/gnssrecbasics2021.git</code>)<br />
# Промежуточные и итоговые результаты по первому этапу хранить в каталоге processing (<code>git pull; git add <files>; git commit -m "Сделал то-то то-то"; git push</code>)<br />
# По результатам первого этапа завести Pull Request в исходный проект '''в ветку, название которой совпадает с вашей фамилией''' (кнопка наверху в вэб-интерфейсе)<br />
# Устранить все замечания, добиться принятия Pull Request'а. <br />
<br />
Этап сдан тогда, когда ваш ПР принят.<br />
<br />
=== Этап 2. Моделирование траектории движения ===<br />
<br />
'''Дедлайн''': 13.04.22 (исправления замечаний до 20.04.22)<br />
<br />
Эфемериды - параметры некоторой модели движения спутника. <br />
В разных ГНСС эти модели разные, а значит отличается и формат эфемерид, и алгоритмы расчета положения спутника.<br />
<br />
Одна из самых простых и удобных моделей - [http://navipedia.org/index.php/GPS_and_Galileo_Satellite_Coordinates_Computation в системе GPS].<br />
<br />
Требуется реализовать на языке Matlab или Python функцию расчета положения спутника GPS на заданный момент по шкале времени UTC.<br />
В качестве эфемерид использовать данные, полученные на предыдущем этапе. <br />
<br />
Построить трехмерные графики множества положений спутника GPS с системным номером, соответствующим номеру студента по списку. Графики в двух вариантах: в СК ECEF WGS84 и соответствующей ей инерциальной СК. Положения должны соответствовать суточному интервалу на дне формирования наблюдений, определенном на предыдущем этапе. Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал. <br />
<br />
Вывести значения координат спутника в файл out.txt в системе ECEF WGS 84 в виде строк: Секунда_от_начала_дня X Y Z<br />
<br />
Используя оценку местоположения с предыдущего этапа, построить Sky Plot за указанный временной интервал и сравнить результат с [http://www.trimble.com/gnssplanningonline/ Trimble GNSS Planning Online].<br />
<br />
Оформить отчет по результатам этапа:<br />
# Реализация в Matlab или Python (описание модели и её листинг)<br />
# Таблица использованных эфемерид<br />
# Трехмерные графики положений спутника в ECEF и ECI (не забудьте подписать оси, изобразите соответствующую Земле сферу в начале СК)<br />
# Расчётный и полученный в GNSS Planing Online SkyView<br />
<br />
Работы по данному этапу осуществляются в каталоге simulation.<br />
Правила приемки этапа те же, что и на первом этапе.<br />
<br />
=== Этап 3. Реализация модуля расчета координат === <br />
<br />
'''Дедлайн''': 11.05.22 (исправления до 18.05.22)<br />
<br />
Требуется разработать на языке С/С++ функцию расчета положения спутника GPS на заданное время по шкале UTC, минимизируя время её исполнения и количество затрачиваемой оперативной памяти. <br />
Вызов функции не должен приводить к выбросу исключений или утечкам памяти при любом наборе входных данных.<br />
<br />
Функция расчета положения спутника в Matlab/Python относительно проста, т.к. доступны библиотеки линейной алгебры и решения уравнений. <br />
Но при разработке встраиваемого ПО приходится сохранять лицензионную частоту, минимизировать вычислительную нагрузку и затраты памяти. <br />
Поэтому отобразить модель из Matlab/Python в прошивку приемника дословно, как правило, не получается. В рассматриваемом примере потребуется, как минимум, выполнить свою реализацию решения трансцендентного уравнения. <br />
<br />
Программный модуль должен сопровождаться unit-тестами (например, используя Check):<br />
* Тесты функции решения уравнения Кеплера<br />
* Тест расчетного положения спутника в сравнении с Matlab/Python<br />
<br />
Во время второго теста должно вычисляться и выводиться средняя длительность исполнения функции. <br />
Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал (как на предыдущем этапе). <br />
<br />
Требуется провести проверку на утечки памяти (например, с помощью утилиты valgrind).<br />
<br />
Оформить отчет по результатам курсового проекта. <br />
В качестве первых двух глав использовать отчёты с предыдущих этапов, в третьей главе отразить результаты этого этапа:<br />
# Код реализации<br />
# Вывод тестов, включая анализ времени исполнения<br />
# Вывод проверок на утечку памяти<br />
# Вывод по этапу <br />
# Заключение по проекту<br />
<br />
Программа должна компилироваться gcc и использовать в качестве входных данных in.txt с первого этапа. <br />
Результат должен записываться в out.txt в строки формата, определенного на втором этапе. <br />
При тестировании должны сравниваться файлы out.txt второго и третьего этапов.<br />
<br />
Работы по третьему этапу следует вести в директории libgpssvpos.<br />
<br />
Правила приемки этапа те же.<br />
<br />
== Курсовая прошлых лет ==<br />
<br />
Задания в [[Курсовой проект АП СРНС 2020|2020]], в [[Курсовая работа АП СРНС 2021|2021]].<br />
<br />
[[Категория:АП СРНС (дисциплина)]]</div>
Korogodin
https://www.srns.ru/wiki/%D0%90%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0_%D0%BF%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D1%81%D0%BF%D1%83%D1%82%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2%D1%8B%D1%85_%D1%80%D0%B0%D0%B4%D0%B8%D0%BE%D0%BD%D0%B0%D0%B2%D0%B8%D0%B3%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_(%D0%B4%D0%B8%D1%81%D1%86%D0%B8%D0%BF%D0%BB%D0%B8%D0%BD%D0%B0)
Аппаратура потребителей спутниковых радионавигационных систем (дисциплина)
2022-02-16T06:54:16Z
<p>Korogodin: /* Этап 3. Реализация */</p>
<hr />
<div>Дисциплина "Аппаратура потребителей спутниковых радионавигационных систем" входит в вариативную часть общенаучного цикла занятий [http://beta.mpei.ru/Education/educationalprograms/rt/Pages/default.aspx учебного плана] подготовки специалистов по направлению 11.05.01 "Радиоэлектронные системы и комплексы". <br />
<br />
Преподается осеннем и весеннем семестрах пятого года обучения. В осеннем семестре лекции и лабораторные занятия (итог - экзамен), в весеннем - курсовой проект. <br />
<br />
По дисциплине подготовлен [[ЭУМК АП СРНС|электронный учебно-методический комплекс]].<br />
<br />
== Календарный план ==<br />
<br />
<br />
{| class="wikitable"<br />
|-<br />
! Неделя || Даты || Лекция || Лабораторная || Контрольное мероприятие<br />
<br />
|- align=center<br />
| 2 || 07.09<br />
| Основы СРНС. [[media:Receivers_Segments.pdf|Сегменты СРНС]]. [[media:Receivers_PosMethods.pdf|Методы позиционирования]].<br />
| [https://goo.gl/forms/R7Vos1KsJ1taqqXo2 Ошибки позиционирования в городских условиях] <br />
|<br />
<br />
|- align=center<br />
| 3 || 13.09.21-19.09.21<br />
| Навигационные сигналы. <br />
|<br />
| <br />
<br />
|- align=center<br />
| 4 || 20.09.21-26.09.21<br />
| Антенна, МШУ<br />
| <br />
| КМ-1: Модель сигнала ГНСС<br />
<br />
|- align=center<br />
| 5 || 27.09.21-03.10.21<br />
| Радиочастотный блок <br> ([[media:20111008_АП_СРНС_Лекция_3_презентация.pdf|Аналогово-цифровое преобразование. Синтезатор частот. План частот АП СРНС.]] )<br />
| <br />
| <br />
<br />
|- align=center<br />
| 6 || 04.10.21-10.10.21<br />
| Математическая модель коррелятора <br> ([[media:АП_СРНС_corr.pdf|Статистический эквивалент коррелятора]])<br />
|<br />
| КМ-2: Ошибки позиционирования в городских условиях<br />
<br />
|- align=center<br />
| 7 || 11.10.21-17.10.21<br />
| Аппаратная реализация коррелятора <br> ([[media:20111005_АП_СРНС_Лекция_4_презентация.pdf|Принципы построения и структура коррелятора. Цифровой генератор гармонического сигнала и дальномерного кода.]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 8 || 18.10.21-24.10.21<br />
| Следящие системы <br> ([[media:20111215_АП_СРНС_Лекция_8_презентация.pdf|Система слежения за фазой сигнала. Структурная схема ССФ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_9_презентация.pdf|Система слежения за частотой. Структурная схема ССЧ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_10_презентация.pdf|Система слежения за задержкой. Структурная схема ССЗ, дискриминаторы, следящий фильтр. <br> Система слежения за задержкой с поддержкой от ФАП. Комплексный фильтр.]]) <br />
| [https://goo.gl/XruJBM GNSS Planning] <br />
| КМ-3: Статистический эквивалент коррелятора<br />
<br />
|- align=center<br />
| 9 || 25.10.21-31.10.21<br />
| Оценка SNR, детекторы захвата, детекторы CC<br />
| <br />
| <br />
<br />
|- align=center<br />
| 10 || 01.11.21-07.11.21<br />
| Обнаружение сигнала. <br> ([[media:20111005_АП_СРНС_Лекция_5_презентация.pdf|Обнаружение сигнала. Алгоритмы, статистические характеристики обнаружения.]]) <br />
|<br />
| <br />
<br />
|- align=center<br />
| 11 || 08.11.21-14.11.21<br />
| Поиск сигнала <br> ([[media:20111008_АП_СРНС_Лекция_6_презентация.pdf|Поиск сигнала по частоте и задержке. Алгоритмы поиска, быстрый поиск сигнала.]] <br> [[media:20111017_АП_СРНС_Лекция_7_презентация.pdf|Блок быстрого поиска]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 12 || 15.11.21-21.11.21<br />
| Символьная и оверлейная синхронизация <br> <br />
| [[Исследование_коррелятора_АП_СРНС_ГЛОНАСС_с_помощью_имитационной_модели_(лабораторная_работа)|Исследование коррелятора АП СРНС с помощью имитационной модели]]<br />
| КМ-4: Исследование коррелятора АП СРНС ГЛОНАСС с помощью имитационной модели <br />
<br />
|- align=center<br />
| 13 || 22.11.21-28.11.21<br />
| [[media:20111215_АП_СРНС_Лекция_11_презентация.pdf|Демодуляция навигационных данных]]<br />
| <br />
| <br />
<br />
|- align=center<br />
| 14 || 29.11.21-05.12.21<br />
| Кадровая синхронизация, [[media:20111215_АП_СРНС_Лекция_12_презентация.pdf|декодирование]], парсинг<br />
|<br />
| КМ-5: Прогнозирование спутникового созвездия<br />
<br />
|- align=center<br />
| 15 || 08.12.21-12.12.21<br />
| Формирование измерений, расчет положения спутника<br />
|<br />
| <br />
<br />
|- align=center<br />
| 16 || 13.12.21-19.12.21<br />
| Модель наблюдений псевдодальности. <br> [[media:20111128_АП_СРНС_Лекция_14_презентация.pdf|Вторичная обработка измерений. Одношаговый алгоритм решения навигационной задачи.]] <br> [[media:20111215_АП_СРНС_Лекция_16_презентация.pdf|Контроль целостности]]<br />
| Решение навигационной задачи по псевдодальномерным измерениям<br />
| КМ-6: Решение навигационной задачи по псевдодальномерным измерениям<br />
<br />
|- align=center<br />
| 17 || 20.12.21-26.12.21<br />
| Помехоустойчивость АП СРНС<br />
| <br />
| <br />
<br />
|- align=center<br />
| 18 || 27.12.21-02.01.21<br />
| Зачет<br />
|<br />
|<br />
<br />
|}<br />
<br />
[[media:АПСРНС_2021_Списки.ods|Журнал успеваемости]].<br />
<br />
== Правила аттестации ==<br />
<br />
Обязательным условием для получения допуска к экзамену является выполнение всех контрольных мероприятий: сдача двух контрольных и защита 4 лабораторных работ. <br />
<br />
При написании отчетов следует опираться на правила оформления [https://mpei.ru/Science/ScienceDocuments/Documents/Polojenie_2018/0_GOST_7.32-2017.pdf ГОСТ 7.32] (в части форматирования, оформления рисунков, таблиц, списков и т.д.).<br />
<br />
Приемка осуществляется через репозиторий на github на базе проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021].<br />
<br />
== Демо модели ==<br />
<br />
=== Прогноз выходного сигнала коррелятора ===<br />
<br />
Производится обработка сигнала Gps L1 C/A, сформированного лабораторным имитатором сигналов, синхронизированным с приемником. Сигнал перенесен с помощью РЧБ NT1065 на промежуточную частоту <math>f_{if} = 8.54</math> МГц и преобразован многоразрядным АЦП с частотой сэмплирования <math>F_d = 99.375</math> МГц. Установленная на имитаторе мощность обеспечивает уровень отношения сигнал/шум <math>27 + N</math> дБГц, где <math>N</math> - номер вариант по журналу. <br />
<br />
В приемнике производтся корреляционная обработка сигнала, интервал накопления составляет <math>T = 1</math> мс. <br />
<br />
Сигнал имеет сдвиг частоты несущей <math>f_d = 100 N</math> Гц, при этом опорный сигнал коррелятора имеет аналогичный сдвиг <math>f_{d, rep} = f_d</math>. Задержка огибающей известна точно и используется в опорном сигнале <math>\tau = \tau_{rep}</math>.<br />
<br />
Задание: Построить на плоскости I,Q вид множества точек корреляционных сумм, полученных в ходе большого (сотни) числа экспериментов. <br />
<br />
{{Hider|title = Расчет выходного сигнала коррелятора<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
N = 30;<br />
<br />
Fd = 99.375e6;<br />
Td = 1/Fd;<br />
T = 0.001;<br />
fif = 8.34e6;<br />
<br />
fd = 100 * N;<br />
fd_rep = fd;<br />
<br />
phi = 10 * N;<br />
phi_rep = 20 * N;<br />
<br />
qcno_dB = 27 + N;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdn = 50/3;<br />
A = sqrt(qcno * Td) * 2 * stdn; % qcno = A^2 / (4 stdn^2 Td)<br />
<br />
fprintf('A = %f, stdn = %f\n', A, stdn);<br />
<br />
L = fix(T * Fd);<br />
t = (0:(L-1)) * Td;<br />
<br />
PRN_Length = 1023;<br />
PRN = (-1).^(rand(1, PRN_Length) > 0.5);<br />
<br />
tau = 100500e-6;<br />
tau_rep = tau;<br />
<br />
nchip = mod(fix(PRN_Length*(t - tau )/T), PRN_Length) + 1;<br />
nchip_rep = mod(fix(PRN_Length*(t - tau_rep)/T), PRN_Length) + 1;<br />
<br />
Gc = PRN(nchip );<br />
Gc_rep = PRN(nchip_rep);<br />
<br />
So = A * Gc .* cos(2*pi*fif*t + 2*pi*fd *t + deg2rad(phi) );<br />
S_rep_cos = Gc_rep .* cos(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
S_rep_sin = Gc_rep .* sin(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
<br />
K = 1000; I = nan(1, K); Q = nan(1,K);<br />
for k = 1:K<br />
n = randn(1,L)*stdn;<br />
<br />
Gd = (-1).^(rand(1,1) > 0.5);<br />
S = Gd * So;<br />
<br />
y = S + n;<br />
<br />
I(k) = y * S_rep_cos';<br />
Q(k) = y * S_rep_sin';<br />
end<br />
<br />
maxIQ = 1.1*max(abs(I + 1i*Q));<br />
<br />
figure(1);<br />
plot(t*1e3, [y; S; A*Gc]);<br />
xlabel('t, ms')<br />
ylabel('y, S');<br />
grid on<br />
<br />
figure(2);<br />
plot(I, Q, '*')<br />
hold on<br />
plot([-maxIQ maxIQ], [0 0], 'k');<br />
plot([0 0], [-maxIQ maxIQ], 'k');<br />
quiver(-maxIQ, 0, 2*maxIQ, 0, 1, 'k');<br />
quiver(0, -maxIQ, 0, 2*maxIQ, 1, 'k');<br />
hold off<br />
xlabel('I')<br />
ylabel('Q');<br />
axis equal<br />
grid on<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
<br />
=== ЧАП и ФАП на стат эквивалентах ===<br />
<br />
{{Hider|title = Слежение за фазой и частотой<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
T = 0.010;<br />
<br />
Xist = [10; <br />
1];<br />
<br />
Xfilt = [0;<br />
0];<br />
<br />
Xfilt_FLL = [0;<br />
0];<br />
<br />
F = [1 T;<br />
0 1];<br />
<br />
Tmod = 10;<br />
K = fix(Tmod / T);<br />
<br />
G = [0;<br />
1];<br />
<br />
std_ksi = 1.3 * T;<br />
ksi = std_ksi * randn(1, K);<br />
<br />
qcno_dB = 45;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdnIQ = 7;<br />
nI = stdnIQ * randn(1, K);<br />
nQ = stdnIQ * randn(1, K);<br />
A_IQ = sqrt(2*qcno*T) * stdnIQ; <br />
<br />
dF_PLL = 20;<br />
Kfilt_PLL = [ 8/3 * dF_PLL * T;<br />
32/9 * dF_PLL^2 * T];<br />
<br />
dF_FLL = 3;<br />
Kfilt_FLL = [ 8/3 * dF_FLL * T;<br />
32/9 * dF_FLL^2 * T];<br />
<br />
t = (1:K)*T;<br />
phi_ist = nan(1, K);<br />
w_ist = nan(1, K);<br />
phi_filt = nan(1, K);<br />
w_filt = nan(1, K);<br />
phi_filt_FLL = nan(1, K);<br />
w_filt_FLL = nan(1, K);<br />
<br />
phi_corr = 0; Iold = 0; Qold = 0;<br />
for k = 1:K<br />
Xist = F * Xist + G * ksi(k);<br />
<br />
phi_ist(k) = Xist(1);<br />
w_ist(k) = Xist(2);<br />
<br />
% PLL<br />
Xfilt_extr = F*Xfilt;<br />
phi_extr = Xfilt_extr(1);<br />
dPhi = phi_ist(k) - phi_extr;<br />
<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = -Q; <br />
Sd = A_IQ; <br />
<br />
Xfilt = Xfilt_extr + Kfilt_PLL * Ud/Sd;<br />
<br />
phi_filt(k) = Xfilt(1);<br />
w_filt(k) = Xfilt(2);<br />
<br />
% FLL<br />
Xfilt_extr_FLL = F*Xfilt_FLL;<br />
w_extr = Xfilt_extr_FLL(1);<br />
dPhi = phi_ist(k) - phi_corr;<br />
phi_corr = phi_corr + w_extr * T;<br />
dW = w_ist(k) - w_extr;<br />
<br />
I = - A_IQ * cos(dPhi) + nI(k);<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = Q*Iold - I*Qold; <br />
Sd = A_IQ; <br />
Iold = I; Qold = Q;<br />
<br />
Xfilt_FLL = Xfilt_extr_FLL + Kfilt_FLL * Ud/Sd;<br />
<br />
phi_filt_FLL(k) = phi_corr;<br />
w_filt_FLL(k) = Xfilt_FLL(1);<br />
<br />
<br />
end<br />
<br />
figure(1)<br />
subplot(2,1,1)<br />
plot(t, phi_ist/2/pi, t, phi_filt/2/pi, t, phi_filt_FLL/2/pi)<br />
ylabel('\phi, cycles')<br />
subplot(2,1,2)<br />
plot(t, rad2deg(w_ist), t, rad2deg(w_filt), t, rad2deg(w_filt_FLL))<br />
ylabel('\omega, Hz')<br />
xlabel('t, sec')<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
== Вопросы к экзамену ==<br />
<br />
Экзамен проводится в письменной форме: тест, задача и один экзаменационный вопрос ([[media:Вопросы_экз_АП_СРНС.doc|экзаменационные вопросы]]). При подготовке рекомендуется использовать книги по тематике, [[media:2013_ЭУМК_С3.33_Лекции_АП_СРНС.pdf|конспекты лекций]] и презентации.<br />
<br />
== Курсовая работа ==<br />
<br />
Название: '''Расчет траектории движения спутника GPS по данным с демодулятора его сигнала'''<br />
<br />
Курсовая работа по АП СРНС выполняется во втором семестре. В рамках КР студенты знакомятся с рядом инструментов и техник, используемых при разработке навигационных приемников.<br />
<br />
Цель проекта - разработка модулей разбора навигационного сообщения GPS и расчета положения спутника, предназначенных для использования в составе навигационного приемника.<br />
<br />
Требования к разрабатываемому программному модулю:<br />
* требования назначения;<br />
* отсутствие утечек памяти;<br />
* малое время выполнения;<br />
* низкий расход памяти;<br />
* корректное выполнение при аномальных входных данных. <br />
<br />
Для достижения цели выполняется ряд задач, соответствующих этапам проекта и контрольным мероприятиям:<br />
* разработка модуля разбора символов навигационного сообщения<br />
* расчет положения КА в Matlab/Python и его проверка сторонними сервисами;<br />
* реализация модуля расчета положения КА на С/С++ и его тестирование.<br />
<br />
На каждом из этапов действуют следующие правила:<br />
* Взаимодействие осуществляется через github (пул реквесты, комментарии)<br />
* '''Этап сдан тогда, когда принят пул реквест'''<br />
<br />
<br />
<br />
{| class="wikitable"<br />
|+ Варианты заданий:<br />
|-<br />
! Студент !! Номер спутника = варианта !! Логи !! Примечание<br />
|-<br />
! Антропов Евгений Александрович<br />
| 1 || [[media:2022_KR_01.tar.gz|tar.gz]] || <br />
|-<br />
! Бахолдин Никита Владимирович<br />
| 3 || [[media:2022_KR_03.tar.gz|tar.gz]] || <br />
|-<br />
! Берестнев Владимир Сергеевич<br />
| 8 || [[media:2022_KR_08.tar.gz|tar.gz]] || <br />
|-<br />
! Дубинин Леонид Андреевич<br />
| 10 || [[media:2022_KR_10.tar.gz|tar.gz]] || <br />
|-<br />
! Еловский Никита Станиславович<br />
| 12 || [[media:2022_KR_12.tar.gz|tar.gz]] || <br />
|-<br />
! Иванцова Дарья Николаевна<br />
| 17 || [[media:2022_KR_17.tar.gz|tar.gz]] || <br />
|-<br />
! Капитонов Александр Ильич<br />
| 19 || [[media:2022_KR_19.tar.gz|tar.gz]] || <br />
|-<br />
! Коробков Андрей Юрьевич<br />
| 21 || [[media:2022_KR_21.tar.gz|tar.gz]] || <br />
|-<br />
! Куксин Владислав Александрович<br />
| 22 || [[media:2022_KR_22.tar.gz|tar.gz]] || <br />
|-<br />
! Кусакин Павел Александрович<br />
| 31 || [[media:2022_KR_31.tar.gz|tar.gz]] || <br />
|-<br />
! Ливенцов Василий Александрович<br />
| 14 || [[media:2022_KR_14.tar.gz|tar.gz]] || <br />
|-<br />
! Михайлов Иван Олегович<br />
| 24 || [[media:2022_KR_24.tar.gz|tar.gz]] || <br />
|-<br />
! Муратов Николай Сергеевич<br />
| 4 || [[media:2022_KR_04.tar.gz|tar.gz]] || <br />
|-<br />
! Попов Максим Геннадьевич<br />
| 6 || [[media:2022_KR_06.tar.gz|tar.gz]] || <br />
|-<br />
! Солнцева Милана Константиновна<br />
| 7 || [[media:2022_KR_07.tar.gz|tar.gz]] || <br />
|-<br />
! Танкина Анна Михайловна<br />
| 9 || [[media:2022_KR_09.tar.gz|tar.gz]] || <br />
|-<br />
! Цымбал Григорий Романович <br />
| 16 || [[media:2022_KR_16.tar.gz|tar.gz]] || <br />
|-<br />
! Чепелев Игорь Игоревич<br />
| 26 || [[media:2022_KR_26.tar.gz|tar.gz]] || <br />
|}<br />
<br />
<br />
=== Этап 1. Обработка логов навигационного приемника ===<br />
<br />
'''Дедлайн''': 04.03.21 (устранение замечаний и итоговый мёрдж до 13.03.21)<br />
<br />
Конечная цель всего курсового проекта - получить библиотеку функций на Си++, позволяющую рассчитывать положение спутника GPS по данным с демодулятора его сигнала L1 C/A. <br />
На первом этапе реализуем модуль разбора навигационного сообщения до структуры эфемерид, сравним результаты со сторонней программой.<br />
<br />
В неизвестной локации установлен навигационный приемник, принимающий сигналы GPS L1C/A и логирующий результаты этого приема в формате [https://navis.ru/downloads/SOFT/NV08C_BINR_Protocol_Specification_V13_ENG_10082012.pdf NVS BINR]. <br />
Собранный на пятиминутном интервале файл приложен в архиве под именем BINR.bin, см. таблицу вариантов. <br />
Файл содержит наблюдения псевдодальностей и прочих радионавигационных параметров, демодулированные и разобранные данные навигационного сообщения. <br />
<br />
Для удобства студентов данные демодулятора продублированы в текстовый файл in.txt. Каждая строка файла содержит данные одного сабфрейма одного навигационного сигнала в формате:<br />
<source lang="bash"><br />
1 0 013 0R GpsL1CA # 13 212130404 29 125 53 100010111010101010101010001010010111000011001010010111111000101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100<br />
</source><br />
где ''# 13'' - номер спутника, ''212130404'' - счетчик сабфреймов в сигнале, ''53'' - ID сабфрейма в навигационном сообщении, где в первых трех битах содержится номер сабфрейма в фрейме (5 в данном примере), а далее - номер фрейма в сообщении (6 в данном примере), ''1000101110...'' символы с демодулятора в порядке возрастания времени слева направо. <br />
<br />
Требуется:<br />
# Разработать программу, обрабатывающую файл in.txt и выводящую в файл out.txt таблицу эфемерид для спутника согласно варианту [[media:Screenshot_20220215_221319.png|в заданном формате]].<br />
# Обработать файл BINR.bin с помощью программы RTKNAVI из состава RTKLIB. Определить день и место проведения наблюдений, значения эфемерид для спутника согласно номеру варианта (меню открывается в левом нижнем углу экрана по нажатию на квадрат)<br />
# Сравнить полученные таблицы<br />
# Оформить код программы и разместить на Github<br />
# Оформить отчет по этапу и разместить на Github<br />
# Завести Pull Request<br />
<br />
Программа должна компилироваться gcc, все входные данные брать из in.txt, весь вывод осуществлять в out.txt.<br />
<br />
Работа осуществляется в репозитории на github на базе [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021]. Для этого:<br />
# Завести, если до сих пор нет, аккаунт на github<br />
# Если ранее не сделано, сделать форк проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021] (маленькая кнопка сверху справа в вэб-интерфейсе)<br />
# Установить на рабочем компьютере git (для выполнения последующих этапов удобнее будет сделать это в ОС GNU/Linux, вероятно, на виртуальной машине)<br />
# Клонировать свой форк на рабочий компьютер (<code>git clone https://github.com/MySuperAccount/gnssrecbasics2021.git</code>)<br />
# Промежуточные и итоговые результаты по первому этапу хранить в каталоге processing (<code>git pull; git add <files>; git commit -m "Сделал то-то то-то"; git push</code>)<br />
# По результатам первого этапа завести Pull Request в исходный проект '''в ветку, название которой совпадает с вашей фамилией''' (кнопка наверху в вэб-интерфейсе)<br />
# Устранить все замечания, добиться принятия Pull Request'а. <br />
<br />
Этап сдан тогда, когда ваш ПР принят.<br />
<br />
=== Этап 2. Моделирование траектории движения ===<br />
<br />
'''Дедлайн''': 13.04.22 (исправления замечаний до 20.04.22)<br />
<br />
Эфемериды - параметры некоторой модели движения спутника. <br />
В разных ГНСС эти модели разные, а значит отличается и формат эфемерид, и алгоритмы расчета положения спутника.<br />
<br />
Одна из самых простых и удобных моделей - [http://navipedia.org/index.php/GPS_and_Galileo_Satellite_Coordinates_Computation в системе GPS].<br />
<br />
Требуется реализовать на языке Matlab или Python функцию расчета положения спутника GPS на заданный момент по шкале времени UTC.<br />
В качестве эфемерид использовать данные, полученные на предыдущем этапе. <br />
<br />
Построить трехмерные графики множества положений спутника GPS с системным номером, соответствующим номеру студента по списку. Графики в двух вариантах: в СК ECEF WGS84 и соответствующей ей инерциальной СК. Положения должны соответствовать суточному интервалу на дне формирования наблюдений, определенном на предыдущем этапе. Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал. <br />
<br />
Вывести значения координат спутника в файл out.txt в системе ECEF WGS 84 в виде строк: Секунда_от_начала_дня X Y Z<br />
<br />
Используя оценку местоположения с предыдущего этапа, построить Sky Plot за указанный временной интервал и сравнить результат с [http://www.trimble.com/gnssplanningonline/ Trimble GNSS Planning Online].<br />
<br />
Оформить отчет по результатам этапа:<br />
# Реализация в Matlab или Python (описание модели и её листинг)<br />
# Таблица использованных эфемерид<br />
# Трехмерные графики положений спутника в ECEF и ECI (не забудьте подписать оси, изобразите соответствующую Земле сферу в начале СК)<br />
# Расчётный и полученный в GNSS Planing Online SkyView<br />
<br />
Работы по данному этапу осуществляются в каталоге simulation.<br />
Правила приемки этапа те же, что и на первом этапе.<br />
<br />
=== Этап 3. Реализация модуля расчета координат === <br />
<br />
'''Дедлайн''': 11.05.21 (исправления до 18.05.21)<br />
<br />
Требуется разработать на языке С/С++ функцию расчета положения спутника GPS на заданное время по шкале UTC, минимизируя время её исполнения и количество затрачиваемой оперативной памяти. <br />
Вызов функции не должен приводить к выбросу исключений или утечкам памяти при любом наборе входных данных.<br />
<br />
Функция расчета положения спутника в Matlab/Python относительно проста, т.к. доступны библиотеки линейной алгебры и решения уравнений. <br />
Но при разработке встраиваемого ПО приходится сохранять лицензионную частоту, минимизировать вычислительную нагрузку и затраты памяти. <br />
Поэтому отобразить модель из Matlab/Python в прошивку приемника дословно, как правило, не получается. В рассматриваемом примере потребуется, как минимум, выполнить свою реализацию решения трансцендентного уравнения. <br />
<br />
Программный модуль должен сопровождаться unit-тестами (например, используя Check):<br />
* Тесты функции решения уравнения Кеплера<br />
* Тест расчетного положения спутника в сравнении с Matlab/Python<br />
<br />
Во время второго теста должно вычисляться и выводиться средняя длительность исполнения функции. <br />
Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал (как на предыдущем этапе). <br />
<br />
Требуется провести проверку на утечки памяти (например, с помощью утилиты valgrind).<br />
<br />
Оформить отчет по результатам курсового проекта. <br />
В качестве первых двух глав использовать отчёты с предыдущих этапов, в третьей главе отразить результаты этого этапа:<br />
# Код реализации<br />
# Вывод тестов, включая анализ времени исполнения<br />
# Вывод проверок на утечку памяти<br />
# Вывод по этапу <br />
# Заключение по проекту<br />
<br />
Программа должна компилироваться gcc и использовать в качестве входных данных in.txt с первого этапа. <br />
Результат должен записываться в out.txt в строки формата, определенного на втором этапе. <br />
При тестировании должны сравниваться файлы out.txt второго и третьего этапов.<br />
<br />
Работы по третьему этапу следует вести в директории libgpssvpos.<br />
<br />
Правила приемки этапа те же.<br />
<br />
== Курсовая прошлых лет ==<br />
<br />
Задания в [[Курсовой проект АП СРНС 2020|2020]], в [[Курсовая работа АП СРНС 2021|2021]].<br />
<br />
[[Категория:АП СРНС (дисциплина)]]</div>
Korogodin
https://www.srns.ru/wiki/%D0%90%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0_%D0%BF%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D1%81%D0%BF%D1%83%D1%82%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2%D1%8B%D1%85_%D1%80%D0%B0%D0%B4%D0%B8%D0%BE%D0%BD%D0%B0%D0%B2%D0%B8%D0%B3%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_(%D0%B4%D0%B8%D1%81%D1%86%D0%B8%D0%BF%D0%BB%D0%B8%D0%BD%D0%B0)
Аппаратура потребителей спутниковых радионавигационных систем (дисциплина)
2022-02-16T06:54:02Z
<p>Korogodin: /* Этап 2. Моделирование */</p>
<hr />
<div>Дисциплина "Аппаратура потребителей спутниковых радионавигационных систем" входит в вариативную часть общенаучного цикла занятий [http://beta.mpei.ru/Education/educationalprograms/rt/Pages/default.aspx учебного плана] подготовки специалистов по направлению 11.05.01 "Радиоэлектронные системы и комплексы". <br />
<br />
Преподается осеннем и весеннем семестрах пятого года обучения. В осеннем семестре лекции и лабораторные занятия (итог - экзамен), в весеннем - курсовой проект. <br />
<br />
По дисциплине подготовлен [[ЭУМК АП СРНС|электронный учебно-методический комплекс]].<br />
<br />
== Календарный план ==<br />
<br />
<br />
{| class="wikitable"<br />
|-<br />
! Неделя || Даты || Лекция || Лабораторная || Контрольное мероприятие<br />
<br />
|- align=center<br />
| 2 || 07.09<br />
| Основы СРНС. [[media:Receivers_Segments.pdf|Сегменты СРНС]]. [[media:Receivers_PosMethods.pdf|Методы позиционирования]].<br />
| [https://goo.gl/forms/R7Vos1KsJ1taqqXo2 Ошибки позиционирования в городских условиях] <br />
|<br />
<br />
|- align=center<br />
| 3 || 13.09.21-19.09.21<br />
| Навигационные сигналы. <br />
|<br />
| <br />
<br />
|- align=center<br />
| 4 || 20.09.21-26.09.21<br />
| Антенна, МШУ<br />
| <br />
| КМ-1: Модель сигнала ГНСС<br />
<br />
|- align=center<br />
| 5 || 27.09.21-03.10.21<br />
| Радиочастотный блок <br> ([[media:20111008_АП_СРНС_Лекция_3_презентация.pdf|Аналогово-цифровое преобразование. Синтезатор частот. План частот АП СРНС.]] )<br />
| <br />
| <br />
<br />
|- align=center<br />
| 6 || 04.10.21-10.10.21<br />
| Математическая модель коррелятора <br> ([[media:АП_СРНС_corr.pdf|Статистический эквивалент коррелятора]])<br />
|<br />
| КМ-2: Ошибки позиционирования в городских условиях<br />
<br />
|- align=center<br />
| 7 || 11.10.21-17.10.21<br />
| Аппаратная реализация коррелятора <br> ([[media:20111005_АП_СРНС_Лекция_4_презентация.pdf|Принципы построения и структура коррелятора. Цифровой генератор гармонического сигнала и дальномерного кода.]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 8 || 18.10.21-24.10.21<br />
| Следящие системы <br> ([[media:20111215_АП_СРНС_Лекция_8_презентация.pdf|Система слежения за фазой сигнала. Структурная схема ССФ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_9_презентация.pdf|Система слежения за частотой. Структурная схема ССЧ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_10_презентация.pdf|Система слежения за задержкой. Структурная схема ССЗ, дискриминаторы, следящий фильтр. <br> Система слежения за задержкой с поддержкой от ФАП. Комплексный фильтр.]]) <br />
| [https://goo.gl/XruJBM GNSS Planning] <br />
| КМ-3: Статистический эквивалент коррелятора<br />
<br />
|- align=center<br />
| 9 || 25.10.21-31.10.21<br />
| Оценка SNR, детекторы захвата, детекторы CC<br />
| <br />
| <br />
<br />
|- align=center<br />
| 10 || 01.11.21-07.11.21<br />
| Обнаружение сигнала. <br> ([[media:20111005_АП_СРНС_Лекция_5_презентация.pdf|Обнаружение сигнала. Алгоритмы, статистические характеристики обнаружения.]]) <br />
|<br />
| <br />
<br />
|- align=center<br />
| 11 || 08.11.21-14.11.21<br />
| Поиск сигнала <br> ([[media:20111008_АП_СРНС_Лекция_6_презентация.pdf|Поиск сигнала по частоте и задержке. Алгоритмы поиска, быстрый поиск сигнала.]] <br> [[media:20111017_АП_СРНС_Лекция_7_презентация.pdf|Блок быстрого поиска]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 12 || 15.11.21-21.11.21<br />
| Символьная и оверлейная синхронизация <br> <br />
| [[Исследование_коррелятора_АП_СРНС_ГЛОНАСС_с_помощью_имитационной_модели_(лабораторная_работа)|Исследование коррелятора АП СРНС с помощью имитационной модели]]<br />
| КМ-4: Исследование коррелятора АП СРНС ГЛОНАСС с помощью имитационной модели <br />
<br />
|- align=center<br />
| 13 || 22.11.21-28.11.21<br />
| [[media:20111215_АП_СРНС_Лекция_11_презентация.pdf|Демодуляция навигационных данных]]<br />
| <br />
| <br />
<br />
|- align=center<br />
| 14 || 29.11.21-05.12.21<br />
| Кадровая синхронизация, [[media:20111215_АП_СРНС_Лекция_12_презентация.pdf|декодирование]], парсинг<br />
|<br />
| КМ-5: Прогнозирование спутникового созвездия<br />
<br />
|- align=center<br />
| 15 || 08.12.21-12.12.21<br />
| Формирование измерений, расчет положения спутника<br />
|<br />
| <br />
<br />
|- align=center<br />
| 16 || 13.12.21-19.12.21<br />
| Модель наблюдений псевдодальности. <br> [[media:20111128_АП_СРНС_Лекция_14_презентация.pdf|Вторичная обработка измерений. Одношаговый алгоритм решения навигационной задачи.]] <br> [[media:20111215_АП_СРНС_Лекция_16_презентация.pdf|Контроль целостности]]<br />
| Решение навигационной задачи по псевдодальномерным измерениям<br />
| КМ-6: Решение навигационной задачи по псевдодальномерным измерениям<br />
<br />
|- align=center<br />
| 17 || 20.12.21-26.12.21<br />
| Помехоустойчивость АП СРНС<br />
| <br />
| <br />
<br />
|- align=center<br />
| 18 || 27.12.21-02.01.21<br />
| Зачет<br />
|<br />
|<br />
<br />
|}<br />
<br />
[[media:АПСРНС_2021_Списки.ods|Журнал успеваемости]].<br />
<br />
== Правила аттестации ==<br />
<br />
Обязательным условием для получения допуска к экзамену является выполнение всех контрольных мероприятий: сдача двух контрольных и защита 4 лабораторных работ. <br />
<br />
При написании отчетов следует опираться на правила оформления [https://mpei.ru/Science/ScienceDocuments/Documents/Polojenie_2018/0_GOST_7.32-2017.pdf ГОСТ 7.32] (в части форматирования, оформления рисунков, таблиц, списков и т.д.).<br />
<br />
Приемка осуществляется через репозиторий на github на базе проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021].<br />
<br />
== Демо модели ==<br />
<br />
=== Прогноз выходного сигнала коррелятора ===<br />
<br />
Производится обработка сигнала Gps L1 C/A, сформированного лабораторным имитатором сигналов, синхронизированным с приемником. Сигнал перенесен с помощью РЧБ NT1065 на промежуточную частоту <math>f_{if} = 8.54</math> МГц и преобразован многоразрядным АЦП с частотой сэмплирования <math>F_d = 99.375</math> МГц. Установленная на имитаторе мощность обеспечивает уровень отношения сигнал/шум <math>27 + N</math> дБГц, где <math>N</math> - номер вариант по журналу. <br />
<br />
В приемнике производтся корреляционная обработка сигнала, интервал накопления составляет <math>T = 1</math> мс. <br />
<br />
Сигнал имеет сдвиг частоты несущей <math>f_d = 100 N</math> Гц, при этом опорный сигнал коррелятора имеет аналогичный сдвиг <math>f_{d, rep} = f_d</math>. Задержка огибающей известна точно и используется в опорном сигнале <math>\tau = \tau_{rep}</math>.<br />
<br />
Задание: Построить на плоскости I,Q вид множества точек корреляционных сумм, полученных в ходе большого (сотни) числа экспериментов. <br />
<br />
{{Hider|title = Расчет выходного сигнала коррелятора<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
N = 30;<br />
<br />
Fd = 99.375e6;<br />
Td = 1/Fd;<br />
T = 0.001;<br />
fif = 8.34e6;<br />
<br />
fd = 100 * N;<br />
fd_rep = fd;<br />
<br />
phi = 10 * N;<br />
phi_rep = 20 * N;<br />
<br />
qcno_dB = 27 + N;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdn = 50/3;<br />
A = sqrt(qcno * Td) * 2 * stdn; % qcno = A^2 / (4 stdn^2 Td)<br />
<br />
fprintf('A = %f, stdn = %f\n', A, stdn);<br />
<br />
L = fix(T * Fd);<br />
t = (0:(L-1)) * Td;<br />
<br />
PRN_Length = 1023;<br />
PRN = (-1).^(rand(1, PRN_Length) > 0.5);<br />
<br />
tau = 100500e-6;<br />
tau_rep = tau;<br />
<br />
nchip = mod(fix(PRN_Length*(t - tau )/T), PRN_Length) + 1;<br />
nchip_rep = mod(fix(PRN_Length*(t - tau_rep)/T), PRN_Length) + 1;<br />
<br />
Gc = PRN(nchip );<br />
Gc_rep = PRN(nchip_rep);<br />
<br />
So = A * Gc .* cos(2*pi*fif*t + 2*pi*fd *t + deg2rad(phi) );<br />
S_rep_cos = Gc_rep .* cos(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
S_rep_sin = Gc_rep .* sin(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
<br />
K = 1000; I = nan(1, K); Q = nan(1,K);<br />
for k = 1:K<br />
n = randn(1,L)*stdn;<br />
<br />
Gd = (-1).^(rand(1,1) > 0.5);<br />
S = Gd * So;<br />
<br />
y = S + n;<br />
<br />
I(k) = y * S_rep_cos';<br />
Q(k) = y * S_rep_sin';<br />
end<br />
<br />
maxIQ = 1.1*max(abs(I + 1i*Q));<br />
<br />
figure(1);<br />
plot(t*1e3, [y; S; A*Gc]);<br />
xlabel('t, ms')<br />
ylabel('y, S');<br />
grid on<br />
<br />
figure(2);<br />
plot(I, Q, '*')<br />
hold on<br />
plot([-maxIQ maxIQ], [0 0], 'k');<br />
plot([0 0], [-maxIQ maxIQ], 'k');<br />
quiver(-maxIQ, 0, 2*maxIQ, 0, 1, 'k');<br />
quiver(0, -maxIQ, 0, 2*maxIQ, 1, 'k');<br />
hold off<br />
xlabel('I')<br />
ylabel('Q');<br />
axis equal<br />
grid on<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
<br />
=== ЧАП и ФАП на стат эквивалентах ===<br />
<br />
{{Hider|title = Слежение за фазой и частотой<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
T = 0.010;<br />
<br />
Xist = [10; <br />
1];<br />
<br />
Xfilt = [0;<br />
0];<br />
<br />
Xfilt_FLL = [0;<br />
0];<br />
<br />
F = [1 T;<br />
0 1];<br />
<br />
Tmod = 10;<br />
K = fix(Tmod / T);<br />
<br />
G = [0;<br />
1];<br />
<br />
std_ksi = 1.3 * T;<br />
ksi = std_ksi * randn(1, K);<br />
<br />
qcno_dB = 45;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdnIQ = 7;<br />
nI = stdnIQ * randn(1, K);<br />
nQ = stdnIQ * randn(1, K);<br />
A_IQ = sqrt(2*qcno*T) * stdnIQ; <br />
<br />
dF_PLL = 20;<br />
Kfilt_PLL = [ 8/3 * dF_PLL * T;<br />
32/9 * dF_PLL^2 * T];<br />
<br />
dF_FLL = 3;<br />
Kfilt_FLL = [ 8/3 * dF_FLL * T;<br />
32/9 * dF_FLL^2 * T];<br />
<br />
t = (1:K)*T;<br />
phi_ist = nan(1, K);<br />
w_ist = nan(1, K);<br />
phi_filt = nan(1, K);<br />
w_filt = nan(1, K);<br />
phi_filt_FLL = nan(1, K);<br />
w_filt_FLL = nan(1, K);<br />
<br />
phi_corr = 0; Iold = 0; Qold = 0;<br />
for k = 1:K<br />
Xist = F * Xist + G * ksi(k);<br />
<br />
phi_ist(k) = Xist(1);<br />
w_ist(k) = Xist(2);<br />
<br />
% PLL<br />
Xfilt_extr = F*Xfilt;<br />
phi_extr = Xfilt_extr(1);<br />
dPhi = phi_ist(k) - phi_extr;<br />
<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = -Q; <br />
Sd = A_IQ; <br />
<br />
Xfilt = Xfilt_extr + Kfilt_PLL * Ud/Sd;<br />
<br />
phi_filt(k) = Xfilt(1);<br />
w_filt(k) = Xfilt(2);<br />
<br />
% FLL<br />
Xfilt_extr_FLL = F*Xfilt_FLL;<br />
w_extr = Xfilt_extr_FLL(1);<br />
dPhi = phi_ist(k) - phi_corr;<br />
phi_corr = phi_corr + w_extr * T;<br />
dW = w_ist(k) - w_extr;<br />
<br />
I = - A_IQ * cos(dPhi) + nI(k);<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = Q*Iold - I*Qold; <br />
Sd = A_IQ; <br />
Iold = I; Qold = Q;<br />
<br />
Xfilt_FLL = Xfilt_extr_FLL + Kfilt_FLL * Ud/Sd;<br />
<br />
phi_filt_FLL(k) = phi_corr;<br />
w_filt_FLL(k) = Xfilt_FLL(1);<br />
<br />
<br />
end<br />
<br />
figure(1)<br />
subplot(2,1,1)<br />
plot(t, phi_ist/2/pi, t, phi_filt/2/pi, t, phi_filt_FLL/2/pi)<br />
ylabel('\phi, cycles')<br />
subplot(2,1,2)<br />
plot(t, rad2deg(w_ist), t, rad2deg(w_filt), t, rad2deg(w_filt_FLL))<br />
ylabel('\omega, Hz')<br />
xlabel('t, sec')<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
== Вопросы к экзамену ==<br />
<br />
Экзамен проводится в письменной форме: тест, задача и один экзаменационный вопрос ([[media:Вопросы_экз_АП_СРНС.doc|экзаменационные вопросы]]). При подготовке рекомендуется использовать книги по тематике, [[media:2013_ЭУМК_С3.33_Лекции_АП_СРНС.pdf|конспекты лекций]] и презентации.<br />
<br />
== Курсовая работа ==<br />
<br />
Название: '''Расчет траектории движения спутника GPS по данным с демодулятора его сигнала'''<br />
<br />
Курсовая работа по АП СРНС выполняется во втором семестре. В рамках КР студенты знакомятся с рядом инструментов и техник, используемых при разработке навигационных приемников.<br />
<br />
Цель проекта - разработка модулей разбора навигационного сообщения GPS и расчета положения спутника, предназначенных для использования в составе навигационного приемника.<br />
<br />
Требования к разрабатываемому программному модулю:<br />
* требования назначения;<br />
* отсутствие утечек памяти;<br />
* малое время выполнения;<br />
* низкий расход памяти;<br />
* корректное выполнение при аномальных входных данных. <br />
<br />
Для достижения цели выполняется ряд задач, соответствующих этапам проекта и контрольным мероприятиям:<br />
* разработка модуля разбора символов навигационного сообщения<br />
* расчет положения КА в Matlab/Python и его проверка сторонними сервисами;<br />
* реализация модуля расчета положения КА на С/С++ и его тестирование.<br />
<br />
На каждом из этапов действуют следующие правила:<br />
* Взаимодействие осуществляется через github (пул реквесты, комментарии)<br />
* '''Этап сдан тогда, когда принят пул реквест'''<br />
<br />
<br />
<br />
{| class="wikitable"<br />
|+ Варианты заданий:<br />
|-<br />
! Студент !! Номер спутника = варианта !! Логи !! Примечание<br />
|-<br />
! Антропов Евгений Александрович<br />
| 1 || [[media:2022_KR_01.tar.gz|tar.gz]] || <br />
|-<br />
! Бахолдин Никита Владимирович<br />
| 3 || [[media:2022_KR_03.tar.gz|tar.gz]] || <br />
|-<br />
! Берестнев Владимир Сергеевич<br />
| 8 || [[media:2022_KR_08.tar.gz|tar.gz]] || <br />
|-<br />
! Дубинин Леонид Андреевич<br />
| 10 || [[media:2022_KR_10.tar.gz|tar.gz]] || <br />
|-<br />
! Еловский Никита Станиславович<br />
| 12 || [[media:2022_KR_12.tar.gz|tar.gz]] || <br />
|-<br />
! Иванцова Дарья Николаевна<br />
| 17 || [[media:2022_KR_17.tar.gz|tar.gz]] || <br />
|-<br />
! Капитонов Александр Ильич<br />
| 19 || [[media:2022_KR_19.tar.gz|tar.gz]] || <br />
|-<br />
! Коробков Андрей Юрьевич<br />
| 21 || [[media:2022_KR_21.tar.gz|tar.gz]] || <br />
|-<br />
! Куксин Владислав Александрович<br />
| 22 || [[media:2022_KR_22.tar.gz|tar.gz]] || <br />
|-<br />
! Кусакин Павел Александрович<br />
| 31 || [[media:2022_KR_31.tar.gz|tar.gz]] || <br />
|-<br />
! Ливенцов Василий Александрович<br />
| 14 || [[media:2022_KR_14.tar.gz|tar.gz]] || <br />
|-<br />
! Михайлов Иван Олегович<br />
| 24 || [[media:2022_KR_24.tar.gz|tar.gz]] || <br />
|-<br />
! Муратов Николай Сергеевич<br />
| 4 || [[media:2022_KR_04.tar.gz|tar.gz]] || <br />
|-<br />
! Попов Максим Геннадьевич<br />
| 6 || [[media:2022_KR_06.tar.gz|tar.gz]] || <br />
|-<br />
! Солнцева Милана Константиновна<br />
| 7 || [[media:2022_KR_07.tar.gz|tar.gz]] || <br />
|-<br />
! Танкина Анна Михайловна<br />
| 9 || [[media:2022_KR_09.tar.gz|tar.gz]] || <br />
|-<br />
! Цымбал Григорий Романович <br />
| 16 || [[media:2022_KR_16.tar.gz|tar.gz]] || <br />
|-<br />
! Чепелев Игорь Игоревич<br />
| 26 || [[media:2022_KR_26.tar.gz|tar.gz]] || <br />
|}<br />
<br />
<br />
=== Этап 1. Обработка логов навигационного приемника ===<br />
<br />
'''Дедлайн''': 04.03.21 (устранение замечаний и итоговый мёрдж до 13.03.21)<br />
<br />
Конечная цель всего курсового проекта - получить библиотеку функций на Си++, позволяющую рассчитывать положение спутника GPS по данным с демодулятора его сигнала L1 C/A. <br />
На первом этапе реализуем модуль разбора навигационного сообщения до структуры эфемерид, сравним результаты со сторонней программой.<br />
<br />
В неизвестной локации установлен навигационный приемник, принимающий сигналы GPS L1C/A и логирующий результаты этого приема в формате [https://navis.ru/downloads/SOFT/NV08C_BINR_Protocol_Specification_V13_ENG_10082012.pdf NVS BINR]. <br />
Собранный на пятиминутном интервале файл приложен в архиве под именем BINR.bin, см. таблицу вариантов. <br />
Файл содержит наблюдения псевдодальностей и прочих радионавигационных параметров, демодулированные и разобранные данные навигационного сообщения. <br />
<br />
Для удобства студентов данные демодулятора продублированы в текстовый файл in.txt. Каждая строка файла содержит данные одного сабфрейма одного навигационного сигнала в формате:<br />
<source lang="bash"><br />
1 0 013 0R GpsL1CA # 13 212130404 29 125 53 100010111010101010101010001010010111000011001010010111111000101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100<br />
</source><br />
где ''# 13'' - номер спутника, ''212130404'' - счетчик сабфреймов в сигнале, ''53'' - ID сабфрейма в навигационном сообщении, где в первых трех битах содержится номер сабфрейма в фрейме (5 в данном примере), а далее - номер фрейма в сообщении (6 в данном примере), ''1000101110...'' символы с демодулятора в порядке возрастания времени слева направо. <br />
<br />
Требуется:<br />
# Разработать программу, обрабатывающую файл in.txt и выводящую в файл out.txt таблицу эфемерид для спутника согласно варианту [[media:Screenshot_20220215_221319.png|в заданном формате]].<br />
# Обработать файл BINR.bin с помощью программы RTKNAVI из состава RTKLIB. Определить день и место проведения наблюдений, значения эфемерид для спутника согласно номеру варианта (меню открывается в левом нижнем углу экрана по нажатию на квадрат)<br />
# Сравнить полученные таблицы<br />
# Оформить код программы и разместить на Github<br />
# Оформить отчет по этапу и разместить на Github<br />
# Завести Pull Request<br />
<br />
Программа должна компилироваться gcc, все входные данные брать из in.txt, весь вывод осуществлять в out.txt.<br />
<br />
Работа осуществляется в репозитории на github на базе [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021]. Для этого:<br />
# Завести, если до сих пор нет, аккаунт на github<br />
# Если ранее не сделано, сделать форк проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021] (маленькая кнопка сверху справа в вэб-интерфейсе)<br />
# Установить на рабочем компьютере git (для выполнения последующих этапов удобнее будет сделать это в ОС GNU/Linux, вероятно, на виртуальной машине)<br />
# Клонировать свой форк на рабочий компьютер (<code>git clone https://github.com/MySuperAccount/gnssrecbasics2021.git</code>)<br />
# Промежуточные и итоговые результаты по первому этапу хранить в каталоге processing (<code>git pull; git add <files>; git commit -m "Сделал то-то то-то"; git push</code>)<br />
# По результатам первого этапа завести Pull Request в исходный проект '''в ветку, название которой совпадает с вашей фамилией''' (кнопка наверху в вэб-интерфейсе)<br />
# Устранить все замечания, добиться принятия Pull Request'а. <br />
<br />
Этап сдан тогда, когда ваш ПР принят.<br />
<br />
=== Этап 2. Моделирование траектории движения ===<br />
<br />
'''Дедлайн''': 13.04.22 (исправления замечаний до 20.04.22)<br />
<br />
Эфемериды - параметры некоторой модели движения спутника. <br />
В разных ГНСС эти модели разные, а значит отличается и формат эфемерид, и алгоритмы расчета положения спутника.<br />
<br />
Одна из самых простых и удобных моделей - [http://navipedia.org/index.php/GPS_and_Galileo_Satellite_Coordinates_Computation в системе GPS].<br />
<br />
Требуется реализовать на языке Matlab или Python функцию расчета положения спутника GPS на заданный момент по шкале времени UTC.<br />
В качестве эфемерид использовать данные, полученные на предыдущем этапе. <br />
<br />
Построить трехмерные графики множества положений спутника GPS с системным номером, соответствующим номеру студента по списку. Графики в двух вариантах: в СК ECEF WGS84 и соответствующей ей инерциальной СК. Положения должны соответствовать суточному интервалу на дне формирования наблюдений, определенном на предыдущем этапе. Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал. <br />
<br />
Вывести значения координат спутника в файл out.txt в системе ECEF WGS 84 в виде строк: Секунда_от_начала_дня X Y Z<br />
<br />
Используя оценку местоположения с предыдущего этапа, построить Sky Plot за указанный временной интервал и сравнить результат с [http://www.trimble.com/gnssplanningonline/ Trimble GNSS Planning Online].<br />
<br />
Оформить отчет по результатам этапа:<br />
# Реализация в Matlab или Python (описание модели и её листинг)<br />
# Таблица использованных эфемерид<br />
# Трехмерные графики положений спутника в ECEF и ECI (не забудьте подписать оси, изобразите соответствующую Земле сферу в начале СК)<br />
# Расчётный и полученный в GNSS Planing Online SkyView<br />
<br />
Работы по данному этапу осуществляются в каталоге simulation.<br />
Правила приемки этапа те же, что и на первом этапе.<br />
<br />
=== Этап 3. Реализация === <br />
<br />
'''Дедлайн''': 11.05.21 (исправления до 18.05.21)<br />
<br />
Требуется разработать на языке С/С++ функцию расчета положения спутника GPS на заданное время по шкале UTC, минимизируя время её исполнения и количество затрачиваемой оперативной памяти. <br />
Вызов функции не должен приводить к выбросу исключений или утечкам памяти при любом наборе входных данных.<br />
<br />
Функция расчета положения спутника в Matlab/Python относительно проста, т.к. доступны библиотеки линейной алгебры и решения уравнений. <br />
Но при разработке встраиваемого ПО приходится сохранять лицензионную частоту, минимизировать вычислительную нагрузку и затраты памяти. <br />
Поэтому отобразить модель из Matlab/Python в прошивку приемника дословно, как правило, не получается. В рассматриваемом примере потребуется, как минимум, выполнить свою реализацию решения трансцендентного уравнения. <br />
<br />
Программный модуль должен сопровождаться unit-тестами (например, используя Check):<br />
* Тесты функции решения уравнения Кеплера<br />
* Тест расчетного положения спутника в сравнении с Matlab/Python<br />
<br />
Во время второго теста должно вычисляться и выводиться средняя длительность исполнения функции. <br />
Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал (как на предыдущем этапе). <br />
<br />
Требуется провести проверку на утечки памяти (например, с помощью утилиты valgrind).<br />
<br />
Оформить отчет по результатам курсового проекта. <br />
В качестве первых двух глав использовать отчёты с предыдущих этапов, в третьей главе отразить результаты этого этапа:<br />
# Код реализации<br />
# Вывод тестов, включая анализ времени исполнения<br />
# Вывод проверок на утечку памяти<br />
# Вывод по этапу <br />
# Заключение по проекту<br />
<br />
Программа должна компилироваться gcc и использовать в качестве входных данных in.txt с первого этапа. <br />
Результат должен записываться в out.txt в строки формата, определенного на втором этапе. <br />
При тестировании должны сравниваться файлы out.txt второго и третьего этапов.<br />
<br />
Работы по третьему этапу следует вести в директории libgpssvpos.<br />
<br />
Правила приемки этапа те же.<br />
<br />
== Курсовая прошлых лет ==<br />
<br />
Задания в [[Курсовой проект АП СРНС 2020|2020]], в [[Курсовая работа АП СРНС 2021|2021]].<br />
<br />
[[Категория:АП СРНС (дисциплина)]]</div>
Korogodin
https://www.srns.ru/wiki/%D0%90%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0_%D0%BF%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D1%81%D0%BF%D1%83%D1%82%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2%D1%8B%D1%85_%D1%80%D0%B0%D0%B4%D0%B8%D0%BE%D0%BD%D0%B0%D0%B2%D0%B8%D0%B3%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_(%D0%B4%D0%B8%D1%81%D1%86%D0%B8%D0%BF%D0%BB%D0%B8%D0%BD%D0%B0)
Аппаратура потребителей спутниковых радионавигационных систем (дисциплина)
2022-02-16T06:53:10Z
<p>Korogodin: /* Курсовая работа */</p>
<hr />
<div>Дисциплина "Аппаратура потребителей спутниковых радионавигационных систем" входит в вариативную часть общенаучного цикла занятий [http://beta.mpei.ru/Education/educationalprograms/rt/Pages/default.aspx учебного плана] подготовки специалистов по направлению 11.05.01 "Радиоэлектронные системы и комплексы". <br />
<br />
Преподается осеннем и весеннем семестрах пятого года обучения. В осеннем семестре лекции и лабораторные занятия (итог - экзамен), в весеннем - курсовой проект. <br />
<br />
По дисциплине подготовлен [[ЭУМК АП СРНС|электронный учебно-методический комплекс]].<br />
<br />
== Календарный план ==<br />
<br />
<br />
{| class="wikitable"<br />
|-<br />
! Неделя || Даты || Лекция || Лабораторная || Контрольное мероприятие<br />
<br />
|- align=center<br />
| 2 || 07.09<br />
| Основы СРНС. [[media:Receivers_Segments.pdf|Сегменты СРНС]]. [[media:Receivers_PosMethods.pdf|Методы позиционирования]].<br />
| [https://goo.gl/forms/R7Vos1KsJ1taqqXo2 Ошибки позиционирования в городских условиях] <br />
|<br />
<br />
|- align=center<br />
| 3 || 13.09.21-19.09.21<br />
| Навигационные сигналы. <br />
|<br />
| <br />
<br />
|- align=center<br />
| 4 || 20.09.21-26.09.21<br />
| Антенна, МШУ<br />
| <br />
| КМ-1: Модель сигнала ГНСС<br />
<br />
|- align=center<br />
| 5 || 27.09.21-03.10.21<br />
| Радиочастотный блок <br> ([[media:20111008_АП_СРНС_Лекция_3_презентация.pdf|Аналогово-цифровое преобразование. Синтезатор частот. План частот АП СРНС.]] )<br />
| <br />
| <br />
<br />
|- align=center<br />
| 6 || 04.10.21-10.10.21<br />
| Математическая модель коррелятора <br> ([[media:АП_СРНС_corr.pdf|Статистический эквивалент коррелятора]])<br />
|<br />
| КМ-2: Ошибки позиционирования в городских условиях<br />
<br />
|- align=center<br />
| 7 || 11.10.21-17.10.21<br />
| Аппаратная реализация коррелятора <br> ([[media:20111005_АП_СРНС_Лекция_4_презентация.pdf|Принципы построения и структура коррелятора. Цифровой генератор гармонического сигнала и дальномерного кода.]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 8 || 18.10.21-24.10.21<br />
| Следящие системы <br> ([[media:20111215_АП_СРНС_Лекция_8_презентация.pdf|Система слежения за фазой сигнала. Структурная схема ССФ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_9_презентация.pdf|Система слежения за частотой. Структурная схема ССЧ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_10_презентация.pdf|Система слежения за задержкой. Структурная схема ССЗ, дискриминаторы, следящий фильтр. <br> Система слежения за задержкой с поддержкой от ФАП. Комплексный фильтр.]]) <br />
| [https://goo.gl/XruJBM GNSS Planning] <br />
| КМ-3: Статистический эквивалент коррелятора<br />
<br />
|- align=center<br />
| 9 || 25.10.21-31.10.21<br />
| Оценка SNR, детекторы захвата, детекторы CC<br />
| <br />
| <br />
<br />
|- align=center<br />
| 10 || 01.11.21-07.11.21<br />
| Обнаружение сигнала. <br> ([[media:20111005_АП_СРНС_Лекция_5_презентация.pdf|Обнаружение сигнала. Алгоритмы, статистические характеристики обнаружения.]]) <br />
|<br />
| <br />
<br />
|- align=center<br />
| 11 || 08.11.21-14.11.21<br />
| Поиск сигнала <br> ([[media:20111008_АП_СРНС_Лекция_6_презентация.pdf|Поиск сигнала по частоте и задержке. Алгоритмы поиска, быстрый поиск сигнала.]] <br> [[media:20111017_АП_СРНС_Лекция_7_презентация.pdf|Блок быстрого поиска]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 12 || 15.11.21-21.11.21<br />
| Символьная и оверлейная синхронизация <br> <br />
| [[Исследование_коррелятора_АП_СРНС_ГЛОНАСС_с_помощью_имитационной_модели_(лабораторная_работа)|Исследование коррелятора АП СРНС с помощью имитационной модели]]<br />
| КМ-4: Исследование коррелятора АП СРНС ГЛОНАСС с помощью имитационной модели <br />
<br />
|- align=center<br />
| 13 || 22.11.21-28.11.21<br />
| [[media:20111215_АП_СРНС_Лекция_11_презентация.pdf|Демодуляция навигационных данных]]<br />
| <br />
| <br />
<br />
|- align=center<br />
| 14 || 29.11.21-05.12.21<br />
| Кадровая синхронизация, [[media:20111215_АП_СРНС_Лекция_12_презентация.pdf|декодирование]], парсинг<br />
|<br />
| КМ-5: Прогнозирование спутникового созвездия<br />
<br />
|- align=center<br />
| 15 || 08.12.21-12.12.21<br />
| Формирование измерений, расчет положения спутника<br />
|<br />
| <br />
<br />
|- align=center<br />
| 16 || 13.12.21-19.12.21<br />
| Модель наблюдений псевдодальности. <br> [[media:20111128_АП_СРНС_Лекция_14_презентация.pdf|Вторичная обработка измерений. Одношаговый алгоритм решения навигационной задачи.]] <br> [[media:20111215_АП_СРНС_Лекция_16_презентация.pdf|Контроль целостности]]<br />
| Решение навигационной задачи по псевдодальномерным измерениям<br />
| КМ-6: Решение навигационной задачи по псевдодальномерным измерениям<br />
<br />
|- align=center<br />
| 17 || 20.12.21-26.12.21<br />
| Помехоустойчивость АП СРНС<br />
| <br />
| <br />
<br />
|- align=center<br />
| 18 || 27.12.21-02.01.21<br />
| Зачет<br />
|<br />
|<br />
<br />
|}<br />
<br />
[[media:АПСРНС_2021_Списки.ods|Журнал успеваемости]].<br />
<br />
== Правила аттестации ==<br />
<br />
Обязательным условием для получения допуска к экзамену является выполнение всех контрольных мероприятий: сдача двух контрольных и защита 4 лабораторных работ. <br />
<br />
При написании отчетов следует опираться на правила оформления [https://mpei.ru/Science/ScienceDocuments/Documents/Polojenie_2018/0_GOST_7.32-2017.pdf ГОСТ 7.32] (в части форматирования, оформления рисунков, таблиц, списков и т.д.).<br />
<br />
Приемка осуществляется через репозиторий на github на базе проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021].<br />
<br />
== Демо модели ==<br />
<br />
=== Прогноз выходного сигнала коррелятора ===<br />
<br />
Производится обработка сигнала Gps L1 C/A, сформированного лабораторным имитатором сигналов, синхронизированным с приемником. Сигнал перенесен с помощью РЧБ NT1065 на промежуточную частоту <math>f_{if} = 8.54</math> МГц и преобразован многоразрядным АЦП с частотой сэмплирования <math>F_d = 99.375</math> МГц. Установленная на имитаторе мощность обеспечивает уровень отношения сигнал/шум <math>27 + N</math> дБГц, где <math>N</math> - номер вариант по журналу. <br />
<br />
В приемнике производтся корреляционная обработка сигнала, интервал накопления составляет <math>T = 1</math> мс. <br />
<br />
Сигнал имеет сдвиг частоты несущей <math>f_d = 100 N</math> Гц, при этом опорный сигнал коррелятора имеет аналогичный сдвиг <math>f_{d, rep} = f_d</math>. Задержка огибающей известна точно и используется в опорном сигнале <math>\tau = \tau_{rep}</math>.<br />
<br />
Задание: Построить на плоскости I,Q вид множества точек корреляционных сумм, полученных в ходе большого (сотни) числа экспериментов. <br />
<br />
{{Hider|title = Расчет выходного сигнала коррелятора<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
N = 30;<br />
<br />
Fd = 99.375e6;<br />
Td = 1/Fd;<br />
T = 0.001;<br />
fif = 8.34e6;<br />
<br />
fd = 100 * N;<br />
fd_rep = fd;<br />
<br />
phi = 10 * N;<br />
phi_rep = 20 * N;<br />
<br />
qcno_dB = 27 + N;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdn = 50/3;<br />
A = sqrt(qcno * Td) * 2 * stdn; % qcno = A^2 / (4 stdn^2 Td)<br />
<br />
fprintf('A = %f, stdn = %f\n', A, stdn);<br />
<br />
L = fix(T * Fd);<br />
t = (0:(L-1)) * Td;<br />
<br />
PRN_Length = 1023;<br />
PRN = (-1).^(rand(1, PRN_Length) > 0.5);<br />
<br />
tau = 100500e-6;<br />
tau_rep = tau;<br />
<br />
nchip = mod(fix(PRN_Length*(t - tau )/T), PRN_Length) + 1;<br />
nchip_rep = mod(fix(PRN_Length*(t - tau_rep)/T), PRN_Length) + 1;<br />
<br />
Gc = PRN(nchip );<br />
Gc_rep = PRN(nchip_rep);<br />
<br />
So = A * Gc .* cos(2*pi*fif*t + 2*pi*fd *t + deg2rad(phi) );<br />
S_rep_cos = Gc_rep .* cos(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
S_rep_sin = Gc_rep .* sin(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
<br />
K = 1000; I = nan(1, K); Q = nan(1,K);<br />
for k = 1:K<br />
n = randn(1,L)*stdn;<br />
<br />
Gd = (-1).^(rand(1,1) > 0.5);<br />
S = Gd * So;<br />
<br />
y = S + n;<br />
<br />
I(k) = y * S_rep_cos';<br />
Q(k) = y * S_rep_sin';<br />
end<br />
<br />
maxIQ = 1.1*max(abs(I + 1i*Q));<br />
<br />
figure(1);<br />
plot(t*1e3, [y; S; A*Gc]);<br />
xlabel('t, ms')<br />
ylabel('y, S');<br />
grid on<br />
<br />
figure(2);<br />
plot(I, Q, '*')<br />
hold on<br />
plot([-maxIQ maxIQ], [0 0], 'k');<br />
plot([0 0], [-maxIQ maxIQ], 'k');<br />
quiver(-maxIQ, 0, 2*maxIQ, 0, 1, 'k');<br />
quiver(0, -maxIQ, 0, 2*maxIQ, 1, 'k');<br />
hold off<br />
xlabel('I')<br />
ylabel('Q');<br />
axis equal<br />
grid on<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
<br />
=== ЧАП и ФАП на стат эквивалентах ===<br />
<br />
{{Hider|title = Слежение за фазой и частотой<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
T = 0.010;<br />
<br />
Xist = [10; <br />
1];<br />
<br />
Xfilt = [0;<br />
0];<br />
<br />
Xfilt_FLL = [0;<br />
0];<br />
<br />
F = [1 T;<br />
0 1];<br />
<br />
Tmod = 10;<br />
K = fix(Tmod / T);<br />
<br />
G = [0;<br />
1];<br />
<br />
std_ksi = 1.3 * T;<br />
ksi = std_ksi * randn(1, K);<br />
<br />
qcno_dB = 45;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdnIQ = 7;<br />
nI = stdnIQ * randn(1, K);<br />
nQ = stdnIQ * randn(1, K);<br />
A_IQ = sqrt(2*qcno*T) * stdnIQ; <br />
<br />
dF_PLL = 20;<br />
Kfilt_PLL = [ 8/3 * dF_PLL * T;<br />
32/9 * dF_PLL^2 * T];<br />
<br />
dF_FLL = 3;<br />
Kfilt_FLL = [ 8/3 * dF_FLL * T;<br />
32/9 * dF_FLL^2 * T];<br />
<br />
t = (1:K)*T;<br />
phi_ist = nan(1, K);<br />
w_ist = nan(1, K);<br />
phi_filt = nan(1, K);<br />
w_filt = nan(1, K);<br />
phi_filt_FLL = nan(1, K);<br />
w_filt_FLL = nan(1, K);<br />
<br />
phi_corr = 0; Iold = 0; Qold = 0;<br />
for k = 1:K<br />
Xist = F * Xist + G * ksi(k);<br />
<br />
phi_ist(k) = Xist(1);<br />
w_ist(k) = Xist(2);<br />
<br />
% PLL<br />
Xfilt_extr = F*Xfilt;<br />
phi_extr = Xfilt_extr(1);<br />
dPhi = phi_ist(k) - phi_extr;<br />
<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = -Q; <br />
Sd = A_IQ; <br />
<br />
Xfilt = Xfilt_extr + Kfilt_PLL * Ud/Sd;<br />
<br />
phi_filt(k) = Xfilt(1);<br />
w_filt(k) = Xfilt(2);<br />
<br />
% FLL<br />
Xfilt_extr_FLL = F*Xfilt_FLL;<br />
w_extr = Xfilt_extr_FLL(1);<br />
dPhi = phi_ist(k) - phi_corr;<br />
phi_corr = phi_corr + w_extr * T;<br />
dW = w_ist(k) - w_extr;<br />
<br />
I = - A_IQ * cos(dPhi) + nI(k);<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = Q*Iold - I*Qold; <br />
Sd = A_IQ; <br />
Iold = I; Qold = Q;<br />
<br />
Xfilt_FLL = Xfilt_extr_FLL + Kfilt_FLL * Ud/Sd;<br />
<br />
phi_filt_FLL(k) = phi_corr;<br />
w_filt_FLL(k) = Xfilt_FLL(1);<br />
<br />
<br />
end<br />
<br />
figure(1)<br />
subplot(2,1,1)<br />
plot(t, phi_ist/2/pi, t, phi_filt/2/pi, t, phi_filt_FLL/2/pi)<br />
ylabel('\phi, cycles')<br />
subplot(2,1,2)<br />
plot(t, rad2deg(w_ist), t, rad2deg(w_filt), t, rad2deg(w_filt_FLL))<br />
ylabel('\omega, Hz')<br />
xlabel('t, sec')<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
== Вопросы к экзамену ==<br />
<br />
Экзамен проводится в письменной форме: тест, задача и один экзаменационный вопрос ([[media:Вопросы_экз_АП_СРНС.doc|экзаменационные вопросы]]). При подготовке рекомендуется использовать книги по тематике, [[media:2013_ЭУМК_С3.33_Лекции_АП_СРНС.pdf|конспекты лекций]] и презентации.<br />
<br />
== Курсовая работа ==<br />
<br />
Название: '''Расчет траектории движения спутника GPS по данным с демодулятора его сигнала'''<br />
<br />
Курсовая работа по АП СРНС выполняется во втором семестре. В рамках КР студенты знакомятся с рядом инструментов и техник, используемых при разработке навигационных приемников.<br />
<br />
Цель проекта - разработка модулей разбора навигационного сообщения GPS и расчета положения спутника, предназначенных для использования в составе навигационного приемника.<br />
<br />
Требования к разрабатываемому программному модулю:<br />
* требования назначения;<br />
* отсутствие утечек памяти;<br />
* малое время выполнения;<br />
* низкий расход памяти;<br />
* корректное выполнение при аномальных входных данных. <br />
<br />
Для достижения цели выполняется ряд задач, соответствующих этапам проекта и контрольным мероприятиям:<br />
* разработка модуля разбора символов навигационного сообщения<br />
* расчет положения КА в Matlab/Python и его проверка сторонними сервисами;<br />
* реализация модуля расчета положения КА на С/С++ и его тестирование.<br />
<br />
На каждом из этапов действуют следующие правила:<br />
* Взаимодействие осуществляется через github (пул реквесты, комментарии)<br />
* '''Этап сдан тогда, когда принят пул реквест'''<br />
<br />
<br />
<br />
{| class="wikitable"<br />
|+ Варианты заданий:<br />
|-<br />
! Студент !! Номер спутника = варианта !! Логи !! Примечание<br />
|-<br />
! Антропов Евгений Александрович<br />
| 1 || [[media:2022_KR_01.tar.gz|tar.gz]] || <br />
|-<br />
! Бахолдин Никита Владимирович<br />
| 3 || [[media:2022_KR_03.tar.gz|tar.gz]] || <br />
|-<br />
! Берестнев Владимир Сергеевич<br />
| 8 || [[media:2022_KR_08.tar.gz|tar.gz]] || <br />
|-<br />
! Дубинин Леонид Андреевич<br />
| 10 || [[media:2022_KR_10.tar.gz|tar.gz]] || <br />
|-<br />
! Еловский Никита Станиславович<br />
| 12 || [[media:2022_KR_12.tar.gz|tar.gz]] || <br />
|-<br />
! Иванцова Дарья Николаевна<br />
| 17 || [[media:2022_KR_17.tar.gz|tar.gz]] || <br />
|-<br />
! Капитонов Александр Ильич<br />
| 19 || [[media:2022_KR_19.tar.gz|tar.gz]] || <br />
|-<br />
! Коробков Андрей Юрьевич<br />
| 21 || [[media:2022_KR_21.tar.gz|tar.gz]] || <br />
|-<br />
! Куксин Владислав Александрович<br />
| 22 || [[media:2022_KR_22.tar.gz|tar.gz]] || <br />
|-<br />
! Кусакин Павел Александрович<br />
| 31 || [[media:2022_KR_31.tar.gz|tar.gz]] || <br />
|-<br />
! Ливенцов Василий Александрович<br />
| 14 || [[media:2022_KR_14.tar.gz|tar.gz]] || <br />
|-<br />
! Михайлов Иван Олегович<br />
| 24 || [[media:2022_KR_24.tar.gz|tar.gz]] || <br />
|-<br />
! Муратов Николай Сергеевич<br />
| 4 || [[media:2022_KR_04.tar.gz|tar.gz]] || <br />
|-<br />
! Попов Максим Геннадьевич<br />
| 6 || [[media:2022_KR_06.tar.gz|tar.gz]] || <br />
|-<br />
! Солнцева Милана Константиновна<br />
| 7 || [[media:2022_KR_07.tar.gz|tar.gz]] || <br />
|-<br />
! Танкина Анна Михайловна<br />
| 9 || [[media:2022_KR_09.tar.gz|tar.gz]] || <br />
|-<br />
! Цымбал Григорий Романович <br />
| 16 || [[media:2022_KR_16.tar.gz|tar.gz]] || <br />
|-<br />
! Чепелев Игорь Игоревич<br />
| 26 || [[media:2022_KR_26.tar.gz|tar.gz]] || <br />
|}<br />
<br />
<br />
=== Этап 1. Обработка логов навигационного приемника ===<br />
<br />
'''Дедлайн''': 04.03.21 (устранение замечаний и итоговый мёрдж до 13.03.21)<br />
<br />
Конечная цель всего курсового проекта - получить библиотеку функций на Си++, позволяющую рассчитывать положение спутника GPS по данным с демодулятора его сигнала L1 C/A. <br />
На первом этапе реализуем модуль разбора навигационного сообщения до структуры эфемерид, сравним результаты со сторонней программой.<br />
<br />
В неизвестной локации установлен навигационный приемник, принимающий сигналы GPS L1C/A и логирующий результаты этого приема в формате [https://navis.ru/downloads/SOFT/NV08C_BINR_Protocol_Specification_V13_ENG_10082012.pdf NVS BINR]. <br />
Собранный на пятиминутном интервале файл приложен в архиве под именем BINR.bin, см. таблицу вариантов. <br />
Файл содержит наблюдения псевдодальностей и прочих радионавигационных параметров, демодулированные и разобранные данные навигационного сообщения. <br />
<br />
Для удобства студентов данные демодулятора продублированы в текстовый файл in.txt. Каждая строка файла содержит данные одного сабфрейма одного навигационного сигнала в формате:<br />
<source lang="bash"><br />
1 0 013 0R GpsL1CA # 13 212130404 29 125 53 100010111010101010101010001010010111000011001010010111111000101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100<br />
</source><br />
где ''# 13'' - номер спутника, ''212130404'' - счетчик сабфреймов в сигнале, ''53'' - ID сабфрейма в навигационном сообщении, где в первых трех битах содержится номер сабфрейма в фрейме (5 в данном примере), а далее - номер фрейма в сообщении (6 в данном примере), ''1000101110...'' символы с демодулятора в порядке возрастания времени слева направо. <br />
<br />
Требуется:<br />
# Разработать программу, обрабатывающую файл in.txt и выводящую в файл out.txt таблицу эфемерид для спутника согласно варианту [[media:Screenshot_20220215_221319.png|в заданном формате]].<br />
# Обработать файл BINR.bin с помощью программы RTKNAVI из состава RTKLIB. Определить день и место проведения наблюдений, значения эфемерид для спутника согласно номеру варианта (меню открывается в левом нижнем углу экрана по нажатию на квадрат)<br />
# Сравнить полученные таблицы<br />
# Оформить код программы и разместить на Github<br />
# Оформить отчет по этапу и разместить на Github<br />
# Завести Pull Request<br />
<br />
Программа должна компилироваться gcc, все входные данные брать из in.txt, весь вывод осуществлять в out.txt.<br />
<br />
Работа осуществляется в репозитории на github на базе [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021]. Для этого:<br />
# Завести, если до сих пор нет, аккаунт на github<br />
# Если ранее не сделано, сделать форк проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021] (маленькая кнопка сверху справа в вэб-интерфейсе)<br />
# Установить на рабочем компьютере git (для выполнения последующих этапов удобнее будет сделать это в ОС GNU/Linux, вероятно, на виртуальной машине)<br />
# Клонировать свой форк на рабочий компьютер (<code>git clone https://github.com/MySuperAccount/gnssrecbasics2021.git</code>)<br />
# Промежуточные и итоговые результаты по первому этапу хранить в каталоге processing (<code>git pull; git add <files>; git commit -m "Сделал то-то то-то"; git push</code>)<br />
# По результатам первого этапа завести Pull Request в исходный проект '''в ветку, название которой совпадает с вашей фамилией''' (кнопка наверху в вэб-интерфейсе)<br />
# Устранить все замечания, добиться принятия Pull Request'а. <br />
<br />
Этап сдан тогда, когда ваш ПР принят.<br />
<br />
=== Этап 2. Моделирование ===<br />
<br />
'''Дедлайн''': 13.04.22 (исправления замечаний до 20.04.22)<br />
<br />
Эфемериды - параметры некоторой модели движения спутника. <br />
В разных ГНСС эти модели разные, а значит отличается и формат эфемерид, и алгоритмы расчета положения спутника.<br />
<br />
Одна из самых простых и удобных моделей - [http://navipedia.org/index.php/GPS_and_Galileo_Satellite_Coordinates_Computation в системе GPS].<br />
<br />
Требуется реализовать на языке Matlab или Python функцию расчета положения спутника GPS на заданный момент по шкале времени UTC.<br />
В качестве эфемерид использовать данные, полученные на предыдущем этапе. <br />
<br />
Построить трехмерные графики множества положений спутника GPS с системным номером, соответствующим номеру студента по списку. Графики в двух вариантах: в СК ECEF WGS84 и соответствующей ей инерциальной СК. Положения должны соответствовать суточному интервалу на дне формирования наблюдений, определенном на предыдущем этапе. Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал. <br />
<br />
Вывести значения координат спутника в файл out.txt в системе ECEF WGS 84 в виде строк: Секунда_от_начала_дня X Y Z<br />
<br />
Используя оценку местоположения с предыдущего этапа, построить Sky Plot за указанный временной интервал и сравнить результат с [http://www.trimble.com/gnssplanningonline/ Trimble GNSS Planning Online].<br />
<br />
Оформить отчет по результатам этапа:<br />
# Реализация в Matlab или Python (описание модели и её листинг)<br />
# Таблица использованных эфемерид<br />
# Трехмерные графики положений спутника в ECEF и ECI (не забудьте подписать оси, изобразите соответствующую Земле сферу в начале СК)<br />
# Расчётный и полученный в GNSS Planing Online SkyView<br />
<br />
Работы по данному этапу осуществляются в каталоге simulation.<br />
Правила приемки этапа те же, что и на первом этапе.<br />
<br />
=== Этап 3. Реализация === <br />
<br />
'''Дедлайн''': 11.05.21 (исправления до 18.05.21)<br />
<br />
Требуется разработать на языке С/С++ функцию расчета положения спутника GPS на заданное время по шкале UTC, минимизируя время её исполнения и количество затрачиваемой оперативной памяти. <br />
Вызов функции не должен приводить к выбросу исключений или утечкам памяти при любом наборе входных данных.<br />
<br />
Функция расчета положения спутника в Matlab/Python относительно проста, т.к. доступны библиотеки линейной алгебры и решения уравнений. <br />
Но при разработке встраиваемого ПО приходится сохранять лицензионную частоту, минимизировать вычислительную нагрузку и затраты памяти. <br />
Поэтому отобразить модель из Matlab/Python в прошивку приемника дословно, как правило, не получается. В рассматриваемом примере потребуется, как минимум, выполнить свою реализацию решения трансцендентного уравнения. <br />
<br />
Программный модуль должен сопровождаться unit-тестами (например, используя Check):<br />
* Тесты функции решения уравнения Кеплера<br />
* Тест расчетного положения спутника в сравнении с Matlab/Python<br />
<br />
Во время второго теста должно вычисляться и выводиться средняя длительность исполнения функции. <br />
Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал (как на предыдущем этапе). <br />
<br />
Требуется провести проверку на утечки памяти (например, с помощью утилиты valgrind).<br />
<br />
Оформить отчет по результатам курсового проекта. <br />
В качестве первых двух глав использовать отчёты с предыдущих этапов, в третьей главе отразить результаты этого этапа:<br />
# Код реализации<br />
# Вывод тестов, включая анализ времени исполнения<br />
# Вывод проверок на утечку памяти<br />
# Вывод по этапу <br />
# Заключение по проекту<br />
<br />
Программа должна компилироваться gcc и использовать в качестве входных данных in.txt с первого этапа. <br />
Результат должен записываться в out.txt в строки формата, определенного на втором этапе. <br />
При тестировании должны сравниваться файлы out.txt второго и третьего этапов.<br />
<br />
Работы по третьему этапу следует вести в директории libgpssvpos.<br />
<br />
Правила приемки этапа те же.<br />
<br />
== Курсовая прошлых лет ==<br />
<br />
Задания в [[Курсовой проект АП СРНС 2020|2020]], в [[Курсовая работа АП СРНС 2021|2021]].<br />
<br />
[[Категория:АП СРНС (дисциплина)]]</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_KR_26.tar.gz
Файл:2022 KR 26.tar.gz
2022-02-16T06:52:05Z
<p>Korogodin: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_KR_16.tar.gz
Файл:2022 KR 16.tar.gz
2022-02-16T06:52:05Z
<p>Korogodin: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_KR_09.tar.gz
Файл:2022 KR 09.tar.gz
2022-02-16T06:52:05Z
<p>Korogodin: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_KR_07.tar.gz
Файл:2022 KR 07.tar.gz
2022-02-16T06:52:05Z
<p>Korogodin: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_KR_06.tar.gz
Файл:2022 KR 06.tar.gz
2022-02-16T06:52:04Z
<p>Korogodin: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_KR_04.tar.gz
Файл:2022 KR 04.tar.gz
2022-02-16T06:52:04Z
<p>Korogodin: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%90%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0_%D0%BF%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D1%81%D0%BF%D1%83%D1%82%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2%D1%8B%D1%85_%D1%80%D0%B0%D0%B4%D0%B8%D0%BE%D0%BD%D0%B0%D0%B2%D0%B8%D0%B3%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_(%D0%B4%D0%B8%D1%81%D1%86%D0%B8%D0%BF%D0%BB%D0%B8%D0%BD%D0%B0)
Аппаратура потребителей спутниковых радионавигационных систем (дисциплина)
2022-02-16T06:43:39Z
<p>Korogodin: /* Курсовая работа */</p>
<hr />
<div>Дисциплина "Аппаратура потребителей спутниковых радионавигационных систем" входит в вариативную часть общенаучного цикла занятий [http://beta.mpei.ru/Education/educationalprograms/rt/Pages/default.aspx учебного плана] подготовки специалистов по направлению 11.05.01 "Радиоэлектронные системы и комплексы". <br />
<br />
Преподается осеннем и весеннем семестрах пятого года обучения. В осеннем семестре лекции и лабораторные занятия (итог - экзамен), в весеннем - курсовой проект. <br />
<br />
По дисциплине подготовлен [[ЭУМК АП СРНС|электронный учебно-методический комплекс]].<br />
<br />
== Календарный план ==<br />
<br />
<br />
{| class="wikitable"<br />
|-<br />
! Неделя || Даты || Лекция || Лабораторная || Контрольное мероприятие<br />
<br />
|- align=center<br />
| 2 || 07.09<br />
| Основы СРНС. [[media:Receivers_Segments.pdf|Сегменты СРНС]]. [[media:Receivers_PosMethods.pdf|Методы позиционирования]].<br />
| [https://goo.gl/forms/R7Vos1KsJ1taqqXo2 Ошибки позиционирования в городских условиях] <br />
|<br />
<br />
|- align=center<br />
| 3 || 13.09.21-19.09.21<br />
| Навигационные сигналы. <br />
|<br />
| <br />
<br />
|- align=center<br />
| 4 || 20.09.21-26.09.21<br />
| Антенна, МШУ<br />
| <br />
| КМ-1: Модель сигнала ГНСС<br />
<br />
|- align=center<br />
| 5 || 27.09.21-03.10.21<br />
| Радиочастотный блок <br> ([[media:20111008_АП_СРНС_Лекция_3_презентация.pdf|Аналогово-цифровое преобразование. Синтезатор частот. План частот АП СРНС.]] )<br />
| <br />
| <br />
<br />
|- align=center<br />
| 6 || 04.10.21-10.10.21<br />
| Математическая модель коррелятора <br> ([[media:АП_СРНС_corr.pdf|Статистический эквивалент коррелятора]])<br />
|<br />
| КМ-2: Ошибки позиционирования в городских условиях<br />
<br />
|- align=center<br />
| 7 || 11.10.21-17.10.21<br />
| Аппаратная реализация коррелятора <br> ([[media:20111005_АП_СРНС_Лекция_4_презентация.pdf|Принципы построения и структура коррелятора. Цифровой генератор гармонического сигнала и дальномерного кода.]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 8 || 18.10.21-24.10.21<br />
| Следящие системы <br> ([[media:20111215_АП_СРНС_Лекция_8_презентация.pdf|Система слежения за фазой сигнала. Структурная схема ССФ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_9_презентация.pdf|Система слежения за частотой. Структурная схема ССЧ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_10_презентация.pdf|Система слежения за задержкой. Структурная схема ССЗ, дискриминаторы, следящий фильтр. <br> Система слежения за задержкой с поддержкой от ФАП. Комплексный фильтр.]]) <br />
| [https://goo.gl/XruJBM GNSS Planning] <br />
| КМ-3: Статистический эквивалент коррелятора<br />
<br />
|- align=center<br />
| 9 || 25.10.21-31.10.21<br />
| Оценка SNR, детекторы захвата, детекторы CC<br />
| <br />
| <br />
<br />
|- align=center<br />
| 10 || 01.11.21-07.11.21<br />
| Обнаружение сигнала. <br> ([[media:20111005_АП_СРНС_Лекция_5_презентация.pdf|Обнаружение сигнала. Алгоритмы, статистические характеристики обнаружения.]]) <br />
|<br />
| <br />
<br />
|- align=center<br />
| 11 || 08.11.21-14.11.21<br />
| Поиск сигнала <br> ([[media:20111008_АП_СРНС_Лекция_6_презентация.pdf|Поиск сигнала по частоте и задержке. Алгоритмы поиска, быстрый поиск сигнала.]] <br> [[media:20111017_АП_СРНС_Лекция_7_презентация.pdf|Блок быстрого поиска]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 12 || 15.11.21-21.11.21<br />
| Символьная и оверлейная синхронизация <br> <br />
| [[Исследование_коррелятора_АП_СРНС_ГЛОНАСС_с_помощью_имитационной_модели_(лабораторная_работа)|Исследование коррелятора АП СРНС с помощью имитационной модели]]<br />
| КМ-4: Исследование коррелятора АП СРНС ГЛОНАСС с помощью имитационной модели <br />
<br />
|- align=center<br />
| 13 || 22.11.21-28.11.21<br />
| [[media:20111215_АП_СРНС_Лекция_11_презентация.pdf|Демодуляция навигационных данных]]<br />
| <br />
| <br />
<br />
|- align=center<br />
| 14 || 29.11.21-05.12.21<br />
| Кадровая синхронизация, [[media:20111215_АП_СРНС_Лекция_12_презентация.pdf|декодирование]], парсинг<br />
|<br />
| КМ-5: Прогнозирование спутникового созвездия<br />
<br />
|- align=center<br />
| 15 || 08.12.21-12.12.21<br />
| Формирование измерений, расчет положения спутника<br />
|<br />
| <br />
<br />
|- align=center<br />
| 16 || 13.12.21-19.12.21<br />
| Модель наблюдений псевдодальности. <br> [[media:20111128_АП_СРНС_Лекция_14_презентация.pdf|Вторичная обработка измерений. Одношаговый алгоритм решения навигационной задачи.]] <br> [[media:20111215_АП_СРНС_Лекция_16_презентация.pdf|Контроль целостности]]<br />
| Решение навигационной задачи по псевдодальномерным измерениям<br />
| КМ-6: Решение навигационной задачи по псевдодальномерным измерениям<br />
<br />
|- align=center<br />
| 17 || 20.12.21-26.12.21<br />
| Помехоустойчивость АП СРНС<br />
| <br />
| <br />
<br />
|- align=center<br />
| 18 || 27.12.21-02.01.21<br />
| Зачет<br />
|<br />
|<br />
<br />
|}<br />
<br />
[[media:АПСРНС_2021_Списки.ods|Журнал успеваемости]].<br />
<br />
== Правила аттестации ==<br />
<br />
Обязательным условием для получения допуска к экзамену является выполнение всех контрольных мероприятий: сдача двух контрольных и защита 4 лабораторных работ. <br />
<br />
При написании отчетов следует опираться на правила оформления [https://mpei.ru/Science/ScienceDocuments/Documents/Polojenie_2018/0_GOST_7.32-2017.pdf ГОСТ 7.32] (в части форматирования, оформления рисунков, таблиц, списков и т.д.).<br />
<br />
Приемка осуществляется через репозиторий на github на базе проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021].<br />
<br />
== Демо модели ==<br />
<br />
=== Прогноз выходного сигнала коррелятора ===<br />
<br />
Производится обработка сигнала Gps L1 C/A, сформированного лабораторным имитатором сигналов, синхронизированным с приемником. Сигнал перенесен с помощью РЧБ NT1065 на промежуточную частоту <math>f_{if} = 8.54</math> МГц и преобразован многоразрядным АЦП с частотой сэмплирования <math>F_d = 99.375</math> МГц. Установленная на имитаторе мощность обеспечивает уровень отношения сигнал/шум <math>27 + N</math> дБГц, где <math>N</math> - номер вариант по журналу. <br />
<br />
В приемнике производтся корреляционная обработка сигнала, интервал накопления составляет <math>T = 1</math> мс. <br />
<br />
Сигнал имеет сдвиг частоты несущей <math>f_d = 100 N</math> Гц, при этом опорный сигнал коррелятора имеет аналогичный сдвиг <math>f_{d, rep} = f_d</math>. Задержка огибающей известна точно и используется в опорном сигнале <math>\tau = \tau_{rep}</math>.<br />
<br />
Задание: Построить на плоскости I,Q вид множества точек корреляционных сумм, полученных в ходе большого (сотни) числа экспериментов. <br />
<br />
{{Hider|title = Расчет выходного сигнала коррелятора<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
N = 30;<br />
<br />
Fd = 99.375e6;<br />
Td = 1/Fd;<br />
T = 0.001;<br />
fif = 8.34e6;<br />
<br />
fd = 100 * N;<br />
fd_rep = fd;<br />
<br />
phi = 10 * N;<br />
phi_rep = 20 * N;<br />
<br />
qcno_dB = 27 + N;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdn = 50/3;<br />
A = sqrt(qcno * Td) * 2 * stdn; % qcno = A^2 / (4 stdn^2 Td)<br />
<br />
fprintf('A = %f, stdn = %f\n', A, stdn);<br />
<br />
L = fix(T * Fd);<br />
t = (0:(L-1)) * Td;<br />
<br />
PRN_Length = 1023;<br />
PRN = (-1).^(rand(1, PRN_Length) > 0.5);<br />
<br />
tau = 100500e-6;<br />
tau_rep = tau;<br />
<br />
nchip = mod(fix(PRN_Length*(t - tau )/T), PRN_Length) + 1;<br />
nchip_rep = mod(fix(PRN_Length*(t - tau_rep)/T), PRN_Length) + 1;<br />
<br />
Gc = PRN(nchip );<br />
Gc_rep = PRN(nchip_rep);<br />
<br />
So = A * Gc .* cos(2*pi*fif*t + 2*pi*fd *t + deg2rad(phi) );<br />
S_rep_cos = Gc_rep .* cos(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
S_rep_sin = Gc_rep .* sin(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
<br />
K = 1000; I = nan(1, K); Q = nan(1,K);<br />
for k = 1:K<br />
n = randn(1,L)*stdn;<br />
<br />
Gd = (-1).^(rand(1,1) > 0.5);<br />
S = Gd * So;<br />
<br />
y = S + n;<br />
<br />
I(k) = y * S_rep_cos';<br />
Q(k) = y * S_rep_sin';<br />
end<br />
<br />
maxIQ = 1.1*max(abs(I + 1i*Q));<br />
<br />
figure(1);<br />
plot(t*1e3, [y; S; A*Gc]);<br />
xlabel('t, ms')<br />
ylabel('y, S');<br />
grid on<br />
<br />
figure(2);<br />
plot(I, Q, '*')<br />
hold on<br />
plot([-maxIQ maxIQ], [0 0], 'k');<br />
plot([0 0], [-maxIQ maxIQ], 'k');<br />
quiver(-maxIQ, 0, 2*maxIQ, 0, 1, 'k');<br />
quiver(0, -maxIQ, 0, 2*maxIQ, 1, 'k');<br />
hold off<br />
xlabel('I')<br />
ylabel('Q');<br />
axis equal<br />
grid on<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
<br />
=== ЧАП и ФАП на стат эквивалентах ===<br />
<br />
{{Hider|title = Слежение за фазой и частотой<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
T = 0.010;<br />
<br />
Xist = [10; <br />
1];<br />
<br />
Xfilt = [0;<br />
0];<br />
<br />
Xfilt_FLL = [0;<br />
0];<br />
<br />
F = [1 T;<br />
0 1];<br />
<br />
Tmod = 10;<br />
K = fix(Tmod / T);<br />
<br />
G = [0;<br />
1];<br />
<br />
std_ksi = 1.3 * T;<br />
ksi = std_ksi * randn(1, K);<br />
<br />
qcno_dB = 45;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdnIQ = 7;<br />
nI = stdnIQ * randn(1, K);<br />
nQ = stdnIQ * randn(1, K);<br />
A_IQ = sqrt(2*qcno*T) * stdnIQ; <br />
<br />
dF_PLL = 20;<br />
Kfilt_PLL = [ 8/3 * dF_PLL * T;<br />
32/9 * dF_PLL^2 * T];<br />
<br />
dF_FLL = 3;<br />
Kfilt_FLL = [ 8/3 * dF_FLL * T;<br />
32/9 * dF_FLL^2 * T];<br />
<br />
t = (1:K)*T;<br />
phi_ist = nan(1, K);<br />
w_ist = nan(1, K);<br />
phi_filt = nan(1, K);<br />
w_filt = nan(1, K);<br />
phi_filt_FLL = nan(1, K);<br />
w_filt_FLL = nan(1, K);<br />
<br />
phi_corr = 0; Iold = 0; Qold = 0;<br />
for k = 1:K<br />
Xist = F * Xist + G * ksi(k);<br />
<br />
phi_ist(k) = Xist(1);<br />
w_ist(k) = Xist(2);<br />
<br />
% PLL<br />
Xfilt_extr = F*Xfilt;<br />
phi_extr = Xfilt_extr(1);<br />
dPhi = phi_ist(k) - phi_extr;<br />
<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = -Q; <br />
Sd = A_IQ; <br />
<br />
Xfilt = Xfilt_extr + Kfilt_PLL * Ud/Sd;<br />
<br />
phi_filt(k) = Xfilt(1);<br />
w_filt(k) = Xfilt(2);<br />
<br />
% FLL<br />
Xfilt_extr_FLL = F*Xfilt_FLL;<br />
w_extr = Xfilt_extr_FLL(1);<br />
dPhi = phi_ist(k) - phi_corr;<br />
phi_corr = phi_corr + w_extr * T;<br />
dW = w_ist(k) - w_extr;<br />
<br />
I = - A_IQ * cos(dPhi) + nI(k);<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = Q*Iold - I*Qold; <br />
Sd = A_IQ; <br />
Iold = I; Qold = Q;<br />
<br />
Xfilt_FLL = Xfilt_extr_FLL + Kfilt_FLL * Ud/Sd;<br />
<br />
phi_filt_FLL(k) = phi_corr;<br />
w_filt_FLL(k) = Xfilt_FLL(1);<br />
<br />
<br />
end<br />
<br />
figure(1)<br />
subplot(2,1,1)<br />
plot(t, phi_ist/2/pi, t, phi_filt/2/pi, t, phi_filt_FLL/2/pi)<br />
ylabel('\phi, cycles')<br />
subplot(2,1,2)<br />
plot(t, rad2deg(w_ist), t, rad2deg(w_filt), t, rad2deg(w_filt_FLL))<br />
ylabel('\omega, Hz')<br />
xlabel('t, sec')<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
== Вопросы к экзамену ==<br />
<br />
Экзамен проводится в письменной форме: тест, задача и один экзаменационный вопрос ([[media:Вопросы_экз_АП_СРНС.doc|экзаменационные вопросы]]). При подготовке рекомендуется использовать книги по тематике, [[media:2013_ЭУМК_С3.33_Лекции_АП_СРНС.pdf|конспекты лекций]] и презентации.<br />
<br />
== Курсовая работа ==<br />
<br />
Название: '''Расчет траектории движения спутника GPS по данным с демодулятора его сигнала'''<br />
<br />
Курсовая работа по АП СРНС выполняется во втором семестре. В рамках КР студенты знакомятся с рядом инструментов и техник, используемых при разработке навигационных приемников.<br />
<br />
Цель проекта - разработка модулей разбора навигационного сообщения GPS и расчета положения спутника, предназначенных для использования в составе навигационного приемника.<br />
<br />
Требования к разрабатываемому программному модулю:<br />
* требования назначения;<br />
* отсутствие утечек памяти;<br />
* малое время выполнения;<br />
* низкий расход памяти;<br />
* корректное выполнение при аномальных входных данных. <br />
<br />
Для достижения цели выполняется ряд задач, соответствующих этапам проекта и контрольным мероприятиям:<br />
* разработка модуля разбора символов навигационного сообщения<br />
* расчет положения КА в Matlab/Python и его проверка сторонними сервисами;<br />
* реализация модуля расчета положения КА на С/С++ и его тестирование.<br />
<br />
На каждом из этапов действуют следующие правила:<br />
* Взаимодействие осуществляется через github (пул реквесты, комментарии)<br />
* '''Этап сдан тогда, когда принят пул реквест'''<br />
<br />
<br />
<br />
{| class="wikitable"<br />
|+ Варианты заданий:<br />
|-<br />
! Студент !! Номер спутника = варианта !! Логи !! Примечание<br />
|-<br />
! Антропов Евгений Александрович<br />
| 1 || [[media:2022_KR_01.tar.gz|tar.gz]] || <br />
|-<br />
! Бахолдин Никита Владимирович<br />
| 3 || [[media:2022_KR_03.tar.gz|tar.gz]] || <br />
|-<br />
! Берестнев Владимир Сергеевич<br />
| 8 || [[media:2022_KR_08.tar.gz|tar.gz]] || <br />
|-<br />
! Дубинин Леонид Андреевич<br />
| 10 || [[media:2022_KR_10.tar.gz|tar.gz]] || <br />
|-<br />
! Еловский Никита Станиславович<br />
| 12 || [[media:2022_KR_12.tar.gz|tar.gz]] || <br />
|-<br />
! Иванцова Дарья Николаевна<br />
| 17 || [[media:2022_KR_17.tar.gz|tar.gz]] || <br />
|-<br />
! Капитонов Александр Ильич<br />
| 19 || [[media:2022_KR_19.tar.gz|tar.gz]] || <br />
|-<br />
! Коробков Андрей Юрьевич<br />
| 21 || [[media:2022_KR_21.tar.gz|tar.gz]] || <br />
|-<br />
! Куксин Владислав Александрович<br />
| 22 || [[media:2022_KR_22.tar.gz|tar.gz]] || <br />
|-<br />
! Кусакин Павел Александрович<br />
| 31 || [[media:2022_KR_31.tar.gz|tar.gz]] || <br />
|-<br />
! Ливенцов Василий Александрович<br />
| 14 || [[media:2022_KR_14.tar.gz|tar.gz]] || <br />
|-<br />
! Михайлов Иван Олегович<br />
| 24 || [[media:2022_KR_24.tar.gz|tar.gz]] || <br />
|-<br />
! Муратов Николай Сергеевич<br />
| || || <br />
|-<br />
! Попов Максим Геннадьевич<br />
| || || <br />
|-<br />
! Солнцева Милана Константиновна<br />
| || || <br />
|-<br />
! Танкина Анна Михайловна<br />
| || || <br />
|-<br />
! Цымбал Григорий Романович <br />
| || || <br />
|-<br />
! Чепелев Игорь Игоревич<br />
| || || <br />
|}<br />
<br />
<br />
=== Этап 1. Обработка логов навигационного приемника ===<br />
<br />
'''Дедлайн''': 04.03.21 (устранение замечаний и итоговый мёрдж до 13.03.21)<br />
<br />
Конечная цель всего курсового проекта - получить библиотеку функций на Си++, позволяющую рассчитывать положение спутника GPS по данным с демодулятора его сигнала L1 C/A. <br />
На первом этапе реализуем модуль разбора навигационного сообщения до структуры эфемерид, сравним результаты со сторонней программой.<br />
<br />
В неизвестной локации установлен навигационный приемник, принимающий сигналы GPS L1C/A и логирующий результаты этого приема в формате [https://navis.ru/downloads/SOFT/NV08C_BINR_Protocol_Specification_V13_ENG_10082012.pdf NVS BINR]. <br />
Собранный на пятиминутном интервале файл приложен в архиве под именем BINR.bin, см. таблицу вариантов. <br />
Файл содержит наблюдения псевдодальностей и прочих радионавигационных параметров, демодулированные и разобранные данные навигационного сообщения. <br />
<br />
Для удобства студентов данные демодулятора продублированы в текстовый файл in.txt. Каждая строка файла содержит данные одного сабфрейма одного навигационного сигнала в формате:<br />
<source lang="bash"><br />
1 0 013 0R GpsL1CA # 13 212130404 29 125 53 100010111010101010101010001010010111000011001010010111111000101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100<br />
</source><br />
где ''# 13'' - номер спутника, ''212130404'' - счетчик сабфреймов в сигнале, ''53'' - ID сабфрейма в навигационном сообщении, где в первых трех битах содержится номер сабфрейма в фрейме (5 в данном примере), а далее - номер фрейма в сообщении (6 в данном примере), ''1000101110...'' символы с демодулятора в порядке возрастания времени слева направо. <br />
<br />
Требуется:<br />
# Разработать программу, обрабатывающую файл in.txt и выводящую в файл out.txt таблицу эфемерид для спутника согласно варианту [[media:Screenshot_20220215_221319.png|в заданном формате]].<br />
# Обработать файл BINR.bin с помощью программы RTKNAVI из состава RTKLIB. Определить день и место проведения наблюдений, значения эфемерид для спутника согласно номеру варианта (меню открывается в левом нижнем углу экрана по нажатию на квадрат)<br />
# Сравнить полученные таблицы<br />
# Оформить код программы и разместить на Github<br />
# Оформить отчет по этапу и разместить на Github<br />
# Завести Pull Request<br />
<br />
Программа должна компилироваться gcc, все входные данные брать из in.txt, весь вывод осуществлять в out.txt.<br />
<br />
Работа осуществляется в репозитории на github на базе [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021]. Для этого:<br />
# Завести, если до сих пор нет, аккаунт на github<br />
# Если ранее не сделано, сделать форк проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021] (маленькая кнопка сверху справа в вэб-интерфейсе)<br />
# Установить на рабочем компьютере git (для выполнения последующих этапов удобнее будет сделать это в ОС GNU/Linux, вероятно, на виртуальной машине)<br />
# Клонировать свой форк на рабочий компьютер (<code>git clone https://github.com/MySuperAccount/gnssrecbasics2021.git</code>)<br />
# Промежуточные и итоговые результаты по первому этапу хранить в каталоге processing (<code>git pull; git add <files>; git commit -m "Сделал то-то то-то"; git push</code>)<br />
# По результатам первого этапа завести Pull Request в исходный проект '''в ветку, название которой совпадает с вашей фамилией''' (кнопка наверху в вэб-интерфейсе)<br />
# Устранить все замечания, добиться принятия Pull Request'а. <br />
<br />
Этап сдан тогда, когда ваш ПР принят.<br />
<br />
=== Этап 2. Моделирование ===<br />
<br />
'''Дедлайн''': 13.04.22 (исправления замечаний до 20.04.22)<br />
<br />
Эфемериды - параметры некоторой модели движения спутника. <br />
В разных ГНСС эти модели разные, а значит отличается и формат эфемерид, и алгоритмы расчета положения спутника.<br />
<br />
Одна из самых простых и удобных моделей - [http://navipedia.org/index.php/GPS_and_Galileo_Satellite_Coordinates_Computation в системе GPS].<br />
<br />
Требуется реализовать на языке Matlab или Python функцию расчета положения спутника GPS на заданный момент по шкале времени UTC.<br />
В качестве эфемерид использовать данные, полученные на предыдущем этапе. <br />
<br />
Построить трехмерные графики множества положений спутника GPS с системным номером, соответствующим номеру студента по списку. Графики в двух вариантах: в СК ECEF WGS84 и соответствующей ей инерциальной СК. Положения должны соответствовать суточному интервалу на дне формирования наблюдений, определенном на предыдущем этапе. Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал. <br />
<br />
Вывести значения координат спутника в файл out.txt в системе ECEF WGS 84 в виде строк: Секунда_от_начала_дня X Y Z<br />
<br />
Используя оценку местоположения с предыдущего этапа, построить Sky Plot за указанный временной интервал и сравнить результат с [http://www.trimble.com/gnssplanningonline/ Trimble GNSS Planning Online].<br />
<br />
Оформить отчет по результатам этапа:<br />
# Реализация в Matlab или Python (описание модели и её листинг)<br />
# Таблица использованных эфемерид<br />
# Трехмерные графики положений спутника в ECEF и ECI (не забудьте подписать оси, изобразите соответствующую Земле сферу в начале СК)<br />
# Расчётный и полученный в GNSS Planing Online SkyView<br />
<br />
Работы по данному этапу осуществляются в каталоге simulation.<br />
Правила приемки этапа те же, что и на первом этапе.<br />
<br />
=== Этап 3. Реализация === <br />
<br />
'''Дедлайн''': 11.05.21 (исправления до 18.05.21)<br />
<br />
Требуется разработать на языке С/С++ функцию расчета положения спутника GPS на заданное время по шкале UTC, минимизируя время её исполнения и количество затрачиваемой оперативной памяти. <br />
Вызов функции не должен приводить к выбросу исключений или утечкам памяти при любом наборе входных данных.<br />
<br />
Функция расчета положения спутника в Matlab/Python относительно проста, т.к. доступны библиотеки линейной алгебры и решения уравнений. <br />
Но при разработке встраиваемого ПО приходится сохранять лицензионную частоту, минимизировать вычислительную нагрузку и затраты памяти. <br />
Поэтому отобразить модель из Matlab/Python в прошивку приемника дословно, как правило, не получается. В рассматриваемом примере потребуется, как минимум, выполнить свою реализацию решения трансцендентного уравнения. <br />
<br />
Программный модуль должен сопровождаться unit-тестами (например, используя Check):<br />
* Тесты функции решения уравнения Кеплера<br />
* Тест расчетного положения спутника в сравнении с Matlab/Python<br />
<br />
Во время второго теста должно вычисляться и выводиться средняя длительность исполнения функции. <br />
Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал (как на предыдущем этапе). <br />
<br />
Требуется провести проверку на утечки памяти (например, с помощью утилиты valgrind).<br />
<br />
Оформить отчет по результатам курсового проекта. <br />
В качестве первых двух глав использовать отчёты с предыдущих этапов, в третьей главе отразить результаты этого этапа:<br />
# Код реализации<br />
# Вывод тестов, включая анализ времени исполнения<br />
# Вывод проверок на утечку памяти<br />
# Вывод по этапу <br />
# Заключение по проекту<br />
<br />
Программа должна компилироваться gcc и использовать в качестве входных данных in.txt с первого этапа. <br />
Результат должен записываться в out.txt в строки формата, определенного на втором этапе. <br />
При тестировании должны сравниваться файлы out.txt второго и третьего этапов.<br />
<br />
Работы по третьему этапу следует вести в директории libgpssvpos.<br />
<br />
Правила приемки этапа те же.<br />
<br />
== Курсовая прошлых лет ==<br />
<br />
Задания в [[Курсовой проект АП СРНС 2020|2020]], в [[Курсовая работа АП СРНС 2021|2021]].<br />
<br />
[[Категория:АП СРНС (дисциплина)]]</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_KR_14.tar.gz
Файл:2022 KR 14.tar.gz
2022-02-16T06:43:05Z
<p>Korogodin: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_KR_24.tar.gz
Файл:2022 KR 24.tar.gz
2022-02-16T06:43:05Z
<p>Korogodin: Korogodin загружена новая версия «Файл:2022 KR 24.tar.gz»: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%90%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0_%D0%BF%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D1%81%D0%BF%D1%83%D1%82%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2%D1%8B%D1%85_%D1%80%D0%B0%D0%B4%D0%B8%D0%BE%D0%BD%D0%B0%D0%B2%D0%B8%D0%B3%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_(%D0%B4%D0%B8%D1%81%D1%86%D0%B8%D0%BF%D0%BB%D0%B8%D0%BD%D0%B0)
Аппаратура потребителей спутниковых радионавигационных систем (дисциплина)
2022-02-16T06:29:08Z
<p>Korogodin: /* Этап 1. Обработка логов навигационного приемника */</p>
<hr />
<div>Дисциплина "Аппаратура потребителей спутниковых радионавигационных систем" входит в вариативную часть общенаучного цикла занятий [http://beta.mpei.ru/Education/educationalprograms/rt/Pages/default.aspx учебного плана] подготовки специалистов по направлению 11.05.01 "Радиоэлектронные системы и комплексы". <br />
<br />
Преподается осеннем и весеннем семестрах пятого года обучения. В осеннем семестре лекции и лабораторные занятия (итог - экзамен), в весеннем - курсовой проект. <br />
<br />
По дисциплине подготовлен [[ЭУМК АП СРНС|электронный учебно-методический комплекс]].<br />
<br />
== Календарный план ==<br />
<br />
<br />
{| class="wikitable"<br />
|-<br />
! Неделя || Даты || Лекция || Лабораторная || Контрольное мероприятие<br />
<br />
|- align=center<br />
| 2 || 07.09<br />
| Основы СРНС. [[media:Receivers_Segments.pdf|Сегменты СРНС]]. [[media:Receivers_PosMethods.pdf|Методы позиционирования]].<br />
| [https://goo.gl/forms/R7Vos1KsJ1taqqXo2 Ошибки позиционирования в городских условиях] <br />
|<br />
<br />
|- align=center<br />
| 3 || 13.09.21-19.09.21<br />
| Навигационные сигналы. <br />
|<br />
| <br />
<br />
|- align=center<br />
| 4 || 20.09.21-26.09.21<br />
| Антенна, МШУ<br />
| <br />
| КМ-1: Модель сигнала ГНСС<br />
<br />
|- align=center<br />
| 5 || 27.09.21-03.10.21<br />
| Радиочастотный блок <br> ([[media:20111008_АП_СРНС_Лекция_3_презентация.pdf|Аналогово-цифровое преобразование. Синтезатор частот. План частот АП СРНС.]] )<br />
| <br />
| <br />
<br />
|- align=center<br />
| 6 || 04.10.21-10.10.21<br />
| Математическая модель коррелятора <br> ([[media:АП_СРНС_corr.pdf|Статистический эквивалент коррелятора]])<br />
|<br />
| КМ-2: Ошибки позиционирования в городских условиях<br />
<br />
|- align=center<br />
| 7 || 11.10.21-17.10.21<br />
| Аппаратная реализация коррелятора <br> ([[media:20111005_АП_СРНС_Лекция_4_презентация.pdf|Принципы построения и структура коррелятора. Цифровой генератор гармонического сигнала и дальномерного кода.]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 8 || 18.10.21-24.10.21<br />
| Следящие системы <br> ([[media:20111215_АП_СРНС_Лекция_8_презентация.pdf|Система слежения за фазой сигнала. Структурная схема ССФ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_9_презентация.pdf|Система слежения за частотой. Структурная схема ССЧ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_10_презентация.pdf|Система слежения за задержкой. Структурная схема ССЗ, дискриминаторы, следящий фильтр. <br> Система слежения за задержкой с поддержкой от ФАП. Комплексный фильтр.]]) <br />
| [https://goo.gl/XruJBM GNSS Planning] <br />
| КМ-3: Статистический эквивалент коррелятора<br />
<br />
|- align=center<br />
| 9 || 25.10.21-31.10.21<br />
| Оценка SNR, детекторы захвата, детекторы CC<br />
| <br />
| <br />
<br />
|- align=center<br />
| 10 || 01.11.21-07.11.21<br />
| Обнаружение сигнала. <br> ([[media:20111005_АП_СРНС_Лекция_5_презентация.pdf|Обнаружение сигнала. Алгоритмы, статистические характеристики обнаружения.]]) <br />
|<br />
| <br />
<br />
|- align=center<br />
| 11 || 08.11.21-14.11.21<br />
| Поиск сигнала <br> ([[media:20111008_АП_СРНС_Лекция_6_презентация.pdf|Поиск сигнала по частоте и задержке. Алгоритмы поиска, быстрый поиск сигнала.]] <br> [[media:20111017_АП_СРНС_Лекция_7_презентация.pdf|Блок быстрого поиска]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 12 || 15.11.21-21.11.21<br />
| Символьная и оверлейная синхронизация <br> <br />
| [[Исследование_коррелятора_АП_СРНС_ГЛОНАСС_с_помощью_имитационной_модели_(лабораторная_работа)|Исследование коррелятора АП СРНС с помощью имитационной модели]]<br />
| КМ-4: Исследование коррелятора АП СРНС ГЛОНАСС с помощью имитационной модели <br />
<br />
|- align=center<br />
| 13 || 22.11.21-28.11.21<br />
| [[media:20111215_АП_СРНС_Лекция_11_презентация.pdf|Демодуляция навигационных данных]]<br />
| <br />
| <br />
<br />
|- align=center<br />
| 14 || 29.11.21-05.12.21<br />
| Кадровая синхронизация, [[media:20111215_АП_СРНС_Лекция_12_презентация.pdf|декодирование]], парсинг<br />
|<br />
| КМ-5: Прогнозирование спутникового созвездия<br />
<br />
|- align=center<br />
| 15 || 08.12.21-12.12.21<br />
| Формирование измерений, расчет положения спутника<br />
|<br />
| <br />
<br />
|- align=center<br />
| 16 || 13.12.21-19.12.21<br />
| Модель наблюдений псевдодальности. <br> [[media:20111128_АП_СРНС_Лекция_14_презентация.pdf|Вторичная обработка измерений. Одношаговый алгоритм решения навигационной задачи.]] <br> [[media:20111215_АП_СРНС_Лекция_16_презентация.pdf|Контроль целостности]]<br />
| Решение навигационной задачи по псевдодальномерным измерениям<br />
| КМ-6: Решение навигационной задачи по псевдодальномерным измерениям<br />
<br />
|- align=center<br />
| 17 || 20.12.21-26.12.21<br />
| Помехоустойчивость АП СРНС<br />
| <br />
| <br />
<br />
|- align=center<br />
| 18 || 27.12.21-02.01.21<br />
| Зачет<br />
|<br />
|<br />
<br />
|}<br />
<br />
[[media:АПСРНС_2021_Списки.ods|Журнал успеваемости]].<br />
<br />
== Правила аттестации ==<br />
<br />
Обязательным условием для получения допуска к экзамену является выполнение всех контрольных мероприятий: сдача двух контрольных и защита 4 лабораторных работ. <br />
<br />
При написании отчетов следует опираться на правила оформления [https://mpei.ru/Science/ScienceDocuments/Documents/Polojenie_2018/0_GOST_7.32-2017.pdf ГОСТ 7.32] (в части форматирования, оформления рисунков, таблиц, списков и т.д.).<br />
<br />
Приемка осуществляется через репозиторий на github на базе проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021].<br />
<br />
== Демо модели ==<br />
<br />
=== Прогноз выходного сигнала коррелятора ===<br />
<br />
Производится обработка сигнала Gps L1 C/A, сформированного лабораторным имитатором сигналов, синхронизированным с приемником. Сигнал перенесен с помощью РЧБ NT1065 на промежуточную частоту <math>f_{if} = 8.54</math> МГц и преобразован многоразрядным АЦП с частотой сэмплирования <math>F_d = 99.375</math> МГц. Установленная на имитаторе мощность обеспечивает уровень отношения сигнал/шум <math>27 + N</math> дБГц, где <math>N</math> - номер вариант по журналу. <br />
<br />
В приемнике производтся корреляционная обработка сигнала, интервал накопления составляет <math>T = 1</math> мс. <br />
<br />
Сигнал имеет сдвиг частоты несущей <math>f_d = 100 N</math> Гц, при этом опорный сигнал коррелятора имеет аналогичный сдвиг <math>f_{d, rep} = f_d</math>. Задержка огибающей известна точно и используется в опорном сигнале <math>\tau = \tau_{rep}</math>.<br />
<br />
Задание: Построить на плоскости I,Q вид множества точек корреляционных сумм, полученных в ходе большого (сотни) числа экспериментов. <br />
<br />
{{Hider|title = Расчет выходного сигнала коррелятора<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
N = 30;<br />
<br />
Fd = 99.375e6;<br />
Td = 1/Fd;<br />
T = 0.001;<br />
fif = 8.34e6;<br />
<br />
fd = 100 * N;<br />
fd_rep = fd;<br />
<br />
phi = 10 * N;<br />
phi_rep = 20 * N;<br />
<br />
qcno_dB = 27 + N;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdn = 50/3;<br />
A = sqrt(qcno * Td) * 2 * stdn; % qcno = A^2 / (4 stdn^2 Td)<br />
<br />
fprintf('A = %f, stdn = %f\n', A, stdn);<br />
<br />
L = fix(T * Fd);<br />
t = (0:(L-1)) * Td;<br />
<br />
PRN_Length = 1023;<br />
PRN = (-1).^(rand(1, PRN_Length) > 0.5);<br />
<br />
tau = 100500e-6;<br />
tau_rep = tau;<br />
<br />
nchip = mod(fix(PRN_Length*(t - tau )/T), PRN_Length) + 1;<br />
nchip_rep = mod(fix(PRN_Length*(t - tau_rep)/T), PRN_Length) + 1;<br />
<br />
Gc = PRN(nchip );<br />
Gc_rep = PRN(nchip_rep);<br />
<br />
So = A * Gc .* cos(2*pi*fif*t + 2*pi*fd *t + deg2rad(phi) );<br />
S_rep_cos = Gc_rep .* cos(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
S_rep_sin = Gc_rep .* sin(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
<br />
K = 1000; I = nan(1, K); Q = nan(1,K);<br />
for k = 1:K<br />
n = randn(1,L)*stdn;<br />
<br />
Gd = (-1).^(rand(1,1) > 0.5);<br />
S = Gd * So;<br />
<br />
y = S + n;<br />
<br />
I(k) = y * S_rep_cos';<br />
Q(k) = y * S_rep_sin';<br />
end<br />
<br />
maxIQ = 1.1*max(abs(I + 1i*Q));<br />
<br />
figure(1);<br />
plot(t*1e3, [y; S; A*Gc]);<br />
xlabel('t, ms')<br />
ylabel('y, S');<br />
grid on<br />
<br />
figure(2);<br />
plot(I, Q, '*')<br />
hold on<br />
plot([-maxIQ maxIQ], [0 0], 'k');<br />
plot([0 0], [-maxIQ maxIQ], 'k');<br />
quiver(-maxIQ, 0, 2*maxIQ, 0, 1, 'k');<br />
quiver(0, -maxIQ, 0, 2*maxIQ, 1, 'k');<br />
hold off<br />
xlabel('I')<br />
ylabel('Q');<br />
axis equal<br />
grid on<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
<br />
=== ЧАП и ФАП на стат эквивалентах ===<br />
<br />
{{Hider|title = Слежение за фазой и частотой<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
T = 0.010;<br />
<br />
Xist = [10; <br />
1];<br />
<br />
Xfilt = [0;<br />
0];<br />
<br />
Xfilt_FLL = [0;<br />
0];<br />
<br />
F = [1 T;<br />
0 1];<br />
<br />
Tmod = 10;<br />
K = fix(Tmod / T);<br />
<br />
G = [0;<br />
1];<br />
<br />
std_ksi = 1.3 * T;<br />
ksi = std_ksi * randn(1, K);<br />
<br />
qcno_dB = 45;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdnIQ = 7;<br />
nI = stdnIQ * randn(1, K);<br />
nQ = stdnIQ * randn(1, K);<br />
A_IQ = sqrt(2*qcno*T) * stdnIQ; <br />
<br />
dF_PLL = 20;<br />
Kfilt_PLL = [ 8/3 * dF_PLL * T;<br />
32/9 * dF_PLL^2 * T];<br />
<br />
dF_FLL = 3;<br />
Kfilt_FLL = [ 8/3 * dF_FLL * T;<br />
32/9 * dF_FLL^2 * T];<br />
<br />
t = (1:K)*T;<br />
phi_ist = nan(1, K);<br />
w_ist = nan(1, K);<br />
phi_filt = nan(1, K);<br />
w_filt = nan(1, K);<br />
phi_filt_FLL = nan(1, K);<br />
w_filt_FLL = nan(1, K);<br />
<br />
phi_corr = 0; Iold = 0; Qold = 0;<br />
for k = 1:K<br />
Xist = F * Xist + G * ksi(k);<br />
<br />
phi_ist(k) = Xist(1);<br />
w_ist(k) = Xist(2);<br />
<br />
% PLL<br />
Xfilt_extr = F*Xfilt;<br />
phi_extr = Xfilt_extr(1);<br />
dPhi = phi_ist(k) - phi_extr;<br />
<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = -Q; <br />
Sd = A_IQ; <br />
<br />
Xfilt = Xfilt_extr + Kfilt_PLL * Ud/Sd;<br />
<br />
phi_filt(k) = Xfilt(1);<br />
w_filt(k) = Xfilt(2);<br />
<br />
% FLL<br />
Xfilt_extr_FLL = F*Xfilt_FLL;<br />
w_extr = Xfilt_extr_FLL(1);<br />
dPhi = phi_ist(k) - phi_corr;<br />
phi_corr = phi_corr + w_extr * T;<br />
dW = w_ist(k) - w_extr;<br />
<br />
I = - A_IQ * cos(dPhi) + nI(k);<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = Q*Iold - I*Qold; <br />
Sd = A_IQ; <br />
Iold = I; Qold = Q;<br />
<br />
Xfilt_FLL = Xfilt_extr_FLL + Kfilt_FLL * Ud/Sd;<br />
<br />
phi_filt_FLL(k) = phi_corr;<br />
w_filt_FLL(k) = Xfilt_FLL(1);<br />
<br />
<br />
end<br />
<br />
figure(1)<br />
subplot(2,1,1)<br />
plot(t, phi_ist/2/pi, t, phi_filt/2/pi, t, phi_filt_FLL/2/pi)<br />
ylabel('\phi, cycles')<br />
subplot(2,1,2)<br />
plot(t, rad2deg(w_ist), t, rad2deg(w_filt), t, rad2deg(w_filt_FLL))<br />
ylabel('\omega, Hz')<br />
xlabel('t, sec')<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
== Вопросы к экзамену ==<br />
<br />
Экзамен проводится в письменной форме: тест, задача и один экзаменационный вопрос ([[media:Вопросы_экз_АП_СРНС.doc|экзаменационные вопросы]]). При подготовке рекомендуется использовать книги по тематике, [[media:2013_ЭУМК_С3.33_Лекции_АП_СРНС.pdf|конспекты лекций]] и презентации.<br />
<br />
== Курсовая работа ==<br />
<br />
Название: '''Расчет траектории движения спутника GPS по данным с демодулятора его сигнала'''<br />
<br />
Курсовая работа по АП СРНС выполняется во втором семестре. В рамках КР студенты знакомятся с рядом инструментов и техник, используемых при разработке навигационных приемников.<br />
<br />
Цель проекта - разработка модулей разбора навигационного сообщения GPS и расчета положения спутника, предназначенных для использования в составе навигационного приемника.<br />
<br />
Требования к разрабатываемому программному модулю:<br />
* требования назначения;<br />
* отсутствие утечек памяти;<br />
* малое время выполнения;<br />
* низкий расход памяти;<br />
* корректное выполнение при аномальных входных данных. <br />
<br />
Для достижения цели выполняется ряд задач, соответствующих этапам проекта и контрольным мероприятиям:<br />
* разработка модуля разбора символов навигационного сообщения<br />
* расчет положения КА в Matlab/Python и его проверка сторонними сервисами;<br />
* реализация модуля расчета положения КА на С/С++ и его тестирование.<br />
<br />
На каждом из этапов действуют следующие правила:<br />
* Взаимодействие осуществляется через github (пул реквесты, комментарии)<br />
* '''Этап сдан тогда, когда принят пул реквест'''<br />
<br />
<br />
<br />
{| class="wikitable"<br />
|+ Варианты заданий:<br />
|-<br />
! Студент !! Номер спутника (варианта) !! Логи !! Примечание<br />
|-<br />
! Антропов Евгений Александрович<br />
| 1 || [[media:2022_KR_01.tar.gz|tar.gz]] || <br />
|-<br />
! Бахолдин Никита Владимирович<br />
| 3 || [[media:2022_KR_03.tar.gz|tar.gz]] || <br />
|-<br />
! Берестнев Владимир Сергеевич<br />
| 8 || [[media:2022_KR_08.tar.gz|tar.gz]] || <br />
|-<br />
! Дубинин Леонид Андреевич<br />
| 10 || [[media:2022_KR_10.tar.gz|tar.gz]] || <br />
|-<br />
! Еловский Никита Станиславович<br />
| 12 || [[media:2022_KR_12.tar.gz|tar.gz]] || <br />
|-<br />
! Иванцова Дарья Николаевна<br />
| 17 || [[media:2022_KR_17.tar.gz|tar.gz]] || <br />
|-<br />
! Капитонов Александр Ильич<br />
| 19 || [[media:2022_KR_19.tar.gz|tar.gz]] || <br />
|-<br />
! Коробков Андрей Юрьевич<br />
| 21 || [[media:2022_KR_21.tar.gz|tar.gz]] || <br />
|-<br />
! Куксин Владислав Александрович<br />
| 22 || [[media:2022_KR_22.tar.gz|tar.gz]] || <br />
|-<br />
! Кусакин Павел Александрович<br />
| 31 || || <br />
|-<br />
! Ливенцов Василий Александрович<br />
| || || <br />
|-<br />
! Михайлов Иван Олегович<br />
| || || <br />
|-<br />
! Муратов Николай Сергеевич<br />
| || || <br />
|-<br />
! Попов Максим Геннадьевич<br />
| || || <br />
|-<br />
! Солнцева Милана Константиновна<br />
| || || <br />
|-<br />
! Танкина Анна Михайловна<br />
| || || <br />
|-<br />
! Цымбал Григорий Романович <br />
| || || <br />
|-<br />
! Чепелев Игорь Игоревич<br />
| || || <br />
|}<br />
<br />
<br />
=== Этап 1. Обработка логов навигационного приемника ===<br />
<br />
'''Дедлайн''': 04.03.21 (устранение замечаний и итоговый мёрдж до 13.03.21)<br />
<br />
Конечная цель всего курсового проекта - получить библиотеку функций на Си++, позволяющую рассчитывать положение спутника GPS по данным с демодулятора его сигнала L1 C/A. <br />
На первом этапе реализуем модуль разбора навигационного сообщения до структуры эфемерид, сравним результаты со сторонней программой.<br />
<br />
В неизвестной локации установлен навигационный приемник, принимающий сигналы GPS L1C/A и логирующий результаты этого приема в формате [https://navis.ru/downloads/SOFT/NV08C_BINR_Protocol_Specification_V13_ENG_10082012.pdf NVS BINR]. <br />
Собранный на пятиминутном интервале файл приложен в архиве под именем BINR.bin, см. таблицу вариантов. <br />
Файл содержит наблюдения псевдодальностей и прочих радионавигационных параметров, демодулированные и разобранные данные навигационного сообщения. <br />
<br />
Для удобства студентов данные демодулятора продублированы в текстовый файл in.txt. Каждая строка файла содержит данные одного сабфрейма одного навигационного сигнала в формате:<br />
<source lang="bash"><br />
1 0 013 0R GpsL1CA # 13 212130404 29 125 53 100010111010101010101010001010010111000011001010010111111000101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100<br />
</source><br />
где ''# 13'' - номер спутника, ''212130404'' - счетчик сабфреймов в сигнале, ''53'' - ID сабфрейма в навигационном сообщении, где в первых трех битах содержится номер сабфрейма в фрейме (5 в данном примере), а далее - номер фрейма в сообщении (6 в данном примере), ''1000101110...'' символы с демодулятора в порядке возрастания времени слева направо. <br />
<br />
Требуется:<br />
# Разработать программу, обрабатывающую файл in.txt и выводящую в файл out.txt таблицу эфемерид для спутника согласно варианту [[media:Screenshot_20220215_221319.png|в заданном формате]].<br />
# Обработать файл BINR.bin с помощью программы RTKNAVI из состава RTKLIB. Определить день и место проведения наблюдений, значения эфемерид для спутника согласно номеру варианта (меню открывается в левом нижнем углу экрана по нажатию на квадрат)<br />
# Сравнить полученные таблицы<br />
# Оформить код программы и разместить на Github<br />
# Оформить отчет по этапу и разместить на Github<br />
# Завести Pull Request<br />
<br />
Программа должна компилироваться gcc, все входные данные брать из in.txt, весь вывод осуществлять в out.txt.<br />
<br />
Работа осуществляется в репозитории на github на базе [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021]. Для этого:<br />
# Завести, если до сих пор нет, аккаунт на github<br />
# Если ранее не сделано, сделать форк проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021] (маленькая кнопка сверху справа в вэб-интерфейсе)<br />
# Установить на рабочем компьютере git (для выполнения последующих этапов удобнее будет сделать это в ОС GNU/Linux, вероятно, на виртуальной машине)<br />
# Клонировать свой форк на рабочий компьютер (<code>git clone https://github.com/MySuperAccount/gnssrecbasics2021.git</code>)<br />
# Промежуточные и итоговые результаты по первому этапу хранить в каталоге processing (<code>git pull; git add <files>; git commit -m "Сделал то-то то-то"; git push</code>)<br />
# По результатам первого этапа завести Pull Request в исходный проект '''в ветку, название которой совпадает с вашей фамилией''' (кнопка наверху в вэб-интерфейсе)<br />
# Устранить все замечания, добиться принятия Pull Request'а. <br />
<br />
Этап сдан тогда, когда ваш ПР принят.<br />
<br />
=== Этап 2. Моделирование ===<br />
<br />
'''Дедлайн''': 13.04.22 (исправления замечаний до 20.04.22)<br />
<br />
Эфемериды - параметры некоторой модели движения спутника. <br />
В разных ГНСС эти модели разные, а значит отличается и формат эфемерид, и алгоритмы расчета положения спутника.<br />
<br />
Одна из самых простых и удобных моделей - [http://navipedia.org/index.php/GPS_and_Galileo_Satellite_Coordinates_Computation в системе GPS].<br />
<br />
Требуется реализовать на языке Matlab или Python функцию расчета положения спутника GPS на заданный момент по шкале времени UTC.<br />
В качестве эфемерид использовать данные, полученные на предыдущем этапе. <br />
<br />
Построить трехмерные графики множества положений спутника GPS с системным номером, соответствующим номеру студента по списку. Графики в двух вариантах: в СК ECEF WGS84 и соответствующей ей инерциальной СК. Положения должны соответствовать суточному интервалу на дне формирования наблюдений, определенном на предыдущем этапе. Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал. <br />
<br />
Вывести значения координат спутника в файл out.txt в системе ECEF WGS 84 в виде строк: Секунда_от_начала_дня X Y Z<br />
<br />
Используя оценку местоположения с предыдущего этапа, построить Sky Plot за указанный временной интервал и сравнить результат с [http://www.trimble.com/gnssplanningonline/ Trimble GNSS Planning Online].<br />
<br />
Оформить отчет по результатам этапа:<br />
# Реализация в Matlab или Python (описание модели и её листинг)<br />
# Таблица использованных эфемерид<br />
# Трехмерные графики положений спутника в ECEF и ECI (не забудьте подписать оси, изобразите соответствующую Земле сферу в начале СК)<br />
# Расчётный и полученный в GNSS Planing Online SkyView<br />
<br />
Работы по данному этапу осуществляются в каталоге simulation.<br />
Правила приемки этапа те же, что и на первом этапе.<br />
<br />
=== Этап 3. Реализация === <br />
<br />
'''Дедлайн''': 11.05.21 (исправления до 18.05.21)<br />
<br />
Требуется разработать на языке С/С++ функцию расчета положения спутника GPS на заданное время по шкале UTC, минимизируя время её исполнения и количество затрачиваемой оперативной памяти. <br />
Вызов функции не должен приводить к выбросу исключений или утечкам памяти при любом наборе входных данных.<br />
<br />
Функция расчета положения спутника в Matlab/Python относительно проста, т.к. доступны библиотеки линейной алгебры и решения уравнений. <br />
Но при разработке встраиваемого ПО приходится сохранять лицензионную частоту, минимизировать вычислительную нагрузку и затраты памяти. <br />
Поэтому отобразить модель из Matlab/Python в прошивку приемника дословно, как правило, не получается. В рассматриваемом примере потребуется, как минимум, выполнить свою реализацию решения трансцендентного уравнения. <br />
<br />
Программный модуль должен сопровождаться unit-тестами (например, используя Check):<br />
* Тесты функции решения уравнения Кеплера<br />
* Тест расчетного положения спутника в сравнении с Matlab/Python<br />
<br />
Во время второго теста должно вычисляться и выводиться средняя длительность исполнения функции. <br />
Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал (как на предыдущем этапе). <br />
<br />
Требуется провести проверку на утечки памяти (например, с помощью утилиты valgrind).<br />
<br />
Оформить отчет по результатам курсового проекта. <br />
В качестве первых двух глав использовать отчёты с предыдущих этапов, в третьей главе отразить результаты этого этапа:<br />
# Код реализации<br />
# Вывод тестов, включая анализ времени исполнения<br />
# Вывод проверок на утечку памяти<br />
# Вывод по этапу <br />
# Заключение по проекту<br />
<br />
Программа должна компилироваться gcc и использовать в качестве входных данных in.txt с первого этапа. <br />
Результат должен записываться в out.txt в строки формата, определенного на втором этапе. <br />
При тестировании должны сравниваться файлы out.txt второго и третьего этапов.<br />
<br />
Работы по третьему этапу следует вести в директории libgpssvpos.<br />
<br />
Правила приемки этапа те же.<br />
<br />
== Курсовая прошлых лет ==<br />
<br />
Задания в [[Курсовой проект АП СРНС 2020|2020]], в [[Курсовая работа АП СРНС 2021|2021]].<br />
<br />
[[Категория:АП СРНС (дисциплина)]]</div>
Korogodin
https://www.srns.ru/wiki/%D0%90%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0_%D0%BF%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D1%81%D0%BF%D1%83%D1%82%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2%D1%8B%D1%85_%D1%80%D0%B0%D0%B4%D0%B8%D0%BE%D0%BD%D0%B0%D0%B2%D0%B8%D0%B3%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_(%D0%B4%D0%B8%D1%81%D1%86%D0%B8%D0%BF%D0%BB%D0%B8%D0%BD%D0%B0)
Аппаратура потребителей спутниковых радионавигационных систем (дисциплина)
2022-02-16T06:28:34Z
<p>Korogodin: /* Курсовая работа */</p>
<hr />
<div>Дисциплина "Аппаратура потребителей спутниковых радионавигационных систем" входит в вариативную часть общенаучного цикла занятий [http://beta.mpei.ru/Education/educationalprograms/rt/Pages/default.aspx учебного плана] подготовки специалистов по направлению 11.05.01 "Радиоэлектронные системы и комплексы". <br />
<br />
Преподается осеннем и весеннем семестрах пятого года обучения. В осеннем семестре лекции и лабораторные занятия (итог - экзамен), в весеннем - курсовой проект. <br />
<br />
По дисциплине подготовлен [[ЭУМК АП СРНС|электронный учебно-методический комплекс]].<br />
<br />
== Календарный план ==<br />
<br />
<br />
{| class="wikitable"<br />
|-<br />
! Неделя || Даты || Лекция || Лабораторная || Контрольное мероприятие<br />
<br />
|- align=center<br />
| 2 || 07.09<br />
| Основы СРНС. [[media:Receivers_Segments.pdf|Сегменты СРНС]]. [[media:Receivers_PosMethods.pdf|Методы позиционирования]].<br />
| [https://goo.gl/forms/R7Vos1KsJ1taqqXo2 Ошибки позиционирования в городских условиях] <br />
|<br />
<br />
|- align=center<br />
| 3 || 13.09.21-19.09.21<br />
| Навигационные сигналы. <br />
|<br />
| <br />
<br />
|- align=center<br />
| 4 || 20.09.21-26.09.21<br />
| Антенна, МШУ<br />
| <br />
| КМ-1: Модель сигнала ГНСС<br />
<br />
|- align=center<br />
| 5 || 27.09.21-03.10.21<br />
| Радиочастотный блок <br> ([[media:20111008_АП_СРНС_Лекция_3_презентация.pdf|Аналогово-цифровое преобразование. Синтезатор частот. План частот АП СРНС.]] )<br />
| <br />
| <br />
<br />
|- align=center<br />
| 6 || 04.10.21-10.10.21<br />
| Математическая модель коррелятора <br> ([[media:АП_СРНС_corr.pdf|Статистический эквивалент коррелятора]])<br />
|<br />
| КМ-2: Ошибки позиционирования в городских условиях<br />
<br />
|- align=center<br />
| 7 || 11.10.21-17.10.21<br />
| Аппаратная реализация коррелятора <br> ([[media:20111005_АП_СРНС_Лекция_4_презентация.pdf|Принципы построения и структура коррелятора. Цифровой генератор гармонического сигнала и дальномерного кода.]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 8 || 18.10.21-24.10.21<br />
| Следящие системы <br> ([[media:20111215_АП_СРНС_Лекция_8_презентация.pdf|Система слежения за фазой сигнала. Структурная схема ССФ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_9_презентация.pdf|Система слежения за частотой. Структурная схема ССЧ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_10_презентация.pdf|Система слежения за задержкой. Структурная схема ССЗ, дискриминаторы, следящий фильтр. <br> Система слежения за задержкой с поддержкой от ФАП. Комплексный фильтр.]]) <br />
| [https://goo.gl/XruJBM GNSS Planning] <br />
| КМ-3: Статистический эквивалент коррелятора<br />
<br />
|- align=center<br />
| 9 || 25.10.21-31.10.21<br />
| Оценка SNR, детекторы захвата, детекторы CC<br />
| <br />
| <br />
<br />
|- align=center<br />
| 10 || 01.11.21-07.11.21<br />
| Обнаружение сигнала. <br> ([[media:20111005_АП_СРНС_Лекция_5_презентация.pdf|Обнаружение сигнала. Алгоритмы, статистические характеристики обнаружения.]]) <br />
|<br />
| <br />
<br />
|- align=center<br />
| 11 || 08.11.21-14.11.21<br />
| Поиск сигнала <br> ([[media:20111008_АП_СРНС_Лекция_6_презентация.pdf|Поиск сигнала по частоте и задержке. Алгоритмы поиска, быстрый поиск сигнала.]] <br> [[media:20111017_АП_СРНС_Лекция_7_презентация.pdf|Блок быстрого поиска]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 12 || 15.11.21-21.11.21<br />
| Символьная и оверлейная синхронизация <br> <br />
| [[Исследование_коррелятора_АП_СРНС_ГЛОНАСС_с_помощью_имитационной_модели_(лабораторная_работа)|Исследование коррелятора АП СРНС с помощью имитационной модели]]<br />
| КМ-4: Исследование коррелятора АП СРНС ГЛОНАСС с помощью имитационной модели <br />
<br />
|- align=center<br />
| 13 || 22.11.21-28.11.21<br />
| [[media:20111215_АП_СРНС_Лекция_11_презентация.pdf|Демодуляция навигационных данных]]<br />
| <br />
| <br />
<br />
|- align=center<br />
| 14 || 29.11.21-05.12.21<br />
| Кадровая синхронизация, [[media:20111215_АП_СРНС_Лекция_12_презентация.pdf|декодирование]], парсинг<br />
|<br />
| КМ-5: Прогнозирование спутникового созвездия<br />
<br />
|- align=center<br />
| 15 || 08.12.21-12.12.21<br />
| Формирование измерений, расчет положения спутника<br />
|<br />
| <br />
<br />
|- align=center<br />
| 16 || 13.12.21-19.12.21<br />
| Модель наблюдений псевдодальности. <br> [[media:20111128_АП_СРНС_Лекция_14_презентация.pdf|Вторичная обработка измерений. Одношаговый алгоритм решения навигационной задачи.]] <br> [[media:20111215_АП_СРНС_Лекция_16_презентация.pdf|Контроль целостности]]<br />
| Решение навигационной задачи по псевдодальномерным измерениям<br />
| КМ-6: Решение навигационной задачи по псевдодальномерным измерениям<br />
<br />
|- align=center<br />
| 17 || 20.12.21-26.12.21<br />
| Помехоустойчивость АП СРНС<br />
| <br />
| <br />
<br />
|- align=center<br />
| 18 || 27.12.21-02.01.21<br />
| Зачет<br />
|<br />
|<br />
<br />
|}<br />
<br />
[[media:АПСРНС_2021_Списки.ods|Журнал успеваемости]].<br />
<br />
== Правила аттестации ==<br />
<br />
Обязательным условием для получения допуска к экзамену является выполнение всех контрольных мероприятий: сдача двух контрольных и защита 4 лабораторных работ. <br />
<br />
При написании отчетов следует опираться на правила оформления [https://mpei.ru/Science/ScienceDocuments/Documents/Polojenie_2018/0_GOST_7.32-2017.pdf ГОСТ 7.32] (в части форматирования, оформления рисунков, таблиц, списков и т.д.).<br />
<br />
Приемка осуществляется через репозиторий на github на базе проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021].<br />
<br />
== Демо модели ==<br />
<br />
=== Прогноз выходного сигнала коррелятора ===<br />
<br />
Производится обработка сигнала Gps L1 C/A, сформированного лабораторным имитатором сигналов, синхронизированным с приемником. Сигнал перенесен с помощью РЧБ NT1065 на промежуточную частоту <math>f_{if} = 8.54</math> МГц и преобразован многоразрядным АЦП с частотой сэмплирования <math>F_d = 99.375</math> МГц. Установленная на имитаторе мощность обеспечивает уровень отношения сигнал/шум <math>27 + N</math> дБГц, где <math>N</math> - номер вариант по журналу. <br />
<br />
В приемнике производтся корреляционная обработка сигнала, интервал накопления составляет <math>T = 1</math> мс. <br />
<br />
Сигнал имеет сдвиг частоты несущей <math>f_d = 100 N</math> Гц, при этом опорный сигнал коррелятора имеет аналогичный сдвиг <math>f_{d, rep} = f_d</math>. Задержка огибающей известна точно и используется в опорном сигнале <math>\tau = \tau_{rep}</math>.<br />
<br />
Задание: Построить на плоскости I,Q вид множества точек корреляционных сумм, полученных в ходе большого (сотни) числа экспериментов. <br />
<br />
{{Hider|title = Расчет выходного сигнала коррелятора<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
N = 30;<br />
<br />
Fd = 99.375e6;<br />
Td = 1/Fd;<br />
T = 0.001;<br />
fif = 8.34e6;<br />
<br />
fd = 100 * N;<br />
fd_rep = fd;<br />
<br />
phi = 10 * N;<br />
phi_rep = 20 * N;<br />
<br />
qcno_dB = 27 + N;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdn = 50/3;<br />
A = sqrt(qcno * Td) * 2 * stdn; % qcno = A^2 / (4 stdn^2 Td)<br />
<br />
fprintf('A = %f, stdn = %f\n', A, stdn);<br />
<br />
L = fix(T * Fd);<br />
t = (0:(L-1)) * Td;<br />
<br />
PRN_Length = 1023;<br />
PRN = (-1).^(rand(1, PRN_Length) > 0.5);<br />
<br />
tau = 100500e-6;<br />
tau_rep = tau;<br />
<br />
nchip = mod(fix(PRN_Length*(t - tau )/T), PRN_Length) + 1;<br />
nchip_rep = mod(fix(PRN_Length*(t - tau_rep)/T), PRN_Length) + 1;<br />
<br />
Gc = PRN(nchip );<br />
Gc_rep = PRN(nchip_rep);<br />
<br />
So = A * Gc .* cos(2*pi*fif*t + 2*pi*fd *t + deg2rad(phi) );<br />
S_rep_cos = Gc_rep .* cos(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
S_rep_sin = Gc_rep .* sin(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
<br />
K = 1000; I = nan(1, K); Q = nan(1,K);<br />
for k = 1:K<br />
n = randn(1,L)*stdn;<br />
<br />
Gd = (-1).^(rand(1,1) > 0.5);<br />
S = Gd * So;<br />
<br />
y = S + n;<br />
<br />
I(k) = y * S_rep_cos';<br />
Q(k) = y * S_rep_sin';<br />
end<br />
<br />
maxIQ = 1.1*max(abs(I + 1i*Q));<br />
<br />
figure(1);<br />
plot(t*1e3, [y; S; A*Gc]);<br />
xlabel('t, ms')<br />
ylabel('y, S');<br />
grid on<br />
<br />
figure(2);<br />
plot(I, Q, '*')<br />
hold on<br />
plot([-maxIQ maxIQ], [0 0], 'k');<br />
plot([0 0], [-maxIQ maxIQ], 'k');<br />
quiver(-maxIQ, 0, 2*maxIQ, 0, 1, 'k');<br />
quiver(0, -maxIQ, 0, 2*maxIQ, 1, 'k');<br />
hold off<br />
xlabel('I')<br />
ylabel('Q');<br />
axis equal<br />
grid on<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
<br />
=== ЧАП и ФАП на стат эквивалентах ===<br />
<br />
{{Hider|title = Слежение за фазой и частотой<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
T = 0.010;<br />
<br />
Xist = [10; <br />
1];<br />
<br />
Xfilt = [0;<br />
0];<br />
<br />
Xfilt_FLL = [0;<br />
0];<br />
<br />
F = [1 T;<br />
0 1];<br />
<br />
Tmod = 10;<br />
K = fix(Tmod / T);<br />
<br />
G = [0;<br />
1];<br />
<br />
std_ksi = 1.3 * T;<br />
ksi = std_ksi * randn(1, K);<br />
<br />
qcno_dB = 45;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdnIQ = 7;<br />
nI = stdnIQ * randn(1, K);<br />
nQ = stdnIQ * randn(1, K);<br />
A_IQ = sqrt(2*qcno*T) * stdnIQ; <br />
<br />
dF_PLL = 20;<br />
Kfilt_PLL = [ 8/3 * dF_PLL * T;<br />
32/9 * dF_PLL^2 * T];<br />
<br />
dF_FLL = 3;<br />
Kfilt_FLL = [ 8/3 * dF_FLL * T;<br />
32/9 * dF_FLL^2 * T];<br />
<br />
t = (1:K)*T;<br />
phi_ist = nan(1, K);<br />
w_ist = nan(1, K);<br />
phi_filt = nan(1, K);<br />
w_filt = nan(1, K);<br />
phi_filt_FLL = nan(1, K);<br />
w_filt_FLL = nan(1, K);<br />
<br />
phi_corr = 0; Iold = 0; Qold = 0;<br />
for k = 1:K<br />
Xist = F * Xist + G * ksi(k);<br />
<br />
phi_ist(k) = Xist(1);<br />
w_ist(k) = Xist(2);<br />
<br />
% PLL<br />
Xfilt_extr = F*Xfilt;<br />
phi_extr = Xfilt_extr(1);<br />
dPhi = phi_ist(k) - phi_extr;<br />
<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = -Q; <br />
Sd = A_IQ; <br />
<br />
Xfilt = Xfilt_extr + Kfilt_PLL * Ud/Sd;<br />
<br />
phi_filt(k) = Xfilt(1);<br />
w_filt(k) = Xfilt(2);<br />
<br />
% FLL<br />
Xfilt_extr_FLL = F*Xfilt_FLL;<br />
w_extr = Xfilt_extr_FLL(1);<br />
dPhi = phi_ist(k) - phi_corr;<br />
phi_corr = phi_corr + w_extr * T;<br />
dW = w_ist(k) - w_extr;<br />
<br />
I = - A_IQ * cos(dPhi) + nI(k);<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = Q*Iold - I*Qold; <br />
Sd = A_IQ; <br />
Iold = I; Qold = Q;<br />
<br />
Xfilt_FLL = Xfilt_extr_FLL + Kfilt_FLL * Ud/Sd;<br />
<br />
phi_filt_FLL(k) = phi_corr;<br />
w_filt_FLL(k) = Xfilt_FLL(1);<br />
<br />
<br />
end<br />
<br />
figure(1)<br />
subplot(2,1,1)<br />
plot(t, phi_ist/2/pi, t, phi_filt/2/pi, t, phi_filt_FLL/2/pi)<br />
ylabel('\phi, cycles')<br />
subplot(2,1,2)<br />
plot(t, rad2deg(w_ist), t, rad2deg(w_filt), t, rad2deg(w_filt_FLL))<br />
ylabel('\omega, Hz')<br />
xlabel('t, sec')<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
== Вопросы к экзамену ==<br />
<br />
Экзамен проводится в письменной форме: тест, задача и один экзаменационный вопрос ([[media:Вопросы_экз_АП_СРНС.doc|экзаменационные вопросы]]). При подготовке рекомендуется использовать книги по тематике, [[media:2013_ЭУМК_С3.33_Лекции_АП_СРНС.pdf|конспекты лекций]] и презентации.<br />
<br />
== Курсовая работа ==<br />
<br />
Название: '''Расчет траектории движения спутника GPS по данным с демодулятора его сигнала'''<br />
<br />
Курсовая работа по АП СРНС выполняется во втором семестре. В рамках КР студенты знакомятся с рядом инструментов и техник, используемых при разработке навигационных приемников.<br />
<br />
Цель проекта - разработка модулей разбора навигационного сообщения GPS и расчета положения спутника, предназначенных для использования в составе навигационного приемника.<br />
<br />
Требования к разрабатываемому программному модулю:<br />
* требования назначения;<br />
* отсутствие утечек памяти;<br />
* малое время выполнения;<br />
* низкий расход памяти;<br />
* корректное выполнение при аномальных входных данных. <br />
<br />
Для достижения цели выполняется ряд задач, соответствующих этапам проекта и контрольным мероприятиям:<br />
* разработка модуля разбора символов навигационного сообщения<br />
* расчет положения КА в Matlab/Python и его проверка сторонними сервисами;<br />
* реализация модуля расчета положения КА на С/С++ и его тестирование.<br />
<br />
На каждом из этапов действуют следующие правила:<br />
* Взаимодействие осуществляется через github (пул реквесты, комментарии)<br />
* '''Этап сдан тогда, когда принят пул реквест'''<br />
<br />
<br />
<br />
{| class="wikitable"<br />
|+ Варианты заданий:<br />
|-<br />
! Студент !! Номер спутника (варианта) !! Логи !! Примечание<br />
|-<br />
! Антропов Евгений Александрович<br />
| 1 || [[media:2022_KR_01.tar.gz|tar.gz]] || <br />
|-<br />
! Бахолдин Никита Владимирович<br />
| 3 || [[media:2022_KR_03.tar.gz|tar.gz]] || <br />
|-<br />
! Берестнев Владимир Сергеевич<br />
| 8 || [[media:2022_KR_08.tar.gz|tar.gz]] || <br />
|-<br />
! Дубинин Леонид Андреевич<br />
| 10 || [[media:2022_KR_10.tar.gz|tar.gz]] || <br />
|-<br />
! Еловский Никита Станиславович<br />
| 12 || [[media:2022_KR_12.tar.gz|tar.gz]] || <br />
|-<br />
! Иванцова Дарья Николаевна<br />
| 17 || [[media:2022_KR_17.tar.gz|tar.gz]] || <br />
|-<br />
! Капитонов Александр Ильич<br />
| 19 || [[media:2022_KR_19.tar.gz|tar.gz]] || <br />
|-<br />
! Коробков Андрей Юрьевич<br />
| 21 || [[media:2022_KR_21.tar.gz|tar.gz]] || <br />
|-<br />
! Куксин Владислав Александрович<br />
| 22 || [[media:2022_KR_22.tar.gz|tar.gz]] || <br />
|-<br />
! Кусакин Павел Александрович<br />
| 31 || || <br />
|-<br />
! Ливенцов Василий Александрович<br />
| || || <br />
|-<br />
! Михайлов Иван Олегович<br />
| || || <br />
|-<br />
! Муратов Николай Сергеевич<br />
| || || <br />
|-<br />
! Попов Максим Геннадьевич<br />
| || || <br />
|-<br />
! Солнцева Милана Константиновна<br />
| || || <br />
|-<br />
! Танкина Анна Михайловна<br />
| || || <br />
|-<br />
! Цымбал Григорий Романович <br />
| || || <br />
|-<br />
! Чепелев Игорь Игоревич<br />
| || || <br />
|}<br />
<br />
<br />
=== Этап 1. Обработка логов навигационного приемника ===<br />
<br />
'''Дедлайн''': 04.03.21 (устранение замечаний и итоговый мёрдж до 13.03.21)<br />
<br />
Конечная цель всего курсового проекта - получить библиотеку функций на Си++, позволяющую рассчитывать положение спутника GPS по данным с демодулятора его сигнала L1 C/A. <br />
На первом этапе реализуем модуль разбора навигационного сообщения до структуры эфемерид, сравним результаты со сторонней программой.<br />
<br />
В неизвестной локации установлен навигационный приемник, принимающий сигналы GPS L1C/A и логирующий результаты этого приема в формате [https://navis.ru/downloads/SOFT/NV08C_BINR_Protocol_Specification_V13_ENG_10082012.pdf NVS BINR]. <br />
Собранный на пятиминутном интервале файл приложен в архиве под именем BINR.bin, см. таблицу вариантов. <br />
Файл содержит наблюдения псевдодальностей и прочих радионавигационных параметров, демодулированные и разобранные данные навигационного сообщения. <br />
<br />
Для удобства студентов данные демодулятора продублированы в текстовый файл in.txt. Каждая строка файла содержит данные одного сабфрейма одного навигационного сигнала в формате:<br />
<source lang="bash"><br />
1 0 013 0R GpsL1CA # 13 212130404 29 125 53 100010111010101010101010001010010111000011001010010111111000101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100<br />
</source><br />
где ''# 13'' - номер спутника, ''212130404'' порядковый номер сабфрема от старта системы, ''53'' - ID сабфрейма в навигационном сообщении, где в первых трех битах содержится номер сабфрейма в фрейме (5 в данном примере), а далее - номер фрейма в сообщении (6 в данном примере), ''1000101110...'' символы с демодулятора в порядке возрастания времени слева направо. <br />
<br />
Требуется:<br />
# Разработать программу, обрабатывающую файл in.txt и выводящую в файл out.txt таблицу эфемерид для спутника согласно варианту [[media:Screenshot_20220215_221319.png|в заданном формате]].<br />
# Обработать файл BINR.bin с помощью программы RTKNAVI из состава RTKLIB. Определить день и место проведения наблюдений, значения эфемерид для спутника согласно номеру варианта (меню открывается в левом нижнем углу экрана по нажатию на квадрат)<br />
# Сравнить полученные таблицы<br />
# Оформить код программы и разместить на Github<br />
# Оформить отчет по этапу и разместить на Github<br />
# Завести Pull Request<br />
<br />
Программа должна компилироваться gcc, все входные данные брать из in.txt, весь вывод осуществлять в out.txt.<br />
<br />
Работа осуществляется в репозитории на github на базе [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021]. Для этого:<br />
# Завести, если до сих пор нет, аккаунт на github<br />
# Если ранее не сделано, сделать форк проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021] (маленькая кнопка сверху справа в вэб-интерфейсе)<br />
# Установить на рабочем компьютере git (для выполнения последующих этапов удобнее будет сделать это в ОС GNU/Linux, вероятно, на виртуальной машине)<br />
# Клонировать свой форк на рабочий компьютер (<code>git clone https://github.com/MySuperAccount/gnssrecbasics2021.git</code>)<br />
# Промежуточные и итоговые результаты по первому этапу хранить в каталоге processing (<code>git pull; git add <files>; git commit -m "Сделал то-то то-то"; git push</code>)<br />
# По результатам первого этапа завести Pull Request в исходный проект '''в ветку, название которой совпадает с вашей фамилией''' (кнопка наверху в вэб-интерфейсе)<br />
# Устранить все замечания, добиться принятия Pull Request'а. <br />
<br />
Этап сдан тогда, когда ваш ПР принят.<br />
<br />
=== Этап 2. Моделирование ===<br />
<br />
'''Дедлайн''': 13.04.22 (исправления замечаний до 20.04.22)<br />
<br />
Эфемериды - параметры некоторой модели движения спутника. <br />
В разных ГНСС эти модели разные, а значит отличается и формат эфемерид, и алгоритмы расчета положения спутника.<br />
<br />
Одна из самых простых и удобных моделей - [http://navipedia.org/index.php/GPS_and_Galileo_Satellite_Coordinates_Computation в системе GPS].<br />
<br />
Требуется реализовать на языке Matlab или Python функцию расчета положения спутника GPS на заданный момент по шкале времени UTC.<br />
В качестве эфемерид использовать данные, полученные на предыдущем этапе. <br />
<br />
Построить трехмерные графики множества положений спутника GPS с системным номером, соответствующим номеру студента по списку. Графики в двух вариантах: в СК ECEF WGS84 и соответствующей ей инерциальной СК. Положения должны соответствовать суточному интервалу на дне формирования наблюдений, определенном на предыдущем этапе. Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал. <br />
<br />
Вывести значения координат спутника в файл out.txt в системе ECEF WGS 84 в виде строк: Секунда_от_начала_дня X Y Z<br />
<br />
Используя оценку местоположения с предыдущего этапа, построить Sky Plot за указанный временной интервал и сравнить результат с [http://www.trimble.com/gnssplanningonline/ Trimble GNSS Planning Online].<br />
<br />
Оформить отчет по результатам этапа:<br />
# Реализация в Matlab или Python (описание модели и её листинг)<br />
# Таблица использованных эфемерид<br />
# Трехмерные графики положений спутника в ECEF и ECI (не забудьте подписать оси, изобразите соответствующую Земле сферу в начале СК)<br />
# Расчётный и полученный в GNSS Planing Online SkyView<br />
<br />
Работы по данному этапу осуществляются в каталоге simulation.<br />
Правила приемки этапа те же, что и на первом этапе.<br />
<br />
=== Этап 3. Реализация === <br />
<br />
'''Дедлайн''': 11.05.21 (исправления до 18.05.21)<br />
<br />
Требуется разработать на языке С/С++ функцию расчета положения спутника GPS на заданное время по шкале UTC, минимизируя время её исполнения и количество затрачиваемой оперативной памяти. <br />
Вызов функции не должен приводить к выбросу исключений или утечкам памяти при любом наборе входных данных.<br />
<br />
Функция расчета положения спутника в Matlab/Python относительно проста, т.к. доступны библиотеки линейной алгебры и решения уравнений. <br />
Но при разработке встраиваемого ПО приходится сохранять лицензионную частоту, минимизировать вычислительную нагрузку и затраты памяти. <br />
Поэтому отобразить модель из Matlab/Python в прошивку приемника дословно, как правило, не получается. В рассматриваемом примере потребуется, как минимум, выполнить свою реализацию решения трансцендентного уравнения. <br />
<br />
Программный модуль должен сопровождаться unit-тестами (например, используя Check):<br />
* Тесты функции решения уравнения Кеплера<br />
* Тест расчетного положения спутника в сравнении с Matlab/Python<br />
<br />
Во время второго теста должно вычисляться и выводиться средняя длительность исполнения функции. <br />
Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал (как на предыдущем этапе). <br />
<br />
Требуется провести проверку на утечки памяти (например, с помощью утилиты valgrind).<br />
<br />
Оформить отчет по результатам курсового проекта. <br />
В качестве первых двух глав использовать отчёты с предыдущих этапов, в третьей главе отразить результаты этого этапа:<br />
# Код реализации<br />
# Вывод тестов, включая анализ времени исполнения<br />
# Вывод проверок на утечку памяти<br />
# Вывод по этапу <br />
# Заключение по проекту<br />
<br />
Программа должна компилироваться gcc и использовать в качестве входных данных in.txt с первого этапа. <br />
Результат должен записываться в out.txt в строки формата, определенного на втором этапе. <br />
При тестировании должны сравниваться файлы out.txt второго и третьего этапов.<br />
<br />
Работы по третьему этапу следует вести в директории libgpssvpos.<br />
<br />
Правила приемки этапа те же.<br />
<br />
== Курсовая прошлых лет ==<br />
<br />
Задания в [[Курсовой проект АП СРНС 2020|2020]], в [[Курсовая работа АП СРНС 2021|2021]].<br />
<br />
[[Категория:АП СРНС (дисциплина)]]</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_KR_31.tar.gz
Файл:2022 KR 31.tar.gz
2022-02-16T06:26:41Z
<p>Korogodin: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_KR_22.tar.gz
Файл:2022 KR 22.tar.gz
2022-02-16T06:26:41Z
<p>Korogodin: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_KR_21.tar.gz
Файл:2022 KR 21.tar.gz
2022-02-16T06:26:41Z
<p>Korogodin: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_KR_19.tar.gz
Файл:2022 KR 19.tar.gz
2022-02-16T06:26:40Z
<p>Korogodin: Korogodin загружена новая версия «Файл:2022 KR 19.tar.gz»: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_KR_17.tar.gz
Файл:2022 KR 17.tar.gz
2022-02-16T06:26:40Z
<p>Korogodin: Korogodin загружена новая версия «Файл:2022 KR 17.tar.gz»: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_KR_12.tar.gz
Файл:2022 KR 12.tar.gz
2022-02-16T06:26:40Z
<p>Korogodin: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_KR_10.tar.gz
Файл:2022 KR 10.tar.gz
2022-02-16T06:26:40Z
<p>Korogodin: Korogodin загружена новая версия «Файл:2022 KR 10.tar.gz»: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_KR_08.tar.gz
Файл:2022 KR 08.tar.gz
2022-02-16T06:26:40Z
<p>Korogodin: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_KR_03.tar.gz
Файл:2022 KR 03.tar.gz
2022-02-16T06:26:40Z
<p>Korogodin: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:2022_KR_01.tar.gz
Файл:2022 KR 01.tar.gz
2022-02-16T06:26:39Z
<p>Korogodin: Korogodin загружена новая версия «Файл:2022 KR 01.tar.gz»: MsUpload</p>
<hr />
<div>MsUpload</div>
Korogodin
https://www.srns.ru/wiki/%D0%90%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0_%D0%BF%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D1%81%D0%BF%D1%83%D1%82%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2%D1%8B%D1%85_%D1%80%D0%B0%D0%B4%D0%B8%D0%BE%D0%BD%D0%B0%D0%B2%D0%B8%D0%B3%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_(%D0%B4%D0%B8%D1%81%D1%86%D0%B8%D0%BF%D0%BB%D0%B8%D0%BD%D0%B0)
Аппаратура потребителей спутниковых радионавигационных систем (дисциплина)
2022-02-15T19:36:38Z
<p>Korogodin: /* Этап 3. Реализация */</p>
<hr />
<div>Дисциплина "Аппаратура потребителей спутниковых радионавигационных систем" входит в вариативную часть общенаучного цикла занятий [http://beta.mpei.ru/Education/educationalprograms/rt/Pages/default.aspx учебного плана] подготовки специалистов по направлению 11.05.01 "Радиоэлектронные системы и комплексы". <br />
<br />
Преподается осеннем и весеннем семестрах пятого года обучения. В осеннем семестре лекции и лабораторные занятия (итог - экзамен), в весеннем - курсовой проект. <br />
<br />
По дисциплине подготовлен [[ЭУМК АП СРНС|электронный учебно-методический комплекс]].<br />
<br />
== Календарный план ==<br />
<br />
<br />
{| class="wikitable"<br />
|-<br />
! Неделя || Даты || Лекция || Лабораторная || Контрольное мероприятие<br />
<br />
|- align=center<br />
| 2 || 07.09<br />
| Основы СРНС. [[media:Receivers_Segments.pdf|Сегменты СРНС]]. [[media:Receivers_PosMethods.pdf|Методы позиционирования]].<br />
| [https://goo.gl/forms/R7Vos1KsJ1taqqXo2 Ошибки позиционирования в городских условиях] <br />
|<br />
<br />
|- align=center<br />
| 3 || 13.09.21-19.09.21<br />
| Навигационные сигналы. <br />
|<br />
| <br />
<br />
|- align=center<br />
| 4 || 20.09.21-26.09.21<br />
| Антенна, МШУ<br />
| <br />
| КМ-1: Модель сигнала ГНСС<br />
<br />
|- align=center<br />
| 5 || 27.09.21-03.10.21<br />
| Радиочастотный блок <br> ([[media:20111008_АП_СРНС_Лекция_3_презентация.pdf|Аналогово-цифровое преобразование. Синтезатор частот. План частот АП СРНС.]] )<br />
| <br />
| <br />
<br />
|- align=center<br />
| 6 || 04.10.21-10.10.21<br />
| Математическая модель коррелятора <br> ([[media:АП_СРНС_corr.pdf|Статистический эквивалент коррелятора]])<br />
|<br />
| КМ-2: Ошибки позиционирования в городских условиях<br />
<br />
|- align=center<br />
| 7 || 11.10.21-17.10.21<br />
| Аппаратная реализация коррелятора <br> ([[media:20111005_АП_СРНС_Лекция_4_презентация.pdf|Принципы построения и структура коррелятора. Цифровой генератор гармонического сигнала и дальномерного кода.]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 8 || 18.10.21-24.10.21<br />
| Следящие системы <br> ([[media:20111215_АП_СРНС_Лекция_8_презентация.pdf|Система слежения за фазой сигнала. Структурная схема ССФ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_9_презентация.pdf|Система слежения за частотой. Структурная схема ССЧ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_10_презентация.pdf|Система слежения за задержкой. Структурная схема ССЗ, дискриминаторы, следящий фильтр. <br> Система слежения за задержкой с поддержкой от ФАП. Комплексный фильтр.]]) <br />
| [https://goo.gl/XruJBM GNSS Planning] <br />
| КМ-3: Статистический эквивалент коррелятора<br />
<br />
|- align=center<br />
| 9 || 25.10.21-31.10.21<br />
| Оценка SNR, детекторы захвата, детекторы CC<br />
| <br />
| <br />
<br />
|- align=center<br />
| 10 || 01.11.21-07.11.21<br />
| Обнаружение сигнала. <br> ([[media:20111005_АП_СРНС_Лекция_5_презентация.pdf|Обнаружение сигнала. Алгоритмы, статистические характеристики обнаружения.]]) <br />
|<br />
| <br />
<br />
|- align=center<br />
| 11 || 08.11.21-14.11.21<br />
| Поиск сигнала <br> ([[media:20111008_АП_СРНС_Лекция_6_презентация.pdf|Поиск сигнала по частоте и задержке. Алгоритмы поиска, быстрый поиск сигнала.]] <br> [[media:20111017_АП_СРНС_Лекция_7_презентация.pdf|Блок быстрого поиска]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 12 || 15.11.21-21.11.21<br />
| Символьная и оверлейная синхронизация <br> <br />
| [[Исследование_коррелятора_АП_СРНС_ГЛОНАСС_с_помощью_имитационной_модели_(лабораторная_работа)|Исследование коррелятора АП СРНС с помощью имитационной модели]]<br />
| КМ-4: Исследование коррелятора АП СРНС ГЛОНАСС с помощью имитационной модели <br />
<br />
|- align=center<br />
| 13 || 22.11.21-28.11.21<br />
| [[media:20111215_АП_СРНС_Лекция_11_презентация.pdf|Демодуляция навигационных данных]]<br />
| <br />
| <br />
<br />
|- align=center<br />
| 14 || 29.11.21-05.12.21<br />
| Кадровая синхронизация, [[media:20111215_АП_СРНС_Лекция_12_презентация.pdf|декодирование]], парсинг<br />
|<br />
| КМ-5: Прогнозирование спутникового созвездия<br />
<br />
|- align=center<br />
| 15 || 08.12.21-12.12.21<br />
| Формирование измерений, расчет положения спутника<br />
|<br />
| <br />
<br />
|- align=center<br />
| 16 || 13.12.21-19.12.21<br />
| Модель наблюдений псевдодальности. <br> [[media:20111128_АП_СРНС_Лекция_14_презентация.pdf|Вторичная обработка измерений. Одношаговый алгоритм решения навигационной задачи.]] <br> [[media:20111215_АП_СРНС_Лекция_16_презентация.pdf|Контроль целостности]]<br />
| Решение навигационной задачи по псевдодальномерным измерениям<br />
| КМ-6: Решение навигационной задачи по псевдодальномерным измерениям<br />
<br />
|- align=center<br />
| 17 || 20.12.21-26.12.21<br />
| Помехоустойчивость АП СРНС<br />
| <br />
| <br />
<br />
|- align=center<br />
| 18 || 27.12.21-02.01.21<br />
| Зачет<br />
|<br />
|<br />
<br />
|}<br />
<br />
[[media:АПСРНС_2021_Списки.ods|Журнал успеваемости]].<br />
<br />
== Правила аттестации ==<br />
<br />
Обязательным условием для получения допуска к экзамену является выполнение всех контрольных мероприятий: сдача двух контрольных и защита 4 лабораторных работ. <br />
<br />
При написании отчетов следует опираться на правила оформления [https://mpei.ru/Science/ScienceDocuments/Documents/Polojenie_2018/0_GOST_7.32-2017.pdf ГОСТ 7.32] (в части форматирования, оформления рисунков, таблиц, списков и т.д.).<br />
<br />
Приемка осуществляется через репозиторий на github на базе проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021].<br />
<br />
== Демо модели ==<br />
<br />
=== Прогноз выходного сигнала коррелятора ===<br />
<br />
Производится обработка сигнала Gps L1 C/A, сформированного лабораторным имитатором сигналов, синхронизированным с приемником. Сигнал перенесен с помощью РЧБ NT1065 на промежуточную частоту <math>f_{if} = 8.54</math> МГц и преобразован многоразрядным АЦП с частотой сэмплирования <math>F_d = 99.375</math> МГц. Установленная на имитаторе мощность обеспечивает уровень отношения сигнал/шум <math>27 + N</math> дБГц, где <math>N</math> - номер вариант по журналу. <br />
<br />
В приемнике производтся корреляционная обработка сигнала, интервал накопления составляет <math>T = 1</math> мс. <br />
<br />
Сигнал имеет сдвиг частоты несущей <math>f_d = 100 N</math> Гц, при этом опорный сигнал коррелятора имеет аналогичный сдвиг <math>f_{d, rep} = f_d</math>. Задержка огибающей известна точно и используется в опорном сигнале <math>\tau = \tau_{rep}</math>.<br />
<br />
Задание: Построить на плоскости I,Q вид множества точек корреляционных сумм, полученных в ходе большого (сотни) числа экспериментов. <br />
<br />
{{Hider|title = Расчет выходного сигнала коррелятора<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
N = 30;<br />
<br />
Fd = 99.375e6;<br />
Td = 1/Fd;<br />
T = 0.001;<br />
fif = 8.34e6;<br />
<br />
fd = 100 * N;<br />
fd_rep = fd;<br />
<br />
phi = 10 * N;<br />
phi_rep = 20 * N;<br />
<br />
qcno_dB = 27 + N;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdn = 50/3;<br />
A = sqrt(qcno * Td) * 2 * stdn; % qcno = A^2 / (4 stdn^2 Td)<br />
<br />
fprintf('A = %f, stdn = %f\n', A, stdn);<br />
<br />
L = fix(T * Fd);<br />
t = (0:(L-1)) * Td;<br />
<br />
PRN_Length = 1023;<br />
PRN = (-1).^(rand(1, PRN_Length) > 0.5);<br />
<br />
tau = 100500e-6;<br />
tau_rep = tau;<br />
<br />
nchip = mod(fix(PRN_Length*(t - tau )/T), PRN_Length) + 1;<br />
nchip_rep = mod(fix(PRN_Length*(t - tau_rep)/T), PRN_Length) + 1;<br />
<br />
Gc = PRN(nchip );<br />
Gc_rep = PRN(nchip_rep);<br />
<br />
So = A * Gc .* cos(2*pi*fif*t + 2*pi*fd *t + deg2rad(phi) );<br />
S_rep_cos = Gc_rep .* cos(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
S_rep_sin = Gc_rep .* sin(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
<br />
K = 1000; I = nan(1, K); Q = nan(1,K);<br />
for k = 1:K<br />
n = randn(1,L)*stdn;<br />
<br />
Gd = (-1).^(rand(1,1) > 0.5);<br />
S = Gd * So;<br />
<br />
y = S + n;<br />
<br />
I(k) = y * S_rep_cos';<br />
Q(k) = y * S_rep_sin';<br />
end<br />
<br />
maxIQ = 1.1*max(abs(I + 1i*Q));<br />
<br />
figure(1);<br />
plot(t*1e3, [y; S; A*Gc]);<br />
xlabel('t, ms')<br />
ylabel('y, S');<br />
grid on<br />
<br />
figure(2);<br />
plot(I, Q, '*')<br />
hold on<br />
plot([-maxIQ maxIQ], [0 0], 'k');<br />
plot([0 0], [-maxIQ maxIQ], 'k');<br />
quiver(-maxIQ, 0, 2*maxIQ, 0, 1, 'k');<br />
quiver(0, -maxIQ, 0, 2*maxIQ, 1, 'k');<br />
hold off<br />
xlabel('I')<br />
ylabel('Q');<br />
axis equal<br />
grid on<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
<br />
=== ЧАП и ФАП на стат эквивалентах ===<br />
<br />
{{Hider|title = Слежение за фазой и частотой<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
T = 0.010;<br />
<br />
Xist = [10; <br />
1];<br />
<br />
Xfilt = [0;<br />
0];<br />
<br />
Xfilt_FLL = [0;<br />
0];<br />
<br />
F = [1 T;<br />
0 1];<br />
<br />
Tmod = 10;<br />
K = fix(Tmod / T);<br />
<br />
G = [0;<br />
1];<br />
<br />
std_ksi = 1.3 * T;<br />
ksi = std_ksi * randn(1, K);<br />
<br />
qcno_dB = 45;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdnIQ = 7;<br />
nI = stdnIQ * randn(1, K);<br />
nQ = stdnIQ * randn(1, K);<br />
A_IQ = sqrt(2*qcno*T) * stdnIQ; <br />
<br />
dF_PLL = 20;<br />
Kfilt_PLL = [ 8/3 * dF_PLL * T;<br />
32/9 * dF_PLL^2 * T];<br />
<br />
dF_FLL = 3;<br />
Kfilt_FLL = [ 8/3 * dF_FLL * T;<br />
32/9 * dF_FLL^2 * T];<br />
<br />
t = (1:K)*T;<br />
phi_ist = nan(1, K);<br />
w_ist = nan(1, K);<br />
phi_filt = nan(1, K);<br />
w_filt = nan(1, K);<br />
phi_filt_FLL = nan(1, K);<br />
w_filt_FLL = nan(1, K);<br />
<br />
phi_corr = 0; Iold = 0; Qold = 0;<br />
for k = 1:K<br />
Xist = F * Xist + G * ksi(k);<br />
<br />
phi_ist(k) = Xist(1);<br />
w_ist(k) = Xist(2);<br />
<br />
% PLL<br />
Xfilt_extr = F*Xfilt;<br />
phi_extr = Xfilt_extr(1);<br />
dPhi = phi_ist(k) - phi_extr;<br />
<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = -Q; <br />
Sd = A_IQ; <br />
<br />
Xfilt = Xfilt_extr + Kfilt_PLL * Ud/Sd;<br />
<br />
phi_filt(k) = Xfilt(1);<br />
w_filt(k) = Xfilt(2);<br />
<br />
% FLL<br />
Xfilt_extr_FLL = F*Xfilt_FLL;<br />
w_extr = Xfilt_extr_FLL(1);<br />
dPhi = phi_ist(k) - phi_corr;<br />
phi_corr = phi_corr + w_extr * T;<br />
dW = w_ist(k) - w_extr;<br />
<br />
I = - A_IQ * cos(dPhi) + nI(k);<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = Q*Iold - I*Qold; <br />
Sd = A_IQ; <br />
Iold = I; Qold = Q;<br />
<br />
Xfilt_FLL = Xfilt_extr_FLL + Kfilt_FLL * Ud/Sd;<br />
<br />
phi_filt_FLL(k) = phi_corr;<br />
w_filt_FLL(k) = Xfilt_FLL(1);<br />
<br />
<br />
end<br />
<br />
figure(1)<br />
subplot(2,1,1)<br />
plot(t, phi_ist/2/pi, t, phi_filt/2/pi, t, phi_filt_FLL/2/pi)<br />
ylabel('\phi, cycles')<br />
subplot(2,1,2)<br />
plot(t, rad2deg(w_ist), t, rad2deg(w_filt), t, rad2deg(w_filt_FLL))<br />
ylabel('\omega, Hz')<br />
xlabel('t, sec')<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
== Вопросы к экзамену ==<br />
<br />
Экзамен проводится в письменной форме: тест, задача и один экзаменационный вопрос ([[media:Вопросы_экз_АП_СРНС.doc|экзаменационные вопросы]]). При подготовке рекомендуется использовать книги по тематике, [[media:2013_ЭУМК_С3.33_Лекции_АП_СРНС.pdf|конспекты лекций]] и презентации.<br />
<br />
== Курсовая работа ==<br />
<br />
Название: '''Расчет траектории движения спутника GPS по данным с демодулятора его сигнала'''<br />
<br />
Курсовая работа по АП СРНС выполняется во втором семестре. В рамках КР студенты знакомятся с рядом инструментов и техник, используемых при разработке навигационных приемников.<br />
<br />
Цель проекта - разработка модулей разбора навигационного сообщения GPS и расчета положения спутника, предназначенных для использования в составе навигационного приемника.<br />
<br />
Требования к разрабатываемому программному модулю:<br />
* требования назначения;<br />
* отсутствие утечек памяти;<br />
* малое время выполнения;<br />
* низкий расход памяти;<br />
* корректное выполнение при аномальных входных данных. <br />
<br />
Для достижения цели выполняется ряд задач, соответствующих этапам проекта и контрольным мероприятиям:<br />
* разработка модуля разбора символов навигационного сообщения<br />
* расчет положения КА в Matlab/Python и его проверка сторонними сервисами;<br />
* реализация модуля расчета положения КА на С/С++ и его тестирование.<br />
<br />
На каждом из этапов действуют следующие правила:<br />
* Взаимодействие осуществляется через github (пул реквесты, комментарии)<br />
* '''Этап сдан тогда, когда принят пул реквест'''<br />
<br />
<br />
<br />
{| class="wikitable"<br />
|+ Варианты заданий:<br />
|-<br />
! Студент !! Номер спутника (варианта) !! Логи !! Примечание<br />
|-<br />
! Антропов Евгений Александрович<br />
| 1 || [[media:2022_KR_01.tar.gz|tar.gz]] || <br />
|-<br />
! Бахолдин Никита Владимирович<br />
| 10 || [[media:2022_KR_10.tar.gz|tar.gz]] || <br />
|-<br />
! Берестнев Владимир Сергеевич<br />
| 13 || [[media:2022_KR_13.tar.gz|tar.gz]] || <br />
|-<br />
! Дубинин Леонид Андреевич<br />
| 15 || [[media:2022_KR_15.tar.gz|tar.gz]] || <br />
|-<br />
! Еловский Никита Станиславович<br />
| 17 || [[media:2022_KR_17.tar.gz|tar.gz]] || <br />
|-<br />
! Иванцова Дарья Николаевна<br />
| 19 || [[media:2022_KR_19.tar.gz|tar.gz]] || <br />
|-<br />
! Капитонов Александр Ильич<br />
| 24 || [[media:2022_KR_24.tar.gz|tar.gz]] || <br />
|-<br />
! Коробков Андрей Юрьевич<br />
| 28 || [[media:2022_KR_28.tar.gz|tar.gz]] || <br />
|-<br />
! Куксин Владислав Александрович<br />
| 30 || [[media:2022_KR_30.tar.gz|tar.gz]] || <br />
|-<br />
! Кусакин Павел Александрович<br />
| || || <br />
|-<br />
! Ливенцов Василий Александрович<br />
| || || <br />
|-<br />
! Михайлов Иван Олегович<br />
| || || <br />
|-<br />
! Муратов Николай Сергеевич<br />
| || || <br />
|-<br />
! Попов Максим Геннадьевич<br />
| || || <br />
|-<br />
! Солнцева Милана Константиновна<br />
| || || <br />
|-<br />
! Танкина Анна Михайловна<br />
| || || <br />
|-<br />
! Цымбал Григорий Романович <br />
| || || <br />
|-<br />
! Чепелев Игорь Игоревич<br />
| || || <br />
|}<br />
<br />
<br />
=== Этап 1. Обработка логов навигационного приемника ===<br />
<br />
'''Дедлайн''': 04.03.21 (устранение замечаний и итоговый мёрдж до 13.03.21)<br />
<br />
Конечная цель всего курсового проекта - получить библиотеку функций на Си++, позволяющую рассчитывать положение спутника GPS по данным с демодулятора его сигнала L1 C/A. <br />
На первом этапе реализуем модуль разбора навигационного сообщения до структуры эфемерид, сравним результаты со сторонней программой.<br />
<br />
В неизвестной локации установлен навигационный приемник, принимающий сигналы GPS L1C/A и логирующий результаты этого приема в формате [https://navis.ru/downloads/SOFT/NV08C_BINR_Protocol_Specification_V13_ENG_10082012.pdf NVS BINR]. <br />
Собранный на пятиминутном интервале файл приложен в архиве под именем BINR.bin, см. таблицу вариантов. <br />
Файл содержит наблюдения псевдодальностей и прочих радионавигационных параметров, демодулированные и разобранные данные навигационного сообщения. <br />
<br />
Для удобства студентов данные демодулятора продублированы в текстовый файл in.txt. Каждая строка файла содержит данные одного сабфрейма одного навигационного сигнала в формате:<br />
<source lang="bash"><br />
1 0 013 0R GpsL1CA # 13 212130404 29 125 53 100010111010101010101010001010010111000011001010010111111000101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100<br />
</source><br />
где ''# 13'' - номер спутника, ''212130404'' порядковый номер сабфрема от старта системы, ''53'' - ID сабфрейма в навигационном сообщении, где в первых трех битах содержится номер сабфрейма в фрейме (5 в данном примере), а далее - номер фрейма в сообщении (6 в данном примере), ''1000101110...'' символы с демодулятора в порядке возрастания времени слева направо. <br />
<br />
Требуется:<br />
# Разработать программу, обрабатывающую файл in.txt и выводящую в файл out.txt таблицу эфемерид для спутника согласно варианту [[media:Screenshot_20220215_221319.png|в заданном формате]].<br />
# Обработать файл BINR.bin с помощью программы RTKNAVI из состава RTKLIB. Определить день и место проведения наблюдений, значения эфемерид для спутника согласно номеру варианта (меню открывается в левом нижнем углу экрана по нажатию на квадрат)<br />
# Сравнить полученные таблицы<br />
# Оформить код программы и разместить на Github<br />
# Оформить отчет по этапу и разместить на Github<br />
# Завести Pull Request<br />
<br />
Программа должна компилироваться gcc, все входные данные брать из in.txt, весь вывод осуществлять в out.txt.<br />
<br />
Работа осуществляется в репозитории на github на базе [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021]. Для этого:<br />
# Завести, если до сих пор нет, аккаунт на github<br />
# Если ранее не сделано, сделать форк проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021] (маленькая кнопка сверху справа в вэб-интерфейсе)<br />
# Установить на рабочем компьютере git (для выполнения последующих этапов удобнее будет сделать это в ОС GNU/Linux, вероятно, на виртуальной машине)<br />
# Клонировать свой форк на рабочий компьютер (<code>git clone https://github.com/MySuperAccount/gnssrecbasics2021.git</code>)<br />
# Промежуточные и итоговые результаты по первому этапу хранить в каталоге processing (<code>git pull; git add <files>; git commit -m "Сделал то-то то-то"; git push</code>)<br />
# По результатам первого этапа завести Pull Request в исходный проект '''в ветку, название которой совпадает с вашей фамилией''' (кнопка наверху в вэб-интерфейсе)<br />
# Устранить все замечания, добиться принятия Pull Request'а. <br />
<br />
Этап сдан тогда, когда ваш ПР принят.<br />
<br />
=== Этап 2. Моделирование ===<br />
<br />
'''Дедлайн''': 13.04.22 (исправления замечаний до 20.04.22)<br />
<br />
Эфемериды - параметры некоторой модели движения спутника. <br />
В разных ГНСС эти модели разные, а значит отличается и формат эфемерид, и алгоритмы расчета положения спутника.<br />
<br />
Одна из самых простых и удобных моделей - [http://navipedia.org/index.php/GPS_and_Galileo_Satellite_Coordinates_Computation в системе GPS].<br />
<br />
Требуется реализовать на языке Matlab или Python функцию расчета положения спутника GPS на заданный момент по шкале времени UTC.<br />
В качестве эфемерид использовать данные, полученные на предыдущем этапе. <br />
<br />
Построить трехмерные графики множества положений спутника GPS с системным номером, соответствующим номеру студента по списку. Графики в двух вариантах: в СК ECEF WGS84 и соответствующей ей инерциальной СК. Положения должны соответствовать суточному интервалу на дне формирования наблюдений, определенном на предыдущем этапе. Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал. <br />
<br />
Вывести значения координат спутника в файл out.txt в системе ECEF WGS 84 в виде строк: Секунда_от_начала_дня X Y Z<br />
<br />
Используя оценку местоположения с предыдущего этапа, построить Sky Plot за указанный временной интервал и сравнить результат с [http://www.trimble.com/gnssplanningonline/ Trimble GNSS Planning Online].<br />
<br />
Оформить отчет по результатам этапа:<br />
# Реализация в Matlab или Python (описание модели и её листинг)<br />
# Таблица использованных эфемерид<br />
# Трехмерные графики положений спутника в ECEF и ECI (не забудьте подписать оси, изобразите соответствующую Земле сферу в начале СК)<br />
# Расчётный и полученный в GNSS Planing Online SkyView<br />
<br />
Работы по данному этапу осуществляются в каталоге simulation.<br />
Правила приемки этапа те же, что и на первом этапе.<br />
<br />
=== Этап 3. Реализация === <br />
<br />
'''Дедлайн''': 11.05.21 (исправления до 18.05.21)<br />
<br />
Требуется разработать на языке С/С++ функцию расчета положения спутника GPS на заданное время по шкале UTC, минимизируя время её исполнения и количество затрачиваемой оперативной памяти. <br />
Вызов функции не должен приводить к выбросу исключений или утечкам памяти при любом наборе входных данных.<br />
<br />
Функция расчета положения спутника в Matlab/Python относительно проста, т.к. доступны библиотеки линейной алгебры и решения уравнений. <br />
Но при разработке встраиваемого ПО приходится сохранять лицензионную частоту, минимизировать вычислительную нагрузку и затраты памяти. <br />
Поэтому отобразить модель из Matlab/Python в прошивку приемника дословно, как правило, не получается. В рассматриваемом примере потребуется, как минимум, выполнить свою реализацию решения трансцендентного уравнения. <br />
<br />
Программный модуль должен сопровождаться unit-тестами (например, используя Check):<br />
* Тесты функции решения уравнения Кеплера<br />
* Тест расчетного положения спутника в сравнении с Matlab/Python<br />
<br />
Во время второго теста должно вычисляться и выводиться средняя длительность исполнения функции. <br />
Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал (как на предыдущем этапе). <br />
<br />
Требуется провести проверку на утечки памяти (например, с помощью утилиты valgrind).<br />
<br />
Оформить отчет по результатам курсового проекта. <br />
В качестве первых двух глав использовать отчёты с предыдущих этапов, в третьей главе отразить результаты этого этапа:<br />
# Код реализации<br />
# Вывод тестов, включая анализ времени исполнения<br />
# Вывод проверок на утечку памяти<br />
# Вывод по этапу <br />
# Заключение по проекту<br />
<br />
Программа должна компилироваться gcc и использовать в качестве входных данных in.txt с первого этапа. <br />
Результат должен записываться в out.txt в строки формата, определенного на втором этапе. <br />
При тестировании должны сравниваться файлы out.txt второго и третьего этапов.<br />
<br />
Работы по третьему этапу следует вести в директории libgpssvpos.<br />
<br />
Правила приемки этапа те же.<br />
<br />
== Курсовая прошлых лет ==<br />
<br />
Задания в [[Курсовой проект АП СРНС 2020|2020]], в [[Курсовая работа АП СРНС 2021|2021]].<br />
<br />
[[Категория:АП СРНС (дисциплина)]]</div>
Korogodin
https://www.srns.ru/wiki/%D0%90%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0_%D0%BF%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D1%81%D0%BF%D1%83%D1%82%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2%D1%8B%D1%85_%D1%80%D0%B0%D0%B4%D0%B8%D0%BE%D0%BD%D0%B0%D0%B2%D0%B8%D0%B3%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_(%D0%B4%D0%B8%D1%81%D1%86%D0%B8%D0%BF%D0%BB%D0%B8%D0%BD%D0%B0)
Аппаратура потребителей спутниковых радионавигационных систем (дисциплина)
2022-02-15T19:34:23Z
<p>Korogodin: /* Этап 2. Моделирование */</p>
<hr />
<div>Дисциплина "Аппаратура потребителей спутниковых радионавигационных систем" входит в вариативную часть общенаучного цикла занятий [http://beta.mpei.ru/Education/educationalprograms/rt/Pages/default.aspx учебного плана] подготовки специалистов по направлению 11.05.01 "Радиоэлектронные системы и комплексы". <br />
<br />
Преподается осеннем и весеннем семестрах пятого года обучения. В осеннем семестре лекции и лабораторные занятия (итог - экзамен), в весеннем - курсовой проект. <br />
<br />
По дисциплине подготовлен [[ЭУМК АП СРНС|электронный учебно-методический комплекс]].<br />
<br />
== Календарный план ==<br />
<br />
<br />
{| class="wikitable"<br />
|-<br />
! Неделя || Даты || Лекция || Лабораторная || Контрольное мероприятие<br />
<br />
|- align=center<br />
| 2 || 07.09<br />
| Основы СРНС. [[media:Receivers_Segments.pdf|Сегменты СРНС]]. [[media:Receivers_PosMethods.pdf|Методы позиционирования]].<br />
| [https://goo.gl/forms/R7Vos1KsJ1taqqXo2 Ошибки позиционирования в городских условиях] <br />
|<br />
<br />
|- align=center<br />
| 3 || 13.09.21-19.09.21<br />
| Навигационные сигналы. <br />
|<br />
| <br />
<br />
|- align=center<br />
| 4 || 20.09.21-26.09.21<br />
| Антенна, МШУ<br />
| <br />
| КМ-1: Модель сигнала ГНСС<br />
<br />
|- align=center<br />
| 5 || 27.09.21-03.10.21<br />
| Радиочастотный блок <br> ([[media:20111008_АП_СРНС_Лекция_3_презентация.pdf|Аналогово-цифровое преобразование. Синтезатор частот. План частот АП СРНС.]] )<br />
| <br />
| <br />
<br />
|- align=center<br />
| 6 || 04.10.21-10.10.21<br />
| Математическая модель коррелятора <br> ([[media:АП_СРНС_corr.pdf|Статистический эквивалент коррелятора]])<br />
|<br />
| КМ-2: Ошибки позиционирования в городских условиях<br />
<br />
|- align=center<br />
| 7 || 11.10.21-17.10.21<br />
| Аппаратная реализация коррелятора <br> ([[media:20111005_АП_СРНС_Лекция_4_презентация.pdf|Принципы построения и структура коррелятора. Цифровой генератор гармонического сигнала и дальномерного кода.]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 8 || 18.10.21-24.10.21<br />
| Следящие системы <br> ([[media:20111215_АП_СРНС_Лекция_8_презентация.pdf|Система слежения за фазой сигнала. Структурная схема ССФ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_9_презентация.pdf|Система слежения за частотой. Структурная схема ССЧ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_10_презентация.pdf|Система слежения за задержкой. Структурная схема ССЗ, дискриминаторы, следящий фильтр. <br> Система слежения за задержкой с поддержкой от ФАП. Комплексный фильтр.]]) <br />
| [https://goo.gl/XruJBM GNSS Planning] <br />
| КМ-3: Статистический эквивалент коррелятора<br />
<br />
|- align=center<br />
| 9 || 25.10.21-31.10.21<br />
| Оценка SNR, детекторы захвата, детекторы CC<br />
| <br />
| <br />
<br />
|- align=center<br />
| 10 || 01.11.21-07.11.21<br />
| Обнаружение сигнала. <br> ([[media:20111005_АП_СРНС_Лекция_5_презентация.pdf|Обнаружение сигнала. Алгоритмы, статистические характеристики обнаружения.]]) <br />
|<br />
| <br />
<br />
|- align=center<br />
| 11 || 08.11.21-14.11.21<br />
| Поиск сигнала <br> ([[media:20111008_АП_СРНС_Лекция_6_презентация.pdf|Поиск сигнала по частоте и задержке. Алгоритмы поиска, быстрый поиск сигнала.]] <br> [[media:20111017_АП_СРНС_Лекция_7_презентация.pdf|Блок быстрого поиска]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 12 || 15.11.21-21.11.21<br />
| Символьная и оверлейная синхронизация <br> <br />
| [[Исследование_коррелятора_АП_СРНС_ГЛОНАСС_с_помощью_имитационной_модели_(лабораторная_работа)|Исследование коррелятора АП СРНС с помощью имитационной модели]]<br />
| КМ-4: Исследование коррелятора АП СРНС ГЛОНАСС с помощью имитационной модели <br />
<br />
|- align=center<br />
| 13 || 22.11.21-28.11.21<br />
| [[media:20111215_АП_СРНС_Лекция_11_презентация.pdf|Демодуляция навигационных данных]]<br />
| <br />
| <br />
<br />
|- align=center<br />
| 14 || 29.11.21-05.12.21<br />
| Кадровая синхронизация, [[media:20111215_АП_СРНС_Лекция_12_презентация.pdf|декодирование]], парсинг<br />
|<br />
| КМ-5: Прогнозирование спутникового созвездия<br />
<br />
|- align=center<br />
| 15 || 08.12.21-12.12.21<br />
| Формирование измерений, расчет положения спутника<br />
|<br />
| <br />
<br />
|- align=center<br />
| 16 || 13.12.21-19.12.21<br />
| Модель наблюдений псевдодальности. <br> [[media:20111128_АП_СРНС_Лекция_14_презентация.pdf|Вторичная обработка измерений. Одношаговый алгоритм решения навигационной задачи.]] <br> [[media:20111215_АП_СРНС_Лекция_16_презентация.pdf|Контроль целостности]]<br />
| Решение навигационной задачи по псевдодальномерным измерениям<br />
| КМ-6: Решение навигационной задачи по псевдодальномерным измерениям<br />
<br />
|- align=center<br />
| 17 || 20.12.21-26.12.21<br />
| Помехоустойчивость АП СРНС<br />
| <br />
| <br />
<br />
|- align=center<br />
| 18 || 27.12.21-02.01.21<br />
| Зачет<br />
|<br />
|<br />
<br />
|}<br />
<br />
[[media:АПСРНС_2021_Списки.ods|Журнал успеваемости]].<br />
<br />
== Правила аттестации ==<br />
<br />
Обязательным условием для получения допуска к экзамену является выполнение всех контрольных мероприятий: сдача двух контрольных и защита 4 лабораторных работ. <br />
<br />
При написании отчетов следует опираться на правила оформления [https://mpei.ru/Science/ScienceDocuments/Documents/Polojenie_2018/0_GOST_7.32-2017.pdf ГОСТ 7.32] (в части форматирования, оформления рисунков, таблиц, списков и т.д.).<br />
<br />
Приемка осуществляется через репозиторий на github на базе проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021].<br />
<br />
== Демо модели ==<br />
<br />
=== Прогноз выходного сигнала коррелятора ===<br />
<br />
Производится обработка сигнала Gps L1 C/A, сформированного лабораторным имитатором сигналов, синхронизированным с приемником. Сигнал перенесен с помощью РЧБ NT1065 на промежуточную частоту <math>f_{if} = 8.54</math> МГц и преобразован многоразрядным АЦП с частотой сэмплирования <math>F_d = 99.375</math> МГц. Установленная на имитаторе мощность обеспечивает уровень отношения сигнал/шум <math>27 + N</math> дБГц, где <math>N</math> - номер вариант по журналу. <br />
<br />
В приемнике производтся корреляционная обработка сигнала, интервал накопления составляет <math>T = 1</math> мс. <br />
<br />
Сигнал имеет сдвиг частоты несущей <math>f_d = 100 N</math> Гц, при этом опорный сигнал коррелятора имеет аналогичный сдвиг <math>f_{d, rep} = f_d</math>. Задержка огибающей известна точно и используется в опорном сигнале <math>\tau = \tau_{rep}</math>.<br />
<br />
Задание: Построить на плоскости I,Q вид множества точек корреляционных сумм, полученных в ходе большого (сотни) числа экспериментов. <br />
<br />
{{Hider|title = Расчет выходного сигнала коррелятора<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
N = 30;<br />
<br />
Fd = 99.375e6;<br />
Td = 1/Fd;<br />
T = 0.001;<br />
fif = 8.34e6;<br />
<br />
fd = 100 * N;<br />
fd_rep = fd;<br />
<br />
phi = 10 * N;<br />
phi_rep = 20 * N;<br />
<br />
qcno_dB = 27 + N;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdn = 50/3;<br />
A = sqrt(qcno * Td) * 2 * stdn; % qcno = A^2 / (4 stdn^2 Td)<br />
<br />
fprintf('A = %f, stdn = %f\n', A, stdn);<br />
<br />
L = fix(T * Fd);<br />
t = (0:(L-1)) * Td;<br />
<br />
PRN_Length = 1023;<br />
PRN = (-1).^(rand(1, PRN_Length) > 0.5);<br />
<br />
tau = 100500e-6;<br />
tau_rep = tau;<br />
<br />
nchip = mod(fix(PRN_Length*(t - tau )/T), PRN_Length) + 1;<br />
nchip_rep = mod(fix(PRN_Length*(t - tau_rep)/T), PRN_Length) + 1;<br />
<br />
Gc = PRN(nchip );<br />
Gc_rep = PRN(nchip_rep);<br />
<br />
So = A * Gc .* cos(2*pi*fif*t + 2*pi*fd *t + deg2rad(phi) );<br />
S_rep_cos = Gc_rep .* cos(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
S_rep_sin = Gc_rep .* sin(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
<br />
K = 1000; I = nan(1, K); Q = nan(1,K);<br />
for k = 1:K<br />
n = randn(1,L)*stdn;<br />
<br />
Gd = (-1).^(rand(1,1) > 0.5);<br />
S = Gd * So;<br />
<br />
y = S + n;<br />
<br />
I(k) = y * S_rep_cos';<br />
Q(k) = y * S_rep_sin';<br />
end<br />
<br />
maxIQ = 1.1*max(abs(I + 1i*Q));<br />
<br />
figure(1);<br />
plot(t*1e3, [y; S; A*Gc]);<br />
xlabel('t, ms')<br />
ylabel('y, S');<br />
grid on<br />
<br />
figure(2);<br />
plot(I, Q, '*')<br />
hold on<br />
plot([-maxIQ maxIQ], [0 0], 'k');<br />
plot([0 0], [-maxIQ maxIQ], 'k');<br />
quiver(-maxIQ, 0, 2*maxIQ, 0, 1, 'k');<br />
quiver(0, -maxIQ, 0, 2*maxIQ, 1, 'k');<br />
hold off<br />
xlabel('I')<br />
ylabel('Q');<br />
axis equal<br />
grid on<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
<br />
=== ЧАП и ФАП на стат эквивалентах ===<br />
<br />
{{Hider|title = Слежение за фазой и частотой<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
T = 0.010;<br />
<br />
Xist = [10; <br />
1];<br />
<br />
Xfilt = [0;<br />
0];<br />
<br />
Xfilt_FLL = [0;<br />
0];<br />
<br />
F = [1 T;<br />
0 1];<br />
<br />
Tmod = 10;<br />
K = fix(Tmod / T);<br />
<br />
G = [0;<br />
1];<br />
<br />
std_ksi = 1.3 * T;<br />
ksi = std_ksi * randn(1, K);<br />
<br />
qcno_dB = 45;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdnIQ = 7;<br />
nI = stdnIQ * randn(1, K);<br />
nQ = stdnIQ * randn(1, K);<br />
A_IQ = sqrt(2*qcno*T) * stdnIQ; <br />
<br />
dF_PLL = 20;<br />
Kfilt_PLL = [ 8/3 * dF_PLL * T;<br />
32/9 * dF_PLL^2 * T];<br />
<br />
dF_FLL = 3;<br />
Kfilt_FLL = [ 8/3 * dF_FLL * T;<br />
32/9 * dF_FLL^2 * T];<br />
<br />
t = (1:K)*T;<br />
phi_ist = nan(1, K);<br />
w_ist = nan(1, K);<br />
phi_filt = nan(1, K);<br />
w_filt = nan(1, K);<br />
phi_filt_FLL = nan(1, K);<br />
w_filt_FLL = nan(1, K);<br />
<br />
phi_corr = 0; Iold = 0; Qold = 0;<br />
for k = 1:K<br />
Xist = F * Xist + G * ksi(k);<br />
<br />
phi_ist(k) = Xist(1);<br />
w_ist(k) = Xist(2);<br />
<br />
% PLL<br />
Xfilt_extr = F*Xfilt;<br />
phi_extr = Xfilt_extr(1);<br />
dPhi = phi_ist(k) - phi_extr;<br />
<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = -Q; <br />
Sd = A_IQ; <br />
<br />
Xfilt = Xfilt_extr + Kfilt_PLL * Ud/Sd;<br />
<br />
phi_filt(k) = Xfilt(1);<br />
w_filt(k) = Xfilt(2);<br />
<br />
% FLL<br />
Xfilt_extr_FLL = F*Xfilt_FLL;<br />
w_extr = Xfilt_extr_FLL(1);<br />
dPhi = phi_ist(k) - phi_corr;<br />
phi_corr = phi_corr + w_extr * T;<br />
dW = w_ist(k) - w_extr;<br />
<br />
I = - A_IQ * cos(dPhi) + nI(k);<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = Q*Iold - I*Qold; <br />
Sd = A_IQ; <br />
Iold = I; Qold = Q;<br />
<br />
Xfilt_FLL = Xfilt_extr_FLL + Kfilt_FLL * Ud/Sd;<br />
<br />
phi_filt_FLL(k) = phi_corr;<br />
w_filt_FLL(k) = Xfilt_FLL(1);<br />
<br />
<br />
end<br />
<br />
figure(1)<br />
subplot(2,1,1)<br />
plot(t, phi_ist/2/pi, t, phi_filt/2/pi, t, phi_filt_FLL/2/pi)<br />
ylabel('\phi, cycles')<br />
subplot(2,1,2)<br />
plot(t, rad2deg(w_ist), t, rad2deg(w_filt), t, rad2deg(w_filt_FLL))<br />
ylabel('\omega, Hz')<br />
xlabel('t, sec')<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
== Вопросы к экзамену ==<br />
<br />
Экзамен проводится в письменной форме: тест, задача и один экзаменационный вопрос ([[media:Вопросы_экз_АП_СРНС.doc|экзаменационные вопросы]]). При подготовке рекомендуется использовать книги по тематике, [[media:2013_ЭУМК_С3.33_Лекции_АП_СРНС.pdf|конспекты лекций]] и презентации.<br />
<br />
== Курсовая работа ==<br />
<br />
Название: '''Расчет траектории движения спутника GPS по данным с демодулятора его сигнала'''<br />
<br />
Курсовая работа по АП СРНС выполняется во втором семестре. В рамках КР студенты знакомятся с рядом инструментов и техник, используемых при разработке навигационных приемников.<br />
<br />
Цель проекта - разработка модулей разбора навигационного сообщения GPS и расчета положения спутника, предназначенных для использования в составе навигационного приемника.<br />
<br />
Требования к разрабатываемому программному модулю:<br />
* требования назначения;<br />
* отсутствие утечек памяти;<br />
* малое время выполнения;<br />
* низкий расход памяти;<br />
* корректное выполнение при аномальных входных данных. <br />
<br />
Для достижения цели выполняется ряд задач, соответствующих этапам проекта и контрольным мероприятиям:<br />
* разработка модуля разбора символов навигационного сообщения<br />
* расчет положения КА в Matlab/Python и его проверка сторонними сервисами;<br />
* реализация модуля расчета положения КА на С/С++ и его тестирование.<br />
<br />
На каждом из этапов действуют следующие правила:<br />
* Взаимодействие осуществляется через github (пул реквесты, комментарии)<br />
* '''Этап сдан тогда, когда принят пул реквест'''<br />
<br />
<br />
<br />
{| class="wikitable"<br />
|+ Варианты заданий:<br />
|-<br />
! Студент !! Номер спутника (варианта) !! Логи !! Примечание<br />
|-<br />
! Антропов Евгений Александрович<br />
| 1 || [[media:2022_KR_01.tar.gz|tar.gz]] || <br />
|-<br />
! Бахолдин Никита Владимирович<br />
| 10 || [[media:2022_KR_10.tar.gz|tar.gz]] || <br />
|-<br />
! Берестнев Владимир Сергеевич<br />
| 13 || [[media:2022_KR_13.tar.gz|tar.gz]] || <br />
|-<br />
! Дубинин Леонид Андреевич<br />
| 15 || [[media:2022_KR_15.tar.gz|tar.gz]] || <br />
|-<br />
! Еловский Никита Станиславович<br />
| 17 || [[media:2022_KR_17.tar.gz|tar.gz]] || <br />
|-<br />
! Иванцова Дарья Николаевна<br />
| 19 || [[media:2022_KR_19.tar.gz|tar.gz]] || <br />
|-<br />
! Капитонов Александр Ильич<br />
| 24 || [[media:2022_KR_24.tar.gz|tar.gz]] || <br />
|-<br />
! Коробков Андрей Юрьевич<br />
| 28 || [[media:2022_KR_28.tar.gz|tar.gz]] || <br />
|-<br />
! Куксин Владислав Александрович<br />
| 30 || [[media:2022_KR_30.tar.gz|tar.gz]] || <br />
|-<br />
! Кусакин Павел Александрович<br />
| || || <br />
|-<br />
! Ливенцов Василий Александрович<br />
| || || <br />
|-<br />
! Михайлов Иван Олегович<br />
| || || <br />
|-<br />
! Муратов Николай Сергеевич<br />
| || || <br />
|-<br />
! Попов Максим Геннадьевич<br />
| || || <br />
|-<br />
! Солнцева Милана Константиновна<br />
| || || <br />
|-<br />
! Танкина Анна Михайловна<br />
| || || <br />
|-<br />
! Цымбал Григорий Романович <br />
| || || <br />
|-<br />
! Чепелев Игорь Игоревич<br />
| || || <br />
|}<br />
<br />
<br />
=== Этап 1. Обработка логов навигационного приемника ===<br />
<br />
'''Дедлайн''': 04.03.21 (устранение замечаний и итоговый мёрдж до 13.03.21)<br />
<br />
Конечная цель всего курсового проекта - получить библиотеку функций на Си++, позволяющую рассчитывать положение спутника GPS по данным с демодулятора его сигнала L1 C/A. <br />
На первом этапе реализуем модуль разбора навигационного сообщения до структуры эфемерид, сравним результаты со сторонней программой.<br />
<br />
В неизвестной локации установлен навигационный приемник, принимающий сигналы GPS L1C/A и логирующий результаты этого приема в формате [https://navis.ru/downloads/SOFT/NV08C_BINR_Protocol_Specification_V13_ENG_10082012.pdf NVS BINR]. <br />
Собранный на пятиминутном интервале файл приложен в архиве под именем BINR.bin, см. таблицу вариантов. <br />
Файл содержит наблюдения псевдодальностей и прочих радионавигационных параметров, демодулированные и разобранные данные навигационного сообщения. <br />
<br />
Для удобства студентов данные демодулятора продублированы в текстовый файл in.txt. Каждая строка файла содержит данные одного сабфрейма одного навигационного сигнала в формате:<br />
<source lang="bash"><br />
1 0 013 0R GpsL1CA # 13 212130404 29 125 53 100010111010101010101010001010010111000011001010010111111000101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100<br />
</source><br />
где ''# 13'' - номер спутника, ''212130404'' порядковый номер сабфрема от старта системы, ''53'' - ID сабфрейма в навигационном сообщении, где в первых трех битах содержится номер сабфрейма в фрейме (5 в данном примере), а далее - номер фрейма в сообщении (6 в данном примере), ''1000101110...'' символы с демодулятора в порядке возрастания времени слева направо. <br />
<br />
Требуется:<br />
# Разработать программу, обрабатывающую файл in.txt и выводящую в файл out.txt таблицу эфемерид для спутника согласно варианту [[media:Screenshot_20220215_221319.png|в заданном формате]].<br />
# Обработать файл BINR.bin с помощью программы RTKNAVI из состава RTKLIB. Определить день и место проведения наблюдений, значения эфемерид для спутника согласно номеру варианта (меню открывается в левом нижнем углу экрана по нажатию на квадрат)<br />
# Сравнить полученные таблицы<br />
# Оформить код программы и разместить на Github<br />
# Оформить отчет по этапу и разместить на Github<br />
# Завести Pull Request<br />
<br />
Программа должна компилироваться gcc, все входные данные брать из in.txt, весь вывод осуществлять в out.txt.<br />
<br />
Работа осуществляется в репозитории на github на базе [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021]. Для этого:<br />
# Завести, если до сих пор нет, аккаунт на github<br />
# Если ранее не сделано, сделать форк проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021] (маленькая кнопка сверху справа в вэб-интерфейсе)<br />
# Установить на рабочем компьютере git (для выполнения последующих этапов удобнее будет сделать это в ОС GNU/Linux, вероятно, на виртуальной машине)<br />
# Клонировать свой форк на рабочий компьютер (<code>git clone https://github.com/MySuperAccount/gnssrecbasics2021.git</code>)<br />
# Промежуточные и итоговые результаты по первому этапу хранить в каталоге processing (<code>git pull; git add <files>; git commit -m "Сделал то-то то-то"; git push</code>)<br />
# По результатам первого этапа завести Pull Request в исходный проект '''в ветку, название которой совпадает с вашей фамилией''' (кнопка наверху в вэб-интерфейсе)<br />
# Устранить все замечания, добиться принятия Pull Request'а. <br />
<br />
Этап сдан тогда, когда ваш ПР принят.<br />
<br />
=== Этап 2. Моделирование ===<br />
<br />
'''Дедлайн''': 13.04.22 (исправления замечаний до 20.04.22)<br />
<br />
Эфемериды - параметры некоторой модели движения спутника. <br />
В разных ГНСС эти модели разные, а значит отличается и формат эфемерид, и алгоритмы расчета положения спутника.<br />
<br />
Одна из самых простых и удобных моделей - [http://navipedia.org/index.php/GPS_and_Galileo_Satellite_Coordinates_Computation в системе GPS].<br />
<br />
Требуется реализовать на языке Matlab или Python функцию расчета положения спутника GPS на заданный момент по шкале времени UTC.<br />
В качестве эфемерид использовать данные, полученные на предыдущем этапе. <br />
<br />
Построить трехмерные графики множества положений спутника GPS с системным номером, соответствующим номеру студента по списку. Графики в двух вариантах: в СК ECEF WGS84 и соответствующей ей инерциальной СК. Положения должны соответствовать суточному интервалу на дне формирования наблюдений, определенном на предыдущем этапе. Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал. <br />
<br />
Вывести значения координат спутника в файл out.txt в системе ECEF WGS 84 в виде строк: Секунда_от_начала_дня X Y Z<br />
<br />
Используя оценку местоположения с предыдущего этапа, построить Sky Plot за указанный временной интервал и сравнить результат с [http://www.trimble.com/gnssplanningonline/ Trimble GNSS Planning Online].<br />
<br />
Оформить отчет по результатам этапа:<br />
# Реализация в Matlab или Python (описание модели и её листинг)<br />
# Таблица использованных эфемерид<br />
# Трехмерные графики положений спутника в ECEF и ECI (не забудьте подписать оси, изобразите соответствующую Земле сферу в начале СК)<br />
# Расчётный и полученный в GNSS Planing Online SkyView<br />
<br />
Работы по данному этапу осуществляются в каталоге simulation.<br />
Правила приемки этапа те же, что и на первом этапе.<br />
<br />
=== Этап 3. Реализация === <br />
<br />
'''Дедлайн''': 11.05.21 (исправления до 18.05.21)<br />
<br />
Требуется разработать на языке С/С++ функцию расчета положения спутника GPS на заданное время по шкале UTC, минимизируя время её исполнения и количество затрачиваемой оперативной памяти. <br />
Вызов функции не должен приводить к выбросу исключений или утечкам памяти при любом наборе входных данных.<br />
<br />
Функция расчета положения спутника в Matlab/Python относительно проста, т.к. доступны библиотеки линейной алгебры и решения уравнений. <br />
Но при разработке встраиваемого ПО приходится сохранять лицензионную частоту, минимизировать вычислительную нагрузку и затраты памяти. <br />
Поэтому отобразить модель из Matlab/Python в прошивку приемника дословно, как правило, не получается. В рассматриваемом примере потребуется, как минимум, выполнить свою реализацию решения трансцендентного уравнения. <br />
<br />
Программный модуль должен сопровождаться unit-тестами (например, используя Check):<br />
* Тесты функции решения уравнения Кеплера<br />
* Тест расчетного положения спутника в сравнении с Matlab/Python с шагом 0.1 секунды. <br />
<br />
Во время второго теста должно вычисляться и выводиться средняя длительность исполнения функции. <br />
Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал (как на предыдущем этапе). <br />
<br />
Требуется провести проверку на утечки памяти (например, с помощью утилиты valgrind).<br />
<br />
Оформить отчет по результатам курсового проекта. <br />
В качестве первых двух глав использовать отчёты с предыдущих этапов, в третьей главе отразить результаты этого этапа:<br />
# Код реализации<br />
# Вывод тестов, включая анализ времени исполнения<br />
# Вывод проверок на утечку памяти<br />
# Вывод по этапу <br />
# Заключение по проекту<br />
<br />
Программа должна компилироваться gcc и использовать в качестве входных данных in.txt с первого этапа. <br />
Результат должен записываться в out.txt в строки формата, определенного на втором этапе. <br />
<br />
Работы по третьему этапу следует вести в директории libgpssvpos.<br />
<br />
Правила приемки этапа те же.<br />
<br />
== Курсовая прошлых лет ==<br />
<br />
Задания в [[Курсовой проект АП СРНС 2020|2020]], в [[Курсовая работа АП СРНС 2021|2021]].<br />
<br />
[[Категория:АП СРНС (дисциплина)]]</div>
Korogodin
https://www.srns.ru/wiki/%D0%90%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0_%D0%BF%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D1%81%D0%BF%D1%83%D1%82%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2%D1%8B%D1%85_%D1%80%D0%B0%D0%B4%D0%B8%D0%BE%D0%BD%D0%B0%D0%B2%D0%B8%D0%B3%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_(%D0%B4%D0%B8%D1%81%D1%86%D0%B8%D0%BF%D0%BB%D0%B8%D0%BD%D0%B0)
Аппаратура потребителей спутниковых радионавигационных систем (дисциплина)
2022-02-15T19:32:04Z
<p>Korogodin: /* Этап 1. Обработка логов навигационного приемника */</p>
<hr />
<div>Дисциплина "Аппаратура потребителей спутниковых радионавигационных систем" входит в вариативную часть общенаучного цикла занятий [http://beta.mpei.ru/Education/educationalprograms/rt/Pages/default.aspx учебного плана] подготовки специалистов по направлению 11.05.01 "Радиоэлектронные системы и комплексы". <br />
<br />
Преподается осеннем и весеннем семестрах пятого года обучения. В осеннем семестре лекции и лабораторные занятия (итог - экзамен), в весеннем - курсовой проект. <br />
<br />
По дисциплине подготовлен [[ЭУМК АП СРНС|электронный учебно-методический комплекс]].<br />
<br />
== Календарный план ==<br />
<br />
<br />
{| class="wikitable"<br />
|-<br />
! Неделя || Даты || Лекция || Лабораторная || Контрольное мероприятие<br />
<br />
|- align=center<br />
| 2 || 07.09<br />
| Основы СРНС. [[media:Receivers_Segments.pdf|Сегменты СРНС]]. [[media:Receivers_PosMethods.pdf|Методы позиционирования]].<br />
| [https://goo.gl/forms/R7Vos1KsJ1taqqXo2 Ошибки позиционирования в городских условиях] <br />
|<br />
<br />
|- align=center<br />
| 3 || 13.09.21-19.09.21<br />
| Навигационные сигналы. <br />
|<br />
| <br />
<br />
|- align=center<br />
| 4 || 20.09.21-26.09.21<br />
| Антенна, МШУ<br />
| <br />
| КМ-1: Модель сигнала ГНСС<br />
<br />
|- align=center<br />
| 5 || 27.09.21-03.10.21<br />
| Радиочастотный блок <br> ([[media:20111008_АП_СРНС_Лекция_3_презентация.pdf|Аналогово-цифровое преобразование. Синтезатор частот. План частот АП СРНС.]] )<br />
| <br />
| <br />
<br />
|- align=center<br />
| 6 || 04.10.21-10.10.21<br />
| Математическая модель коррелятора <br> ([[media:АП_СРНС_corr.pdf|Статистический эквивалент коррелятора]])<br />
|<br />
| КМ-2: Ошибки позиционирования в городских условиях<br />
<br />
|- align=center<br />
| 7 || 11.10.21-17.10.21<br />
| Аппаратная реализация коррелятора <br> ([[media:20111005_АП_СРНС_Лекция_4_презентация.pdf|Принципы построения и структура коррелятора. Цифровой генератор гармонического сигнала и дальномерного кода.]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 8 || 18.10.21-24.10.21<br />
| Следящие системы <br> ([[media:20111215_АП_СРНС_Лекция_8_презентация.pdf|Система слежения за фазой сигнала. Структурная схема ССФ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_9_презентация.pdf|Система слежения за частотой. Структурная схема ССЧ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_10_презентация.pdf|Система слежения за задержкой. Структурная схема ССЗ, дискриминаторы, следящий фильтр. <br> Система слежения за задержкой с поддержкой от ФАП. Комплексный фильтр.]]) <br />
| [https://goo.gl/XruJBM GNSS Planning] <br />
| КМ-3: Статистический эквивалент коррелятора<br />
<br />
|- align=center<br />
| 9 || 25.10.21-31.10.21<br />
| Оценка SNR, детекторы захвата, детекторы CC<br />
| <br />
| <br />
<br />
|- align=center<br />
| 10 || 01.11.21-07.11.21<br />
| Обнаружение сигнала. <br> ([[media:20111005_АП_СРНС_Лекция_5_презентация.pdf|Обнаружение сигнала. Алгоритмы, статистические характеристики обнаружения.]]) <br />
|<br />
| <br />
<br />
|- align=center<br />
| 11 || 08.11.21-14.11.21<br />
| Поиск сигнала <br> ([[media:20111008_АП_СРНС_Лекция_6_презентация.pdf|Поиск сигнала по частоте и задержке. Алгоритмы поиска, быстрый поиск сигнала.]] <br> [[media:20111017_АП_СРНС_Лекция_7_презентация.pdf|Блок быстрого поиска]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 12 || 15.11.21-21.11.21<br />
| Символьная и оверлейная синхронизация <br> <br />
| [[Исследование_коррелятора_АП_СРНС_ГЛОНАСС_с_помощью_имитационной_модели_(лабораторная_работа)|Исследование коррелятора АП СРНС с помощью имитационной модели]]<br />
| КМ-4: Исследование коррелятора АП СРНС ГЛОНАСС с помощью имитационной модели <br />
<br />
|- align=center<br />
| 13 || 22.11.21-28.11.21<br />
| [[media:20111215_АП_СРНС_Лекция_11_презентация.pdf|Демодуляция навигационных данных]]<br />
| <br />
| <br />
<br />
|- align=center<br />
| 14 || 29.11.21-05.12.21<br />
| Кадровая синхронизация, [[media:20111215_АП_СРНС_Лекция_12_презентация.pdf|декодирование]], парсинг<br />
|<br />
| КМ-5: Прогнозирование спутникового созвездия<br />
<br />
|- align=center<br />
| 15 || 08.12.21-12.12.21<br />
| Формирование измерений, расчет положения спутника<br />
|<br />
| <br />
<br />
|- align=center<br />
| 16 || 13.12.21-19.12.21<br />
| Модель наблюдений псевдодальности. <br> [[media:20111128_АП_СРНС_Лекция_14_презентация.pdf|Вторичная обработка измерений. Одношаговый алгоритм решения навигационной задачи.]] <br> [[media:20111215_АП_СРНС_Лекция_16_презентация.pdf|Контроль целостности]]<br />
| Решение навигационной задачи по псевдодальномерным измерениям<br />
| КМ-6: Решение навигационной задачи по псевдодальномерным измерениям<br />
<br />
|- align=center<br />
| 17 || 20.12.21-26.12.21<br />
| Помехоустойчивость АП СРНС<br />
| <br />
| <br />
<br />
|- align=center<br />
| 18 || 27.12.21-02.01.21<br />
| Зачет<br />
|<br />
|<br />
<br />
|}<br />
<br />
[[media:АПСРНС_2021_Списки.ods|Журнал успеваемости]].<br />
<br />
== Правила аттестации ==<br />
<br />
Обязательным условием для получения допуска к экзамену является выполнение всех контрольных мероприятий: сдача двух контрольных и защита 4 лабораторных работ. <br />
<br />
При написании отчетов следует опираться на правила оформления [https://mpei.ru/Science/ScienceDocuments/Documents/Polojenie_2018/0_GOST_7.32-2017.pdf ГОСТ 7.32] (в части форматирования, оформления рисунков, таблиц, списков и т.д.).<br />
<br />
Приемка осуществляется через репозиторий на github на базе проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021].<br />
<br />
== Демо модели ==<br />
<br />
=== Прогноз выходного сигнала коррелятора ===<br />
<br />
Производится обработка сигнала Gps L1 C/A, сформированного лабораторным имитатором сигналов, синхронизированным с приемником. Сигнал перенесен с помощью РЧБ NT1065 на промежуточную частоту <math>f_{if} = 8.54</math> МГц и преобразован многоразрядным АЦП с частотой сэмплирования <math>F_d = 99.375</math> МГц. Установленная на имитаторе мощность обеспечивает уровень отношения сигнал/шум <math>27 + N</math> дБГц, где <math>N</math> - номер вариант по журналу. <br />
<br />
В приемнике производтся корреляционная обработка сигнала, интервал накопления составляет <math>T = 1</math> мс. <br />
<br />
Сигнал имеет сдвиг частоты несущей <math>f_d = 100 N</math> Гц, при этом опорный сигнал коррелятора имеет аналогичный сдвиг <math>f_{d, rep} = f_d</math>. Задержка огибающей известна точно и используется в опорном сигнале <math>\tau = \tau_{rep}</math>.<br />
<br />
Задание: Построить на плоскости I,Q вид множества точек корреляционных сумм, полученных в ходе большого (сотни) числа экспериментов. <br />
<br />
{{Hider|title = Расчет выходного сигнала коррелятора<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
N = 30;<br />
<br />
Fd = 99.375e6;<br />
Td = 1/Fd;<br />
T = 0.001;<br />
fif = 8.34e6;<br />
<br />
fd = 100 * N;<br />
fd_rep = fd;<br />
<br />
phi = 10 * N;<br />
phi_rep = 20 * N;<br />
<br />
qcno_dB = 27 + N;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdn = 50/3;<br />
A = sqrt(qcno * Td) * 2 * stdn; % qcno = A^2 / (4 stdn^2 Td)<br />
<br />
fprintf('A = %f, stdn = %f\n', A, stdn);<br />
<br />
L = fix(T * Fd);<br />
t = (0:(L-1)) * Td;<br />
<br />
PRN_Length = 1023;<br />
PRN = (-1).^(rand(1, PRN_Length) > 0.5);<br />
<br />
tau = 100500e-6;<br />
tau_rep = tau;<br />
<br />
nchip = mod(fix(PRN_Length*(t - tau )/T), PRN_Length) + 1;<br />
nchip_rep = mod(fix(PRN_Length*(t - tau_rep)/T), PRN_Length) + 1;<br />
<br />
Gc = PRN(nchip );<br />
Gc_rep = PRN(nchip_rep);<br />
<br />
So = A * Gc .* cos(2*pi*fif*t + 2*pi*fd *t + deg2rad(phi) );<br />
S_rep_cos = Gc_rep .* cos(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
S_rep_sin = Gc_rep .* sin(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
<br />
K = 1000; I = nan(1, K); Q = nan(1,K);<br />
for k = 1:K<br />
n = randn(1,L)*stdn;<br />
<br />
Gd = (-1).^(rand(1,1) > 0.5);<br />
S = Gd * So;<br />
<br />
y = S + n;<br />
<br />
I(k) = y * S_rep_cos';<br />
Q(k) = y * S_rep_sin';<br />
end<br />
<br />
maxIQ = 1.1*max(abs(I + 1i*Q));<br />
<br />
figure(1);<br />
plot(t*1e3, [y; S; A*Gc]);<br />
xlabel('t, ms')<br />
ylabel('y, S');<br />
grid on<br />
<br />
figure(2);<br />
plot(I, Q, '*')<br />
hold on<br />
plot([-maxIQ maxIQ], [0 0], 'k');<br />
plot([0 0], [-maxIQ maxIQ], 'k');<br />
quiver(-maxIQ, 0, 2*maxIQ, 0, 1, 'k');<br />
quiver(0, -maxIQ, 0, 2*maxIQ, 1, 'k');<br />
hold off<br />
xlabel('I')<br />
ylabel('Q');<br />
axis equal<br />
grid on<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
<br />
=== ЧАП и ФАП на стат эквивалентах ===<br />
<br />
{{Hider|title = Слежение за фазой и частотой<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
T = 0.010;<br />
<br />
Xist = [10; <br />
1];<br />
<br />
Xfilt = [0;<br />
0];<br />
<br />
Xfilt_FLL = [0;<br />
0];<br />
<br />
F = [1 T;<br />
0 1];<br />
<br />
Tmod = 10;<br />
K = fix(Tmod / T);<br />
<br />
G = [0;<br />
1];<br />
<br />
std_ksi = 1.3 * T;<br />
ksi = std_ksi * randn(1, K);<br />
<br />
qcno_dB = 45;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdnIQ = 7;<br />
nI = stdnIQ * randn(1, K);<br />
nQ = stdnIQ * randn(1, K);<br />
A_IQ = sqrt(2*qcno*T) * stdnIQ; <br />
<br />
dF_PLL = 20;<br />
Kfilt_PLL = [ 8/3 * dF_PLL * T;<br />
32/9 * dF_PLL^2 * T];<br />
<br />
dF_FLL = 3;<br />
Kfilt_FLL = [ 8/3 * dF_FLL * T;<br />
32/9 * dF_FLL^2 * T];<br />
<br />
t = (1:K)*T;<br />
phi_ist = nan(1, K);<br />
w_ist = nan(1, K);<br />
phi_filt = nan(1, K);<br />
w_filt = nan(1, K);<br />
phi_filt_FLL = nan(1, K);<br />
w_filt_FLL = nan(1, K);<br />
<br />
phi_corr = 0; Iold = 0; Qold = 0;<br />
for k = 1:K<br />
Xist = F * Xist + G * ksi(k);<br />
<br />
phi_ist(k) = Xist(1);<br />
w_ist(k) = Xist(2);<br />
<br />
% PLL<br />
Xfilt_extr = F*Xfilt;<br />
phi_extr = Xfilt_extr(1);<br />
dPhi = phi_ist(k) - phi_extr;<br />
<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = -Q; <br />
Sd = A_IQ; <br />
<br />
Xfilt = Xfilt_extr + Kfilt_PLL * Ud/Sd;<br />
<br />
phi_filt(k) = Xfilt(1);<br />
w_filt(k) = Xfilt(2);<br />
<br />
% FLL<br />
Xfilt_extr_FLL = F*Xfilt_FLL;<br />
w_extr = Xfilt_extr_FLL(1);<br />
dPhi = phi_ist(k) - phi_corr;<br />
phi_corr = phi_corr + w_extr * T;<br />
dW = w_ist(k) - w_extr;<br />
<br />
I = - A_IQ * cos(dPhi) + nI(k);<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = Q*Iold - I*Qold; <br />
Sd = A_IQ; <br />
Iold = I; Qold = Q;<br />
<br />
Xfilt_FLL = Xfilt_extr_FLL + Kfilt_FLL * Ud/Sd;<br />
<br />
phi_filt_FLL(k) = phi_corr;<br />
w_filt_FLL(k) = Xfilt_FLL(1);<br />
<br />
<br />
end<br />
<br />
figure(1)<br />
subplot(2,1,1)<br />
plot(t, phi_ist/2/pi, t, phi_filt/2/pi, t, phi_filt_FLL/2/pi)<br />
ylabel('\phi, cycles')<br />
subplot(2,1,2)<br />
plot(t, rad2deg(w_ist), t, rad2deg(w_filt), t, rad2deg(w_filt_FLL))<br />
ylabel('\omega, Hz')<br />
xlabel('t, sec')<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
== Вопросы к экзамену ==<br />
<br />
Экзамен проводится в письменной форме: тест, задача и один экзаменационный вопрос ([[media:Вопросы_экз_АП_СРНС.doc|экзаменационные вопросы]]). При подготовке рекомендуется использовать книги по тематике, [[media:2013_ЭУМК_С3.33_Лекции_АП_СРНС.pdf|конспекты лекций]] и презентации.<br />
<br />
== Курсовая работа ==<br />
<br />
Название: '''Расчет траектории движения спутника GPS по данным с демодулятора его сигнала'''<br />
<br />
Курсовая работа по АП СРНС выполняется во втором семестре. В рамках КР студенты знакомятся с рядом инструментов и техник, используемых при разработке навигационных приемников.<br />
<br />
Цель проекта - разработка модулей разбора навигационного сообщения GPS и расчета положения спутника, предназначенных для использования в составе навигационного приемника.<br />
<br />
Требования к разрабатываемому программному модулю:<br />
* требования назначения;<br />
* отсутствие утечек памяти;<br />
* малое время выполнения;<br />
* низкий расход памяти;<br />
* корректное выполнение при аномальных входных данных. <br />
<br />
Для достижения цели выполняется ряд задач, соответствующих этапам проекта и контрольным мероприятиям:<br />
* разработка модуля разбора символов навигационного сообщения<br />
* расчет положения КА в Matlab/Python и его проверка сторонними сервисами;<br />
* реализация модуля расчета положения КА на С/С++ и его тестирование.<br />
<br />
На каждом из этапов действуют следующие правила:<br />
* Взаимодействие осуществляется через github (пул реквесты, комментарии)<br />
* '''Этап сдан тогда, когда принят пул реквест'''<br />
<br />
<br />
<br />
{| class="wikitable"<br />
|+ Варианты заданий:<br />
|-<br />
! Студент !! Номер спутника (варианта) !! Логи !! Примечание<br />
|-<br />
! Антропов Евгений Александрович<br />
| 1 || [[media:2022_KR_01.tar.gz|tar.gz]] || <br />
|-<br />
! Бахолдин Никита Владимирович<br />
| 10 || [[media:2022_KR_10.tar.gz|tar.gz]] || <br />
|-<br />
! Берестнев Владимир Сергеевич<br />
| 13 || [[media:2022_KR_13.tar.gz|tar.gz]] || <br />
|-<br />
! Дубинин Леонид Андреевич<br />
| 15 || [[media:2022_KR_15.tar.gz|tar.gz]] || <br />
|-<br />
! Еловский Никита Станиславович<br />
| 17 || [[media:2022_KR_17.tar.gz|tar.gz]] || <br />
|-<br />
! Иванцова Дарья Николаевна<br />
| 19 || [[media:2022_KR_19.tar.gz|tar.gz]] || <br />
|-<br />
! Капитонов Александр Ильич<br />
| 24 || [[media:2022_KR_24.tar.gz|tar.gz]] || <br />
|-<br />
! Коробков Андрей Юрьевич<br />
| 28 || [[media:2022_KR_28.tar.gz|tar.gz]] || <br />
|-<br />
! Куксин Владислав Александрович<br />
| 30 || [[media:2022_KR_30.tar.gz|tar.gz]] || <br />
|-<br />
! Кусакин Павел Александрович<br />
| || || <br />
|-<br />
! Ливенцов Василий Александрович<br />
| || || <br />
|-<br />
! Михайлов Иван Олегович<br />
| || || <br />
|-<br />
! Муратов Николай Сергеевич<br />
| || || <br />
|-<br />
! Попов Максим Геннадьевич<br />
| || || <br />
|-<br />
! Солнцева Милана Константиновна<br />
| || || <br />
|-<br />
! Танкина Анна Михайловна<br />
| || || <br />
|-<br />
! Цымбал Григорий Романович <br />
| || || <br />
|-<br />
! Чепелев Игорь Игоревич<br />
| || || <br />
|}<br />
<br />
<br />
=== Этап 1. Обработка логов навигационного приемника ===<br />
<br />
'''Дедлайн''': 04.03.21 (устранение замечаний и итоговый мёрдж до 13.03.21)<br />
<br />
Конечная цель всего курсового проекта - получить библиотеку функций на Си++, позволяющую рассчитывать положение спутника GPS по данным с демодулятора его сигнала L1 C/A. <br />
На первом этапе реализуем модуль разбора навигационного сообщения до структуры эфемерид, сравним результаты со сторонней программой.<br />
<br />
В неизвестной локации установлен навигационный приемник, принимающий сигналы GPS L1C/A и логирующий результаты этого приема в формате [https://navis.ru/downloads/SOFT/NV08C_BINR_Protocol_Specification_V13_ENG_10082012.pdf NVS BINR]. <br />
Собранный на пятиминутном интервале файл приложен в архиве под именем BINR.bin, см. таблицу вариантов. <br />
Файл содержит наблюдения псевдодальностей и прочих радионавигационных параметров, демодулированные и разобранные данные навигационного сообщения. <br />
<br />
Для удобства студентов данные демодулятора продублированы в текстовый файл in.txt. Каждая строка файла содержит данные одного сабфрейма одного навигационного сигнала в формате:<br />
<source lang="bash"><br />
1 0 013 0R GpsL1CA # 13 212130404 29 125 53 100010111010101010101010001010010111000011001010010111111000101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100<br />
</source><br />
где ''# 13'' - номер спутника, ''212130404'' порядковый номер сабфрема от старта системы, ''53'' - ID сабфрейма в навигационном сообщении, где в первых трех битах содержится номер сабфрейма в фрейме (5 в данном примере), а далее - номер фрейма в сообщении (6 в данном примере), ''1000101110...'' символы с демодулятора в порядке возрастания времени слева направо. <br />
<br />
Требуется:<br />
# Разработать программу, обрабатывающую файл in.txt и выводящую в файл out.txt таблицу эфемерид для спутника согласно варианту [[media:Screenshot_20220215_221319.png|в заданном формате]].<br />
# Обработать файл BINR.bin с помощью программы RTKNAVI из состава RTKLIB. Определить день и место проведения наблюдений, значения эфемерид для спутника согласно номеру варианта (меню открывается в левом нижнем углу экрана по нажатию на квадрат)<br />
# Сравнить полученные таблицы<br />
# Оформить код программы и разместить на Github<br />
# Оформить отчет по этапу и разместить на Github<br />
# Завести Pull Request<br />
<br />
Программа должна компилироваться gcc, все входные данные брать из in.txt, весь вывод осуществлять в out.txt.<br />
<br />
Работа осуществляется в репозитории на github на базе [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021]. Для этого:<br />
# Завести, если до сих пор нет, аккаунт на github<br />
# Если ранее не сделано, сделать форк проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021] (маленькая кнопка сверху справа в вэб-интерфейсе)<br />
# Установить на рабочем компьютере git (для выполнения последующих этапов удобнее будет сделать это в ОС GNU/Linux, вероятно, на виртуальной машине)<br />
# Клонировать свой форк на рабочий компьютер (<code>git clone https://github.com/MySuperAccount/gnssrecbasics2021.git</code>)<br />
# Промежуточные и итоговые результаты по первому этапу хранить в каталоге processing (<code>git pull; git add <files>; git commit -m "Сделал то-то то-то"; git push</code>)<br />
# По результатам первого этапа завести Pull Request в исходный проект '''в ветку, название которой совпадает с вашей фамилией''' (кнопка наверху в вэб-интерфейсе)<br />
# Устранить все замечания, добиться принятия Pull Request'а. <br />
<br />
Этап сдан тогда, когда ваш ПР принят.<br />
<br />
=== Этап 2. Моделирование ===<br />
<br />
'''Дедлайн''': 13.04.22 (исправления замечаний до 20.04.22)<br />
<br />
Эфемериды - параметры некоторой модели движения спутника. <br />
В разных ГНСС эти модели разные, а значит отличается и формат эфемерид, и алгоритмы расчета положения спутника.<br />
<br />
Одна из самых простых и удобных моделей - [http://navipedia.org/index.php/GPS_and_Galileo_Satellite_Coordinates_Computation в системе GPS].<br />
<br />
Требуется реализовать на языке Matlab или Python функцию расчета положения спутника GPS на заданный момент по шкале времени UTC.<br />
В качестве эфемерид использовать данные, полученные на предыдущем этапе. <br />
<br />
Построить трехмерные графики множества положений спутника GPS с системным номером, соответствующим номеру студента по списку. Графики в двух вариантах: в СК ECEF WGS84 и соответствующей ей инерциальной СК. Положения должны соответствовать суточному интервалу на дне формирования наблюдений, определенном на предыдущем этапе. Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал. <br />
<br />
Используя оценку местоположения с предыдущего этапа, построить Sky Plot за указанный временной интервал и сравнить результат с [http://www.trimble.com/gnssplanningonline/ Trimble GNSS Planning Online].<br />
<br />
Оформить отчет по результатам этапа:<br />
# Реализация в Matlab или Python (описание модели и её листинг)<br />
# Таблица использованных эфемерид<br />
# Трехмерные графики положений спутника в ECEF и ECI (не забудьте подписать оси, изобразите соответствующую Земле сферу в начале СК)<br />
# Расчётный и полученный в GNSS Planing Online SkyView<br />
<br />
Работы по данному этапу осуществляются в каталоге simulation.<br />
Правила приемки этапа те же, что и на первом этапе.<br />
<br />
=== Этап 3. Реализация === <br />
<br />
'''Дедлайн''': 11.05.21 (исправления до 18.05.21)<br />
<br />
Требуется разработать на языке С/С++ функцию расчета положения спутника GPS на заданное время по шкале UTC, минимизируя время её исполнения и количество затрачиваемой оперативной памяти. <br />
Вызов функции не должен приводить к выбросу исключений или утечкам памяти при любом наборе входных данных.<br />
<br />
Функция расчета положения спутника в Matlab/Python относительно проста, т.к. доступны библиотеки линейной алгебры и решения уравнений. <br />
Но при разработке встраиваемого ПО приходится сохранять лицензионную частоту, минимизировать вычислительную нагрузку и затраты памяти. <br />
Поэтому отобразить модель из Matlab/Python в прошивку приемника дословно, как правило, не получается. В рассматриваемом примере потребуется, как минимум, выполнить свою реализацию решения трансцендентного уравнения. <br />
<br />
Программный модуль должен сопровождаться unit-тестами (например, используя Check):<br />
* Тесты функции решения уравнения Кеплера<br />
* Тест расчетного положения спутника в сравнении с Matlab/Python с шагом 0.1 секунды. <br />
<br />
Во время второго теста должно вычисляться и выводиться средняя длительность исполнения функции. <br />
Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал (как на предыдущем этапе). <br />
<br />
Требуется провести проверку на утечки памяти (например, с помощью утилиты valgrind).<br />
<br />
Оформить отчет по результатам курсового проекта. <br />
В качестве первых двух глав использовать отчёты с предыдущих этапов, в третьей главе отразить результаты этого этапа:<br />
# Код реализации<br />
# Вывод тестов, включая анализ времени исполнения<br />
# Вывод проверок на утечку памяти<br />
# Вывод по этапу <br />
# Заключение по проекту<br />
<br />
Программа должна компилироваться gcc и использовать в качестве входных данных in.txt с первого этапа. <br />
Результат должен записываться в out.txt в строки формата, определенного на втором этапе. <br />
<br />
Работы по третьему этапу следует вести в директории libgpssvpos.<br />
<br />
Правила приемки этапа те же.<br />
<br />
== Курсовая прошлых лет ==<br />
<br />
Задания в [[Курсовой проект АП СРНС 2020|2020]], в [[Курсовая работа АП СРНС 2021|2021]].<br />
<br />
[[Категория:АП СРНС (дисциплина)]]</div>
Korogodin
https://www.srns.ru/wiki/%D0%90%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0_%D0%BF%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D1%81%D0%BF%D1%83%D1%82%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2%D1%8B%D1%85_%D1%80%D0%B0%D0%B4%D0%B8%D0%BE%D0%BD%D0%B0%D0%B2%D0%B8%D0%B3%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_(%D0%B4%D0%B8%D1%81%D1%86%D0%B8%D0%BF%D0%BB%D0%B8%D0%BD%D0%B0)
Аппаратура потребителей спутниковых радионавигационных систем (дисциплина)
2022-02-15T19:30:48Z
<p>Korogodin: /* Этап 1. Обработка логов навигационного приемника */</p>
<hr />
<div>Дисциплина "Аппаратура потребителей спутниковых радионавигационных систем" входит в вариативную часть общенаучного цикла занятий [http://beta.mpei.ru/Education/educationalprograms/rt/Pages/default.aspx учебного плана] подготовки специалистов по направлению 11.05.01 "Радиоэлектронные системы и комплексы". <br />
<br />
Преподается осеннем и весеннем семестрах пятого года обучения. В осеннем семестре лекции и лабораторные занятия (итог - экзамен), в весеннем - курсовой проект. <br />
<br />
По дисциплине подготовлен [[ЭУМК АП СРНС|электронный учебно-методический комплекс]].<br />
<br />
== Календарный план ==<br />
<br />
<br />
{| class="wikitable"<br />
|-<br />
! Неделя || Даты || Лекция || Лабораторная || Контрольное мероприятие<br />
<br />
|- align=center<br />
| 2 || 07.09<br />
| Основы СРНС. [[media:Receivers_Segments.pdf|Сегменты СРНС]]. [[media:Receivers_PosMethods.pdf|Методы позиционирования]].<br />
| [https://goo.gl/forms/R7Vos1KsJ1taqqXo2 Ошибки позиционирования в городских условиях] <br />
|<br />
<br />
|- align=center<br />
| 3 || 13.09.21-19.09.21<br />
| Навигационные сигналы. <br />
|<br />
| <br />
<br />
|- align=center<br />
| 4 || 20.09.21-26.09.21<br />
| Антенна, МШУ<br />
| <br />
| КМ-1: Модель сигнала ГНСС<br />
<br />
|- align=center<br />
| 5 || 27.09.21-03.10.21<br />
| Радиочастотный блок <br> ([[media:20111008_АП_СРНС_Лекция_3_презентация.pdf|Аналогово-цифровое преобразование. Синтезатор частот. План частот АП СРНС.]] )<br />
| <br />
| <br />
<br />
|- align=center<br />
| 6 || 04.10.21-10.10.21<br />
| Математическая модель коррелятора <br> ([[media:АП_СРНС_corr.pdf|Статистический эквивалент коррелятора]])<br />
|<br />
| КМ-2: Ошибки позиционирования в городских условиях<br />
<br />
|- align=center<br />
| 7 || 11.10.21-17.10.21<br />
| Аппаратная реализация коррелятора <br> ([[media:20111005_АП_СРНС_Лекция_4_презентация.pdf|Принципы построения и структура коррелятора. Цифровой генератор гармонического сигнала и дальномерного кода.]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 8 || 18.10.21-24.10.21<br />
| Следящие системы <br> ([[media:20111215_АП_СРНС_Лекция_8_презентация.pdf|Система слежения за фазой сигнала. Структурная схема ССФ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_9_презентация.pdf|Система слежения за частотой. Структурная схема ССЧ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_10_презентация.pdf|Система слежения за задержкой. Структурная схема ССЗ, дискриминаторы, следящий фильтр. <br> Система слежения за задержкой с поддержкой от ФАП. Комплексный фильтр.]]) <br />
| [https://goo.gl/XruJBM GNSS Planning] <br />
| КМ-3: Статистический эквивалент коррелятора<br />
<br />
|- align=center<br />
| 9 || 25.10.21-31.10.21<br />
| Оценка SNR, детекторы захвата, детекторы CC<br />
| <br />
| <br />
<br />
|- align=center<br />
| 10 || 01.11.21-07.11.21<br />
| Обнаружение сигнала. <br> ([[media:20111005_АП_СРНС_Лекция_5_презентация.pdf|Обнаружение сигнала. Алгоритмы, статистические характеристики обнаружения.]]) <br />
|<br />
| <br />
<br />
|- align=center<br />
| 11 || 08.11.21-14.11.21<br />
| Поиск сигнала <br> ([[media:20111008_АП_СРНС_Лекция_6_презентация.pdf|Поиск сигнала по частоте и задержке. Алгоритмы поиска, быстрый поиск сигнала.]] <br> [[media:20111017_АП_СРНС_Лекция_7_презентация.pdf|Блок быстрого поиска]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 12 || 15.11.21-21.11.21<br />
| Символьная и оверлейная синхронизация <br> <br />
| [[Исследование_коррелятора_АП_СРНС_ГЛОНАСС_с_помощью_имитационной_модели_(лабораторная_работа)|Исследование коррелятора АП СРНС с помощью имитационной модели]]<br />
| КМ-4: Исследование коррелятора АП СРНС ГЛОНАСС с помощью имитационной модели <br />
<br />
|- align=center<br />
| 13 || 22.11.21-28.11.21<br />
| [[media:20111215_АП_СРНС_Лекция_11_презентация.pdf|Демодуляция навигационных данных]]<br />
| <br />
| <br />
<br />
|- align=center<br />
| 14 || 29.11.21-05.12.21<br />
| Кадровая синхронизация, [[media:20111215_АП_СРНС_Лекция_12_презентация.pdf|декодирование]], парсинг<br />
|<br />
| КМ-5: Прогнозирование спутникового созвездия<br />
<br />
|- align=center<br />
| 15 || 08.12.21-12.12.21<br />
| Формирование измерений, расчет положения спутника<br />
|<br />
| <br />
<br />
|- align=center<br />
| 16 || 13.12.21-19.12.21<br />
| Модель наблюдений псевдодальности. <br> [[media:20111128_АП_СРНС_Лекция_14_презентация.pdf|Вторичная обработка измерений. Одношаговый алгоритм решения навигационной задачи.]] <br> [[media:20111215_АП_СРНС_Лекция_16_презентация.pdf|Контроль целостности]]<br />
| Решение навигационной задачи по псевдодальномерным измерениям<br />
| КМ-6: Решение навигационной задачи по псевдодальномерным измерениям<br />
<br />
|- align=center<br />
| 17 || 20.12.21-26.12.21<br />
| Помехоустойчивость АП СРНС<br />
| <br />
| <br />
<br />
|- align=center<br />
| 18 || 27.12.21-02.01.21<br />
| Зачет<br />
|<br />
|<br />
<br />
|}<br />
<br />
[[media:АПСРНС_2021_Списки.ods|Журнал успеваемости]].<br />
<br />
== Правила аттестации ==<br />
<br />
Обязательным условием для получения допуска к экзамену является выполнение всех контрольных мероприятий: сдача двух контрольных и защита 4 лабораторных работ. <br />
<br />
При написании отчетов следует опираться на правила оформления [https://mpei.ru/Science/ScienceDocuments/Documents/Polojenie_2018/0_GOST_7.32-2017.pdf ГОСТ 7.32] (в части форматирования, оформления рисунков, таблиц, списков и т.д.).<br />
<br />
Приемка осуществляется через репозиторий на github на базе проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021].<br />
<br />
== Демо модели ==<br />
<br />
=== Прогноз выходного сигнала коррелятора ===<br />
<br />
Производится обработка сигнала Gps L1 C/A, сформированного лабораторным имитатором сигналов, синхронизированным с приемником. Сигнал перенесен с помощью РЧБ NT1065 на промежуточную частоту <math>f_{if} = 8.54</math> МГц и преобразован многоразрядным АЦП с частотой сэмплирования <math>F_d = 99.375</math> МГц. Установленная на имитаторе мощность обеспечивает уровень отношения сигнал/шум <math>27 + N</math> дБГц, где <math>N</math> - номер вариант по журналу. <br />
<br />
В приемнике производтся корреляционная обработка сигнала, интервал накопления составляет <math>T = 1</math> мс. <br />
<br />
Сигнал имеет сдвиг частоты несущей <math>f_d = 100 N</math> Гц, при этом опорный сигнал коррелятора имеет аналогичный сдвиг <math>f_{d, rep} = f_d</math>. Задержка огибающей известна точно и используется в опорном сигнале <math>\tau = \tau_{rep}</math>.<br />
<br />
Задание: Построить на плоскости I,Q вид множества точек корреляционных сумм, полученных в ходе большого (сотни) числа экспериментов. <br />
<br />
{{Hider|title = Расчет выходного сигнала коррелятора<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
N = 30;<br />
<br />
Fd = 99.375e6;<br />
Td = 1/Fd;<br />
T = 0.001;<br />
fif = 8.34e6;<br />
<br />
fd = 100 * N;<br />
fd_rep = fd;<br />
<br />
phi = 10 * N;<br />
phi_rep = 20 * N;<br />
<br />
qcno_dB = 27 + N;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdn = 50/3;<br />
A = sqrt(qcno * Td) * 2 * stdn; % qcno = A^2 / (4 stdn^2 Td)<br />
<br />
fprintf('A = %f, stdn = %f\n', A, stdn);<br />
<br />
L = fix(T * Fd);<br />
t = (0:(L-1)) * Td;<br />
<br />
PRN_Length = 1023;<br />
PRN = (-1).^(rand(1, PRN_Length) > 0.5);<br />
<br />
tau = 100500e-6;<br />
tau_rep = tau;<br />
<br />
nchip = mod(fix(PRN_Length*(t - tau )/T), PRN_Length) + 1;<br />
nchip_rep = mod(fix(PRN_Length*(t - tau_rep)/T), PRN_Length) + 1;<br />
<br />
Gc = PRN(nchip );<br />
Gc_rep = PRN(nchip_rep);<br />
<br />
So = A * Gc .* cos(2*pi*fif*t + 2*pi*fd *t + deg2rad(phi) );<br />
S_rep_cos = Gc_rep .* cos(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
S_rep_sin = Gc_rep .* sin(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
<br />
K = 1000; I = nan(1, K); Q = nan(1,K);<br />
for k = 1:K<br />
n = randn(1,L)*stdn;<br />
<br />
Gd = (-1).^(rand(1,1) > 0.5);<br />
S = Gd * So;<br />
<br />
y = S + n;<br />
<br />
I(k) = y * S_rep_cos';<br />
Q(k) = y * S_rep_sin';<br />
end<br />
<br />
maxIQ = 1.1*max(abs(I + 1i*Q));<br />
<br />
figure(1);<br />
plot(t*1e3, [y; S; A*Gc]);<br />
xlabel('t, ms')<br />
ylabel('y, S');<br />
grid on<br />
<br />
figure(2);<br />
plot(I, Q, '*')<br />
hold on<br />
plot([-maxIQ maxIQ], [0 0], 'k');<br />
plot([0 0], [-maxIQ maxIQ], 'k');<br />
quiver(-maxIQ, 0, 2*maxIQ, 0, 1, 'k');<br />
quiver(0, -maxIQ, 0, 2*maxIQ, 1, 'k');<br />
hold off<br />
xlabel('I')<br />
ylabel('Q');<br />
axis equal<br />
grid on<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
<br />
=== ЧАП и ФАП на стат эквивалентах ===<br />
<br />
{{Hider|title = Слежение за фазой и частотой<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
T = 0.010;<br />
<br />
Xist = [10; <br />
1];<br />
<br />
Xfilt = [0;<br />
0];<br />
<br />
Xfilt_FLL = [0;<br />
0];<br />
<br />
F = [1 T;<br />
0 1];<br />
<br />
Tmod = 10;<br />
K = fix(Tmod / T);<br />
<br />
G = [0;<br />
1];<br />
<br />
std_ksi = 1.3 * T;<br />
ksi = std_ksi * randn(1, K);<br />
<br />
qcno_dB = 45;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdnIQ = 7;<br />
nI = stdnIQ * randn(1, K);<br />
nQ = stdnIQ * randn(1, K);<br />
A_IQ = sqrt(2*qcno*T) * stdnIQ; <br />
<br />
dF_PLL = 20;<br />
Kfilt_PLL = [ 8/3 * dF_PLL * T;<br />
32/9 * dF_PLL^2 * T];<br />
<br />
dF_FLL = 3;<br />
Kfilt_FLL = [ 8/3 * dF_FLL * T;<br />
32/9 * dF_FLL^2 * T];<br />
<br />
t = (1:K)*T;<br />
phi_ist = nan(1, K);<br />
w_ist = nan(1, K);<br />
phi_filt = nan(1, K);<br />
w_filt = nan(1, K);<br />
phi_filt_FLL = nan(1, K);<br />
w_filt_FLL = nan(1, K);<br />
<br />
phi_corr = 0; Iold = 0; Qold = 0;<br />
for k = 1:K<br />
Xist = F * Xist + G * ksi(k);<br />
<br />
phi_ist(k) = Xist(1);<br />
w_ist(k) = Xist(2);<br />
<br />
% PLL<br />
Xfilt_extr = F*Xfilt;<br />
phi_extr = Xfilt_extr(1);<br />
dPhi = phi_ist(k) - phi_extr;<br />
<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = -Q; <br />
Sd = A_IQ; <br />
<br />
Xfilt = Xfilt_extr + Kfilt_PLL * Ud/Sd;<br />
<br />
phi_filt(k) = Xfilt(1);<br />
w_filt(k) = Xfilt(2);<br />
<br />
% FLL<br />
Xfilt_extr_FLL = F*Xfilt_FLL;<br />
w_extr = Xfilt_extr_FLL(1);<br />
dPhi = phi_ist(k) - phi_corr;<br />
phi_corr = phi_corr + w_extr * T;<br />
dW = w_ist(k) - w_extr;<br />
<br />
I = - A_IQ * cos(dPhi) + nI(k);<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = Q*Iold - I*Qold; <br />
Sd = A_IQ; <br />
Iold = I; Qold = Q;<br />
<br />
Xfilt_FLL = Xfilt_extr_FLL + Kfilt_FLL * Ud/Sd;<br />
<br />
phi_filt_FLL(k) = phi_corr;<br />
w_filt_FLL(k) = Xfilt_FLL(1);<br />
<br />
<br />
end<br />
<br />
figure(1)<br />
subplot(2,1,1)<br />
plot(t, phi_ist/2/pi, t, phi_filt/2/pi, t, phi_filt_FLL/2/pi)<br />
ylabel('\phi, cycles')<br />
subplot(2,1,2)<br />
plot(t, rad2deg(w_ist), t, rad2deg(w_filt), t, rad2deg(w_filt_FLL))<br />
ylabel('\omega, Hz')<br />
xlabel('t, sec')<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
== Вопросы к экзамену ==<br />
<br />
Экзамен проводится в письменной форме: тест, задача и один экзаменационный вопрос ([[media:Вопросы_экз_АП_СРНС.doc|экзаменационные вопросы]]). При подготовке рекомендуется использовать книги по тематике, [[media:2013_ЭУМК_С3.33_Лекции_АП_СРНС.pdf|конспекты лекций]] и презентации.<br />
<br />
== Курсовая работа ==<br />
<br />
Название: '''Расчет траектории движения спутника GPS по данным с демодулятора его сигнала'''<br />
<br />
Курсовая работа по АП СРНС выполняется во втором семестре. В рамках КР студенты знакомятся с рядом инструментов и техник, используемых при разработке навигационных приемников.<br />
<br />
Цель проекта - разработка модулей разбора навигационного сообщения GPS и расчета положения спутника, предназначенных для использования в составе навигационного приемника.<br />
<br />
Требования к разрабатываемому программному модулю:<br />
* требования назначения;<br />
* отсутствие утечек памяти;<br />
* малое время выполнения;<br />
* низкий расход памяти;<br />
* корректное выполнение при аномальных входных данных. <br />
<br />
Для достижения цели выполняется ряд задач, соответствующих этапам проекта и контрольным мероприятиям:<br />
* разработка модуля разбора символов навигационного сообщения<br />
* расчет положения КА в Matlab/Python и его проверка сторонними сервисами;<br />
* реализация модуля расчета положения КА на С/С++ и его тестирование.<br />
<br />
На каждом из этапов действуют следующие правила:<br />
* Взаимодействие осуществляется через github (пул реквесты, комментарии)<br />
* '''Этап сдан тогда, когда принят пул реквест'''<br />
<br />
<br />
<br />
{| class="wikitable"<br />
|+ Варианты заданий:<br />
|-<br />
! Студент !! Номер спутника (варианта) !! Логи !! Примечание<br />
|-<br />
! Антропов Евгений Александрович<br />
| 1 || [[media:2022_KR_01.tar.gz|tar.gz]] || <br />
|-<br />
! Бахолдин Никита Владимирович<br />
| 10 || [[media:2022_KR_10.tar.gz|tar.gz]] || <br />
|-<br />
! Берестнев Владимир Сергеевич<br />
| 13 || [[media:2022_KR_13.tar.gz|tar.gz]] || <br />
|-<br />
! Дубинин Леонид Андреевич<br />
| 15 || [[media:2022_KR_15.tar.gz|tar.gz]] || <br />
|-<br />
! Еловский Никита Станиславович<br />
| 17 || [[media:2022_KR_17.tar.gz|tar.gz]] || <br />
|-<br />
! Иванцова Дарья Николаевна<br />
| 19 || [[media:2022_KR_19.tar.gz|tar.gz]] || <br />
|-<br />
! Капитонов Александр Ильич<br />
| 24 || [[media:2022_KR_24.tar.gz|tar.gz]] || <br />
|-<br />
! Коробков Андрей Юрьевич<br />
| 28 || [[media:2022_KR_28.tar.gz|tar.gz]] || <br />
|-<br />
! Куксин Владислав Александрович<br />
| 30 || [[media:2022_KR_30.tar.gz|tar.gz]] || <br />
|-<br />
! Кусакин Павел Александрович<br />
| || || <br />
|-<br />
! Ливенцов Василий Александрович<br />
| || || <br />
|-<br />
! Михайлов Иван Олегович<br />
| || || <br />
|-<br />
! Муратов Николай Сергеевич<br />
| || || <br />
|-<br />
! Попов Максим Геннадьевич<br />
| || || <br />
|-<br />
! Солнцева Милана Константиновна<br />
| || || <br />
|-<br />
! Танкина Анна Михайловна<br />
| || || <br />
|-<br />
! Цымбал Григорий Романович <br />
| || || <br />
|-<br />
! Чепелев Игорь Игоревич<br />
| || || <br />
|}<br />
<br />
<br />
=== Этап 1. Обработка логов навигационного приемника ===<br />
<br />
'''Дедлайн''': 04.03.21 (устранение замечаний и итоговый мёрдж до 13.03.21)<br />
<br />
Конечная цель всего курсового проекта - получить библиотеку функций на Си++, позволяющую рассчитывать положение спутника GPS по данным с демодулятора его сигнала L1 C/A. <br />
На первом этапе реализуем модуль разбора навигационного сообщения до структуры эфемерид, сравним результаты со сторонней программой.<br />
<br />
В неизвестной локации установлен навигационный приемник, принимающий сигналы GPS L1C/A и логирующий результаты этого приема в формате [https://navis.ru/downloads/SOFT/NV08C_BINR_Protocol_Specification_V13_ENG_10082012.pdf NVS BINR]. <br />
Собранный на пятиминутном интервале файл приложен в архиве под именем BINR.bin, см. таблицу вариантов. <br />
Файл содержит наблюдения псевдодальностей и прочих радионавигационных параметров, демодулированные и разобранные данные навигационного сообщения. <br />
<br />
Для удобства студентов данные демодулятора продублированы в текстовый файл in.txt. Каждая строка файла содержит данные одного сабфрейма одного навигационного сигнала в формате:<br />
<source lang="bash"><br />
1 0 013 0R GpsL1CA # 13 212130404 29 125 53 100010111010101010101010001010010111000011001010010111111000101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100<br />
</source><br />
где ''# 13'' - номер спутника, ''212130404'' порядковый номер сабфрема от старта системы, ''53'' - ID сабфрейма в навигационном сообщении, где в первых трех битах содержится номер сабфрейма в фрейме (5 в данном примере), а далее - номер фрейма в сообщении (6 в данном примере), ''1000101110...'' символы с демодулятора в порядке возрастания времени слева направо. <br />
<br />
Требуется:<br />
# Разработать программу, обрабатывающую файл in.txt и выводящую в файл out.txt таблицу эфемерид для спутника согласно варианту [[media:Screenshot_20220215_221319.png|в заданном формате]].<br />
# Обработать файл BINR.bin с помощью программы RTKNAVI из состава RTKLIB. Определить день и место проведения наблюдений, значения эфемерид для спутника согласно номеру варианта (меню открывается в левом нижнем углу экрана по нажатию на квадрат)<br />
# Сравнить полученные таблицы<br />
# Оформить код программы и разместить на Github<br />
# Оформить отчет по этапу и разместить на Github<br />
# Завести Pull Request<br />
<br />
<br />
Работа осуществляется в репозитории на github на базе [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021]. Для этого:<br />
# Завести, если до сих пор нет, аккаунт на github<br />
# Если ранее не сделано, сделать форк проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021] (маленькая кнопка сверху справа в вэб-интерфейсе)<br />
# Установить на рабочем компьютере git (для выполнения последующих этапов удобнее будет сделать это в ОС GNU/Linux, вероятно, на виртуальной машине)<br />
# Клонировать свой форк на рабочий компьютер (<code>git clone https://github.com/MySuperAccount/gnssrecbasics2021.git</code>)<br />
# Промежуточные и итоговые результаты по первому этапу хранить в каталоге processing (<code>git pull; git add <files>; git commit -m "Сделал то-то то-то"; git push</code>)<br />
# По результатам первого этапа завести Pull Request в исходный проект '''в ветку, название которой совпадает с вашей фамилией''' (кнопка наверху в вэб-интерфейсе)<br />
# Устранить все замечания, добиться принятия Pull Request'а. <br />
<br />
Этап сдан тогда, когда ваш ПР принят.<br />
<br />
=== Этап 2. Моделирование ===<br />
<br />
'''Дедлайн''': 13.04.22 (исправления замечаний до 20.04.22)<br />
<br />
Эфемериды - параметры некоторой модели движения спутника. <br />
В разных ГНСС эти модели разные, а значит отличается и формат эфемерид, и алгоритмы расчета положения спутника.<br />
<br />
Одна из самых простых и удобных моделей - [http://navipedia.org/index.php/GPS_and_Galileo_Satellite_Coordinates_Computation в системе GPS].<br />
<br />
Требуется реализовать на языке Matlab или Python функцию расчета положения спутника GPS на заданный момент по шкале времени UTC.<br />
В качестве эфемерид использовать данные, полученные на предыдущем этапе. <br />
<br />
Построить трехмерные графики множества положений спутника GPS с системным номером, соответствующим номеру студента по списку. Графики в двух вариантах: в СК ECEF WGS84 и соответствующей ей инерциальной СК. Положения должны соответствовать суточному интервалу на дне формирования наблюдений, определенном на предыдущем этапе. Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал. <br />
<br />
Используя оценку местоположения с предыдущего этапа, построить Sky Plot за указанный временной интервал и сравнить результат с [http://www.trimble.com/gnssplanningonline/ Trimble GNSS Planning Online].<br />
<br />
Оформить отчет по результатам этапа:<br />
# Реализация в Matlab или Python (описание модели и её листинг)<br />
# Таблица использованных эфемерид<br />
# Трехмерные графики положений спутника в ECEF и ECI (не забудьте подписать оси, изобразите соответствующую Земле сферу в начале СК)<br />
# Расчётный и полученный в GNSS Planing Online SkyView<br />
<br />
Работы по данному этапу осуществляются в каталоге simulation.<br />
Правила приемки этапа те же, что и на первом этапе.<br />
<br />
=== Этап 3. Реализация === <br />
<br />
'''Дедлайн''': 11.05.21 (исправления до 18.05.21)<br />
<br />
Требуется разработать на языке С/С++ функцию расчета положения спутника GPS на заданное время по шкале UTC, минимизируя время её исполнения и количество затрачиваемой оперативной памяти. <br />
Вызов функции не должен приводить к выбросу исключений или утечкам памяти при любом наборе входных данных.<br />
<br />
Функция расчета положения спутника в Matlab/Python относительно проста, т.к. доступны библиотеки линейной алгебры и решения уравнений. <br />
Но при разработке встраиваемого ПО приходится сохранять лицензионную частоту, минимизировать вычислительную нагрузку и затраты памяти. <br />
Поэтому отобразить модель из Matlab/Python в прошивку приемника дословно, как правило, не получается. В рассматриваемом примере потребуется, как минимум, выполнить свою реализацию решения трансцендентного уравнения. <br />
<br />
Программный модуль должен сопровождаться unit-тестами (например, используя Check):<br />
* Тесты функции решения уравнения Кеплера<br />
* Тест расчетного положения спутника в сравнении с Matlab/Python с шагом 0.1 секунды. <br />
<br />
Во время второго теста должно вычисляться и выводиться средняя длительность исполнения функции. <br />
Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал (как на предыдущем этапе). <br />
<br />
Требуется провести проверку на утечки памяти (например, с помощью утилиты valgrind).<br />
<br />
Оформить отчет по результатам курсового проекта. <br />
В качестве первых двух глав использовать отчёты с предыдущих этапов, в третьей главе отразить результаты этого этапа:<br />
# Код реализации<br />
# Вывод тестов, включая анализ времени исполнения<br />
# Вывод проверок на утечку памяти<br />
# Вывод по этапу <br />
# Заключение по проекту<br />
<br />
Программа должна компилироваться gcc и использовать в качестве входных данных in.txt с первого этапа. <br />
Результат должен записываться в out.txt в строки формата, определенного на втором этапе. <br />
<br />
Работы по третьему этапу следует вести в директории libgpssvpos.<br />
<br />
Правила приемки этапа те же.<br />
<br />
== Курсовая прошлых лет ==<br />
<br />
Задания в [[Курсовой проект АП СРНС 2020|2020]], в [[Курсовая работа АП СРНС 2021|2021]].<br />
<br />
[[Категория:АП СРНС (дисциплина)]]</div>
Korogodin
https://www.srns.ru/wiki/%D0%90%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0_%D0%BF%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D1%81%D0%BF%D1%83%D1%82%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2%D1%8B%D1%85_%D1%80%D0%B0%D0%B4%D0%B8%D0%BE%D0%BD%D0%B0%D0%B2%D0%B8%D0%B3%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_(%D0%B4%D0%B8%D1%81%D1%86%D0%B8%D0%BF%D0%BB%D0%B8%D0%BD%D0%B0)
Аппаратура потребителей спутниковых радионавигационных систем (дисциплина)
2022-02-15T19:30:23Z
<p>Korogodin: /* Этап 1. Обработка логов навигационного приемника */</p>
<hr />
<div>Дисциплина "Аппаратура потребителей спутниковых радионавигационных систем" входит в вариативную часть общенаучного цикла занятий [http://beta.mpei.ru/Education/educationalprograms/rt/Pages/default.aspx учебного плана] подготовки специалистов по направлению 11.05.01 "Радиоэлектронные системы и комплексы". <br />
<br />
Преподается осеннем и весеннем семестрах пятого года обучения. В осеннем семестре лекции и лабораторные занятия (итог - экзамен), в весеннем - курсовой проект. <br />
<br />
По дисциплине подготовлен [[ЭУМК АП СРНС|электронный учебно-методический комплекс]].<br />
<br />
== Календарный план ==<br />
<br />
<br />
{| class="wikitable"<br />
|-<br />
! Неделя || Даты || Лекция || Лабораторная || Контрольное мероприятие<br />
<br />
|- align=center<br />
| 2 || 07.09<br />
| Основы СРНС. [[media:Receivers_Segments.pdf|Сегменты СРНС]]. [[media:Receivers_PosMethods.pdf|Методы позиционирования]].<br />
| [https://goo.gl/forms/R7Vos1KsJ1taqqXo2 Ошибки позиционирования в городских условиях] <br />
|<br />
<br />
|- align=center<br />
| 3 || 13.09.21-19.09.21<br />
| Навигационные сигналы. <br />
|<br />
| <br />
<br />
|- align=center<br />
| 4 || 20.09.21-26.09.21<br />
| Антенна, МШУ<br />
| <br />
| КМ-1: Модель сигнала ГНСС<br />
<br />
|- align=center<br />
| 5 || 27.09.21-03.10.21<br />
| Радиочастотный блок <br> ([[media:20111008_АП_СРНС_Лекция_3_презентация.pdf|Аналогово-цифровое преобразование. Синтезатор частот. План частот АП СРНС.]] )<br />
| <br />
| <br />
<br />
|- align=center<br />
| 6 || 04.10.21-10.10.21<br />
| Математическая модель коррелятора <br> ([[media:АП_СРНС_corr.pdf|Статистический эквивалент коррелятора]])<br />
|<br />
| КМ-2: Ошибки позиционирования в городских условиях<br />
<br />
|- align=center<br />
| 7 || 11.10.21-17.10.21<br />
| Аппаратная реализация коррелятора <br> ([[media:20111005_АП_СРНС_Лекция_4_презентация.pdf|Принципы построения и структура коррелятора. Цифровой генератор гармонического сигнала и дальномерного кода.]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 8 || 18.10.21-24.10.21<br />
| Следящие системы <br> ([[media:20111215_АП_СРНС_Лекция_8_презентация.pdf|Система слежения за фазой сигнала. Структурная схема ССФ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_9_презентация.pdf|Система слежения за частотой. Структурная схема ССЧ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_10_презентация.pdf|Система слежения за задержкой. Структурная схема ССЗ, дискриминаторы, следящий фильтр. <br> Система слежения за задержкой с поддержкой от ФАП. Комплексный фильтр.]]) <br />
| [https://goo.gl/XruJBM GNSS Planning] <br />
| КМ-3: Статистический эквивалент коррелятора<br />
<br />
|- align=center<br />
| 9 || 25.10.21-31.10.21<br />
| Оценка SNR, детекторы захвата, детекторы CC<br />
| <br />
| <br />
<br />
|- align=center<br />
| 10 || 01.11.21-07.11.21<br />
| Обнаружение сигнала. <br> ([[media:20111005_АП_СРНС_Лекция_5_презентация.pdf|Обнаружение сигнала. Алгоритмы, статистические характеристики обнаружения.]]) <br />
|<br />
| <br />
<br />
|- align=center<br />
| 11 || 08.11.21-14.11.21<br />
| Поиск сигнала <br> ([[media:20111008_АП_СРНС_Лекция_6_презентация.pdf|Поиск сигнала по частоте и задержке. Алгоритмы поиска, быстрый поиск сигнала.]] <br> [[media:20111017_АП_СРНС_Лекция_7_презентация.pdf|Блок быстрого поиска]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 12 || 15.11.21-21.11.21<br />
| Символьная и оверлейная синхронизация <br> <br />
| [[Исследование_коррелятора_АП_СРНС_ГЛОНАСС_с_помощью_имитационной_модели_(лабораторная_работа)|Исследование коррелятора АП СРНС с помощью имитационной модели]]<br />
| КМ-4: Исследование коррелятора АП СРНС ГЛОНАСС с помощью имитационной модели <br />
<br />
|- align=center<br />
| 13 || 22.11.21-28.11.21<br />
| [[media:20111215_АП_СРНС_Лекция_11_презентация.pdf|Демодуляция навигационных данных]]<br />
| <br />
| <br />
<br />
|- align=center<br />
| 14 || 29.11.21-05.12.21<br />
| Кадровая синхронизация, [[media:20111215_АП_СРНС_Лекция_12_презентация.pdf|декодирование]], парсинг<br />
|<br />
| КМ-5: Прогнозирование спутникового созвездия<br />
<br />
|- align=center<br />
| 15 || 08.12.21-12.12.21<br />
| Формирование измерений, расчет положения спутника<br />
|<br />
| <br />
<br />
|- align=center<br />
| 16 || 13.12.21-19.12.21<br />
| Модель наблюдений псевдодальности. <br> [[media:20111128_АП_СРНС_Лекция_14_презентация.pdf|Вторичная обработка измерений. Одношаговый алгоритм решения навигационной задачи.]] <br> [[media:20111215_АП_СРНС_Лекция_16_презентация.pdf|Контроль целостности]]<br />
| Решение навигационной задачи по псевдодальномерным измерениям<br />
| КМ-6: Решение навигационной задачи по псевдодальномерным измерениям<br />
<br />
|- align=center<br />
| 17 || 20.12.21-26.12.21<br />
| Помехоустойчивость АП СРНС<br />
| <br />
| <br />
<br />
|- align=center<br />
| 18 || 27.12.21-02.01.21<br />
| Зачет<br />
|<br />
|<br />
<br />
|}<br />
<br />
[[media:АПСРНС_2021_Списки.ods|Журнал успеваемости]].<br />
<br />
== Правила аттестации ==<br />
<br />
Обязательным условием для получения допуска к экзамену является выполнение всех контрольных мероприятий: сдача двух контрольных и защита 4 лабораторных работ. <br />
<br />
При написании отчетов следует опираться на правила оформления [https://mpei.ru/Science/ScienceDocuments/Documents/Polojenie_2018/0_GOST_7.32-2017.pdf ГОСТ 7.32] (в части форматирования, оформления рисунков, таблиц, списков и т.д.).<br />
<br />
Приемка осуществляется через репозиторий на github на базе проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021].<br />
<br />
== Демо модели ==<br />
<br />
=== Прогноз выходного сигнала коррелятора ===<br />
<br />
Производится обработка сигнала Gps L1 C/A, сформированного лабораторным имитатором сигналов, синхронизированным с приемником. Сигнал перенесен с помощью РЧБ NT1065 на промежуточную частоту <math>f_{if} = 8.54</math> МГц и преобразован многоразрядным АЦП с частотой сэмплирования <math>F_d = 99.375</math> МГц. Установленная на имитаторе мощность обеспечивает уровень отношения сигнал/шум <math>27 + N</math> дБГц, где <math>N</math> - номер вариант по журналу. <br />
<br />
В приемнике производтся корреляционная обработка сигнала, интервал накопления составляет <math>T = 1</math> мс. <br />
<br />
Сигнал имеет сдвиг частоты несущей <math>f_d = 100 N</math> Гц, при этом опорный сигнал коррелятора имеет аналогичный сдвиг <math>f_{d, rep} = f_d</math>. Задержка огибающей известна точно и используется в опорном сигнале <math>\tau = \tau_{rep}</math>.<br />
<br />
Задание: Построить на плоскости I,Q вид множества точек корреляционных сумм, полученных в ходе большого (сотни) числа экспериментов. <br />
<br />
{{Hider|title = Расчет выходного сигнала коррелятора<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
N = 30;<br />
<br />
Fd = 99.375e6;<br />
Td = 1/Fd;<br />
T = 0.001;<br />
fif = 8.34e6;<br />
<br />
fd = 100 * N;<br />
fd_rep = fd;<br />
<br />
phi = 10 * N;<br />
phi_rep = 20 * N;<br />
<br />
qcno_dB = 27 + N;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdn = 50/3;<br />
A = sqrt(qcno * Td) * 2 * stdn; % qcno = A^2 / (4 stdn^2 Td)<br />
<br />
fprintf('A = %f, stdn = %f\n', A, stdn);<br />
<br />
L = fix(T * Fd);<br />
t = (0:(L-1)) * Td;<br />
<br />
PRN_Length = 1023;<br />
PRN = (-1).^(rand(1, PRN_Length) > 0.5);<br />
<br />
tau = 100500e-6;<br />
tau_rep = tau;<br />
<br />
nchip = mod(fix(PRN_Length*(t - tau )/T), PRN_Length) + 1;<br />
nchip_rep = mod(fix(PRN_Length*(t - tau_rep)/T), PRN_Length) + 1;<br />
<br />
Gc = PRN(nchip );<br />
Gc_rep = PRN(nchip_rep);<br />
<br />
So = A * Gc .* cos(2*pi*fif*t + 2*pi*fd *t + deg2rad(phi) );<br />
S_rep_cos = Gc_rep .* cos(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
S_rep_sin = Gc_rep .* sin(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
<br />
K = 1000; I = nan(1, K); Q = nan(1,K);<br />
for k = 1:K<br />
n = randn(1,L)*stdn;<br />
<br />
Gd = (-1).^(rand(1,1) > 0.5);<br />
S = Gd * So;<br />
<br />
y = S + n;<br />
<br />
I(k) = y * S_rep_cos';<br />
Q(k) = y * S_rep_sin';<br />
end<br />
<br />
maxIQ = 1.1*max(abs(I + 1i*Q));<br />
<br />
figure(1);<br />
plot(t*1e3, [y; S; A*Gc]);<br />
xlabel('t, ms')<br />
ylabel('y, S');<br />
grid on<br />
<br />
figure(2);<br />
plot(I, Q, '*')<br />
hold on<br />
plot([-maxIQ maxIQ], [0 0], 'k');<br />
plot([0 0], [-maxIQ maxIQ], 'k');<br />
quiver(-maxIQ, 0, 2*maxIQ, 0, 1, 'k');<br />
quiver(0, -maxIQ, 0, 2*maxIQ, 1, 'k');<br />
hold off<br />
xlabel('I')<br />
ylabel('Q');<br />
axis equal<br />
grid on<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
<br />
=== ЧАП и ФАП на стат эквивалентах ===<br />
<br />
{{Hider|title = Слежение за фазой и частотой<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
T = 0.010;<br />
<br />
Xist = [10; <br />
1];<br />
<br />
Xfilt = [0;<br />
0];<br />
<br />
Xfilt_FLL = [0;<br />
0];<br />
<br />
F = [1 T;<br />
0 1];<br />
<br />
Tmod = 10;<br />
K = fix(Tmod / T);<br />
<br />
G = [0;<br />
1];<br />
<br />
std_ksi = 1.3 * T;<br />
ksi = std_ksi * randn(1, K);<br />
<br />
qcno_dB = 45;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdnIQ = 7;<br />
nI = stdnIQ * randn(1, K);<br />
nQ = stdnIQ * randn(1, K);<br />
A_IQ = sqrt(2*qcno*T) * stdnIQ; <br />
<br />
dF_PLL = 20;<br />
Kfilt_PLL = [ 8/3 * dF_PLL * T;<br />
32/9 * dF_PLL^2 * T];<br />
<br />
dF_FLL = 3;<br />
Kfilt_FLL = [ 8/3 * dF_FLL * T;<br />
32/9 * dF_FLL^2 * T];<br />
<br />
t = (1:K)*T;<br />
phi_ist = nan(1, K);<br />
w_ist = nan(1, K);<br />
phi_filt = nan(1, K);<br />
w_filt = nan(1, K);<br />
phi_filt_FLL = nan(1, K);<br />
w_filt_FLL = nan(1, K);<br />
<br />
phi_corr = 0; Iold = 0; Qold = 0;<br />
for k = 1:K<br />
Xist = F * Xist + G * ksi(k);<br />
<br />
phi_ist(k) = Xist(1);<br />
w_ist(k) = Xist(2);<br />
<br />
% PLL<br />
Xfilt_extr = F*Xfilt;<br />
phi_extr = Xfilt_extr(1);<br />
dPhi = phi_ist(k) - phi_extr;<br />
<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = -Q; <br />
Sd = A_IQ; <br />
<br />
Xfilt = Xfilt_extr + Kfilt_PLL * Ud/Sd;<br />
<br />
phi_filt(k) = Xfilt(1);<br />
w_filt(k) = Xfilt(2);<br />
<br />
% FLL<br />
Xfilt_extr_FLL = F*Xfilt_FLL;<br />
w_extr = Xfilt_extr_FLL(1);<br />
dPhi = phi_ist(k) - phi_corr;<br />
phi_corr = phi_corr + w_extr * T;<br />
dW = w_ist(k) - w_extr;<br />
<br />
I = - A_IQ * cos(dPhi) + nI(k);<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = Q*Iold - I*Qold; <br />
Sd = A_IQ; <br />
Iold = I; Qold = Q;<br />
<br />
Xfilt_FLL = Xfilt_extr_FLL + Kfilt_FLL * Ud/Sd;<br />
<br />
phi_filt_FLL(k) = phi_corr;<br />
w_filt_FLL(k) = Xfilt_FLL(1);<br />
<br />
<br />
end<br />
<br />
figure(1)<br />
subplot(2,1,1)<br />
plot(t, phi_ist/2/pi, t, phi_filt/2/pi, t, phi_filt_FLL/2/pi)<br />
ylabel('\phi, cycles')<br />
subplot(2,1,2)<br />
plot(t, rad2deg(w_ist), t, rad2deg(w_filt), t, rad2deg(w_filt_FLL))<br />
ylabel('\omega, Hz')<br />
xlabel('t, sec')<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
== Вопросы к экзамену ==<br />
<br />
Экзамен проводится в письменной форме: тест, задача и один экзаменационный вопрос ([[media:Вопросы_экз_АП_СРНС.doc|экзаменационные вопросы]]). При подготовке рекомендуется использовать книги по тематике, [[media:2013_ЭУМК_С3.33_Лекции_АП_СРНС.pdf|конспекты лекций]] и презентации.<br />
<br />
== Курсовая работа ==<br />
<br />
Название: '''Расчет траектории движения спутника GPS по данным с демодулятора его сигнала'''<br />
<br />
Курсовая работа по АП СРНС выполняется во втором семестре. В рамках КР студенты знакомятся с рядом инструментов и техник, используемых при разработке навигационных приемников.<br />
<br />
Цель проекта - разработка модулей разбора навигационного сообщения GPS и расчета положения спутника, предназначенных для использования в составе навигационного приемника.<br />
<br />
Требования к разрабатываемому программному модулю:<br />
* требования назначения;<br />
* отсутствие утечек памяти;<br />
* малое время выполнения;<br />
* низкий расход памяти;<br />
* корректное выполнение при аномальных входных данных. <br />
<br />
Для достижения цели выполняется ряд задач, соответствующих этапам проекта и контрольным мероприятиям:<br />
* разработка модуля разбора символов навигационного сообщения<br />
* расчет положения КА в Matlab/Python и его проверка сторонними сервисами;<br />
* реализация модуля расчета положения КА на С/С++ и его тестирование.<br />
<br />
На каждом из этапов действуют следующие правила:<br />
* Взаимодействие осуществляется через github (пул реквесты, комментарии)<br />
* '''Этап сдан тогда, когда принят пул реквест'''<br />
<br />
<br />
<br />
{| class="wikitable"<br />
|+ Варианты заданий:<br />
|-<br />
! Студент !! Номер спутника (варианта) !! Логи !! Примечание<br />
|-<br />
! Антропов Евгений Александрович<br />
| 1 || [[media:2022_KR_01.tar.gz|tar.gz]] || <br />
|-<br />
! Бахолдин Никита Владимирович<br />
| 10 || [[media:2022_KR_10.tar.gz|tar.gz]] || <br />
|-<br />
! Берестнев Владимир Сергеевич<br />
| 13 || [[media:2022_KR_13.tar.gz|tar.gz]] || <br />
|-<br />
! Дубинин Леонид Андреевич<br />
| 15 || [[media:2022_KR_15.tar.gz|tar.gz]] || <br />
|-<br />
! Еловский Никита Станиславович<br />
| 17 || [[media:2022_KR_17.tar.gz|tar.gz]] || <br />
|-<br />
! Иванцова Дарья Николаевна<br />
| 19 || [[media:2022_KR_19.tar.gz|tar.gz]] || <br />
|-<br />
! Капитонов Александр Ильич<br />
| 24 || [[media:2022_KR_24.tar.gz|tar.gz]] || <br />
|-<br />
! Коробков Андрей Юрьевич<br />
| 28 || [[media:2022_KR_28.tar.gz|tar.gz]] || <br />
|-<br />
! Куксин Владислав Александрович<br />
| 30 || [[media:2022_KR_30.tar.gz|tar.gz]] || <br />
|-<br />
! Кусакин Павел Александрович<br />
| || || <br />
|-<br />
! Ливенцов Василий Александрович<br />
| || || <br />
|-<br />
! Михайлов Иван Олегович<br />
| || || <br />
|-<br />
! Муратов Николай Сергеевич<br />
| || || <br />
|-<br />
! Попов Максим Геннадьевич<br />
| || || <br />
|-<br />
! Солнцева Милана Константиновна<br />
| || || <br />
|-<br />
! Танкина Анна Михайловна<br />
| || || <br />
|-<br />
! Цымбал Григорий Романович <br />
| || || <br />
|-<br />
! Чепелев Игорь Игоревич<br />
| || || <br />
|}<br />
<br />
<br />
=== Этап 1. Обработка логов навигационного приемника ===<br />
<br />
'''Дедлайн''': 04.03.21 (устранение замечаний и итоговый мёрдж до 13.03.21)<br />
<br />
Конечная цель всего курсового проекта - получить библиотеку функций на Си++, позволяющую рассчитывать положение спутника GPS по данным с демодулятора его сигнала L1 C/A. <br />
На первом этапе реализуем модуль разбора навигационного сообщения до структуры эфемерид, сравним результаты со сторонней программой.<br />
<br />
В неизвестной локации установлен навигационный приемник, принимающий сигналы GPS L1C/A и логирующий результаты этого приема в формате [https://navis.ru/downloads/SOFT/NV08C_BINR_Protocol_Specification_V13_ENG_10082012.pdf NVS BINR]. <br />
Собранный на пятиминутном интервале файл приложен в архиве под именем BINR.bin, см. таблицу вариантов. <br />
Файл содержит наблюдения псевдодальностей и прочих радионавигационных параметров, демодулированные и разобранные данные навигационного сообщения. <br />
<br />
Для удобства студентов данные демодулятора продублированы в текстовый файл in.txt. Каждая строка файла содержит данные одного сабфрейма одного навигационного сигнала в формате:<br />
<source lang="bash"><br />
1 0 013 0R GpsL1CA # 13 212130404 29 125 53 100010111010101010101010001010010111000011001010010111111000101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100<br />
</source><br />
где ''# 13'' - номер спутника, ``212130404`` порядковый номер сабфрема от старта системы, ``53`` - ID сабфрейма в навигационном сообщении, где в первых трех битах содержится номер сабфрейма в фрейме (5 в данном примере), а далее - номер фрейма в сообщении (6 в данном примере), ''1000101110...'' символы с демодулятора в порядке возрастания времени слева направо. <br />
<br />
Требуется:<br />
# Разработать программу, обрабатывающую файл in.txt и выводящую в файл out.txt таблицу эфемерид для спутника согласно варианту [[media:Screenshot_20220215_221319.png|в заданном формате]].<br />
# Обработать файл BINR.bin с помощью программы RTKNAVI из состава RTKLIB. Определить день и место проведения наблюдений, значения эфемерид для спутника согласно номеру варианта (меню открывается в левом нижнем углу экрана по нажатию на квадрат)<br />
# Сравнить полученные таблицы<br />
# Оформить код программы и разместить на Github<br />
# Оформить отчет по этапу и разместить на Github<br />
# Завести Pull Request<br />
<br />
<br />
Работа осуществляется в репозитории на github на базе [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021]. Для этого:<br />
# Завести, если до сих пор нет, аккаунт на github<br />
# Если ранее не сделано, сделать форк проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021] (маленькая кнопка сверху справа в вэб-интерфейсе)<br />
# Установить на рабочем компьютере git (для выполнения последующих этапов удобнее будет сделать это в ОС GNU/Linux, вероятно, на виртуальной машине)<br />
# Клонировать свой форк на рабочий компьютер (<code>git clone https://github.com/MySuperAccount/gnssrecbasics2021.git</code>)<br />
# Промежуточные и итоговые результаты по первому этапу хранить в каталоге processing (<code>git pull; git add <files>; git commit -m "Сделал то-то то-то"; git push</code>)<br />
# По результатам первого этапа завести Pull Request в исходный проект '''в ветку, название которой совпадает с вашей фамилией''' (кнопка наверху в вэб-интерфейсе)<br />
# Устранить все замечания, добиться принятия Pull Request'а. <br />
<br />
Этап сдан тогда, когда ваш ПР принят.<br />
<br />
=== Этап 2. Моделирование ===<br />
<br />
'''Дедлайн''': 13.04.22 (исправления замечаний до 20.04.22)<br />
<br />
Эфемериды - параметры некоторой модели движения спутника. <br />
В разных ГНСС эти модели разные, а значит отличается и формат эфемерид, и алгоритмы расчета положения спутника.<br />
<br />
Одна из самых простых и удобных моделей - [http://navipedia.org/index.php/GPS_and_Galileo_Satellite_Coordinates_Computation в системе GPS].<br />
<br />
Требуется реализовать на языке Matlab или Python функцию расчета положения спутника GPS на заданный момент по шкале времени UTC.<br />
В качестве эфемерид использовать данные, полученные на предыдущем этапе. <br />
<br />
Построить трехмерные графики множества положений спутника GPS с системным номером, соответствующим номеру студента по списку. Графики в двух вариантах: в СК ECEF WGS84 и соответствующей ей инерциальной СК. Положения должны соответствовать суточному интервалу на дне формирования наблюдений, определенном на предыдущем этапе. Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал. <br />
<br />
Используя оценку местоположения с предыдущего этапа, построить Sky Plot за указанный временной интервал и сравнить результат с [http://www.trimble.com/gnssplanningonline/ Trimble GNSS Planning Online].<br />
<br />
Оформить отчет по результатам этапа:<br />
# Реализация в Matlab или Python (описание модели и её листинг)<br />
# Таблица использованных эфемерид<br />
# Трехмерные графики положений спутника в ECEF и ECI (не забудьте подписать оси, изобразите соответствующую Земле сферу в начале СК)<br />
# Расчётный и полученный в GNSS Planing Online SkyView<br />
<br />
Работы по данному этапу осуществляются в каталоге simulation.<br />
Правила приемки этапа те же, что и на первом этапе.<br />
<br />
=== Этап 3. Реализация === <br />
<br />
'''Дедлайн''': 11.05.21 (исправления до 18.05.21)<br />
<br />
Требуется разработать на языке С/С++ функцию расчета положения спутника GPS на заданное время по шкале UTC, минимизируя время её исполнения и количество затрачиваемой оперативной памяти. <br />
Вызов функции не должен приводить к выбросу исключений или утечкам памяти при любом наборе входных данных.<br />
<br />
Функция расчета положения спутника в Matlab/Python относительно проста, т.к. доступны библиотеки линейной алгебры и решения уравнений. <br />
Но при разработке встраиваемого ПО приходится сохранять лицензионную частоту, минимизировать вычислительную нагрузку и затраты памяти. <br />
Поэтому отобразить модель из Matlab/Python в прошивку приемника дословно, как правило, не получается. В рассматриваемом примере потребуется, как минимум, выполнить свою реализацию решения трансцендентного уравнения. <br />
<br />
Программный модуль должен сопровождаться unit-тестами (например, используя Check):<br />
* Тесты функции решения уравнения Кеплера<br />
* Тест расчетного положения спутника в сравнении с Matlab/Python с шагом 0.1 секунды. <br />
<br />
Во время второго теста должно вычисляться и выводиться средняя длительность исполнения функции. <br />
Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал (как на предыдущем этапе). <br />
<br />
Требуется провести проверку на утечки памяти (например, с помощью утилиты valgrind).<br />
<br />
Оформить отчет по результатам курсового проекта. <br />
В качестве первых двух глав использовать отчёты с предыдущих этапов, в третьей главе отразить результаты этого этапа:<br />
# Код реализации<br />
# Вывод тестов, включая анализ времени исполнения<br />
# Вывод проверок на утечку памяти<br />
# Вывод по этапу <br />
# Заключение по проекту<br />
<br />
Программа должна компилироваться gcc и использовать в качестве входных данных in.txt с первого этапа. <br />
Результат должен записываться в out.txt в строки формата, определенного на втором этапе. <br />
<br />
Работы по третьему этапу следует вести в директории libgpssvpos.<br />
<br />
Правила приемки этапа те же.<br />
<br />
== Курсовая прошлых лет ==<br />
<br />
Задания в [[Курсовой проект АП СРНС 2020|2020]], в [[Курсовая работа АП СРНС 2021|2021]].<br />
<br />
[[Категория:АП СРНС (дисциплина)]]</div>
Korogodin
https://www.srns.ru/wiki/%D0%90%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0_%D0%BF%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D1%81%D0%BF%D1%83%D1%82%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2%D1%8B%D1%85_%D1%80%D0%B0%D0%B4%D0%B8%D0%BE%D0%BD%D0%B0%D0%B2%D0%B8%D0%B3%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_(%D0%B4%D0%B8%D1%81%D1%86%D0%B8%D0%BF%D0%BB%D0%B8%D0%BD%D0%B0)
Аппаратура потребителей спутниковых радионавигационных систем (дисциплина)
2022-02-15T19:29:40Z
<p>Korogodin: /* Этап 3. Реализация */</p>
<hr />
<div>Дисциплина "Аппаратура потребителей спутниковых радионавигационных систем" входит в вариативную часть общенаучного цикла занятий [http://beta.mpei.ru/Education/educationalprograms/rt/Pages/default.aspx учебного плана] подготовки специалистов по направлению 11.05.01 "Радиоэлектронные системы и комплексы". <br />
<br />
Преподается осеннем и весеннем семестрах пятого года обучения. В осеннем семестре лекции и лабораторные занятия (итог - экзамен), в весеннем - курсовой проект. <br />
<br />
По дисциплине подготовлен [[ЭУМК АП СРНС|электронный учебно-методический комплекс]].<br />
<br />
== Календарный план ==<br />
<br />
<br />
{| class="wikitable"<br />
|-<br />
! Неделя || Даты || Лекция || Лабораторная || Контрольное мероприятие<br />
<br />
|- align=center<br />
| 2 || 07.09<br />
| Основы СРНС. [[media:Receivers_Segments.pdf|Сегменты СРНС]]. [[media:Receivers_PosMethods.pdf|Методы позиционирования]].<br />
| [https://goo.gl/forms/R7Vos1KsJ1taqqXo2 Ошибки позиционирования в городских условиях] <br />
|<br />
<br />
|- align=center<br />
| 3 || 13.09.21-19.09.21<br />
| Навигационные сигналы. <br />
|<br />
| <br />
<br />
|- align=center<br />
| 4 || 20.09.21-26.09.21<br />
| Антенна, МШУ<br />
| <br />
| КМ-1: Модель сигнала ГНСС<br />
<br />
|- align=center<br />
| 5 || 27.09.21-03.10.21<br />
| Радиочастотный блок <br> ([[media:20111008_АП_СРНС_Лекция_3_презентация.pdf|Аналогово-цифровое преобразование. Синтезатор частот. План частот АП СРНС.]] )<br />
| <br />
| <br />
<br />
|- align=center<br />
| 6 || 04.10.21-10.10.21<br />
| Математическая модель коррелятора <br> ([[media:АП_СРНС_corr.pdf|Статистический эквивалент коррелятора]])<br />
|<br />
| КМ-2: Ошибки позиционирования в городских условиях<br />
<br />
|- align=center<br />
| 7 || 11.10.21-17.10.21<br />
| Аппаратная реализация коррелятора <br> ([[media:20111005_АП_СРНС_Лекция_4_презентация.pdf|Принципы построения и структура коррелятора. Цифровой генератор гармонического сигнала и дальномерного кода.]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 8 || 18.10.21-24.10.21<br />
| Следящие системы <br> ([[media:20111215_АП_СРНС_Лекция_8_презентация.pdf|Система слежения за фазой сигнала. Структурная схема ССФ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_9_презентация.pdf|Система слежения за частотой. Структурная схема ССЧ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_10_презентация.pdf|Система слежения за задержкой. Структурная схема ССЗ, дискриминаторы, следящий фильтр. <br> Система слежения за задержкой с поддержкой от ФАП. Комплексный фильтр.]]) <br />
| [https://goo.gl/XruJBM GNSS Planning] <br />
| КМ-3: Статистический эквивалент коррелятора<br />
<br />
|- align=center<br />
| 9 || 25.10.21-31.10.21<br />
| Оценка SNR, детекторы захвата, детекторы CC<br />
| <br />
| <br />
<br />
|- align=center<br />
| 10 || 01.11.21-07.11.21<br />
| Обнаружение сигнала. <br> ([[media:20111005_АП_СРНС_Лекция_5_презентация.pdf|Обнаружение сигнала. Алгоритмы, статистические характеристики обнаружения.]]) <br />
|<br />
| <br />
<br />
|- align=center<br />
| 11 || 08.11.21-14.11.21<br />
| Поиск сигнала <br> ([[media:20111008_АП_СРНС_Лекция_6_презентация.pdf|Поиск сигнала по частоте и задержке. Алгоритмы поиска, быстрый поиск сигнала.]] <br> [[media:20111017_АП_СРНС_Лекция_7_презентация.pdf|Блок быстрого поиска]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 12 || 15.11.21-21.11.21<br />
| Символьная и оверлейная синхронизация <br> <br />
| [[Исследование_коррелятора_АП_СРНС_ГЛОНАСС_с_помощью_имитационной_модели_(лабораторная_работа)|Исследование коррелятора АП СРНС с помощью имитационной модели]]<br />
| КМ-4: Исследование коррелятора АП СРНС ГЛОНАСС с помощью имитационной модели <br />
<br />
|- align=center<br />
| 13 || 22.11.21-28.11.21<br />
| [[media:20111215_АП_СРНС_Лекция_11_презентация.pdf|Демодуляция навигационных данных]]<br />
| <br />
| <br />
<br />
|- align=center<br />
| 14 || 29.11.21-05.12.21<br />
| Кадровая синхронизация, [[media:20111215_АП_СРНС_Лекция_12_презентация.pdf|декодирование]], парсинг<br />
|<br />
| КМ-5: Прогнозирование спутникового созвездия<br />
<br />
|- align=center<br />
| 15 || 08.12.21-12.12.21<br />
| Формирование измерений, расчет положения спутника<br />
|<br />
| <br />
<br />
|- align=center<br />
| 16 || 13.12.21-19.12.21<br />
| Модель наблюдений псевдодальности. <br> [[media:20111128_АП_СРНС_Лекция_14_презентация.pdf|Вторичная обработка измерений. Одношаговый алгоритм решения навигационной задачи.]] <br> [[media:20111215_АП_СРНС_Лекция_16_презентация.pdf|Контроль целостности]]<br />
| Решение навигационной задачи по псевдодальномерным измерениям<br />
| КМ-6: Решение навигационной задачи по псевдодальномерным измерениям<br />
<br />
|- align=center<br />
| 17 || 20.12.21-26.12.21<br />
| Помехоустойчивость АП СРНС<br />
| <br />
| <br />
<br />
|- align=center<br />
| 18 || 27.12.21-02.01.21<br />
| Зачет<br />
|<br />
|<br />
<br />
|}<br />
<br />
[[media:АПСРНС_2021_Списки.ods|Журнал успеваемости]].<br />
<br />
== Правила аттестации ==<br />
<br />
Обязательным условием для получения допуска к экзамену является выполнение всех контрольных мероприятий: сдача двух контрольных и защита 4 лабораторных работ. <br />
<br />
При написании отчетов следует опираться на правила оформления [https://mpei.ru/Science/ScienceDocuments/Documents/Polojenie_2018/0_GOST_7.32-2017.pdf ГОСТ 7.32] (в части форматирования, оформления рисунков, таблиц, списков и т.д.).<br />
<br />
Приемка осуществляется через репозиторий на github на базе проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021].<br />
<br />
== Демо модели ==<br />
<br />
=== Прогноз выходного сигнала коррелятора ===<br />
<br />
Производится обработка сигнала Gps L1 C/A, сформированного лабораторным имитатором сигналов, синхронизированным с приемником. Сигнал перенесен с помощью РЧБ NT1065 на промежуточную частоту <math>f_{if} = 8.54</math> МГц и преобразован многоразрядным АЦП с частотой сэмплирования <math>F_d = 99.375</math> МГц. Установленная на имитаторе мощность обеспечивает уровень отношения сигнал/шум <math>27 + N</math> дБГц, где <math>N</math> - номер вариант по журналу. <br />
<br />
В приемнике производтся корреляционная обработка сигнала, интервал накопления составляет <math>T = 1</math> мс. <br />
<br />
Сигнал имеет сдвиг частоты несущей <math>f_d = 100 N</math> Гц, при этом опорный сигнал коррелятора имеет аналогичный сдвиг <math>f_{d, rep} = f_d</math>. Задержка огибающей известна точно и используется в опорном сигнале <math>\tau = \tau_{rep}</math>.<br />
<br />
Задание: Построить на плоскости I,Q вид множества точек корреляционных сумм, полученных в ходе большого (сотни) числа экспериментов. <br />
<br />
{{Hider|title = Расчет выходного сигнала коррелятора<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
N = 30;<br />
<br />
Fd = 99.375e6;<br />
Td = 1/Fd;<br />
T = 0.001;<br />
fif = 8.34e6;<br />
<br />
fd = 100 * N;<br />
fd_rep = fd;<br />
<br />
phi = 10 * N;<br />
phi_rep = 20 * N;<br />
<br />
qcno_dB = 27 + N;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdn = 50/3;<br />
A = sqrt(qcno * Td) * 2 * stdn; % qcno = A^2 / (4 stdn^2 Td)<br />
<br />
fprintf('A = %f, stdn = %f\n', A, stdn);<br />
<br />
L = fix(T * Fd);<br />
t = (0:(L-1)) * Td;<br />
<br />
PRN_Length = 1023;<br />
PRN = (-1).^(rand(1, PRN_Length) > 0.5);<br />
<br />
tau = 100500e-6;<br />
tau_rep = tau;<br />
<br />
nchip = mod(fix(PRN_Length*(t - tau )/T), PRN_Length) + 1;<br />
nchip_rep = mod(fix(PRN_Length*(t - tau_rep)/T), PRN_Length) + 1;<br />
<br />
Gc = PRN(nchip );<br />
Gc_rep = PRN(nchip_rep);<br />
<br />
So = A * Gc .* cos(2*pi*fif*t + 2*pi*fd *t + deg2rad(phi) );<br />
S_rep_cos = Gc_rep .* cos(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
S_rep_sin = Gc_rep .* sin(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
<br />
K = 1000; I = nan(1, K); Q = nan(1,K);<br />
for k = 1:K<br />
n = randn(1,L)*stdn;<br />
<br />
Gd = (-1).^(rand(1,1) > 0.5);<br />
S = Gd * So;<br />
<br />
y = S + n;<br />
<br />
I(k) = y * S_rep_cos';<br />
Q(k) = y * S_rep_sin';<br />
end<br />
<br />
maxIQ = 1.1*max(abs(I + 1i*Q));<br />
<br />
figure(1);<br />
plot(t*1e3, [y; S; A*Gc]);<br />
xlabel('t, ms')<br />
ylabel('y, S');<br />
grid on<br />
<br />
figure(2);<br />
plot(I, Q, '*')<br />
hold on<br />
plot([-maxIQ maxIQ], [0 0], 'k');<br />
plot([0 0], [-maxIQ maxIQ], 'k');<br />
quiver(-maxIQ, 0, 2*maxIQ, 0, 1, 'k');<br />
quiver(0, -maxIQ, 0, 2*maxIQ, 1, 'k');<br />
hold off<br />
xlabel('I')<br />
ylabel('Q');<br />
axis equal<br />
grid on<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
<br />
=== ЧАП и ФАП на стат эквивалентах ===<br />
<br />
{{Hider|title = Слежение за фазой и частотой<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
T = 0.010;<br />
<br />
Xist = [10; <br />
1];<br />
<br />
Xfilt = [0;<br />
0];<br />
<br />
Xfilt_FLL = [0;<br />
0];<br />
<br />
F = [1 T;<br />
0 1];<br />
<br />
Tmod = 10;<br />
K = fix(Tmod / T);<br />
<br />
G = [0;<br />
1];<br />
<br />
std_ksi = 1.3 * T;<br />
ksi = std_ksi * randn(1, K);<br />
<br />
qcno_dB = 45;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdnIQ = 7;<br />
nI = stdnIQ * randn(1, K);<br />
nQ = stdnIQ * randn(1, K);<br />
A_IQ = sqrt(2*qcno*T) * stdnIQ; <br />
<br />
dF_PLL = 20;<br />
Kfilt_PLL = [ 8/3 * dF_PLL * T;<br />
32/9 * dF_PLL^2 * T];<br />
<br />
dF_FLL = 3;<br />
Kfilt_FLL = [ 8/3 * dF_FLL * T;<br />
32/9 * dF_FLL^2 * T];<br />
<br />
t = (1:K)*T;<br />
phi_ist = nan(1, K);<br />
w_ist = nan(1, K);<br />
phi_filt = nan(1, K);<br />
w_filt = nan(1, K);<br />
phi_filt_FLL = nan(1, K);<br />
w_filt_FLL = nan(1, K);<br />
<br />
phi_corr = 0; Iold = 0; Qold = 0;<br />
for k = 1:K<br />
Xist = F * Xist + G * ksi(k);<br />
<br />
phi_ist(k) = Xist(1);<br />
w_ist(k) = Xist(2);<br />
<br />
% PLL<br />
Xfilt_extr = F*Xfilt;<br />
phi_extr = Xfilt_extr(1);<br />
dPhi = phi_ist(k) - phi_extr;<br />
<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = -Q; <br />
Sd = A_IQ; <br />
<br />
Xfilt = Xfilt_extr + Kfilt_PLL * Ud/Sd;<br />
<br />
phi_filt(k) = Xfilt(1);<br />
w_filt(k) = Xfilt(2);<br />
<br />
% FLL<br />
Xfilt_extr_FLL = F*Xfilt_FLL;<br />
w_extr = Xfilt_extr_FLL(1);<br />
dPhi = phi_ist(k) - phi_corr;<br />
phi_corr = phi_corr + w_extr * T;<br />
dW = w_ist(k) - w_extr;<br />
<br />
I = - A_IQ * cos(dPhi) + nI(k);<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = Q*Iold - I*Qold; <br />
Sd = A_IQ; <br />
Iold = I; Qold = Q;<br />
<br />
Xfilt_FLL = Xfilt_extr_FLL + Kfilt_FLL * Ud/Sd;<br />
<br />
phi_filt_FLL(k) = phi_corr;<br />
w_filt_FLL(k) = Xfilt_FLL(1);<br />
<br />
<br />
end<br />
<br />
figure(1)<br />
subplot(2,1,1)<br />
plot(t, phi_ist/2/pi, t, phi_filt/2/pi, t, phi_filt_FLL/2/pi)<br />
ylabel('\phi, cycles')<br />
subplot(2,1,2)<br />
plot(t, rad2deg(w_ist), t, rad2deg(w_filt), t, rad2deg(w_filt_FLL))<br />
ylabel('\omega, Hz')<br />
xlabel('t, sec')<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
== Вопросы к экзамену ==<br />
<br />
Экзамен проводится в письменной форме: тест, задача и один экзаменационный вопрос ([[media:Вопросы_экз_АП_СРНС.doc|экзаменационные вопросы]]). При подготовке рекомендуется использовать книги по тематике, [[media:2013_ЭУМК_С3.33_Лекции_АП_СРНС.pdf|конспекты лекций]] и презентации.<br />
<br />
== Курсовая работа ==<br />
<br />
Название: '''Расчет траектории движения спутника GPS по данным с демодулятора его сигнала'''<br />
<br />
Курсовая работа по АП СРНС выполняется во втором семестре. В рамках КР студенты знакомятся с рядом инструментов и техник, используемых при разработке навигационных приемников.<br />
<br />
Цель проекта - разработка модулей разбора навигационного сообщения GPS и расчета положения спутника, предназначенных для использования в составе навигационного приемника.<br />
<br />
Требования к разрабатываемому программному модулю:<br />
* требования назначения;<br />
* отсутствие утечек памяти;<br />
* малое время выполнения;<br />
* низкий расход памяти;<br />
* корректное выполнение при аномальных входных данных. <br />
<br />
Для достижения цели выполняется ряд задач, соответствующих этапам проекта и контрольным мероприятиям:<br />
* разработка модуля разбора символов навигационного сообщения<br />
* расчет положения КА в Matlab/Python и его проверка сторонними сервисами;<br />
* реализация модуля расчета положения КА на С/С++ и его тестирование.<br />
<br />
На каждом из этапов действуют следующие правила:<br />
* Взаимодействие осуществляется через github (пул реквесты, комментарии)<br />
* '''Этап сдан тогда, когда принят пул реквест'''<br />
<br />
<br />
<br />
{| class="wikitable"<br />
|+ Варианты заданий:<br />
|-<br />
! Студент !! Номер спутника (варианта) !! Логи !! Примечание<br />
|-<br />
! Антропов Евгений Александрович<br />
| 1 || [[media:2022_KR_01.tar.gz|tar.gz]] || <br />
|-<br />
! Бахолдин Никита Владимирович<br />
| 10 || [[media:2022_KR_10.tar.gz|tar.gz]] || <br />
|-<br />
! Берестнев Владимир Сергеевич<br />
| 13 || [[media:2022_KR_13.tar.gz|tar.gz]] || <br />
|-<br />
! Дубинин Леонид Андреевич<br />
| 15 || [[media:2022_KR_15.tar.gz|tar.gz]] || <br />
|-<br />
! Еловский Никита Станиславович<br />
| 17 || [[media:2022_KR_17.tar.gz|tar.gz]] || <br />
|-<br />
! Иванцова Дарья Николаевна<br />
| 19 || [[media:2022_KR_19.tar.gz|tar.gz]] || <br />
|-<br />
! Капитонов Александр Ильич<br />
| 24 || [[media:2022_KR_24.tar.gz|tar.gz]] || <br />
|-<br />
! Коробков Андрей Юрьевич<br />
| 28 || [[media:2022_KR_28.tar.gz|tar.gz]] || <br />
|-<br />
! Куксин Владислав Александрович<br />
| 30 || [[media:2022_KR_30.tar.gz|tar.gz]] || <br />
|-<br />
! Кусакин Павел Александрович<br />
| || || <br />
|-<br />
! Ливенцов Василий Александрович<br />
| || || <br />
|-<br />
! Михайлов Иван Олегович<br />
| || || <br />
|-<br />
! Муратов Николай Сергеевич<br />
| || || <br />
|-<br />
! Попов Максим Геннадьевич<br />
| || || <br />
|-<br />
! Солнцева Милана Константиновна<br />
| || || <br />
|-<br />
! Танкина Анна Михайловна<br />
| || || <br />
|-<br />
! Цымбал Григорий Романович <br />
| || || <br />
|-<br />
! Чепелев Игорь Игоревич<br />
| || || <br />
|}<br />
<br />
<br />
=== Этап 1. Обработка логов навигационного приемника ===<br />
<br />
'''Дедлайн''': 04.03.21 (устранение замечаний и итоговый мёрдж до 13.03.21)<br />
<br />
Конечная цель всего курсового проекта - получить библиотеку функций на Си++, позволяющую рассчитывать положение спутника GPS по данным с демодулятора его сигнала L1 C/A. <br />
На первом этапе реализуем модуль разбора навигационного сообщения до структуры эфемерид, сравним результаты со сторонней программой.<br />
<br />
В неизвестной локации установлен навигационный приемник, принимающий сигналы GPS L1C/A и логирующий результаты этого приема в формате NVS BINR [https://navis.ru/downloads/SOFT/NV08C_BINR_Protocol_Specification_V13_ENG_10082012.pdf NVS BINR]. <br />
Собранный на пятиминутном интервале файл приложен в архиве под именем BINR.bin, см. таблицу вариантов. <br />
Файл содержит наблюдения псевдодальностей и прочих радионавигационных параметров, демодулированные и разобранные данные навигационного сообщения. <br />
<br />
Для удобства студентов данные демодулятора продублированы в текстовый файл in.txt. Каждая строка файла содержит данные одного сабфрейма одного навигационного сигнала в формате:<br />
<source lang="bash"><br />
1 0 013 0R GpsL1CA # 13 212130404 29 125 53 100010111010101010101010001010010111000011001010010111111000101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100<br />
</source><br />
где ''# 13'' - номер спутника, ``212130404`` порядковый номер сабфрема от старта системы, ``53`` - ID сабфрейма в навигационном сообщении, где в первых трех битах содержится номер сабфрейма в фрейме (5 в данном примере), а далее - номер фрейма в сообщении (6 в данном примере), ''1000101110...'' символы с демодулятора в порядке возрастания времени слева направо. <br />
<br />
Требуется:<br />
# Разработать программу, обрабатывающую файл in.txt и выводящую в файл out.txt таблицу эфемерид для спутника согласно варианту [[media:Screenshot_20220215_221319.png|в заданном формате]].<br />
# Обработать файл BINR.bin с помощью программы RTKNAVI из состава RTKLIB. Определить день и место проведения наблюдений, значения эфемерид для спутника согласно номеру варианта (меню открывается в левом нижнем углу экрана по нажатию на квадрат)<br />
# Сравнить полученные таблицы<br />
# Оформить код программы и разместить на Github<br />
# Оформить отчет по этапу и разместить на Github<br />
# Завести Pull Request<br />
<br />
<br />
Работа осуществляется в репозитории на github на базе [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021]. Для этого:<br />
# Завести, если до сих пор нет, аккаунт на github<br />
# Если ранее не сделано, сделать форк проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021] (маленькая кнопка сверху справа в вэб-интерфейсе)<br />
# Установить на рабочем компьютере git (для выполнения последующих этапов удобнее будет сделать это в ОС GNU/Linux, вероятно, на виртуальной машине)<br />
# Клонировать свой форк на рабочий компьютер (<code>git clone https://github.com/MySuperAccount/gnssrecbasics2021.git</code>)<br />
# Промежуточные и итоговые результаты по первому этапу хранить в каталоге processing (<code>git pull; git add <files>; git commit -m "Сделал то-то то-то"; git push</code>)<br />
# По результатам первого этапа завести Pull Request в исходный проект '''в ветку, название которой совпадает с вашей фамилией''' (кнопка наверху в вэб-интерфейсе)<br />
# Устранить все замечания, добиться принятия Pull Request'а. <br />
<br />
Этап сдан тогда, когда ваш ПР принят.<br />
<br />
=== Этап 2. Моделирование ===<br />
<br />
'''Дедлайн''': 13.04.22 (исправления замечаний до 20.04.22)<br />
<br />
Эфемериды - параметры некоторой модели движения спутника. <br />
В разных ГНСС эти модели разные, а значит отличается и формат эфемерид, и алгоритмы расчета положения спутника.<br />
<br />
Одна из самых простых и удобных моделей - [http://navipedia.org/index.php/GPS_and_Galileo_Satellite_Coordinates_Computation в системе GPS].<br />
<br />
Требуется реализовать на языке Matlab или Python функцию расчета положения спутника GPS на заданный момент по шкале времени UTC.<br />
В качестве эфемерид использовать данные, полученные на предыдущем этапе. <br />
<br />
Построить трехмерные графики множества положений спутника GPS с системным номером, соответствующим номеру студента по списку. Графики в двух вариантах: в СК ECEF WGS84 и соответствующей ей инерциальной СК. Положения должны соответствовать суточному интервалу на дне формирования наблюдений, определенном на предыдущем этапе. Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал. <br />
<br />
Используя оценку местоположения с предыдущего этапа, построить Sky Plot за указанный временной интервал и сравнить результат с [http://www.trimble.com/gnssplanningonline/ Trimble GNSS Planning Online].<br />
<br />
Оформить отчет по результатам этапа:<br />
# Реализация в Matlab или Python (описание модели и её листинг)<br />
# Таблица использованных эфемерид<br />
# Трехмерные графики положений спутника в ECEF и ECI (не забудьте подписать оси, изобразите соответствующую Земле сферу в начале СК)<br />
# Расчётный и полученный в GNSS Planing Online SkyView<br />
<br />
Работы по данному этапу осуществляются в каталоге simulation.<br />
Правила приемки этапа те же, что и на первом этапе.<br />
<br />
=== Этап 3. Реализация === <br />
<br />
'''Дедлайн''': 11.05.21 (исправления до 18.05.21)<br />
<br />
Требуется разработать на языке С/С++ функцию расчета положения спутника GPS на заданное время по шкале UTC, минимизируя время её исполнения и количество затрачиваемой оперативной памяти. <br />
Вызов функции не должен приводить к выбросу исключений или утечкам памяти при любом наборе входных данных.<br />
<br />
Функция расчета положения спутника в Matlab/Python относительно проста, т.к. доступны библиотеки линейной алгебры и решения уравнений. <br />
Но при разработке встраиваемого ПО приходится сохранять лицензионную частоту, минимизировать вычислительную нагрузку и затраты памяти. <br />
Поэтому отобразить модель из Matlab/Python в прошивку приемника дословно, как правило, не получается. В рассматриваемом примере потребуется, как минимум, выполнить свою реализацию решения трансцендентного уравнения. <br />
<br />
Программный модуль должен сопровождаться unit-тестами (например, используя Check):<br />
* Тесты функции решения уравнения Кеплера<br />
* Тест расчетного положения спутника в сравнении с Matlab/Python с шагом 0.1 секунды. <br />
<br />
Во время второго теста должно вычисляться и выводиться средняя длительность исполнения функции. <br />
Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал (как на предыдущем этапе). <br />
<br />
Требуется провести проверку на утечки памяти (например, с помощью утилиты valgrind).<br />
<br />
Оформить отчет по результатам курсового проекта. <br />
В качестве первых двух глав использовать отчёты с предыдущих этапов, в третьей главе отразить результаты этого этапа:<br />
# Код реализации<br />
# Вывод тестов, включая анализ времени исполнения<br />
# Вывод проверок на утечку памяти<br />
# Вывод по этапу <br />
# Заключение по проекту<br />
<br />
Программа должна компилироваться gcc и использовать в качестве входных данных in.txt с первого этапа. <br />
Результат должен записываться в out.txt в строки формата, определенного на втором этапе. <br />
<br />
Работы по третьему этапу следует вести в директории libgpssvpos.<br />
<br />
Правила приемки этапа те же.<br />
<br />
== Курсовая прошлых лет ==<br />
<br />
Задания в [[Курсовой проект АП СРНС 2020|2020]], в [[Курсовая работа АП СРНС 2021|2021]].<br />
<br />
[[Категория:АП СРНС (дисциплина)]]</div>
Korogodin
https://www.srns.ru/wiki/%D0%90%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0_%D0%BF%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D1%81%D0%BF%D1%83%D1%82%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2%D1%8B%D1%85_%D1%80%D0%B0%D0%B4%D0%B8%D0%BE%D0%BD%D0%B0%D0%B2%D0%B8%D0%B3%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_(%D0%B4%D0%B8%D1%81%D1%86%D0%B8%D0%BF%D0%BB%D0%B8%D0%BD%D0%B0)
Аппаратура потребителей спутниковых радионавигационных систем (дисциплина)
2022-02-15T19:24:34Z
<p>Korogodin: /* Этап 2. Моделирование */</p>
<hr />
<div>Дисциплина "Аппаратура потребителей спутниковых радионавигационных систем" входит в вариативную часть общенаучного цикла занятий [http://beta.mpei.ru/Education/educationalprograms/rt/Pages/default.aspx учебного плана] подготовки специалистов по направлению 11.05.01 "Радиоэлектронные системы и комплексы". <br />
<br />
Преподается осеннем и весеннем семестрах пятого года обучения. В осеннем семестре лекции и лабораторные занятия (итог - экзамен), в весеннем - курсовой проект. <br />
<br />
По дисциплине подготовлен [[ЭУМК АП СРНС|электронный учебно-методический комплекс]].<br />
<br />
== Календарный план ==<br />
<br />
<br />
{| class="wikitable"<br />
|-<br />
! Неделя || Даты || Лекция || Лабораторная || Контрольное мероприятие<br />
<br />
|- align=center<br />
| 2 || 07.09<br />
| Основы СРНС. [[media:Receivers_Segments.pdf|Сегменты СРНС]]. [[media:Receivers_PosMethods.pdf|Методы позиционирования]].<br />
| [https://goo.gl/forms/R7Vos1KsJ1taqqXo2 Ошибки позиционирования в городских условиях] <br />
|<br />
<br />
|- align=center<br />
| 3 || 13.09.21-19.09.21<br />
| Навигационные сигналы. <br />
|<br />
| <br />
<br />
|- align=center<br />
| 4 || 20.09.21-26.09.21<br />
| Антенна, МШУ<br />
| <br />
| КМ-1: Модель сигнала ГНСС<br />
<br />
|- align=center<br />
| 5 || 27.09.21-03.10.21<br />
| Радиочастотный блок <br> ([[media:20111008_АП_СРНС_Лекция_3_презентация.pdf|Аналогово-цифровое преобразование. Синтезатор частот. План частот АП СРНС.]] )<br />
| <br />
| <br />
<br />
|- align=center<br />
| 6 || 04.10.21-10.10.21<br />
| Математическая модель коррелятора <br> ([[media:АП_СРНС_corr.pdf|Статистический эквивалент коррелятора]])<br />
|<br />
| КМ-2: Ошибки позиционирования в городских условиях<br />
<br />
|- align=center<br />
| 7 || 11.10.21-17.10.21<br />
| Аппаратная реализация коррелятора <br> ([[media:20111005_АП_СРНС_Лекция_4_презентация.pdf|Принципы построения и структура коррелятора. Цифровой генератор гармонического сигнала и дальномерного кода.]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 8 || 18.10.21-24.10.21<br />
| Следящие системы <br> ([[media:20111215_АП_СРНС_Лекция_8_презентация.pdf|Система слежения за фазой сигнала. Структурная схема ССФ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_9_презентация.pdf|Система слежения за частотой. Структурная схема ССЧ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_10_презентация.pdf|Система слежения за задержкой. Структурная схема ССЗ, дискриминаторы, следящий фильтр. <br> Система слежения за задержкой с поддержкой от ФАП. Комплексный фильтр.]]) <br />
| [https://goo.gl/XruJBM GNSS Planning] <br />
| КМ-3: Статистический эквивалент коррелятора<br />
<br />
|- align=center<br />
| 9 || 25.10.21-31.10.21<br />
| Оценка SNR, детекторы захвата, детекторы CC<br />
| <br />
| <br />
<br />
|- align=center<br />
| 10 || 01.11.21-07.11.21<br />
| Обнаружение сигнала. <br> ([[media:20111005_АП_СРНС_Лекция_5_презентация.pdf|Обнаружение сигнала. Алгоритмы, статистические характеристики обнаружения.]]) <br />
|<br />
| <br />
<br />
|- align=center<br />
| 11 || 08.11.21-14.11.21<br />
| Поиск сигнала <br> ([[media:20111008_АП_СРНС_Лекция_6_презентация.pdf|Поиск сигнала по частоте и задержке. Алгоритмы поиска, быстрый поиск сигнала.]] <br> [[media:20111017_АП_СРНС_Лекция_7_презентация.pdf|Блок быстрого поиска]])<br />
|<br />
| <br />
<br />
|- align=center<br />
| 12 || 15.11.21-21.11.21<br />
| Символьная и оверлейная синхронизация <br> <br />
| [[Исследование_коррелятора_АП_СРНС_ГЛОНАСС_с_помощью_имитационной_модели_(лабораторная_работа)|Исследование коррелятора АП СРНС с помощью имитационной модели]]<br />
| КМ-4: Исследование коррелятора АП СРНС ГЛОНАСС с помощью имитационной модели <br />
<br />
|- align=center<br />
| 13 || 22.11.21-28.11.21<br />
| [[media:20111215_АП_СРНС_Лекция_11_презентация.pdf|Демодуляция навигационных данных]]<br />
| <br />
| <br />
<br />
|- align=center<br />
| 14 || 29.11.21-05.12.21<br />
| Кадровая синхронизация, [[media:20111215_АП_СРНС_Лекция_12_презентация.pdf|декодирование]], парсинг<br />
|<br />
| КМ-5: Прогнозирование спутникового созвездия<br />
<br />
|- align=center<br />
| 15 || 08.12.21-12.12.21<br />
| Формирование измерений, расчет положения спутника<br />
|<br />
| <br />
<br />
|- align=center<br />
| 16 || 13.12.21-19.12.21<br />
| Модель наблюдений псевдодальности. <br> [[media:20111128_АП_СРНС_Лекция_14_презентация.pdf|Вторичная обработка измерений. Одношаговый алгоритм решения навигационной задачи.]] <br> [[media:20111215_АП_СРНС_Лекция_16_презентация.pdf|Контроль целостности]]<br />
| Решение навигационной задачи по псевдодальномерным измерениям<br />
| КМ-6: Решение навигационной задачи по псевдодальномерным измерениям<br />
<br />
|- align=center<br />
| 17 || 20.12.21-26.12.21<br />
| Помехоустойчивость АП СРНС<br />
| <br />
| <br />
<br />
|- align=center<br />
| 18 || 27.12.21-02.01.21<br />
| Зачет<br />
|<br />
|<br />
<br />
|}<br />
<br />
[[media:АПСРНС_2021_Списки.ods|Журнал успеваемости]].<br />
<br />
== Правила аттестации ==<br />
<br />
Обязательным условием для получения допуска к экзамену является выполнение всех контрольных мероприятий: сдача двух контрольных и защита 4 лабораторных работ. <br />
<br />
При написании отчетов следует опираться на правила оформления [https://mpei.ru/Science/ScienceDocuments/Documents/Polojenie_2018/0_GOST_7.32-2017.pdf ГОСТ 7.32] (в части форматирования, оформления рисунков, таблиц, списков и т.д.).<br />
<br />
Приемка осуществляется через репозиторий на github на базе проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021].<br />
<br />
== Демо модели ==<br />
<br />
=== Прогноз выходного сигнала коррелятора ===<br />
<br />
Производится обработка сигнала Gps L1 C/A, сформированного лабораторным имитатором сигналов, синхронизированным с приемником. Сигнал перенесен с помощью РЧБ NT1065 на промежуточную частоту <math>f_{if} = 8.54</math> МГц и преобразован многоразрядным АЦП с частотой сэмплирования <math>F_d = 99.375</math> МГц. Установленная на имитаторе мощность обеспечивает уровень отношения сигнал/шум <math>27 + N</math> дБГц, где <math>N</math> - номер вариант по журналу. <br />
<br />
В приемнике производтся корреляционная обработка сигнала, интервал накопления составляет <math>T = 1</math> мс. <br />
<br />
Сигнал имеет сдвиг частоты несущей <math>f_d = 100 N</math> Гц, при этом опорный сигнал коррелятора имеет аналогичный сдвиг <math>f_{d, rep} = f_d</math>. Задержка огибающей известна точно и используется в опорном сигнале <math>\tau = \tau_{rep}</math>.<br />
<br />
Задание: Построить на плоскости I,Q вид множества точек корреляционных сумм, полученных в ходе большого (сотни) числа экспериментов. <br />
<br />
{{Hider|title = Расчет выходного сигнала коррелятора<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
N = 30;<br />
<br />
Fd = 99.375e6;<br />
Td = 1/Fd;<br />
T = 0.001;<br />
fif = 8.34e6;<br />
<br />
fd = 100 * N;<br />
fd_rep = fd;<br />
<br />
phi = 10 * N;<br />
phi_rep = 20 * N;<br />
<br />
qcno_dB = 27 + N;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdn = 50/3;<br />
A = sqrt(qcno * Td) * 2 * stdn; % qcno = A^2 / (4 stdn^2 Td)<br />
<br />
fprintf('A = %f, stdn = %f\n', A, stdn);<br />
<br />
L = fix(T * Fd);<br />
t = (0:(L-1)) * Td;<br />
<br />
PRN_Length = 1023;<br />
PRN = (-1).^(rand(1, PRN_Length) > 0.5);<br />
<br />
tau = 100500e-6;<br />
tau_rep = tau;<br />
<br />
nchip = mod(fix(PRN_Length*(t - tau )/T), PRN_Length) + 1;<br />
nchip_rep = mod(fix(PRN_Length*(t - tau_rep)/T), PRN_Length) + 1;<br />
<br />
Gc = PRN(nchip );<br />
Gc_rep = PRN(nchip_rep);<br />
<br />
So = A * Gc .* cos(2*pi*fif*t + 2*pi*fd *t + deg2rad(phi) );<br />
S_rep_cos = Gc_rep .* cos(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
S_rep_sin = Gc_rep .* sin(2*pi*fif*t + 2*pi*fd_rep*t + deg2rad(phi_rep));<br />
<br />
K = 1000; I = nan(1, K); Q = nan(1,K);<br />
for k = 1:K<br />
n = randn(1,L)*stdn;<br />
<br />
Gd = (-1).^(rand(1,1) > 0.5);<br />
S = Gd * So;<br />
<br />
y = S + n;<br />
<br />
I(k) = y * S_rep_cos';<br />
Q(k) = y * S_rep_sin';<br />
end<br />
<br />
maxIQ = 1.1*max(abs(I + 1i*Q));<br />
<br />
figure(1);<br />
plot(t*1e3, [y; S; A*Gc]);<br />
xlabel('t, ms')<br />
ylabel('y, S');<br />
grid on<br />
<br />
figure(2);<br />
plot(I, Q, '*')<br />
hold on<br />
plot([-maxIQ maxIQ], [0 0], 'k');<br />
plot([0 0], [-maxIQ maxIQ], 'k');<br />
quiver(-maxIQ, 0, 2*maxIQ, 0, 1, 'k');<br />
quiver(0, -maxIQ, 0, 2*maxIQ, 1, 'k');<br />
hold off<br />
xlabel('I')<br />
ylabel('Q');<br />
axis equal<br />
grid on<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
<br />
=== ЧАП и ФАП на стат эквивалентах ===<br />
<br />
{{Hider|title = Слежение за фазой и частотой<br />
|content = <source lang="matlab"><br />
clear all; clc; close all;<br />
<br />
T = 0.010;<br />
<br />
Xist = [10; <br />
1];<br />
<br />
Xfilt = [0;<br />
0];<br />
<br />
Xfilt_FLL = [0;<br />
0];<br />
<br />
F = [1 T;<br />
0 1];<br />
<br />
Tmod = 10;<br />
K = fix(Tmod / T);<br />
<br />
G = [0;<br />
1];<br />
<br />
std_ksi = 1.3 * T;<br />
ksi = std_ksi * randn(1, K);<br />
<br />
qcno_dB = 45;<br />
qcno = 10^(qcno_dB/10);<br />
<br />
stdnIQ = 7;<br />
nI = stdnIQ * randn(1, K);<br />
nQ = stdnIQ * randn(1, K);<br />
A_IQ = sqrt(2*qcno*T) * stdnIQ; <br />
<br />
dF_PLL = 20;<br />
Kfilt_PLL = [ 8/3 * dF_PLL * T;<br />
32/9 * dF_PLL^2 * T];<br />
<br />
dF_FLL = 3;<br />
Kfilt_FLL = [ 8/3 * dF_FLL * T;<br />
32/9 * dF_FLL^2 * T];<br />
<br />
t = (1:K)*T;<br />
phi_ist = nan(1, K);<br />
w_ist = nan(1, K);<br />
phi_filt = nan(1, K);<br />
w_filt = nan(1, K);<br />
phi_filt_FLL = nan(1, K);<br />
w_filt_FLL = nan(1, K);<br />
<br />
phi_corr = 0; Iold = 0; Qold = 0;<br />
for k = 1:K<br />
Xist = F * Xist + G * ksi(k);<br />
<br />
phi_ist(k) = Xist(1);<br />
w_ist(k) = Xist(2);<br />
<br />
% PLL<br />
Xfilt_extr = F*Xfilt;<br />
phi_extr = Xfilt_extr(1);<br />
dPhi = phi_ist(k) - phi_extr;<br />
<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = -Q; <br />
Sd = A_IQ; <br />
<br />
Xfilt = Xfilt_extr + Kfilt_PLL * Ud/Sd;<br />
<br />
phi_filt(k) = Xfilt(1);<br />
w_filt(k) = Xfilt(2);<br />
<br />
% FLL<br />
Xfilt_extr_FLL = F*Xfilt_FLL;<br />
w_extr = Xfilt_extr_FLL(1);<br />
dPhi = phi_ist(k) - phi_corr;<br />
phi_corr = phi_corr + w_extr * T;<br />
dW = w_ist(k) - w_extr;<br />
<br />
I = - A_IQ * cos(dPhi) + nI(k);<br />
Q = - A_IQ * sin(dPhi) + nQ(k);<br />
Ud = Q*Iold - I*Qold; <br />
Sd = A_IQ; <br />
Iold = I; Qold = Q;<br />
<br />
Xfilt_FLL = Xfilt_extr_FLL + Kfilt_FLL * Ud/Sd;<br />
<br />
phi_filt_FLL(k) = phi_corr;<br />
w_filt_FLL(k) = Xfilt_FLL(1);<br />
<br />
<br />
end<br />
<br />
figure(1)<br />
subplot(2,1,1)<br />
plot(t, phi_ist/2/pi, t, phi_filt/2/pi, t, phi_filt_FLL/2/pi)<br />
ylabel('\phi, cycles')<br />
subplot(2,1,2)<br />
plot(t, rad2deg(w_ist), t, rad2deg(w_filt), t, rad2deg(w_filt_FLL))<br />
ylabel('\omega, Hz')<br />
xlabel('t, sec')<br />
<br />
</source><br />
|hidden = 1<br />
}}<br />
<br />
== Вопросы к экзамену ==<br />
<br />
Экзамен проводится в письменной форме: тест, задача и один экзаменационный вопрос ([[media:Вопросы_экз_АП_СРНС.doc|экзаменационные вопросы]]). При подготовке рекомендуется использовать книги по тематике, [[media:2013_ЭУМК_С3.33_Лекции_АП_СРНС.pdf|конспекты лекций]] и презентации.<br />
<br />
== Курсовая работа ==<br />
<br />
Название: '''Расчет траектории движения спутника GPS по данным с демодулятора его сигнала'''<br />
<br />
Курсовая работа по АП СРНС выполняется во втором семестре. В рамках КР студенты знакомятся с рядом инструментов и техник, используемых при разработке навигационных приемников.<br />
<br />
Цель проекта - разработка модулей разбора навигационного сообщения GPS и расчета положения спутника, предназначенных для использования в составе навигационного приемника.<br />
<br />
Требования к разрабатываемому программному модулю:<br />
* требования назначения;<br />
* отсутствие утечек памяти;<br />
* малое время выполнения;<br />
* низкий расход памяти;<br />
* корректное выполнение при аномальных входных данных. <br />
<br />
Для достижения цели выполняется ряд задач, соответствующих этапам проекта и контрольным мероприятиям:<br />
* разработка модуля разбора символов навигационного сообщения<br />
* расчет положения КА в Matlab/Python и его проверка сторонними сервисами;<br />
* реализация модуля расчета положения КА на С/С++ и его тестирование.<br />
<br />
На каждом из этапов действуют следующие правила:<br />
* Взаимодействие осуществляется через github (пул реквесты, комментарии)<br />
* '''Этап сдан тогда, когда принят пул реквест'''<br />
<br />
<br />
<br />
{| class="wikitable"<br />
|+ Варианты заданий:<br />
|-<br />
! Студент !! Номер спутника (варианта) !! Логи !! Примечание<br />
|-<br />
! Антропов Евгений Александрович<br />
| 1 || [[media:2022_KR_01.tar.gz|tar.gz]] || <br />
|-<br />
! Бахолдин Никита Владимирович<br />
| 10 || [[media:2022_KR_10.tar.gz|tar.gz]] || <br />
|-<br />
! Берестнев Владимир Сергеевич<br />
| 13 || [[media:2022_KR_13.tar.gz|tar.gz]] || <br />
|-<br />
! Дубинин Леонид Андреевич<br />
| 15 || [[media:2022_KR_15.tar.gz|tar.gz]] || <br />
|-<br />
! Еловский Никита Станиславович<br />
| 17 || [[media:2022_KR_17.tar.gz|tar.gz]] || <br />
|-<br />
! Иванцова Дарья Николаевна<br />
| 19 || [[media:2022_KR_19.tar.gz|tar.gz]] || <br />
|-<br />
! Капитонов Александр Ильич<br />
| 24 || [[media:2022_KR_24.tar.gz|tar.gz]] || <br />
|-<br />
! Коробков Андрей Юрьевич<br />
| 28 || [[media:2022_KR_28.tar.gz|tar.gz]] || <br />
|-<br />
! Куксин Владислав Александрович<br />
| 30 || [[media:2022_KR_30.tar.gz|tar.gz]] || <br />
|-<br />
! Кусакин Павел Александрович<br />
| || || <br />
|-<br />
! Ливенцов Василий Александрович<br />
| || || <br />
|-<br />
! Михайлов Иван Олегович<br />
| || || <br />
|-<br />
! Муратов Николай Сергеевич<br />
| || || <br />
|-<br />
! Попов Максим Геннадьевич<br />
| || || <br />
|-<br />
! Солнцева Милана Константиновна<br />
| || || <br />
|-<br />
! Танкина Анна Михайловна<br />
| || || <br />
|-<br />
! Цымбал Григорий Романович <br />
| || || <br />
|-<br />
! Чепелев Игорь Игоревич<br />
| || || <br />
|}<br />
<br />
<br />
=== Этап 1. Обработка логов навигационного приемника ===<br />
<br />
'''Дедлайн''': 04.03.21 (устранение замечаний и итоговый мёрдж до 13.03.21)<br />
<br />
Конечная цель всего курсового проекта - получить библиотеку функций на Си++, позволяющую рассчитывать положение спутника GPS по данным с демодулятора его сигнала L1 C/A. <br />
На первом этапе реализуем модуль разбора навигационного сообщения до структуры эфемерид, сравним результаты со сторонней программой.<br />
<br />
В неизвестной локации установлен навигационный приемник, принимающий сигналы GPS L1C/A и логирующий результаты этого приема в формате NVS BINR [https://navis.ru/downloads/SOFT/NV08C_BINR_Protocol_Specification_V13_ENG_10082012.pdf NVS BINR]. <br />
Собранный на пятиминутном интервале файл приложен в архиве под именем BINR.bin, см. таблицу вариантов. <br />
Файл содержит наблюдения псевдодальностей и прочих радионавигационных параметров, демодулированные и разобранные данные навигационного сообщения. <br />
<br />
Для удобства студентов данные демодулятора продублированы в текстовый файл in.txt. Каждая строка файла содержит данные одного сабфрейма одного навигационного сигнала в формате:<br />
<source lang="bash"><br />
1 0 013 0R GpsL1CA # 13 212130404 29 125 53 100010111010101010101010001010010111000011001010010111111000101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100101010101010101010101010111100<br />
</source><br />
где ''# 13'' - номер спутника, ``212130404`` порядковый номер сабфрема от старта системы, ``53`` - ID сабфрейма в навигационном сообщении, где в первых трех битах содержится номер сабфрейма в фрейме (5 в данном примере), а далее - номер фрейма в сообщении (6 в данном примере), ''1000101110...'' символы с демодулятора в порядке возрастания времени слева направо. <br />
<br />
Требуется:<br />
# Разработать программу, обрабатывающую файл in.txt и выводящую в файл out.txt таблицу эфемерид для спутника согласно варианту [[media:Screenshot_20220215_221319.png|в заданном формате]].<br />
# Обработать файл BINR.bin с помощью программы RTKNAVI из состава RTKLIB. Определить день и место проведения наблюдений, значения эфемерид для спутника согласно номеру варианта (меню открывается в левом нижнем углу экрана по нажатию на квадрат)<br />
# Сравнить полученные таблицы<br />
# Оформить код программы и разместить на Github<br />
# Оформить отчет по этапу и разместить на Github<br />
# Завести Pull Request<br />
<br />
<br />
Работа осуществляется в репозитории на github на базе [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021]. Для этого:<br />
# Завести, если до сих пор нет, аккаунт на github<br />
# Если ранее не сделано, сделать форк проекта [https://github.com/Korogodin/gnssrecbasics2021 gnssrecbasics2021] (маленькая кнопка сверху справа в вэб-интерфейсе)<br />
# Установить на рабочем компьютере git (для выполнения последующих этапов удобнее будет сделать это в ОС GNU/Linux, вероятно, на виртуальной машине)<br />
# Клонировать свой форк на рабочий компьютер (<code>git clone https://github.com/MySuperAccount/gnssrecbasics2021.git</code>)<br />
# Промежуточные и итоговые результаты по первому этапу хранить в каталоге processing (<code>git pull; git add <files>; git commit -m "Сделал то-то то-то"; git push</code>)<br />
# По результатам первого этапа завести Pull Request в исходный проект '''в ветку, название которой совпадает с вашей фамилией''' (кнопка наверху в вэб-интерфейсе)<br />
# Устранить все замечания, добиться принятия Pull Request'а. <br />
<br />
Этап сдан тогда, когда ваш ПР принят.<br />
<br />
=== Этап 2. Моделирование ===<br />
<br />
'''Дедлайн''': 13.04.22 (исправления замечаний до 20.04.22)<br />
<br />
Эфемериды - параметры некоторой модели движения спутника. <br />
В разных ГНСС эти модели разные, а значит отличается и формат эфемерид, и алгоритмы расчета положения спутника.<br />
<br />
Одна из самых простых и удобных моделей - [http://navipedia.org/index.php/GPS_and_Galileo_Satellite_Coordinates_Computation в системе GPS].<br />
<br />
Требуется реализовать на языке Matlab или Python функцию расчета положения спутника GPS на заданный момент по шкале времени UTC.<br />
В качестве эфемерид использовать данные, полученные на предыдущем этапе. <br />
<br />
Построить трехмерные графики множества положений спутника GPS с системным номером, соответствующим номеру студента по списку. Графики в двух вариантах: в СК ECEF WGS84 и соответствующей ей инерциальной СК. Положения должны соответствовать суточному интервалу на дне формирования наблюдений, определенном на предыдущем этапе. Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал. <br />
<br />
Используя оценку местоположения с предыдущего этапа, построить Sky Plot за указанный временной интервал и сравнить результат с [http://www.trimble.com/gnssplanningonline/ Trimble GNSS Planning Online].<br />
<br />
Оформить отчет по результатам этапа:<br />
# Реализация в Matlab или Python (описание модели и её листинг)<br />
# Таблица использованных эфемерид<br />
# Трехмерные графики положений спутника в ECEF и ECI (не забудьте подписать оси, изобразите соответствующую Земле сферу в начале СК)<br />
# Расчётный и полученный в GNSS Planing Online SkyView<br />
<br />
Работы по данному этапу осуществляются в каталоге simulation.<br />
Правила приемки этапа те же, что и на первом этапе.<br />
<br />
=== Этап 3. Реализация === <br />
<br />
'''Дедлайн''': 11.05.21 (исправления до 18.05.21)<br />
<br />
Требуется разработать на языке С/С++ функцию расчета положения спутника Beidou на заданное время по шкале UTC, минимизируя время её исполнения и количество затрачиваемой оперативной памяти. <br />
Вызов функции не должен приводить к выбросу исключений или утечкам памяти при любом наборе входных данных.<br />
<br />
Функция расчета положения спутника в Matlab/Python относительно проста, т.к. доступны библиотеки линейной алгебры и решения уравнений. <br />
Но при разработке встраиваемого ПО приходится сохранять лицензионную частоту, минимизировать вычислительную нагрузку и затраты памяти. <br />
Поэтому отобразить модель из Matlab/Python в прошивку приемника дословно, как правило, не получается. В рассматриваемом примере потребуется, как минимум, выполнить свою реализацию решения трансцендентного уравнения. <br />
<br />
Программный модуль должен сопровождаться unit-тестами под check:<br />
* Тесты функции решения уравнения Кеплера<br />
* Тест расчетного положения спутника в сравнении с Matlab/Python с шагом 0.1 секунды. <br />
<br />
Во время второго теста должно вычисляться и выводиться средняя длительность исполнения функции. <br />
Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал (как на предыдущем этапе). <br />
<br />
Требуется провести проверку на утечки памяти с помощью утилиты valgrind.<br />
<br />
Оформить отчет по результатам курсового проекта. <br />
В качестве первых двух глав использовать отчёты с предыдущих этапов, в третьей главе отразить результаты этого этапа:<br />
# Код реализации<br />
# Вывод тестов, включая анализ времени исполнения<br />
# Вывод valgrind<br />
# Вывод по этапу <br />
# Заключение по проекту<br />
<br />
В репозитории расположен каркас программного модуля libbdssvpos, представленного в виде подключаемой библиотеки на базе системы сборки CMake.<br />
Настроена компиляция статической/динамической библиотек компилятором/кросскомпилятором и выполнение юнит-тестов (проверено в GNU/Linux системах). <br />
Для примера в библиотеке реализованы две функции: умножения и сложения. <br />
<br />
В функцию сложения add внесена ошибка, на которую указывает результат соответствующего юнит-теста:<br />
<source lang="bash"><br />
korogodin@KorPC:~/bdsephexercise/libbdssvpos$ mkdir build<br />
korogodin@KorPC:~/bdsephexercise/libbdssvpos$ cd build<br />
korogodin@KorPC:~/bdsephexercise/libbdssvpos/build$ cmake ..<br />
-- The C compiler identification is GNU 5.4.0<br />
-- The CXX compiler identification is GNU 5.4.0<br />
-- Check for working C compiler: /usr/bin/cc<br />
-- Check for working C compiler: /usr/bin/cc -- works<br />
-- Detecting C compiler ABI info<br />
-- Detecting C compiler ABI info - done<br />
-- Detecting C compile features<br />
-- Detecting C compile features - done<br />
-- Check for working CXX compiler: /usr/bin/c++<br />
-- Check for working CXX compiler: /usr/bin/c++ -- works<br />
-- Detecting CXX compiler ABI info<br />
-- Detecting CXX compiler ABI info - done<br />
-- Detecting CXX compile features<br />
-- Detecting CXX compile features - done<br />
-- libbdssvpos version: cd76a7e<br />
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") <br />
-- Checking for one of the modules 'check'<br />
-- Configuring done<br />
-- Generating done<br />
-- Build files have been written to: /home/korogodin/bdsephexercise/libbdssvpos/build<br />
korogodin@KorPC:~/bdsephexercise/libbdssvpos/build$ make<br />
[ 33%] Built target bdssvpos-static<br />
[ 66%] Built target bdssvpos<br />
Scanning dependencies of target test_bdssvpos<br />
[ 77%] Building CXX object test/CMakeFiles/test_bdssvpos.dir/check_position.cpp.o<br />
[ 88%] Linking CXX executable test_bdssvpos<br />
Running unit tests<br />
Running suite(s): My test suite<br />
50%: Checks: 2, Failures: 1, Errors: 0<br />
/home/korogodin/bdsephexercise/libbdssvpos/test/check_position.cpp:11:F:Main tests:test_add:0: 1+2 should be 3<br />
test/CMakeFiles/test_bdssvpos.dir/build.make:121: ошибка выполнения рецепта для цели «test/test_bdssvpos»<br />
make[2]: *** [test/test_bdssvpos] Ошибка 1<br />
make[2]: *** Удаляется файл «test/test_bdssvpos»<br />
CMakeFiles/Makefile2:179: ошибка выполнения рецепта для цели «test/CMakeFiles/test_bdssvpos.dir/all»<br />
make[1]: *** [test/CMakeFiles/test_bdssvpos.dir/all] Ошибка 2<br />
Makefile:127: ошибка выполнения рецепта для цели «all»<br />
make: *** [all] Ошибка 2<br />
</source><br />
<br />
Работы по данному этапу осуществляются в каталоге libbdssvpos.<br />
Правила приемки этапа те же.<br />
<br />
== Курсовая прошлых лет ==<br />
<br />
Задания в [[Курсовой проект АП СРНС 2020|2020]], в [[Курсовая работа АП СРНС 2021|2021]].<br />
<br />
[[Категория:АП СРНС (дисциплина)]]</div>
Korogodin