diff --git "a/01. \320\222\320\262\320\265\320\264\320\265\320\275\320\270\320\265 \320\262 \321\206\320\270\321\204\321\200\320\276\320\262\321\203\321\216 \320\276\320\261\321\200\320\260\320\261\320\276\321\202\320\272\321\203 \321\201\320\270\320\263\320\275\320\260\320\273\320\276\320\262.ngscript" "b/01. \320\222\320\262\320\265\320\264\320\265\320\275\320\270\320\265 \320\262 \321\206\320\270\321\204\321\200\320\276\320\262\321\203\321\216 \320\276\320\261\321\200\320\260\320\261\320\276\321\202\320\272\321\203 \321\201\320\270\320\263\320\275\320\260\320\273\320\276\320\262.ngscript"
index ba367c33d1b7e949699a276dc8f21d4cb6be6886..3d2c20e14cce008099e906454a22b81e9c24fa84 100644
--- "a/01. \320\222\320\262\320\265\320\264\320\265\320\275\320\270\320\265 \320\262 \321\206\320\270\321\204\321\200\320\276\320\262\321\203\321\216 \320\276\320\261\321\200\320\260\320\261\320\276\321\202\320\272\321\203 \321\201\320\270\320\263\320\275\320\260\320\273\320\276\320\262.ngscript"	
+++ "b/01. \320\222\320\262\320\265\320\264\320\265\320\275\320\270\320\265 \320\262 \321\206\320\270\321\204\321\200\320\276\320\262\321\203\321\216 \320\276\320\261\321\200\320\260\320\261\320\276\321\202\320\272\321\203 \321\201\320\270\320\263\320\275\320\260\320\273\320\276\320\262.ngscript"	
@@ -943,8 +943,8 @@
         "engee": {
           "isDisplay": true,
           "isParagraph": true,
-          "isClosedParagraph": true,
-          "amountHideCellsInside": 3,
+          "isClosedParagraph": false,
+          "amountHideCellsInside": 0,
           "codeOutputView": "col",
           "codeOutputHidden": false
         }
@@ -960,7 +960,7 @@
       "metadata": {
         "name": "Название секции",
         "engee": {
-          "isDisplay": false,
+          "isDisplay": true,
           "isParagraph": false,
           "isClosedParagraph": false,
           "amountHideCellsInside": 0,
@@ -979,7 +979,7 @@
       "metadata": {
         "name": "Название секции",
         "engee": {
-          "isDisplay": false,
+          "isDisplay": true,
           "isParagraph": true,
           "isClosedParagraph": true,
           "amountHideCellsInside": 1,
@@ -1063,7 +1063,7 @@
       "id": "fbf742e7",
       "cell_type": "markdown",
       "source": [
-        "Входной аналоговый сигнал, обычно представляющий собой смесь **полезного сигнала** и **шума** (о шумах речь пойдет в Разделе 3 данного курса), поступает в **аналого-цифровой преобразователь** (**АЦП**, Раздел 2). В АЦП входной сигнал подвергается квантованию по уровню и дискретизации по времени. Выбор частоты дискретизации определяется **теоремой Котельникова** (Раздел 1).\r\n\r\nНа выходе АЦП мы получаем цифровой сигнал, который поступает в **блок обработки**. Блок обработки обычно представляет собой **линейную систему** (Раздел 7), которая тем или иным способом изменяет входной сигнал. Таким преобразованием может быть **фильтрация**, при которой усиливаются одни спектральные компоненты сигнала и подавляются другие. Фильтрация используется практически во всех системах ЦОС. В Разделе 8 рассказывается о задачах фильтрации и видах **фильтров**, а в Разделе 9 – о синтезе **КИХ и БИХ фильтров**. Другие возможные виды преобразования сигнала – **цифровая модуляция** (Раздел 10) и демодуляция. Также при необходимости может выполняться **изменение частоты дискретизации** сигнала (Раздел 11).\r\n\r\nЗатем сигнал поступает в блок анализа сигнала. Анализ может проводиться во временной области (с помощью **свертки**, Раздел 6) или (чаще всего) в частотной области (**спектральный анализ**, в основе которого лежит **быстрое преобразование Фурье (БПФ)**, Разделы 4 и 5).\r\n\r\nПосле этого сигнгал поступает в **цифро-аналоговый преобразователь** (**ЦАП**, Раздел 2), на выходе которого получается аналоговый сигнал.\r\n\r\n"
+        "Входной аналоговый сигнал, обычно представляющий собой смесь **полезного сигнала** и **шума** (о шумах речь пойдет в Разделе 3 данного курса), поступает в **аналого-цифровой преобразователь** (**АЦП**, Раздел 2). В АЦП входной сигнал подвергается квантованию по уровню и дискретизации по времени. Выбор частоты дискретизации определяется **теоремой Котельникова** (Раздел 1).\r\n\r\n<br/>\r\n\r\nНа выходе АЦП мы получаем цифровой сигнал, который поступает в **блок обработки**. Блок обработки обычно представляет собой **линейную систему** (Раздел 7), которая тем или иным способом изменяет входной сигнал. Таким преобразованием может быть **фильтрация**, при которой усиливаются одни спектральные компоненты сигнала и подавляются другие. Фильтрация используется практически во всех системах ЦОС. В Разделе 8 рассказывается о задачах фильтрации и видах **фильтров**, а в Разделе 9 – о синтезе **КИХ и БИХ фильтров**. Другие возможные виды преобразования сигнала – **цифровая модуляция** (Раздел 10) и демодуляция. Также при необходимости может выполняться **изменение частоты дискретизации** сигнала (Раздел 11).\r\n\r\nЗатем сигнал поступает в блок анализа сигнала. Анализ может проводиться во временной области (с помощью **свертки**, Раздел 6) или (чаще всего) в частотной области (**спектральный анализ**, в основе которого лежит **быстрое преобразование Фурье (БПФ)**, Разделы 4 и 5).\r\n\r\nПосле этого сигнгал поступает в **цифро-аналоговый преобразователь** (**ЦАП**, Раздел 2), на выходе которого получается аналоговый сигнал.\r\n\r\n"
       ],
       "attachments": {},
       "metadata": {
diff --git "a/02. \320\220\320\246\320\237 \320\270 \320\246\320\220\320\237.ngscript" "b/02. \320\220\320\246\320\237 \320\270 \320\246\320\220\320\237.ngscript"
index c5e10401d5ff80997adaba883dde13f5cd5613ef..3515d3221e35623f41bde85c193c387f43b45db6 100644
--- "a/02. \320\220\320\246\320\237 \320\270 \320\246\320\220\320\237.ngscript"	
+++ "b/02. \320\220\320\246\320\237 \320\270 \320\246\320\220\320\237.ngscript"	
@@ -23,7 +23,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "18e26f71",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -43,7 +42,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "4d966629",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -59,7 +57,7 @@
       "id": "93154740",
       "cell_type": "markdown",
       "source": [
-        "**Аналого-цифровой преобразователь** – устройство, преобразующее входной аналоговый сигнал в дискретный цифровой код. АЦП осуществляет операции дискретизации и квантования.\r\n\r\n![ацп.jpg](attachment:ацп.jpg)\r\n\r\nУстройство АЦП:\r\n\r\n![устройство ацп.jpg](attachment:устройство ацп.jpg)\r\n\r\nУстройство выборки и хранения фиксирует и сохраняет значение напряжения на своем входе в моменты замыкания ключа. Моменты замыкания ключа определяются задающим генератором. Его частота определяет частоту дискретизации выходного сигнала. Сигнал на выходе округляется до одного из уровней квантования. \r\n\r\n**Компаратор** – простейший одноразрядный АЦП. На вход он принимает два значения напряжения. Если напряжение на первом входе больше, чем на втором, то он выдает логическую единицу, в противном случае -- логический ноль. Если компараторов несколько, то когда входной сигнал превышает определенный уровень, срабатывает соответствующий компаратор. Выходы всех компараторов преобразуются в двоичное представление.\r\n\r\n---\r\n"
+        "**Аналого-цифровой преобразователь** – устройство, преобразующее входной аналоговый сигнал в дискретный цифровой код. АЦП осуществляет операции дискретизации и квантования.\r\n\r\n![ацп.jpg](attachment:ацп.jpg)\r\n\r\nУстройство АЦП:\r\n\r\n![устройство ацп.jpg](attachment:устройство ацп.jpg)\r\n\r\nУстройство выборки и хранения фиксирует и сохраняет значение напряжения на своем входе в моменты замыкания ключа. Моменты замыкания ключа определяются задающим генератором. Его частота определяет частоту дискретизации выходного сигнала. Сигнал на выходе округляется до одного из уровней квантования. \r\n\r\n<br/>\r\n\r\n**Компаратор** – простейший одноразрядный АЦП. На вход он принимает два значения напряжения. Если напряжение на первом входе больше, чем на втором, то он выдает логическую единицу, в противном случае -- логический ноль. Если компараторов несколько, то когда входной сигнал превышает определенный уровень, срабатывает соответствующий компаратор. Выходы всех компараторов преобразуются в двоичное представление.\r\n\r\n---\r\n"
       ],
       "attachments": {
         "ацп.jpg": {
@@ -70,7 +68,6 @@
         }
       },
       "metadata": {
-        "id": "9dd95ebf",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -90,7 +87,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "e0bfe28d",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -110,7 +106,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "e7953602",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -130,7 +125,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "bb599466",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -150,7 +144,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "34feb070",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -170,7 +163,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "71cf604e",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -190,7 +182,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "71685613",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -210,7 +201,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "b73eff46",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -231,7 +221,6 @@
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "ab424fa7",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -243,6 +232,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -255,7 +249,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "ec53e196",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -275,7 +268,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "d4d806e6",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -296,7 +288,6 @@
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "0dca104b",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -308,6 +299,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -320,7 +316,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "56adda88",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -341,7 +336,6 @@
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "4cf396e9",
         "name": "Название секции",
         "engee": {
           "isDisplay": false,
@@ -353,6 +347,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -365,7 +364,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "898a4d6a",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -389,7 +387,6 @@
         }
       },
       "metadata": {
-        "id": "6c6247a6",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -409,7 +406,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "a8758181",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -429,7 +425,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "7d4a626d",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
diff --git "a/03. \320\241\320\273\321\203\321\207\320\260\320\271\320\275\321\213\320\265 \320\277\321\200\320\276\321\206\320\265\321\201\321\201\321\213 \320\270 \321\210\321\203\320\274\321\213.ngscript" "b/03. \320\241\320\273\321\203\321\207\320\260\320\271\320\275\321\213\320\265 \320\277\321\200\320\276\321\206\320\265\321\201\321\201\321\213 \320\270 \321\210\321\203\320\274\321\213.ngscript"
index 7d89ccca28f23c0c5326d79ffadc68a7ddfdb685..a2b08b9ce04d023163273eced99bd133ea0ae460 100644
--- "a/03. \320\241\320\273\321\203\321\207\320\260\320\271\320\275\321\213\320\265 \320\277\321\200\320\276\321\206\320\265\321\201\321\201\321\213 \320\270 \321\210\321\203\320\274\321\213.ngscript"	
+++ "b/03. \320\241\320\273\321\203\321\207\320\260\320\271\320\275\321\213\320\265 \320\277\321\200\320\276\321\206\320\265\321\201\321\201\321\213 \320\270 \321\210\321\203\320\274\321\213.ngscript"	
@@ -23,7 +23,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "91b10905",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -43,7 +42,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "4228d46f",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -67,7 +65,6 @@
         }
       },
       "metadata": {
-        "id": "523af2b7",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -87,7 +84,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "e4ddbdb2",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -107,7 +103,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "ede52f03",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -127,7 +122,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "cf1e6add",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -147,7 +141,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "a773f040",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -168,7 +161,6 @@
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "7c0e067f",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -180,6 +172,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -192,7 +189,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "be536e67",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -213,7 +209,6 @@
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "59d91ad7",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -225,6 +220,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -237,7 +237,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "68dfa9ad",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -257,7 +256,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "d8b36cca",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -277,7 +275,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "2aaf7743",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -297,7 +294,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "6b25b2ad",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -321,7 +317,6 @@
         }
       },
       "metadata": {
-        "id": "0619e8c0",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -337,11 +332,10 @@
       "id": "03204b38",
       "cell_type": "markdown",
       "source": [
-        "## Аддитивный белый гауссовский шум\r\n\r\nВ цифровой обработке сигналов чаще всего используется **аддитивный белый гауссовский шум (АБГШ)**. Его характристики:\r\n*   Равномерная спектральная плотность мощности (поэтому он называется белым);\r\n*   Нормальное распределение временных значений (поэтому он называется гаусовским);\r\n*   Он суммируется с полезным сигналом (поэтому он называется аддитивным);\r\n*   Он статистически независим от полезного сигнала.\r\n\r\n>АБГШ используется как модель канала передачи данных. \r\n\r\nОдной из мер качества систем ЦОС и систем связи является **отношение сигнал/шум** (signal-to-noise ratio, **SNR**) – безразмерная величина, равная отношению мощности полезного сигнала к мощности шума: \r\n$$SNR=\\frac{P_{\\text{сигнала}}}{P_{\\text{шума}}}=\\left(\\frac{A_{\\text{сигнала}}}{A_{\\text{шума}}}\\right)^2,$$\r\nгде $P$ – мощность, $A$ – амплитуда.\r\n\r\nSNR обычно измеряется в децибелах (дБ).\r\n\r\nОдна из задач ЦОС – повышение отношения сигнал/шум. Рассмотрим один методов – **усреднение (когерентное накопление)**. Он основан на том факте, что при усреднении сигналов амплмитуда шума не растет."
+        "## Аддитивный белый гауссовский шум\r\n\r\nВ цифровой обработке сигналов чаще всего используется **аддитивный белый гауссовский шум (АБГШ)**. Его характристики:\r\n*   Равномерная спектральная плотность мощности (поэтому он называется белым);\r\n*   Нормальное распределение временных значений (поэтому он называется гаусовским);\r\n*   Он суммируется с полезным сигналом (поэтому он называется аддитивным);\r\n*   Он статистически независим от полезного сигнала.\r\n\r\n>АБГШ используется как модель канала передачи данных. \r\n\r\nОдной из мер качества систем ЦОС и систем связи является **отношение сигнал/шум** (signal-to-noise ratio, **SNR**) – безразмерная величина, равная отношению мощности полезного сигнала к мощности шума: \r\n$$SNR=\\frac{P_{\\text{сигнала}}}{P_{\\text{шума}}}=\\left(\\frac{A_{\\text{сигнала}}}{A_{\\text{шума}}}\\right)^2,$$\r\nгде $P$ – мощность, $A$ – амплитуда.\r\n\r\n<br/>\r\n\r\nSNR обычно измеряется в децибелах (дБ).\r\n\r\n<br/>\r\n\r\nОдна из задач ЦОС – повышение отношения сигнал/шум. Рассмотрим один методов – **усреднение (когерентное накопление)**. Он основан на том факте, что при усреднении сигналов амплмитуда шума не растет."
       ],
       "attachments": {},
       "metadata": {
-        "id": "72214425",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -361,7 +355,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "d79dfd32",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -382,7 +375,6 @@
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "03fb635c",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -394,6 +386,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -402,11 +399,10 @@
       "id": "9fb224fd",
       "cell_type": "markdown",
       "source": [
-        "Функция `periodogram`, содержащаяся в библиотеке `DSP` позволит оценить спектральную плотность мощности шума. Переменная <code>signal</code> представляет собой матрицу с 2 столбцами: в первом столбце содержится вектор отсчетов зашумленного сигнала, а во втором – вектор отсчетов шума. Поэтому в качестве аргумента функции <code>periodogram</code> мы возьмем второй столбец матрицы <code>signal</code>.\r\n\r\nИз объекта <code>p</code> выделим вектор частот функцией <code>freq</code> и вектор спектральной плотности мощности функцией <code>power</code>. По графику мы видим, что распределение спектральной плотности мощности шума действительно равномерное. Следовательно, это белый шум."
+        "Функция `periodogram`, содержащаяся в библиотеке `DSP`, позволит оценить спектральную плотность мощности шума. Переменная <code>signal</code> представляет собой матрицу с 2 столбцами: в первом столбце содержится вектор отсчетов зашумленного сигнала, а во втором – вектор отсчетов шума. Поэтому в качестве аргумента функции <code>periodogram</code> мы возьмем второй столбец матрицы <code>signal</code>.\r\n\r\nИз объекта <code>p</code> выделим вектор частот функцией <code>freq</code> и вектор спектральной плотности мощности функцией <code>power</code>. По графику мы видим, что распределение спектральной плотности мощности шума действительно равномерное. Следовательно, это белый шум."
       ],
       "attachments": {},
       "metadata": {
-        "id": "2aa64f7b",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -422,12 +418,11 @@
       "id": "4aec22a8",
       "cell_type": "code",
       "source": [
-        "p = periodogram(signal[2]);\r\nplot(freq(p), power(p), xlabel=\"частота\", ylabel=\"Спектральная плотность мощности\", legend=false)"
+        "p = DSP.periodogram(signal[2]);\r\nplot(freq(p), power(p), xlabel=\"частота\", ylabel=\"Спектральная плотность мощности\", legend=false)"
       ],
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "6c880e10",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -439,6 +434,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -451,7 +451,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "aff77698",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -472,7 +471,6 @@
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "fbf2b9ef",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -484,6 +482,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -496,7 +499,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "2867a25a",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -516,7 +518,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "f4ba0902",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -537,7 +538,6 @@
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "b8b7d8b5",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -549,6 +549,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -561,7 +566,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "49f800bc",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -582,7 +586,6 @@
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "27b5f83a",
         "name": "Название секции",
         "engee": {
           "isDisplay": false,
@@ -594,6 +597,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -602,12 +610,11 @@
       "id": "ba1f9403",
       "cell_type": "code",
       "source": [
-        "p = periodogram(signal[1]);\r\nplot(freq(p), power(p), xlabel=\"частота\", ylabel=\"спектральная плотность мощности\", legend=false)"
+        "p = DSP.periodogram(signal[1]);\r\nplot(freq(p), power(p), xlabel=\"частота\", ylabel=\"спектральная плотность мощности\", legend=false)"
       ],
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "22532547",
         "name": "Название секции",
         "engee": {
           "isDisplay": false,
@@ -619,6 +626,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -631,7 +643,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "15a929ef",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -651,7 +662,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "d70fd418",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
diff --git "a/04. \320\241\320\277\320\265\320\272\321\202\321\200\320\260\320\273\321\214\320\275\320\276\320\265 \320\277\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \321\206\320\270\321\204\321\200\320\276\320\262\321\213\321\205 \321\201\320\270\320\263\320\275\320\260\320\273\320\276\320\262.ngscript" "b/04. \320\241\320\277\320\265\320\272\321\202\321\200\320\260\320\273\321\214\320\275\320\276\320\265 \320\277\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \321\206\320\270\321\204\321\200\320\276\320\262\321\213\321\205 \321\201\320\270\320\263\320\275\320\260\320\273\320\276\320\262.ngscript"
index 710f3ed0747c6a2fb1b7f2d5389f2ac9a18026ba..2a7d208425387ada28d436dc558722342825871d 100644
--- "a/04. \320\241\320\277\320\265\320\272\321\202\321\200\320\260\320\273\321\214\320\275\320\276\320\265 \320\277\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \321\206\320\270\321\204\321\200\320\276\320\262\321\213\321\205 \321\201\320\270\320\263\320\275\320\260\320\273\320\276\320\262.ngscript"	
+++ "b/04. \320\241\320\277\320\265\320\272\321\202\321\200\320\260\320\273\321\214\320\275\320\276\320\265 \320\277\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \321\206\320\270\321\204\321\200\320\276\320\262\321\213\321\205 \321\201\320\270\320\263\320\275\320\260\320\273\320\276\320\262.ngscript"	
@@ -57,7 +57,7 @@
       "id": "da8332c1",
       "cell_type": "markdown",
       "source": [
-        "**Частотное представление сигнала** – это зависимость измеряемых параметров сигнала от частоты.\r\n\r\n> Зависимость энергии сигнала от частоты $X(f)$ называется **спектром сигнала**. \r\n\r\nСпектр сигнала может быть непрерывным (как показано на верхнем рисунке) или дискретным (как показано на нижнем рисунке).\r\n\r\n![непрерывный и дискретный спектр.jpg](attachment:непрерывный и дискретный спектр.jpg)\r\n\r\nВ основе частотного представления сигнала лежит разложение сложного сигнала на сумму простых сигналов. Сложный сигнал представляется в виде суммы синусоид с разными частотами, умноженных на весовые коэффициенты. Весовые коэффициенты удобно представлять комплексными числами: модуль числа соответствует амплитуде, а аргумент – начальной фазе. \r\n\r\n---"
+        "**Частотное представление сигнала** – это зависимость измеряемых параметров сигнала от частоты.\r\n\r\n<br/>\r\n\r\n> Зависимость энергии сигнала от частоты $X(f)$ называется **спектром сигнала**. \r\n\r\nСпектр сигнала может быть непрерывным (как показано на верхнем рисунке) или дискретным (как показано на нижнем рисунке).\r\n\r\n![непрерывный и дискретный спектр.jpg](attachment:непрерывный и дискретный спектр.jpg)\r\n\r\nВ основе частотного представления сигнала лежит разложение сложного сигнала на сумму простых сигналов. Сложный сигнал представляется в виде суммы синусоид с разными частотами, умноженных на весовые коэффициенты. Весовые коэффициенты удобно представлять комплексными числами: модуль числа соответствует амплитуде, а аргумент – начальной фазе. \r\n\r\n---"
       ],
       "attachments": {
         "непрерывный и дискретный спектр.jpg": {
@@ -122,7 +122,7 @@
       "id": "3e989c5a",
       "cell_type": "markdown",
       "source": [
-        "## Преобразование Фурье\r\n\r\nПреобразование Фурье используется как способ разложения сигнала на частоты и амплитуды, т.е. для перевода сигнала из временного представления в частотное. \r\nДля непрерывных сигналов применяется интегральная форма преобразования Фурье (**непрерывное преобразование Фурье**):\r\n$$F(\\omega)=\\frac{1}{\\sqrt{2\\pi}}\\int_{-\\infty}^{\\infty}f(x)e^{-jx\\omega}dx,$$\r\nа для дискретных сигналов – **диксретное преобразование Фурье (ДПФ)**:\r\n$$X_k=\\sum_{n=0}^{N-1}x_n e^{-\\frac{2\\pi j}{N}kn}.$$\r\nРезультатом ДПФ будет набор комплекесных отсчетов спектра. \r\nСуществуют **обратные преобразования Фурье** (непрерыное и дискретное), переводящие сигнал из частотной области во временную.\r\n\r\n**Быстрое преобразование Фурье (БПФ)** – это эффективный алгоритм вычисления ДПФ. Оптимальная длина временной последовательности для БПФ равна $2^n$, где $n$ – натуральное число. \r\n\r\nНаиболее распространенная версия БПФ – **алгоритм Кули–Тьюки**. Он основывается на том факте, что для вычисления ДПФ из, например, 8 точек, оно может быть выполнено отбором четных и нечетных значений входного сигнала и выполнением двух четырехточечных ДПФ с дальнейшей операцией прореживания во времени. \r\n\r\n---"
+        "## Преобразование Фурье\r\n\r\nПреобразование Фурье используется как способ разложения сигнала на частоты и амплитуды, т.е. для перевода сигнала из временного представления в частотное. \r\nДля непрерывных сигналов применяется интегральная форма преобразования Фурье (**непрерывное преобразование Фурье**):\r\n$$F(\\omega)=\\frac{1}{\\sqrt{2\\pi}}\\int_{-\\infty}^{\\infty}f(x)e^{-jx\\omega}dx,$$\r\nа для дискретных сигналов – **диксретное преобразование Фурье (ДПФ)**:\r\n$$X_k=\\sum_{n=0}^{N-1}x_n e^{-\\frac{2\\pi j}{N}kn}.$$\r\nРезультатом ДПФ будет набор комплекесных отсчетов спектра. \r\nСуществуют **обратные преобразования Фурье** (непрерыное и дискретное), переводящие сигнал из частотной области во временную.\r\n\r\n<br/>\r\n\r\n**Быстрое преобразование Фурье (БПФ)** – это эффективный алгоритм вычисления ДПФ. Оптимальная длина временной последовательности для БПФ равна $2^n$, где $n$ – натуральное число. \r\n\r\n<br/>\r\n\r\nНаиболее распространенная версия БПФ – **алгоритм Кули–Тьюки**. Он основывается на том факте, что для вычисления ДПФ из, например, 8 точек, оно может быть выполнено отбором четных и нечетных значений входного сигнала и выполнением двух четырехточечных ДПФ с дальнейшей операцией прореживания во времени. \r\n\r\n---"
       ],
       "attachments": {},
       "metadata": {
@@ -361,7 +361,7 @@
       "id": "004df5d8",
       "cell_type": "markdown",
       "source": [
-        "При выполнении БПФ выходной вектор называется **точками**, или **отсчетами** БПФ. Отсчеты сигнала обычно поступают скалярно (по одному), поэтому перед БПФ осуществляется **буферизация** – накопление отсчетов вектора. Входной вектор временных отсчетов называется **окном**. Размер входного окна тем или иным способом приравнивается к длине БПФ ($N_{FFT}$). Если во входном окне отсчетов больше, чем нужно, то лишние отбрасываются. Если меньше, то входной вектор дополняется нулями. \r\n\r\n**Разрешение по частоте** зависит от длины БПФ и от частоты дискретизации сигнала:\r\n$$RBW=\\frac{f_s}{N_{FFT}}.$$ Берется весь частотный диапазон от $-f_s/2$ до $f_s/2$ и заполняется точками, в которых нужно оценить спектр. Расстояние между соседними точками – это и есть разрешение по частоте.\r\n\r\n![RBW.jpg](attachment:RBW.jpg)\r\n\r\n---"
+        "При выполнении БПФ выходной вектор называется **точками**, или **отсчетами** БПФ. Отсчеты сигнала обычно поступают скалярно (по одному), поэтому перед БПФ осуществляется **буферизация** – накопление отсчетов вектора. Входной вектор временных отсчетов называется **окном**. Размер входного окна тем или иным способом приравнивается к длине БПФ ($N_{FFT}$). Если во входном окне отсчетов больше, чем нужно, то лишние отбрасываются. Если меньше, то входной вектор дополняется нулями. \r\n\r\n<br/>\r\n\r\n**Разрешение по частоте** зависит от длины БПФ и от частоты дискретизации сигнала:\r\n$$RBW=\\frac{f_s}{N_{FFT}}.$$ Берется весь частотный диапазон от $-f_s/2$ до $f_s/2$ и заполняется точками, в которых нужно оценить спектр. Расстояние между соседними точками – это и есть разрешение по частоте.\r\n\r\n![RBW.jpg](attachment:RBW.jpg)\r\n\r\n---"
       ],
       "attachments": {
         "RBW.jpg": {
@@ -384,7 +384,7 @@
       "id": "93b9db61",
       "cell_type": "markdown",
       "source": [
-        "## Оконные функции при спектральном анализе\r\n\r\n> **Спектральная плотность мощности** – мощность сигнала, приходящаяся на единичный интервал частоты.\r\n\r\nЧасто мы не можем определить точное положение той или иной гармоники в спектре, т.к. она попадает между точками БПФ. Энергия этой гармоники может проявиться в соседних точках БПФ. Этот эффект называется **утечкой спектра**. Избежать его полностью невозможно, но сгладить его влияние можно с помощью оконных функций. \r\n\r\n> **Оконная функция** – это набор весовых коэффициентов, изменяющих значения амплитуды отсчетов сигнала во временной области. \r\n\r\nПри анализе большого сигнала мы разбиваем его на небольшие отрезки, которые мы взвешиваем оконной функцией и отправляем на вход алгоритма БПФ. "
+        "## Оконные функции при спектральном анализе\r\n\r\n> **Спектральная плотность мощности** – мощность сигнала, приходящаяся на единичный интервал частоты.\r\n\r\nЧасто мы не можем определить точное положение той или иной гармоники в спектре, т.к. она попадает между точками БПФ. Энергия этой гармоники может проявиться в соседних точках БПФ. Этот эффект называется **утечкой спектра**. Избежать его полностью невозможно, но сгладить его влияние можно с помощью оконных функций.\r\n\r\n<br/>\r\n\r\n> **Оконная функция** – это набор весовых коэффициентов, изменяющих значения амплитуды отсчетов сигнала во временной области. \r\n\r\nПри анализе большого сигнала мы разбиваем его на небольшие отрезки, которые мы взвешиваем оконной функцией и отправляем на вход алгоритма БПФ. "
       ],
       "attachments": {},
       "metadata": {
@@ -690,7 +690,7 @@
       "id": "cac19496",
       "cell_type": "code",
       "source": [
-        "using Plots, DSP;\r\nfs = 4000;\r\nt = [0:1/fs:0.2;];\r\nx = (t.^3).*cos.(2*pi*1000*t);\r\nn=div(length(x),8);\r\ny = spectrogram(x, n, div(n,2), onesided=true, nfft=length(x), fs=fs, window=DSP.hamming);\r\nplot(y.time, y.freq, pow2db.(y.power), xlabel=\"частота, Гц\", ylabel=\"t, с\", legend=false)"
+        "using Plots, DSP;\r\nfs = 4000;\r\nt = [0:1/fs:0.2;];\r\nx = (t.^3).*cos.(2*pi*1000*t);\r\nn=div(length(x),8);\r\ny = DSP.spectrogram(x, n, div(n,2), onesided=true, nfft=length(x), fs=fs, window=DSP.hamming);\r\nplot(y.time, y.freq, pow2db.(y.power), xlabel=\"частота, Гц\", ylabel=\"t, с\", legend=false)"
       ],
       "execution_count": 0,
       "outputs": [],
@@ -805,7 +805,7 @@
       "id": "921c0080",
       "cell_type": "code",
       "source": [
-        "using Plots, DigitalComm, DSP;\r\nfs = 4000;\r\nt = [0:1/fs:0.2;];\r\nsin_wave = cos.(2*pi*1000*t);\r\nx = addNoise(sin_wave, 5)[1];\r\nn=div(length(x),8);\r\ny = spectrogram(x, n, div(n,2), onesided=true, nfft=length(x), fs=fs, window=DSP.hamming);\r\nplot(y.time, y.freq, pow2db.(y.power), xlabel=\"частота, Гц\", ylabel=\"t\", legend=false)"
+        "using Plots, DigitalComm, DSP;\r\nfs = 4000;\r\nt = [0:1/fs:0.2;];\r\nsin_wave = cos.(2*pi*1000*t);\r\nx = addNoise(sin_wave, 5)[1];\r\nn=div(length(x),8);\r\ny = DSP.spectrogram(x, n, div(n,2), onesided=true, nfft=length(x), fs=fs, window=DSP.hamming);\r\nplot(y.time, y.freq, pow2db.(y.power), xlabel=\"частота, Гц\", ylabel=\"t\", legend=false)"
       ],
       "execution_count": 0,
       "outputs": [],
diff --git "a/05. \320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\270\321\207\320\265\321\201\320\272\320\270\320\265 \320\270 \320\275\320\265\320\277\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\270\321\207\320\265\321\201\320\272\320\270\320\265 \320\274\320\265\321\202\320\276\320\264\321\213 \321\201\320\277\320\265\320\272\321\202\321\200\320\260\320\273\321\214\320\275\320\276\320\263\320\276 \320\260\320\275\320\260\320\273\320\270\320\267\320\260.ngscript" "b/05. \320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\270\321\207\320\265\321\201\320\272\320\270\320\265 \320\270 \320\275\320\265\320\277\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\270\321\207\320\265\321\201\320\272\320\270\320\265 \320\274\320\265\321\202\320\276\320\264\321\213 \321\201\320\277\320\265\320\272\321\202\321\200\320\260\320\273\321\214\320\275\320\276\320\263\320\276 \320\260\320\275\320\260\320\273\320\270\320\267\320\260.ngscript"
index b2bc160983902439656706e97f75448cfdb61843..e188b75cd792c536d8b52847228f5a952a764598 100644
--- "a/05. \320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\270\321\207\320\265\321\201\320\272\320\270\320\265 \320\270 \320\275\320\265\320\277\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\270\321\207\320\265\321\201\320\272\320\270\320\265 \320\274\320\265\321\202\320\276\320\264\321\213 \321\201\320\277\320\265\320\272\321\202\321\200\320\260\320\273\321\214\320\275\320\276\320\263\320\276 \320\260\320\275\320\260\320\273\320\270\320\267\320\260.ngscript"	
+++ "b/05. \320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\270\321\207\320\265\321\201\320\272\320\270\320\265 \320\270 \320\275\320\265\320\277\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\270\321\207\320\265\321\201\320\272\320\270\320\265 \320\274\320\265\321\202\320\276\320\264\321\213 \321\201\320\277\320\265\320\272\321\202\321\200\320\260\320\273\321\214\320\275\320\276\320\263\320\276 \320\260\320\275\320\260\320\273\320\270\320\267\320\260.ngscript"	
@@ -124,7 +124,7 @@
       "id": "4a85c215",
       "cell_type": "code",
       "source": [
-        "y = periodogram(x, onesided=true, nfft=length(x), fs=fs, window=DSP.hamming);\r\nplot(freq(y)[1:400], power(y)[1:400], xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", legend=false)"
+        "y = DSP.periodogram(x, onesided=true, nfft=length(x), fs=fs, window=DSP.hamming);\r\nplot(freq(y)[1:400], power(y)[1:400], xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", legend=false)"
       ],
       "execution_count": 0,
       "outputs": [],
@@ -239,7 +239,7 @@
       "id": "d91dfb36",
       "cell_type": "code",
       "source": [
-        "using Plots, FFTW;\r\nfc = [440 550 660]';\r\nfs = 8000;\r\ndt = 1/fs;\r\nt = [0:dt:0.1;];\r\nx = cos.(2*pi*fc[1]*t) + cos.(2*pi*fc[2]*t) + cos.(2*pi*fc[3]*t);\r\nx = x/3;\r\ny = periodogram(x, onesided=true, nfft=length(x), fs=fs, window=DSP.hamming);\r\nplot(freq(y)[1:100], power(y)[1:100], xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", legend=false)"
+        "using Plots, FFTW;\r\nfc = [440 550 660]';\r\nfs = 8000;\r\ndt = 1/fs;\r\nt = [0:dt:0.1;];\r\nx = cos.(2*pi*fc[1]*t) + cos.(2*pi*fc[2]*t) + cos.(2*pi*fc[3]*t);\r\nx = x/3;\r\ny = DSP.periodogram(x, onesided=true, nfft=length(x), fs=fs, window=DSP.hamming);\r\nplot(freq(y)[1:100], power(y)[1:100], xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", legend=false)"
       ],
       "execution_count": 0,
       "outputs": [],
@@ -268,7 +268,7 @@
       "id": "045edbac",
       "cell_type": "markdown",
       "source": [
-        "---\r\n\r\n### Метод Уэлча\r\n\r\nПри вычислении периодограммы по длинному фрагменту случайного сигнала она оказывается весьма изрезанной. Для уменьшения этой изрезанности необходимо применить какое-либо усреднение. \r\n\r\nМетод, предложенный Уэлчем, использует весовую функцию и разбиение сигнала на перекрывающиеся сегменты. Вычисления по методу Уэлча организуются следующим образом:\r\n\r\n1.   Вектор отсчетов сигнала делится на перекрывающиеся сегменты. Как правило, используется перекрытие 50%. \r\n2.   Каждый сегмент умножается на используемую весовую функцию.\r\n3.   Для взвешенных сегментов вычисляются модифицированные периодограммы.\r\n4.  Периодограммы всех сегментов усредняются.\r\n\r\n\r\n\r\n"
+        "---\r\n\r\n### Метод Уэлча\r\n\r\nПри вычислении периодограммы по длинному фрагменту случайного сигнала она оказывается весьма изрезанной. Для уменьшения этой изрезанности необходимо применить какое-либо усреднение. \r\n\r\n<br/>\r\n\r\nМетод, предложенный Уэлчем, использует весовую функцию и разбиение сигнала на перекрывающиеся сегменты. Вычисления по методу Уэлча организуются следующим образом:\r\n\r\n1.   Вектор отсчетов сигнала делится на перекрывающиеся сегменты. Как правило, используется перекрытие 50%. \r\n2.   Каждый сегмент умножается на используемую весовую функцию.\r\n3.   Для взвешенных сегментов вычисляются модифицированные периодограммы.\r\n4.  Периодограммы всех сегментов усредняются.\r\n\r\n\r\n\r\n"
       ],
       "attachments": {},
       "metadata": {
diff --git "a/06. \320\232\320\276\321\200\321\200\320\265\320\273\321\217\321\206\320\270\321\217 \320\270 \321\201\320\262\320\265\321\200\321\202\320\272\320\260.ngscript" "b/06. \320\232\320\276\321\200\321\200\320\265\320\273\321\217\321\206\320\270\321\217 \320\270 \321\201\320\262\320\265\321\200\321\202\320\272\320\260.ngscript"
index bc8f1bbf1ab52c3d371c994d9646941d5ffb9fa3..373b87bb78d237cf3c885e1a04e889a8765b6f57 100644
--- "a/06. \320\232\320\276\321\200\321\200\320\265\320\273\321\217\321\206\320\270\321\217 \320\270 \321\201\320\262\320\265\321\200\321\202\320\272\320\260.ngscript"	
+++ "b/06. \320\232\320\276\321\200\321\200\320\265\320\273\321\217\321\206\320\270\321\217 \320\270 \321\201\320\262\320\265\321\200\321\202\320\272\320\260.ngscript"	
@@ -38,7 +38,7 @@
       "id": "ee315b4d",
       "cell_type": "markdown",
       "source": [
-        "## Корреляционная функция\r\n\r\n> **Корреляция** – это мера зависимости двух (случайных) величин. \r\n\r\nДля численной оценки этой зависимости используется **коэффиицент корреляции**. Он может принимать значения на отрезке от $-1$ до $+1$. Если коэффициет корреляции равен $+1$, то две величины идеально коррелированы друг с другом, т.е при изменении первой величины на какое-то значение вторая величина изменяется на такое же значние. Если коэффиицент корреляции равен $-1$, то росту первой величины соответствует уменьшение второй величины на такое же значение. \r\n\r\n> **Корреляционная функция** двух сигналов – это зависимость коэффициента корреляции от величины временного сдвига между сигналами. \r\n\r\n> **Взаимная корреялционная функция** – это метод оценки корреляции двух сигналов $f(t)$ и $g(t)$:\r\n$$\\Psi(\\tau)=\\int_{-\\infty}^{\\infty}f(t) \\cdot g(t+\\tau)dt.$$\r\nДля дискретных сигналов операция интегрирования заменяется на суммирование.\r\n\r\n> **Автокорреляционная функция (АКФ)** сравнивает сигнал с его сдвинутой во времени копией.\r\n\r\nНапример, АКФ прямоугольного импульса имеет форму треугольника, а АКФ бесконечной синусоиды – такая же синусоида с той же частотой. АКФ случайного процесса (шума) имеет один выраженный максимум в точке 0, и при малейшем сдвиге ее значения падают почти до нуля:\r\n\r\n![акф шума.jpg](attachment:акф шума.jpg)"
+        "## Корреляционная функция\r\n\r\n> **Корреляция** – это мера зависимости двух (случайных) величин. \r\n\r\nДля численной оценки этой зависимости используется **коэффиицент корреляции**. Он может принимать значения на отрезке от $-1$ до $+1$. Если коэффициет корреляции равен $+1$, то две величины идеально коррелированы друг с другом, т.е при изменении первой величины на какое-то значение вторая величина изменяется на такое же значние. Если коэффиицент корреляции равен $-1$, то росту первой величины соответствует уменьшение второй величины на такое же значение. \r\n\r\n<br/>\r\n\r\n> **Корреляционная функция** двух сигналов – это зависимость коэффициента корреляции от величины временного сдвига между сигналами. \r\n\r\n> **Взаимная корреялционная функция** – это метод оценки корреляции двух сигналов $f(t)$ и $g(t)$:\r\n$$\\Psi(\\tau)=\\int_{-\\infty}^{\\infty}f(t) \\cdot g(t+\\tau)dt.$$\r\nДля дискретных сигналов операция интегрирования заменяется на суммирование.\r\n\r\n<br/>\r\n\r\n> **Автокорреляционная функция (АКФ)** сравнивает сигнал с его сдвинутой во времени копией.\r\n\r\nНапример, АКФ прямоугольного импульса имеет форму треугольника, а АКФ бесконечной синусоиды – такая же синусоида с той же частотой. АКФ случайного процесса (шума) имеет один выраженный максимум в точке 0, и при малейшем сдвиге ее значения падают почти до нуля:\r\n\r\n![акф шума.jpg](attachment:акф шума.jpg)"
       ],
       "attachments": {
         "акф шума.jpg": {
@@ -137,7 +137,7 @@
       "id": "331d6964",
       "cell_type": "markdown",
       "source": [
-        "**Непрерывная свертка** $y=f*g$ является одним из видов интегральных преобразований и по своему виду близка к корреляционной функции. С помощью свертки оценивается степень схожести одной функции с *зеркально отраженной* и сдвинутой во времени второй функцией. \r\n\r\n**Дискретная свертка** двух последовательностей вычисляется по формуле:\r\n$$y[n]=\\sum_{m=0}^{\\infty}x[m] \\cdot h[n-m].$$\r\n\r\n**Пример вычисления дискретной свертки**. Рассмотрим две дискретные последовательности:\r\n$$x[n]=[\\begin{matrix} 4 & 2 & 1 & 2 & 3 \\end{matrix}]$$ и $$h[n]=[\\begin{matrix} 1 & 2 & 4 & 2 & 3 \\end{matrix}].$$ Тогда их свертка будет иметь вид: $$y[n]=[\\begin{matrix} 4 & 10 & 21 & 20 & 27 & 22 & 19 & 12 & 9 \\end{matrix}].$$ \r\n\r\nПри этом первую последовательность можно рассматривать как входной сигнал, а вторую – как некую систему, через которую этот сигнал проходит. Результат дискретной свертки $y[n]$ содержит больше отсчетов, чем каждая из сворачиваемых последовательностей."
+        "**Непрерывная свертка** $y=f*g$ является одним из видов интегральных преобразований и по своему виду близка к корреляционной функции. С помощью свертки оценивается степень схожести одной функции с *зеркально отраженной* и сдвинутой во времени второй функцией. \r\n\r\n<br/>\r\n\r\n**Дискретная свертка** двух последовательностей вычисляется по формуле:\r\n$$y[n]=\\sum_{m=0}^{\\infty}x[m] \\cdot h[n-m].$$\r\n\r\n**Пример вычисления дискретной свертки**. Рассмотрим две дискретные последовательности:\r\n$$x[n]=[\\begin{matrix} 4 & 2 & 1 & 2 & 3 \\end{matrix}]$$ и $$h[n]=[\\begin{matrix} 1 & 2 & 4 & 2 & 3 \\end{matrix}].$$ Тогда их свертка будет иметь вид: $$y[n]=[\\begin{matrix} 4 & 10 & 21 & 20 & 27 & 22 & 19 & 12 & 9 \\end{matrix}].$$ \r\n\r\nПри этом первую последовательность можно рассматривать как входной сигнал, а вторую – как некую систему, через которую этот сигнал проходит. Результат дискретной свертки $y[n]$ содержит больше отсчетов, чем каждая из сворачиваемых последовательностей."
       ],
       "attachments": {},
       "metadata": {
diff --git "a/07. \320\233\320\270\320\275\320\265\320\271\320\275\321\213\320\265 \321\201\321\202\320\260\321\206\320\270\320\276\320\275\320\260\321\200\320\275\321\213\320\265 \321\201\320\270\321\201\321\202\320\265\320\274\321\213.ngscript" "b/07. \320\233\320\270\320\275\320\265\320\271\320\275\321\213\320\265 \321\201\321\202\320\260\321\206\320\270\320\276\320\275\320\260\321\200\320\275\321\213\320\265 \321\201\320\270\321\201\321\202\320\265\320\274\321\213.ngscript"
index f639e63b834b1efcd68d845cbf86d0d60e2a0500..80d52766cfb0dc227995d39bb6f07f1d2eabf3a0 100644
--- "a/07. \320\233\320\270\320\275\320\265\320\271\320\275\321\213\320\265 \321\201\321\202\320\260\321\206\320\270\320\276\320\275\320\260\321\200\320\275\321\213\320\265 \321\201\320\270\321\201\321\202\320\265\320\274\321\213.ngscript"	
+++ "b/07. \320\233\320\270\320\275\320\265\320\271\320\275\321\213\320\265 \321\201\321\202\320\260\321\206\320\270\320\276\320\275\320\260\321\200\320\275\321\213\320\265 \321\201\320\270\321\201\321\202\320\265\320\274\321\213.ngscript"	
@@ -23,7 +23,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "6d97e2f9",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -43,7 +42,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "7a81e402",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -67,7 +65,6 @@
         }
       },
       "metadata": {
-        "id": "dbfa44f4",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -87,7 +84,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "0bc14c0d",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -107,7 +103,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "eb6e087a",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -131,7 +126,6 @@
         }
       },
       "metadata": {
-        "id": "f626efa9",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -147,11 +141,10 @@
       "id": "426ace67",
       "cell_type": "markdown",
       "source": [
-        "Здесь символ $z^{-1}$ обозначает задержку сигнала на один отсчет (на один такт), треугольники с числами обозначают умножение отсчетов на соответствующие коэффициенты, знаком $+$ в круге обозначен сумматор.\r\n\r\nПо разностным уравнениям можно составлять схемы ЛДСС и реализовывать их в \"железе\".\r\n\r\n---"
+        "Здесь символ $z^{-1}$ обозначает задержку сигнала на один отсчет (на один такт), треугольники с числами обозначают умножение отсчетов на соответствующие коэффициенты, знаком $+$ в круге обозначен сумматор.\r\n\r\n<br/>\r\n\r\nПо разностным уравнениям можно составлять схемы ЛДСС и реализовывать их в \"железе\".\r\n\r\n---"
       ],
       "attachments": {},
       "metadata": {
-        "id": "442a9d71",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -171,7 +164,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "3235a324",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -187,11 +179,10 @@
       "id": "58f7ad13",
       "cell_type": "markdown",
       "source": [
-        "> **Импульсная характеристика** ЛДСС – это  реакция системы на единичный дискретный импульс. \r\n\r\nЕдиничный дискретный импульс – аналог дельта-функции Дирака для дискретных сигналов, у него есть всего один отсчет, равный 1 в момент времени $t=0$. \r\n\r\nОтклик системы y(n) вычисляется с помощью дискретной свертки входного сигнала $x(n)$ и импульсной характристики $h(n)$:\r\n$$y(n)=x(n)*h(n).$$\r\n\r\n---"
+        "> **Импульсная характеристика** ЛДСС – это  реакция системы на единичный дискретный импульс. \r\n\r\nЕдиничный дискретный импульс – аналог дельта-функции Дирака для дискретных сигналов, у него есть всего один отсчет, равный 1 в момент времени $t=0$. \r\n\r\n<br/>\r\n\r\nОтклик системы y(n) вычисляется с помощью дискретной свертки входного сигнала $x(n)$ и импульсной характристики $h(n)$:\r\n$$y(n)=x(n)*h(n).$$\r\n\r\n---"
       ],
       "attachments": {},
       "metadata": {
-        "id": "9399997e",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -211,7 +202,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "be279107",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -227,11 +217,10 @@
       "id": "bb75e99f",
       "cell_type": "markdown",
       "source": [
-        "> **Z-преобразование** ставит в соответствие значениям сигнала во временной области отсчеты в комплексной частотной области: $$X(z)=\\sum_{n=-\\infty}^{\\infty}x(n)z^{-n}.$$\r\n\r\nСвойства Z-преобразования:\r\n\r\n*   $x(n-k) \\rightarrow z^{-k} \\cdot X(z)$;\r\n*   $x(n)*y(n) \\rightarrow X(z) \\cdot Y(z)$;\r\n*   $x(-n) \\rightarrow X(1/z)$;\r\n*   $a^n x(n) \\rightarrow X(z/a)$.\r\n\r\nВ Z-области вычисления становятся гораздо проще и эффективнее. Поэтому часто анализ сложных систем осуществляют в Z-области, а затем производят обратное преобразование во  временную область. \r\n\r\nZ-форма выходного сигнала системы вычисляется как перемножение Z-форм входного сигнала и импульсной характеристики: \r\n$$y(n)=x(n)*h(n) \\rightarrow Y(z)=X(z) \\cdot H(z).$$\r\n\r\n> Отношение выхода и входа в Z-области называется **передаточной функцией системы**: $$H(z)=\\frac{Y(z)}{X(z)}.$$\r\n\r\nЭто дробно-рациональная функция с полиномами в числителе и знаменателе:\r\n$$H(z)=\\frac{b_0+b_1z^{-1}+b_2z^{-2}+...+b_Mz^{-M}}{a_0+a_1z^{-1}+a_2z^{-2}+...+a_Nz^{-N}}.$$\r\nЭти полиномы полностью определяются коэффициентами разностного уравнения.\r\n\r\n---\r\n"
+        "> **Z-преобразование** ставит в соответствие значениям сигнала во временной области отсчеты в комплексной частотной области: $$X(z)=\\sum_{n=-\\infty}^{\\infty}x(n)z^{-n}.$$\r\n\r\nСвойства Z-преобразования:\r\n\r\n*   $x(n-k) \\rightarrow z^{-k} \\cdot X(z)$;\r\n*   $x(n)*y(n) \\rightarrow X(z) \\cdot Y(z)$;\r\n*   $x(-n) \\rightarrow X(1/z)$;\r\n*   $a^n x(n) \\rightarrow X(z/a)$.\r\n\r\nВ Z-области вычисления становятся гораздо проще и эффективнее. Поэтому часто анализ сложных систем осуществляют в Z-области, а затем производят обратное преобразование во  временную область. \r\n\r\n<br/>\r\n\r\nZ-форма выходного сигнала системы вычисляется как перемножение Z-форм входного сигнала и импульсной характеристики: \r\n$$y(n)=x(n)*h(n) \\rightarrow Y(z)=X(z) \\cdot H(z).$$\r\n\r\n> Отношение выхода и входа в Z-области называется **передаточной функцией системы**: $$H(z)=\\frac{Y(z)}{X(z)}.$$\r\n\r\nЭто дробно-рациональная функция с полиномами в числителе и знаменателе:\r\n$$H(z)=\\frac{b_0+b_1z^{-1}+b_2z^{-2}+...+b_Mz^{-M}}{a_0+a_1z^{-1}+a_2z^{-2}+...+a_Nz^{-N}}.$$\r\nЭти полиномы полностью определяются коэффициентами разностного уравнения.\r\n\r\n---\r\n"
       ],
       "attachments": {},
       "metadata": {
-        "id": "953f5a71",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -251,7 +240,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "dd1b6be0",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -267,7 +255,7 @@
       "id": "3aecbb53",
       "cell_type": "markdown",
       "source": [
-        "Переменная $z$ – это некоторая комплексная величина, которую можно изобразить на комплексной плоскости. Для передаточной функции $H(z)$ определим точки, в которых она равна нулю (точки, в которых числитель равен нулю), и точки, в которых она  обращается в бесконечность (точки, в которых знаменатель равен нулю). Корни числителя – это **нули** передаточной функции, а корни знаменателя – ее **полюсы**. \r\n\r\nПример: \r\n$$H(z)=\\frac{0,75+0,5z^{-1}}{1+0,2z^{-1}+0,1z^{-2}}.$$\r\nУмножив числитель и знаменатель дроби на $z^2$, получим\r\n$$H(z)=\\frac{0,75z^2+0,5z}{z^2+0,2z+0,1}.$$\r\nПриравняв числитель к нулю, найдем нули передаточной функции: $z=0$ и $z=-0,6667$. Приравняв знаменатель к нулю, найдем полюсы: $z=-0,1+0,3j$, $z=-0,1-0,3j$.\r\n\r\nОтобразим их на комплексной плоскости. Нули помечаются кружками, полюсы – крестиками.\r\n\r\n![нуль-полюсная диаграмма.jpg](attachment:нуль-полюсная диаграмма.jpg)\r\n\r\n---\r\n"
+        "Переменная $z$ – это некоторая комплексная величина, которую можно изобразить на комплексной плоскости. Для передаточной функции $H(z)$ определим точки, в которых она равна нулю (точки, в которых числитель равен нулю), и точки, в которых она  обращается в бесконечность (точки, в которых знаменатель равен нулю). Корни числителя – это **нули** передаточной функции, а корни знаменателя – ее **полюсы**. \r\n\r\n<br/>\r\n\r\nПример: \r\n$$H(z)=\\frac{0,75+0,5z^{-1}}{1+0,2z^{-1}+0,1z^{-2}}.$$\r\nУмножив числитель и знаменатель дроби на $z^2$, получим\r\n$$H(z)=\\frac{0,75z^2+0,5z}{z^2+0,2z+0,1}.$$\r\nПриравняв числитель к нулю, найдем нули передаточной функции: $z=0$ и $z=-0,6667$. Приравняв знаменатель к нулю, найдем полюсы: $z=-0,1+0,3j$, $z=-0,1-0,3j$.\r\n\r\n<br/>\r\n\r\nОтобразим их на комплексной плоскости. Нули помечаются кружками, полюсы – крестиками.\r\n\r\n![нуль-полюсная диаграмма.jpg](attachment:нуль-полюсная диаграмма.jpg)\r\n\r\n---\r\n"
       ],
       "attachments": {
         "нуль-полюсная диаграмма.jpg": {
@@ -275,7 +263,6 @@
         }
       },
       "metadata": {
-        "id": "00fb8d93",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -295,7 +282,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "bfb53dbd",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -315,7 +301,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "91a87f8d",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -339,7 +324,6 @@
         }
       },
       "metadata": {
-        "id": "03944bff",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -359,7 +343,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "0ed6bb44",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -383,7 +366,6 @@
         }
       },
       "metadata": {
-        "id": "ffdfae3a",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -403,7 +385,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "ba346bb1",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -419,7 +400,7 @@
       "id": "f313adef",
       "cell_type": "markdown",
       "source": [
-        "> Задача линейных стационарных систем – изменять амплитуду и/или фазу входных сигналов. Этот процесс называется **фильтрацией**. \r\n\r\nНапример, одна из типичных задач для линейной стационарной системы – удаление нежелательных высокочастных составляющих в сигнале и усиление полезной низкочастоной составляющей. \r\n\r\nВ дальнейшем такие системы мы будем называть **фильтрами**. \r\n\r\n![фильтрация.jpg](attachment:фильтрация.jpg)\r\n\r\nДля описания любого фильтра досаточно знать два вектора его коэффициентов:\r\n$$b=[\\begin{matrix} b_0& b_1 & ... & b_M \\end{matrix}],$$\r\n$$a=[\\begin{matrix} a_0 & a_1 & ... & a_N \\end{matrix}].$$\r\n\r\n---"
+        "> Задача линейных стационарных систем – изменять амплитуду и/или фазу входных сигналов. Этот процесс называется **фильтрацией**. \r\n\r\nНапример, одна из типичных задач для линейной стационарной системы – удаление нежелательных высокочастных составляющих в сигнале и усиление полезной низкочастоной составляющей. \r\n\r\n<br/>\r\n\r\nВ дальнейшем такие системы мы будем называть **фильтрами**. \r\n\r\n![фильтрация.jpg](attachment:фильтрация.jpg)\r\n\r\nДля описания любого фильтра досаточно знать два вектора его коэффициентов:\r\n$$b=[\\begin{matrix} b_0& b_1 & ... & b_M \\end{matrix}],$$\r\n$$a=[\\begin{matrix} a_0 & a_1 & ... & a_N \\end{matrix}].$$\r\n\r\n---"
       ],
       "attachments": {
         "фильтрация.jpg": {
@@ -427,7 +408,6 @@
         }
       },
       "metadata": {
-        "id": "3a48eb6b",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -443,11 +423,10 @@
       "id": "aac98433",
       "cell_type": "markdown",
       "source": [
-        "## Пример фильтрации сигнала в Engee\r\n\r\nПерейдем в **Engee** и проанализируем фильтр с рассмотренными ранее коэффициентами. Данный фильтр представляет собой фильтр нижних частот, т.е. он пропускает частоты ниже 2 кГц и подавляет частоты начиная с 2 кГц. После прохождения сигнала через этот фильтр высокочастные компоненты сигнала будут гораздо ниже по уровню, чем низкочастотные. \r\n\r\nПостроим сигнал, представляющий собой сумму двух синусоид с частотами 500 Гц и 4100 Гц."
+        "## Пример фильтрации сигнала в Engee\r\n\r\nПерейдем в **Engee** и проанализируем фильтр с рассмотренными ранее коэффициентами. Данный фильтр представляет собой фильтр нижних частот, т.е. он пропускает частоты ниже 2 кГц и подавляет частоты начиная с 2 кГц. После прохождения сигнала через этот фильтр высокочастные компоненты сигнала будут гораздо ниже по уровню, чем низкочастотные. \r\n\r\n<br/>\r\n\r\nПостроим сигнал, представляющий собой сумму двух синусоид с частотами 500 Гц и 4100 Гц."
       ],
       "attachments": {},
       "metadata": {
-        "id": "c3689517",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -468,7 +447,6 @@
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "d05eb5cc",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -480,6 +458,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -492,7 +475,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "cf90c98f",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -513,7 +495,6 @@
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "4e018236",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -525,6 +506,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -537,7 +523,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "7b60ecac",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -558,7 +543,6 @@
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "784b58bc",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -570,6 +554,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -582,7 +571,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "02d6f5c2",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -602,7 +590,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "4fa0f191",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -623,7 +610,6 @@
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "c7aa3996",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -635,6 +621,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -647,7 +638,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "9879c2e0",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -668,7 +658,6 @@
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "1799f6ce",
         "name": "Название секции",
         "engee": {
           "isDisplay": false,
@@ -680,6 +669,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -693,7 +687,6 @@
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "8331291f",
         "name": "Название секции",
         "engee": {
           "isDisplay": false,
@@ -705,6 +698,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -717,7 +715,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "21dbf796",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -737,7 +734,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "94669772",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
diff --git "a/08. \320\246\320\270\321\204\321\200\320\276\320\262\321\213\320\265 \321\204\320\270\320\273\321\214\321\202\321\200\321\213.ngscript" "b/08. \320\246\320\270\321\204\321\200\320\276\320\262\321\213\320\265 \321\204\320\270\320\273\321\214\321\202\321\200\321\213.ngscript"
index 931b0b95751144d382802b15fb0f3d8d23ab0031..a21e8946ffced026c5a54be2a927caca2aa721d9 100644
--- "a/08. \320\246\320\270\321\204\321\200\320\276\320\262\321\213\320\265 \321\204\320\270\320\273\321\214\321\202\321\200\321\213.ngscript"	
+++ "b/08. \320\246\320\270\321\204\321\200\320\276\320\262\321\213\320\265 \321\204\320\270\320\273\321\214\321\202\321\200\321\213.ngscript"	
@@ -143,7 +143,7 @@
       "id": "e316b4ee",
       "cell_type": "markdown",
       "source": [
-        "Если увеличить длину <code>num</code> импульсной характристики, то сигнал осредняется еще сильнее. Задержка выхода относительно входа также увеличивается. \r\n\r\nЗдесь быстро меняющаяся синусоида подавляется, т.к. близко расположенные отсчеты входного сигнала приравниваются к среднему значению отсчетов, попавших в окно осреднения. Медленно изменяющийся сигнал при подобной операции искажается меньше. С точки зрения частотной избирательности подобная система пропускает сигналы меньшей частоты и подавляет сигналы большей частоты, т.е является **фильтром нижних частот**.\r\n\r\n---"
+        "Если увеличить длину <code>num</code> импульсной характристики, то сигнал осредняется еще сильнее. Задержка выхода относительно входа также увеличивается. \r\n\r\n<br/>\r\n\r\nЗдесь быстро меняющаяся синусоида подавляется, т.к. близко расположенные отсчеты входного сигнала приравниваются к среднему значению отсчетов, попавших в окно осреднения. Медленно изменяющийся сигнал при подобной операции искажается меньше. С точки зрения частотной избирательности подобная система пропускает сигналы меньшей частоты и подавляет сигналы большей частоты, т.е является **фильтром нижних частот**.\r\n\r\n---"
       ],
       "attachments": {},
       "metadata": {
@@ -219,7 +219,26 @@
           "isDisplay": true,
           "isParagraph": true,
           "isClosedParagraph": true,
-          "amountHideCellsInside": 1,
+          "amountHideCellsInside": 2,
+          "codeOutputView": "col",
+          "codeOutputHidden": false
+        }
+      }
+    },
+    {
+      "id": "8fcda98c",
+      "cell_type": "markdown",
+      "source": [
+        "При длине иимпульсной характеристики, равной 18, получим:"
+      ],
+      "attachments": {},
+      "metadata": {
+        "name": "Название секции",
+        "engee": {
+          "isDisplay": false,
+          "isParagraph": false,
+          "isClosedParagraph": false,
+          "amountHideCellsInside": 0,
           "codeOutputView": "col",
           "codeOutputHidden": false
         }
@@ -453,7 +472,7 @@
       "id": "edbea2da",
       "cell_type": "markdown",
       "source": [
-        "![спецификация фнч.jpg](attachment:спецификация фнч.jpg)\r\n\r\nУ АЧХ подобного фильтра можно выделить 3 основные полосы: полосу пропускания, полосу перехода и полосу заграждения.\r\n\r\n**Полоса пропускания (passband)** – диапазон частот, в котором в идеале находится полезный сигнал. Граница полосы пропускания – частота $F_p$. Она отсчитывается по уровню -3 дБ от максимума. Усиление сигнала в полосе пропускания в идеале должно быть постоянным, но на практике на АЧХ присутствуют нестабильности усиления, или **пульсации**. Уровень допустимых пульсаций в полосе пропускания определяется параметром $A_p$ (дБ). \r\n\r\n**Полоса заграждения (stopband)** – диапазон частот, в котором сигнал должен гарантированно ослабляться не менее чем на $A_{st}$ дБ. Полоса заграждения начинается с частоты $F_{st}$. \r\n\r\n**Полоса перехода (transition band)** находится между этими полосами. Усиление в этой полосе плавно спадает. Чем уже полоса перехода, тем больший порядок должен иметь фильтр. Порядок – это количество коэффициентов фильтра, оно связано с количеством умножителей, необходимых для реализации фильтра. \r\n\r\n---"
+        "![спецификация фнч.jpg](attachment:спецификация фнч.jpg)\r\n\r\nУ АЧХ подобного фильтра можно выделить 3 основные полосы: полосу пропускания, полосу перехода и полосу заграждения.\r\n\r\n<br/>\r\n\r\n**Полоса пропускания (passband)** – диапазон частот, в котором в идеале находится полезный сигнал. Граница полосы пропускания – частота $F_p$. Она отсчитывается по уровню -3 дБ от максимума. Усиление сигнала в полосе пропускания в идеале должно быть постоянным, но на практике на АЧХ присутствуют нестабильности усиления, или **пульсации**. Уровень допустимых пульсаций в полосе пропускания определяется параметром $A_p$ (дБ). \r\n\r\n<br/>\r\n\r\n**Полоса заграждения (stopband)** – диапазон частот, в котором сигнал должен гарантированно ослабляться не менее чем на $A_{st}$ дБ. Полоса заграждения начинается с частоты $F_{st}$. \r\n\r\n<br/>\r\n\r\n**Полоса перехода (transition band)** находится между этими полосами. Усиление в этой полосе плавно спадает. Чем уже полоса перехода, тем больший порядок должен иметь фильтр. Порядок – это количество коэффициентов фильтра, оно связано с количеством умножителей, необходимых для реализации фильтра. \r\n\r\n---"
       ],
       "attachments": {
         "спецификация фнч.jpg": {
diff --git "a/09. \320\241\320\270\320\275\321\202\320\265\320\267 \321\206\320\270\321\204\321\200\320\276\320\262\321\213\321\205 \321\204\320\270\320\273\321\214\321\202\321\200\320\276\320\262.ngscript" "b/09. \320\241\320\270\320\275\321\202\320\265\320\267 \321\206\320\270\321\204\321\200\320\276\320\262\321\213\321\205 \321\204\320\270\320\273\321\214\321\202\321\200\320\276\320\262.ngscript"
index 1147ce55193e2218e98578a98c60a73689020da6..e42a9a09f6f49f722222e9d02022a6fde74ea010 100644
--- "a/09. \320\241\320\270\320\275\321\202\320\265\320\267 \321\206\320\270\321\204\321\200\320\276\320\262\321\213\321\205 \321\204\320\270\320\273\321\214\321\202\321\200\320\276\320\262.ngscript"	
+++ "b/09. \320\241\320\270\320\275\321\202\320\265\320\267 \321\206\320\270\321\204\321\200\320\276\320\262\321\213\321\205 \321\204\320\270\320\273\321\214\321\202\321\200\320\276\320\262.ngscript"	
@@ -23,7 +23,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "c7fc530c",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -43,7 +42,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "786bfa26",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -67,7 +65,6 @@
         }
       },
       "metadata": {
-        "id": "9d1de72d",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -87,7 +84,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "6f8636a0",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -107,7 +103,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "b258dd9b",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -127,7 +122,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "fe82c68b",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -147,7 +141,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "0a760af2",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -167,7 +160,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "c46a4815",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -191,7 +183,6 @@
         }
       },
       "metadata": {
-        "id": "8e74675e",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -211,7 +202,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "2e96c764",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -235,7 +225,6 @@
         }
       },
       "metadata": {
-        "id": "3468a98d",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -255,7 +244,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "b35b8aac",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -275,7 +263,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "cb64fdd0",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -295,7 +282,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "d8789250",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -315,7 +301,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "bae1b960",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -335,7 +320,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "22005c37",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -355,7 +339,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "cba98888",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -375,7 +358,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "504cc40f",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -391,11 +373,10 @@
       "id": "800fb732",
       "cell_type": "markdown",
       "source": [
-        "Сформируем в **Engee** сигнал, представляющий собой сумму четырех синусоид на частотах 500, 1200, 3000 и 4500 Гц. Спроектируем цифровой *полосно-заграждающий фильтр*, который должен будет подавить средние частоты. Полоса заграждения будет лежать в пределах от 1000 до 4000 Гц. Для этого создадим объект со спецификацией фильтра с помощью функции <code>digitalfilter</code>, содержащейся в библиотеке <code>DSP</code>. В качестве аргументов выступает тип фильтра – в данном случае заграждающий (<code>Bandstop</code>) с указанием частот среза (1000 и 4000 Гц) и частоты дискретизации <code>fs</code>. Процедура фильтрации сигнала выполняется с помощью функции <code>filtfilt</code>. Ее аргументами являются объект со спецификацией фильтра, метод проектирования фильтра (в данном случае выбран фильтр Баттерворта 4-го порядка) и входной сигнал <code>x</code>. Затем построим графики спектров исходного и фильтрованного сигнала.\r\n\r\n"
+        "Сформируем в **Engee** сигнал, представляющий собой сумму четырех синусоид на частотах 500, 1200, 3000 и 4500 Гц. Спроектируем цифровой *полосно-заграждающий фильтр*, который должен будет подавить средние частоты. Полоса заграждения будет лежать в пределах от 1000 до 4000 Гц. Для этого создадим объект со спецификацией фильтра с помощью функции <code>digitalfilter</code>, содержащейся в библиотеке <code>DSP</code>. В качестве аргументов выступает тип фильтра – в данном случае заграждающий (<code>Bandstop</code>) с указанием частот среза (1000 и 4000 Гц) и частоты дискретизации <code>fs</code>. Процедура фильтрации сигнала выполняется с помощью функции <code>filtfilt</code>. Ее аргументами являются объект со спецификацией фильтра, метод проектирования фильтра (в данном случае выбран фильтр Баттерворта 4-го порядка) и входной сигнал <code>x</code>. Затем построим графики спектров исходного и отфильтрованного сигналов.\r\n\r\n"
       ],
       "attachments": {},
       "metadata": {
-        "id": "9e8de5b1",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -411,12 +392,11 @@
       "id": "cc746b73",
       "cell_type": "code",
       "source": [
-        "using Plots, DSP;\r\nfc = [500 1200 3000 4500]';\r\nfs = 10000;\r\ndt = 1/fs;\r\nt = [0:dt:0.1;];\r\nx = cos.(2*pi*fc[1]*t) + cos.(2*pi*fc[2]*t) + cos.(2*pi*fc[3]*t)+cos.(2*pi*fc[4]*t);\r\nx_filt = filtfilt(digitalfilter(Bandstop(1000, 4000; fs), Butterworth(4)), x);\r\np1 = periodogram(x);\r\nplot(freq(p1), power(p1), xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", label=\"исходный сигнал\")\r\np2 = periodogram(x_filt);\r\nplot!(freq(p2), power(p2), label=\"отфильтрованный сигнал\")"
+        "using Plots, DSP;\r\nfc = [500 1200 3000 4500]';\r\nfs = 10000;\r\ndt = 1/fs;\r\nt = [0:dt:0.1;];\r\nx = cos.(2*pi*fc[1]*t) + cos.(2*pi*fc[2]*t) + cos.(2*pi*fc[3]*t)+cos.(2*pi*fc[4]*t);\r\nx_filt = filtfilt(digitalfilter(Bandstop(1000, 4000; fs), Butterworth(4)), x);\r\np1 = DSP.periodogram(x);\r\nplot(freq(p1), power(p1), xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", label=\"исходный сигнал\")\r\np2 = DSP.periodogram(x_filt);\r\nplot!(freq(p2), power(p2), label=\"отфильтрованный сигнал\")"
       ],
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "4da6d9a4",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -428,6 +408,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -440,7 +425,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "631fd9e2",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -460,7 +444,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "79ecd99f",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -480,7 +463,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "cfe9adba",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -501,7 +483,6 @@
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "aecf5c69",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -513,6 +494,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -525,7 +511,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "a88e4ad1",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -541,12 +526,11 @@
       "id": "15b54b22",
       "cell_type": "code",
       "source": [
-        "using Plots, DSP;\r\nfc = [500 1200 3000 4500]';\r\nfs = 10000;\r\ndt = 1/fs;\r\nt = [0:dt:0.1;];\r\nx = cos.(2*pi*fc[1]*t) + cos.(2*pi*fc[2]*t) + cos.(2*pi*fc[3]*t)+cos.(2*pi*fc[4]*t);\r\nx_filt = filtfilt(digitalfilter(Lowpass(4000; fs), Butterworth(4)), x);\r\np1 = periodogram(x);\r\nplot(freq(p1), power(p1), xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", label=\"исходный сигнал\")\r\np2 = periodogram(x_filt);\r\nplot!(freq(p2), power(p2), label=\"отфильтрованный сигнал\")"
+        "using Plots, DSP;\r\nfc = [500 1200 3000 4500]';\r\nfs = 10000;\r\ndt = 1/fs;\r\nt = [0:dt:0.1;];\r\nx = cos.(2*pi*fc[1]*t) + cos.(2*pi*fc[2]*t) + cos.(2*pi*fc[3]*t)+cos.(2*pi*fc[4]*t);\r\nx_filt = filtfilt(digitalfilter(Lowpass(4000; fs), Butterworth(4)), x);\r\np1 = DSP.periodogram(x);\r\nplot(freq(p1), power(p1), xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", label=\"исходный сигнал\")\r\np2 = DSP.periodogram(x_filt);\r\nplot!(freq(p2), power(p2), label=\"отфильтрованный сигнал\")"
       ],
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "4afaf891",
         "name": "Название секции",
         "engee": {
           "isDisplay": false,
@@ -558,6 +542,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -570,7 +559,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "e08dd1ed",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -591,7 +579,6 @@
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "b4a0939a",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -603,6 +590,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -615,7 +607,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "d030cc4d",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -631,12 +622,11 @@
       "id": "515ac97c",
       "cell_type": "code",
       "source": [
-        "using Plots, DSP;\r\nfc = [500 1200 3000 4500]';\r\nfs = 10000;\r\ndt = 1/fs;\r\nt = [0:dt:0.1;];\r\nx = cos.(2*pi*fc[1]*t) + cos.(2*pi*fc[2]*t) + cos.(2*pi*fc[3]*t)+cos.(2*pi*fc[4]*t);\r\nx_filt = filtfilt(digitalfilter(Bandpass(800, 3500; fs), Butterworth(4)), x);\r\np1 = periodogram(x);\r\nplot(freq(p1), power(p1), xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", label=\"исходный сигнал\")\r\np2 = periodogram(x_filt);\r\nplot!(freq(p2), power(p2), label=\"отфильтрованный сигнал\")"
+        "using Plots, DSP;\r\nfc = [500 1200 3000 4500]';\r\nfs = 10000;\r\ndt = 1/fs;\r\nt = [0:dt:0.1;];\r\nx = cos.(2*pi*fc[1]*t) + cos.(2*pi*fc[2]*t) + cos.(2*pi*fc[3]*t)+cos.(2*pi*fc[4]*t);\r\nx_filt = filtfilt(digitalfilter(Bandpass(800, 3500; fs), Butterworth(4)), x);\r\np1 = DSP.periodogram(x);\r\nplot(freq(p1), power(p1), xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", label=\"исходный сигнал\")\r\np2 = DSP.periodogram(x_filt);\r\nplot!(freq(p2), power(p2), label=\"отфильтрованный сигнал\")"
       ],
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "f27e5fdf",
         "name": "Название секции",
         "engee": {
           "isDisplay": false,
@@ -648,6 +638,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -660,7 +655,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "36e6f221",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -680,7 +674,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "221a799e",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
diff --git "a/10. \320\246\320\270\321\204\321\200\320\276\320\262\320\260\321\217 \320\274\320\276\320\264\321\203\320\273\321\217\321\206\320\270\321\217.ngscript" "b/10. \320\246\320\270\321\204\321\200\320\276\320\262\320\260\321\217 \320\274\320\276\320\264\321\203\320\273\321\217\321\206\320\270\321\217.ngscript"
index fd6b876f7fcd9c7e593d48585785673dece57ed3..b8764ed43b1b620e47238070cafcd827d59530e6 100644
--- "a/10. \320\246\320\270\321\204\321\200\320\276\320\262\320\260\321\217 \320\274\320\276\320\264\321\203\320\273\321\217\321\206\320\270\321\217.ngscript"	
+++ "b/10. \320\246\320\270\321\204\321\200\320\276\320\262\320\260\321\217 \320\274\320\276\320\264\321\203\320\273\321\217\321\206\320\270\321\217.ngscript"	
@@ -23,7 +23,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "61e092b7",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -43,7 +42,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "1f7ace40",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -59,11 +57,10 @@
       "id": "f0ebefbe",
       "cell_type": "markdown",
       "source": [
-        "Сущность **модуляции** заключается в том, что формируется некоторое колебание (чаще всего гармоническое), называемое **несущим колебанием** (или просто **несущей**) и  какой-либо из параметров этого колебания изменяется во времени пропорционально исходному информационному сигналу. Исходный сигнал, содержащий некоторую информацию, называют **модулирующим**, а результирующее колебание – **модулированным сигналом**. Обратный процесс – выделение модулирующего сигнала из модулированного колебания – называется **демодуляцией**. \r\n\r\nВ цифровой связи передается последовательность целых чисел $C_0,C_1,C_2,...$, которые могут принимать значения из некоторого конечного множества. Эти числа, называемые **символами**, поступают от источника информаци с периодом $T$, а частота, соответствующая этому периоду, называется **символьной скоростью** $f_T=1/T$.\r\n\r\nПри модуляции цифровых сигналов каждому из возможных значений символа сопоставляется некоторый набор параметров несущего колебания. Эти параметры поддерживаются постоянными в течение периода $T$. Таким образом, последовательность чисел $\\{C_k\\}$ преобразуется в ступенчатый сигнал $s_k(t)$.\r\n\r\nСпособ модуляции, при котором параметры несущего колебания меняются скачкообразно, называется **манипуляцией (keying)**. В зависимости от того, какие именно параметры изменяются, различают амплитудную, фазовую, частотную и квадратурную манипуляцию.\r\n\r\n---"
+        "Сущность **модуляции** заключается в том, что формируется некоторое колебание (чаще всего гармоническое), называемое **несущим колебанием** (или просто **несущей**) и  какой-либо из параметров этого колебания изменяется во времени пропорционально исходному информационному сигналу. Исходный сигнал, содержащий некоторую информацию, называют **модулирующим**, а результирующее колебание – **модулированным сигналом**. Обратный процесс – выделение модулирующего сигнала из модулированного колебания – называется **демодуляцией**. \r\n\r\n<br/>\r\n\r\nВ цифровой связи передается последовательность целых чисел $C_0,C_1,C_2,...$, которые могут принимать значения из некоторого конечного множества. Эти числа, называемые **символами**, поступают от источника информаци с периодом $T$, а частота, соответствующая этому периоду, называется **символьной скоростью** $f_T=1/T$.\r\n\r\n<br/>\r\n\r\nПри модуляции цифровых сигналов каждому из возможных значений символа сопоставляется некоторый набор параметров несущего колебания. Эти параметры поддерживаются постоянными в течение периода $T$. Таким образом, последовательность чисел $\\{C_k\\}$ преобразуется в ступенчатый сигнал $s_k(t)$.\r\n\r\n<br/>\r\n\r\nСпособ модуляции, при котором параметры несущего колебания меняются скачкообразно, называется **манипуляцией (keying)**. В зависимости от того, какие именно параметры изменяются, различают амплитудную, фазовую, частотную и квадратурную манипуляцию.\r\n\r\n---"
       ],
       "attachments": {},
       "metadata": {
-        "id": "94a0ce8b",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -83,7 +80,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "a0b13e09",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -103,7 +99,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "c1b008ac",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -123,7 +118,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "a2b47eec",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -139,12 +133,11 @@
       "id": "556535e9",
       "cell_type": "code",
       "source": [
-        "using Plots;\r\nNsymb = 20;               # число символов\r\nFsFd = 10;                # число отсчетов на символ\r\nN = Nsymb*FsFd;           # общее число отсчетов\r\nFs = 50;                  # частота дискретизации\r\nFc = 10;                  # несущая частота\r\nt = 0:(1/Fs):((N-1)/Fs);  # дискретное время\r\nx = rand([1,2], Nsymb);   # передаваемые символы\r\nx = repeat(x, 1, FsFd)';  # повторение символов FsFd раз\r\nx = reshape(x, N, 1);     # преобразование матрицы символов в вектор-столбец\r\ns = x.*cos.(2*pi*Fc*t);   # амплитудно-манипулированный сигнал\r\nplot(t, s, xlabel=\"t\", ylabel=\"амплитудно-манипулированный сигнал\", legend=false)"
+        "using Plots;\r\nNsymb = 20;               # число символов\r\nFsFd = 10;                # число отсчетов на символ\r\nN = Nsymb*FsFd;           # общее число отсчетов\r\nFs = 50;                  # частота дискретизации\r\nFc = 10;                  # несущая частота\r\nt = 0:(1/Fs):((N-1)/Fs);  # дискретное время\r\nx = rand([1,2], Nsymb);   # передаваемые символы\r\nx = repeat(x, 1, FsFd)';  # повторение символов FsFd раз\r\nx = reshape(x, N, 1);     # преобразование матрицы символов в вектор-столбец\r\ns = x.*cos.(2*pi*Fc*t);   # амплитудно-манипулированный сигнал\r\nplot(t, s, xlabel=\"t\", ylabel=\"амплитудно-манипулированный сигнал\", legend=false)   # построение графика"
       ],
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "1b26411c",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -156,6 +149,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -168,7 +166,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "721a966e",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -188,7 +185,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "8ce1d1e2",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -209,7 +205,6 @@
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "c52c099f",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -221,6 +216,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -233,7 +233,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "3c7682f4",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -249,12 +248,11 @@
       "id": "23b74fe4",
       "cell_type": "code",
       "source": [
-        "using Plots;\r\nNsymb = 20;                  # число символов\r\nFsFd = 15;                   # число отсчетов на символ\r\nN = Nsymb*FsFd;              # общее число отсчетов\r\nFs = 4000;                   # частота дискретизации \r\nFc = 1000;                   # несущая частота\r\nt = 0:(1/Fs):((N-1)/Fs);     # дискретное время\r\nx = rand([1,2,3,4], Nsymb);  # передаваемые символы\r\nx = repeat(x, 1, FsFd)';     # повторение символов FsFd раз\r\nx = reshape(x, N, 1);        # преобразование матрицы символов в вектор-столбец\r\ns = x.*cos.(2*pi*Fc*t);      # амплитудно-манипулированный сигнал\r\nplot(t, s, xlabel=\"t\", ylabel=\"амплитудно-манипулированный сигнал\", legend=false)"
+        "using Plots;\r\nNsymb = 20;                  # число символов\r\nFsFd = 15;                   # число отсчетов на символ\r\nN = Nsymb*FsFd;              # общее число отсчетов\r\nFs = 4000;                   # частота дискретизации \r\nFc = 1000;                   # несущая частота\r\nt = 0:(1/Fs):((N-1)/Fs);     # дискретное время\r\nx = rand([1,2,3,4], Nsymb);  # передаваемые символы\r\nx = repeat(x, 1, FsFd)';     # повторение символов FsFd раз\r\nx = reshape(x, N, 1);        # преобразование матрицы символов в вектор-столбец\r\ns = x.*cos.(2*pi*Fc*t);      # амплитудно-манипулированный сигнал\r\nplot(t, s, xlabel=\"t\", ylabel=\"амплитудно-манипулированный сигнал\", legend=false)   # построение графика"
       ],
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "c5fbade4",
         "name": "Название секции",
         "engee": {
           "isDisplay": false,
@@ -266,6 +264,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -278,7 +281,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "fbcae7a3",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -294,11 +296,10 @@
       "id": "0d84a8ba",
       "cell_type": "markdown",
       "source": [
-        "При **фазовой манипуляции (phase shift keying)** каждому возможному значению передаваемого символа $C_k$ сопоставляется свое значение фазы несущего колебания. При этом при переходе от одного символа к другому фаза меняется скачкообразно: \r\n\r\n$$s_k(t)=\\cos(2\\pi f_0 t_k+\\pi/2 \\cdot C_k).$$\r\n\r\nФазовая манипуляция также является частным случаем квадратурной манипуляции. \r\n\r\nФазовая манипуляция обычно используется при небольшом числе возможных значений начальной фазы (2, 4 или 8).\r\n\r\n---"
+        "При **фазовой манипуляции (phase shift keying)** каждому возможному значению передаваемого символа $C_k$ сопоставляется свое значение фазы несущего колебания. При этом при переходе от одного символа к другому фаза меняется скачкообразно: \r\n\r\n$$s_k(t)=\\cos(2\\pi f_0 t_k+\\pi/2 \\cdot C_k).$$\r\n\r\nФазовая манипуляция также является частным случаем квадратурной манипуляции. \r\n\r\n<br/>\r\n\r\nФазовая манипуляция обычно используется при небольшом числе возможных значений начальной фазы (2, 4 или 8).\r\n\r\n---"
       ],
       "attachments": {},
       "metadata": {
-        "id": "367ea888",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -318,7 +319,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "265489a4",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -334,12 +334,11 @@
       "id": "b561b887",
       "cell_type": "code",
       "source": [
-        "using Plots;\r\nNsymb = 20;               # число символов\r\nFsFd = 10;                # число отсчетов на символ\r\nN = Nsymb*FsFd;           # общее число отсчетов\r\nFs = 50;                  # частота дискретизации\r\nFd = Fs / FsFd;           # символьная скорость\r\nFc = 10;                  # несущая частота\r\nt = 0:(1/Fs):((N-1)/Fs);  # дискретное время\r\nx = rand([0,1], Nsymb);   # передаваемые символы\r\nx = repeat(x, 1, FsFd)';  # повторение символов FsFd раз\r\nx = reshape(x, N, 1);     # преобразование матрицы в вектор-столбец\r\ns = cos.(2*pi*Fc*t + pi/2*x);   # фазоманипулированный сигнал\r\nplot(t, s, xlabel=\"t\", ylabel=\"фазоманипулированный сигнал\", legend=false)"
+        "using Plots;\r\nNsymb = 20;               # число символов\r\nFsFd = 10;                # число отсчетов на символ\r\nN = Nsymb*FsFd;           # общее число отсчетов\r\nFs = 50;                  # частота дискретизации\r\nFd = Fs / FsFd;           # символьная скорость\r\nFc = 10;                  # несущая частота\r\nt = 0:(1/Fs):((N-1)/Fs);  # дискретное время\r\nx = rand([0,1], Nsymb);   # передаваемые символы\r\nx = repeat(x, 1, FsFd)';  # повторение символов FsFd раз\r\nx = reshape(x, N, 1);     # преобразование матрицы в вектор-столбец\r\ns = cos.(2*pi*Fc*t + pi/2*x);   # фазоманипулированный сигнал\r\nplot(t, s, xlabel=\"t\", ylabel=\"фазоманипулированный сигнал\", legend=false)   # построение графика"
       ],
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "3686a3a1",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -351,6 +350,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -363,7 +367,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "a8cd4ad4",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -383,7 +386,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "0975ee0b",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -404,7 +406,6 @@
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "cc730733",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -416,6 +417,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -428,7 +434,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "95acaf1f",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -444,12 +449,11 @@
       "id": "5f6fdcc0",
       "cell_type": "code",
       "source": [
-        "using Plots;\r\nNsymb = 10;               # число символов\r\nFsFd = 25;                # число отсчетов на символ\r\nN = Nsymb*FsFd;           # общее число отсчетов\r\nFs = 10000;               # частота дискретизации \r\nFd = Fs / FsFd;           # символьная скорость\r\nFc = 2500;                # несущая частота\r\nt = 0:(1/Fs):((N-1)/Fs);  # дискретное время\r\nx = rand([0,1], Nsymb);   # передаваемые символы\r\nx = repeat(x, 1, FsFd)';  # повторение символов FsFd раз\r\nx = reshape(x, N, 1);     # преобразование матрицы в вектор-столбец\r\ns = cos.(2*pi*Fc*t + pi/2*x);   # фазоманипулированный сигнал\r\nplot(t, s, xlabel=\"t\", ylabel=\"фазоманипулированный сигнал\", legend=false)"
+        "using Plots;\r\nNsymb = 10;               # число символов\r\nFsFd = 25;                # число отсчетов на символ\r\nN = Nsymb*FsFd;           # общее число отсчетов\r\nFs = 10000;               # частота дискретизации \r\nFd = Fs / FsFd;           # символьная скорость\r\nFc = 2500;                # несущая частота\r\nt = 0:(1/Fs):((N-1)/Fs);  # дискретное время\r\nx = rand([0,1], Nsymb);   # передаваемые символы\r\nx = repeat(x, 1, FsFd)';  # повторение символов FsFd раз\r\nx = reshape(x, N, 1);     # преобразование матрицы в вектор-столбец\r\ns = cos.(2*pi*Fc*t + pi/2*x);   # фазоманипулированный сигнал\r\nplot(t, s, xlabel=\"t\", ylabel=\"фазоманипулированный сигнал\", legend=false)   # построение графика"
       ],
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "1528f06d",
         "name": "Название секции",
         "engee": {
           "isDisplay": false,
@@ -461,6 +465,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -473,7 +482,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "07207822",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -489,11 +497,10 @@
       "id": "74c8d01f",
       "cell_type": "markdown",
       "source": [
-        "При **частотной манипуляции (frequency shift keying)** каждому возможному значению передаваемого символа $C_k$ сопоставляется своя частота несущего колебания. В течение каждого символьного интервала передается гармоническое колебание с частотой, соответствующей текущему символу:\r\n\r\n$$s_k(t)=\\cos(2\\pi f_0 t_k+opt \\cdot cumsum(C_k)),$$\r\nгде\r\n$cumsum(C_k)$ – сумма с накоплением значений модулирующей последовательности $\\{C_k\\}$;\r\n\r\n$opt$ – параметр частотной манипуляции:\r\n\r\n$$opt=(f_c/f_s) \\cdot (2\\pi)/\\max(C_k).$$\r\n\r\n---"
+        "При **частотной манипуляции (frequency shift keying)** каждому возможному значению передаваемого символа $C_k$ сопоставляется своя частота несущего колебания. В течение каждого символьного интервала передается гармоническое колебание с частотой, соответствующей текущему символу:\r\n\r\n$$s_k(t)=\\cos(2\\pi f_0 t_k+\\text{opt} \\cdot \\text{cumsum}(C_k)),$$\r\nгде\r\n$\\text{cumsum}(C_k)$ – сумма с накоплением значений модулирующей последовательности $\\{C_k\\}$;\r\n\r\n$\\text{opt}$ – параметр частотной манипуляции:\r\n\r\n$$\\text{opt}=(f_c/f_s) \\cdot (2\\pi)/\\max(C_k).$$\r\n\r\n---"
       ],
       "attachments": {},
       "metadata": {
-        "id": "840dc826",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -513,7 +520,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "a4c6d6b6",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -529,12 +535,11 @@
       "id": "fc89bef4",
       "cell_type": "code",
       "source": [
-        "using Plots, DSP;\r\nFc = 50;                       # несущая частота\r\nNsymb = 20;                    # число символов\r\nFsFd = 10;                     # число отсчетов на символ\r\nN = Nsymb*FsFd;                # общее число отсчетов\r\nFs = 2000;                     # частота дискретизации\r\nt = [0:1/Fs:(N-1)/Fs;];        # дискретное время\r\nx = rand([0,1], Nsymb);        # передаваемые символы\r\nx = repeat(x, 1, FsFd)';       # повторение символов FsFd раз\r\nx = reshape(x, N, 1);          # преобразование матрицы в вектор-столбец\r\nopt = (Fc/Fs)*2*pi/maximum(x); # параметр частотной манипуляции\r\ns = cos.(2*pi*Fc*t + opt*cumsum(x, dims=1)); # частотно-манипулированный сигнал\r\nplot(t, s, xlabel=\"t\", ylabel=\"частотно-манипулированный сигнал\", legend=false)                      # построение графика"
+        "using Plots, DSP;\r\nFc = 50;                       # несущая частота\r\nNsymb = 20;                    # число символов\r\nFsFd = 10;                     # число отсчетов на символ\r\nN = Nsymb*FsFd;                # общее число отсчетов\r\nFs = 2000;                     # частота дискретизации\r\nt = [0:1/Fs:(N-1)/Fs;];        # дискретное время\r\nx = rand([0,1], Nsymb);        # передаваемые символы\r\nx = repeat(x, 1, FsFd)';       # повторение символов FsFd раз\r\nx = reshape(x, N, 1);          # преобразование матрицы в вектор-столбец\r\nopt = (Fc/Fs)*2*pi/maximum(x); # параметр частотной манипуляции\r\ns = cos.(2*pi*Fc*t + opt*cumsum(x, dims=1)); # частотно-манипулированный сигнал\r\nplot(t, s, xlabel=\"t\", ylabel=\"частотно-манипулированный сигнал\", legend=false)   # построение графика"
       ],
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "8424593d",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -546,6 +551,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -558,7 +568,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "9dd92fc6",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -574,12 +583,11 @@
       "id": "52a02e5d",
       "cell_type": "code",
       "source": [
-        "p = periodogram(s[:], onesided=true, nfft=length(s), fs=Fs, window=hamming);\r\nplot(freq(p), power(p), xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", legend=false)"
+        "p = DSP.periodogram(s[:], onesided=true, nfft=length(s), fs=Fs, window=hamming);\r\nplot(freq(p), power(p), xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", legend=false)"
       ],
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "a6a9c695",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -591,6 +599,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -603,7 +616,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "1216e44e",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -623,7 +635,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "dd39d860",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -644,7 +655,6 @@
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "37093fd0",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -656,6 +666,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -668,7 +683,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "67a790cf",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -684,12 +698,11 @@
       "id": "9cbba323",
       "cell_type": "code",
       "source": [
-        "using Plots, DSP;\r\nFc = 100;                      # несущая частота    \r\nNsymb = 20;                    # число символов  \r\nFsFd = 20;                     # число отсчетов на символ   \r\nN = Nsymb*FsFd;                # общее число отсчетов  \r\nFs = 2000;                     # частота дискретизации\r\nt = [0:1/Fs:(N-1)/Fs;];        # дискретное время\r\nx = rand([0,1], Nsymb);        # передаваемые символы\r\nx = repeat(x, 1, FsFd)';       # повторение символов FsFd раз\r\nx = reshape(x, N, 1);          # преобразование матрицы в вектор-столбец\r\nopt = (Fc/Fs)*2*pi/maximum(x); # параметр частотной манипуляции\r\ns = cos.(2*pi*Fc*t + opt*cumsum(x, dims=1)); # частотно-манипулированный сигнал\r\nplot(t, s, xlabel=\"t\", ylabel=\"частотно-манипулированный сигнал\", legend=false)              "
+        "using Plots, DSP;\r\nFc = 100;                      # несущая частота    \r\nNsymb = 20;                    # число символов  \r\nFsFd = 20;                     # число отсчетов на символ   \r\nN = Nsymb*FsFd;                # общее число отсчетов  \r\nFs = 2000;                     # частота дискретизации\r\nt = [0:1/Fs:(N-1)/Fs;];        # дискретное время\r\nx = rand([0,1], Nsymb);        # передаваемые символы\r\nx = repeat(x, 1, FsFd)';       # повторение символов FsFd раз\r\nx = reshape(x, N, 1);          # преобразование матрицы в вектор-столбец\r\nopt = (Fc/Fs)*2*pi/maximum(x); # параметр частотной манипуляции\r\ns = cos.(2*pi*Fc*t + opt*cumsum(x, dims=1)); # частотно-манипулированный сигнал\r\nplot(t, s, xlabel=\"t\", ylabel=\"частотно-манипулированный сигнал\", legend=false)   # построение графика        "
       ],
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "581e91ae",
         "name": "Название секции",
         "engee": {
           "isDisplay": false,
@@ -701,6 +714,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -709,12 +727,11 @@
       "id": "92f3f873",
       "cell_type": "code",
       "source": [
-        "p = periodogram(s[:], onesided=true, nfft=length(s), fs=Fs, window=hamming);\r\nplot(freq(p), power(p), xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", legend=false)"
+        "p = DSP.periodogram(s[:], onesided=true, nfft=length(s), fs=Fs, window=hamming);\r\nplot(freq(p), power(p), xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", legend=false)"
       ],
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "f7ad7cb3",
         "name": "Название секции",
         "engee": {
           "isDisplay": false,
@@ -726,6 +743,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -738,7 +760,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "9474e193",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -754,11 +775,10 @@
       "id": "bc13ee12",
       "cell_type": "markdown",
       "source": [
-        "При **квадратурной манипуляции (quadrature amplitude shist keying)** каждому из возможных значений дискретного символа $C_k$ ставится в соответствие *пара* величин – амплитуды **синфазной** и **квадратурной** составляющих либо амплитуда и начальная фаза несущего колебания:\r\n\r\n$$C_k=a_k+jb_k,$$\r\n$$s_k(t)=a_k \\cos(2\\pi f_0t_k)+b_k \\sin(2\\pi f_0t_k).$$\r\n\r\nПараметры аналогового колебания, сопоставленные дискретному символу $C_k$, удобно представлять в виде комплексного числа. Совокупность этих комплексных чисел для всех возможных значений дискретного символа называется **сигнальным созвездием**.\r\n\r\nНа практике используются созвездия, содержащие от 4 точек до нескольких тысяч.\r\n\r\n---\r\n"
+        "При **квадратурной манипуляции (quadrature amplitude shift keying)** каждому из возможных значений дискретного символа $C_k$ ставится в соответствие *пара* величин – амплитуды **синфазной** и **квадратурной** составляющих либо амплитуда и начальная фаза несущего колебания:\r\n\r\n$$C_k=a_k+jb_k,$$\r\n$$s_k(t)=a_k \\cos(2\\pi f_0t_k)+b_k \\sin(2\\pi f_0t_k).$$\r\n\r\nПараметры аналогового колебания, сопоставленные дискретному символу $C_k$, удобно представлять в виде комплексного числа. Совокупность этих комплексных чисел для всех возможных значений дискретного символа называется **сигнальным созвездием**.\r\n\r\n<br/>\r\n\r\nНа практике используются созвездия, содержащие от 4 до нескольких тысяч точек.\r\n\r\n---\r\n"
       ],
       "attachments": {},
       "metadata": {
-        "id": "6cc12767",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -782,7 +802,6 @@
         }
       },
       "metadata": {
-        "id": "086ae571",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -802,7 +821,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "16e85f19",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -818,12 +836,11 @@
       "id": "5cedc41a",
       "cell_type": "code",
       "source": [
-        "using Plots;\r\nNsymb = 20;                    # число символов\r\nFsFd = 10;                     # число отсчетов на символ\r\nN = Nsymb*FsFd;                # общее число отсчетов\r\nFs = 50;                       # частота дискретизации\r\nFd = Fs / FsFd;                # символьная скорость\r\nFc = 10;                       # несущая частота\r\nt = 0:(1/Fs):((N-1)/Fs);       # дискретное время\r\na = rand([-3,-1,1,3], Nsymb);  # передаваемые символы на синфазной составляющей\r\na = repeat(a, 1, FsFd)';       # повторение символов FsFd раз\r\na = reshape(a, N, 1);          # преобразование матрицы в вектор-столбец\r\nb = rand([-3,-1,1,3], Nsymb);  # передаваемые символы на квадратурной составляющей\r\nb = repeat(b, 1, FsFd)';       # повторение символов FsFd раз\r\nb = reshape(b, N, 1);          # преобразование матрицы в вектор-столбец\r\ns = a.*cos.(2*pi*Fc*t) + b.*sin.(2*pi*Fc*t);   # квадратурно-манипулированный сигнал\r\nplot(t, s, xlabel=\"t\", ylabel=\"квадратурно-манипулированный сигнал\", legend=false)                      "
+        "using Plots;\r\nNsymb = 20;                    # число символов\r\nFsFd = 10;                     # число отсчетов на символ\r\nN = Nsymb*FsFd;                # общее число отсчетов\r\nFs = 50;                       # частота дискретизации\r\nFd = Fs / FsFd;                # символьная скорость\r\nFc = 10;                       # несущая частота\r\nt = 0:(1/Fs):((N-1)/Fs);       # дискретное время\r\na = rand([-3,-1,1,3], Nsymb);  # передаваемые символы на синфазной составляющей\r\na = repeat(a, 1, FsFd)';       # повторение символов FsFd раз\r\na = reshape(a, N, 1);          # преобразование матрицы в вектор-столбец\r\nb = rand([-3,-1,1,3], Nsymb);  # передаваемые символы на квадратурной составляющей\r\nb = repeat(b, 1, FsFd)';       # повторение символов FsFd раз\r\nb = reshape(b, N, 1);          # преобразование матрицы в вектор-столбец\r\ns = a.*cos.(2*pi*Fc*t) + b.*sin.(2*pi*Fc*t);   # квадратурно-манипулированный сигнал\r\nplot(t, s, xlabel=\"t\", ylabel=\"квадратурно-манипулированный сигнал\", legend=false)   # построение графика                   "
       ],
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "0a169408",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -835,6 +852,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -847,7 +869,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "0fbd1dda",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -867,7 +888,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "94822cfa",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -888,7 +908,6 @@
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "f7d4618b",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -900,6 +919,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -912,7 +936,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "0d47e801",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -928,12 +951,11 @@
       "id": "6abb6bcc",
       "cell_type": "code",
       "source": [
-        "using Plots;\r\nNsymb = 15;                    # число символов\r\nFsFd = 20;                     # число отсчетов на символ\r\nN = Nsymb*FsFd;                # общее число отсчетов\r\nFs = 4000;                     # частота дискретизации\r\nFd = Fs / FsFd;                # символьная скорость\r\nFc = 1500;                     # несущая частота\r\nt = 0:(1/Fs):((N-1)/Fs);       # дискретное время\r\na = rand([-3,-1,1,3], Nsymb);  # передаваемые символы на синфазной составляющей\r\na = repeat(a, 1, FsFd)';       # повторение символов FsFd раз\r\na = reshape(a, N, 1);          # преобразование матрицы в вектор-столбец\r\nb = rand([-3,-1,1,3], Nsymb);  # передаваемые символы на квадратурной составляющей\r\nb = repeat(b, 1, FsFd)';       # повторение символов FsFd раз\r\nb = reshape(b, N, 1);          # преобразование матрицы в вектор-столбец\r\ns = a.*cos.(2*pi*Fc*t) + b.*sin.(2*pi*Fc*t);  # квадратурно-манипулированный сигнал\r\nplot(t, s, xlabel=\"t\", ylabel=\"квадратурно-манипулированный сигнал\", legend=false)                      "
+        "using Plots;\r\nNsymb = 15;                    # число символов\r\nFsFd = 20;                     # число отсчетов на символ\r\nN = Nsymb*FsFd;                # общее число отсчетов\r\nFs = 4000;                     # частота дискретизации\r\nFd = Fs / FsFd;                # символьная скорость\r\nFc = 1500;                     # несущая частота\r\nt = 0:(1/Fs):((N-1)/Fs);       # дискретное время\r\na = rand([-3,-1,1,3], Nsymb);  # передаваемые символы на синфазной составляющей\r\na = repeat(a, 1, FsFd)';       # повторение символов FsFd раз\r\na = reshape(a, N, 1);          # преобразование матрицы в вектор-столбец\r\nb = rand([-3,-1,1,3], Nsymb);  # передаваемые символы на квадратурной составляющей\r\nb = repeat(b, 1, FsFd)';       # повторение символов FsFd раз\r\nb = reshape(b, N, 1);          # преобразование матрицы в вектор-столбец\r\ns = a.*cos.(2*pi*Fc*t) + b.*sin.(2*pi*Fc*t);  # квадратурно-манипулированный сигнал\r\nplot(t, s, xlabel=\"t\", ylabel=\"квадратурно-манипулированный сигнал\", legend=false)   # построение графика"
       ],
       "execution_count": 0,
       "outputs": [],
       "metadata": {
-        "id": "28e3307c",
         "name": "Название секции",
         "engee": {
           "isDisplay": false,
@@ -945,6 +967,11 @@
           "outputInfo": {
             "isExpanded": false,
             "scrollTop": 0
+          },
+          "maskInfo": {
+            "isMaskVisible": true,
+            "isEditorVisible": true,
+            "isAutoplayActive": false
           }
         }
       }
@@ -957,7 +984,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "f856d467",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
@@ -977,7 +1003,6 @@
       ],
       "attachments": {},
       "metadata": {
-        "id": "99ad3af6",
         "name": "Название секции",
         "engee": {
           "isDisplay": true,
diff --git "a/11. \320\234\320\275\320\276\320\263\320\276\321\201\320\272\320\276\321\200\320\276\321\201\321\202\320\275\321\213\320\265 \321\201\320\270\321\201\321\202\320\265\320\274\321\213.ngscript" "b/11. \320\234\320\275\320\276\320\263\320\276\321\201\320\272\320\276\321\200\320\276\321\201\321\202\320\275\321\213\320\265 \321\201\320\270\321\201\321\202\320\265\320\274\321\213.ngscript"
index b0f16beaef57a7cbc8ef205115a0e5e0afdca6b3..e754d11095ab2fe82715e09885dc4b05fd06c698 100644
--- "a/11. \320\234\320\275\320\276\320\263\320\276\321\201\320\272\320\276\321\200\320\276\321\201\321\202\320\275\321\213\320\265 \321\201\320\270\321\201\321\202\320\265\320\274\321\213.ngscript"	
+++ "b/11. \320\234\320\275\320\276\320\263\320\276\321\201\320\272\320\276\321\200\320\276\321\201\321\202\320\275\321\213\320\265 \321\201\320\270\321\201\321\202\320\265\320\274\321\213.ngscript"	
@@ -57,7 +57,7 @@
       "id": "74e6dff8",
       "cell_type": "markdown",
       "source": [
-        "> **Многоскоростные системы (multirate)** – это цифровые системы, в которых присутствуют сигналы с различными частотами дискретизации. \r\n\r\nЗдесь мы будем рассматривать только системы, которые преобразовывают частоту дискретизации входного сигнала. \r\n\r\nОбщая схема простейшей многоскоростной системы представлена на рисунке: на вход системы поступает сигнал с одной частотой дискретизации, на выходе получается сигнал с другой частотой дискретизации.\r\n\r\n![многоскоростные системы.jpg](attachment:многоскоростные системы.jpg)\r\n\r\nЕсли происходит понижение частоты дискретизации, то этот процесс называется **децимацией** (**decimation** или **downsampling**). Если частота дискретизации повышается, то этот процесс называется **апсэмплингом (upsampling)** или **интерполяцией**.\r\n\r\n---"
+        "> **Многоскоростные системы (multirate)** – это цифровые системы, в которых присутствуют сигналы с различными частотами дискретизации. \r\n\r\nЗдесь мы будем рассматривать только системы, которые преобразовывают частоту дискретизации входного сигнала. \r\n\r\n<br/>\r\n\r\nОбщая схема простейшей многоскоростной системы представлена на рисунке: на вход системы поступает сигнал с одной частотой дискретизации, на выходе получается сигнал с другой частотой дискретизации.\r\n\r\n![многоскоростные системы.jpg](attachment:многоскоростные системы.jpg)\r\n\r\nЕсли происходит понижение частоты дискретизации, то этот процесс называется **децимацией** (**decimation** или **downsampling**). Если частота дискретизации повышается, то этот процесс называется **апсэмплингом (upsampling)** или **интерполяцией**.\r\n\r\n---"
       ],
       "attachments": {
         "многоскоростные системы.jpg": {
@@ -99,7 +99,7 @@
       "id": "e94cf9b0",
       "cell_type": "markdown",
       "source": [
-        "Рассмотрим случай децимации, когда частота дискретизации понижается в целое число раз. Это прореживание отсчетов, при котором в выходном сигнале остается только каждый $M$-й отсчет, а остальные отсчеты выбрасываются. \r\n\r\nПри этом может возникнуть одна проблема: мы можем не соблюсти условие теоремы Котельникова. Мы осуществляем дискретизацию сигнала на другой шкале дискретных отсчетов времени. Из-за эффекта алиасинга мы можем потерять данные, и восстановить исходный сигнал не получится. Поэтому на практике применяется операция децимации – прореживание с предварительной фильтрацией для гарантированного соблюдения условий теоремы Котельникова. \r\n\r\n---"
+        "Рассмотрим случай децимации, когда частота дискретизации понижается в целое число раз. Это прореживание отсчетов, при котором в выходном сигнале остается только каждый $M$-й отсчет, а остальные отсчеты выбрасываются. \r\n\r\n<br/>\r\n\r\nПри этом может возникнуть одна проблема: мы можем не соблюсти условие теоремы Котельникова. Мы осуществляем дискретизацию сигнала на другой шкале дискретных отсчетов времени. Из-за эффекта алиасинга мы можем потерять данные, и восстановить исходный сигнал не получится. Поэтому на практике применяется операция децимации – прореживание с предварительной фильтрацией для гарантированного соблюдения условий теоремы Котельникова. \r\n\r\n---"
       ],
       "attachments": {},
       "metadata": {
@@ -185,7 +185,7 @@
       "id": "5dc02a44",
       "cell_type": "code",
       "source": [
-        "y = periodogram(s, onesided=true, nfft=length(s), fs=fs, window=hamming);\r\nplot(freq(y), power(y), xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", legend=false)"
+        "y = DSP.periodogram(s, onesided=true, nfft=length(s), fs=fs, window=hamming);\r\nplot(freq(y), power(y), xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", legend=false)"
       ],
       "execution_count": 0,
       "outputs": [],
@@ -214,7 +214,7 @@
       "id": "5d53d7bc",
       "cell_type": "markdown",
       "source": [
-        "На спектре сигнала мы видим пики на частотах 1000 Гц и 3400 Гц.\r\n\r\nСначала понизим частоту дискретизации в 3 раза с помощью функции <code>resample</code>, содержащейся в библиотеке <code>DSP</code>."
+        "На спектре сигнала мы видим пики на частотах 1000 Гц и 3400 Гц.\r\n\r\n<br/>\r\n\r\nСначала понизим частоту дискретизации в 3 раза с помощью функции <code>resample</code>, содержащейся в библиотеке <code>DSP</code>."
       ],
       "attachments": {},
       "metadata": {
@@ -262,7 +262,7 @@
       "id": "9b6dd46c",
       "cell_type": "code",
       "source": [
-        "y_down = periodogram(s_down, onesided=true, nfft=length(s_down), fs=fs/down, window=hamming);\r\nplot(freq(y_down), power(y_down), xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", legend=false)"
+        "y_down = DSP.periodogram(s_down, onesided=true, nfft=length(s_down), fs=fs/down, window=hamming);\r\nplot(freq(y_down), power(y_down), xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", legend=false)"
       ],
       "execution_count": 0,
       "outputs": [],
@@ -291,7 +291,7 @@
       "id": "531a2c3b",
       "cell_type": "markdown",
       "source": [
-        "На спектре прореженного сигнала также наблюдаются пики на частотах 1000 Гц и 3400 Гц. При этом мы понизили частоту дискретизации до 10 кГц. **Зона Найквиста** (половина частоты дискретизации) в этом случает равна 5 кГц. \r\n\r\nЧто будет, если понизить частоту дискретизации в 6 раз? Тогда зона Найквиста сдвинется на 2,5 кГц и пик на частоте 3400 Гц исчезнет из спектра."
+        "На спектре прореженного сигнала также наблюдаются пики на частотах 1000 Гц и 3400 Гц. При этом мы понизили частоту дискретизации до 10 кГц. **Зона Найквиста** (половина частоты дискретизации) в этом случает равна 5 кГц. \r\n\r\n<br/>\r\n\r\nЧто будет, если понизить частоту дискретизации в 6 раз? Тогда зона Найквиста сдвинется на 2,5 кГц и пик на частоте 3400 Гц исчезнет из спектра."
       ],
       "attachments": {},
       "metadata": {
@@ -310,7 +310,7 @@
       "id": "70dcf13e",
       "cell_type": "code",
       "source": [
-        "down = 6;\r\ns_down = resample(s, 1/down);\r\ny_down = periodogram(s_down, onesided=true, nfft=length(s_down), fs=fs/down, window=hamming);\r\nplot(freq(y_down), power(y_down), xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", legend=false)"
+        "down = 6;\r\ns_down = resample(s, 1/down);\r\ny_down = DSP.periodogram(s_down, onesided=true, nfft=length(s_down), fs=fs/down, window=hamming);\r\nplot(freq(y_down), power(y_down), xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", legend=false)"
       ],
       "execution_count": 0,
       "outputs": [],
@@ -513,7 +513,7 @@
       "id": "ee8521aa",
       "cell_type": "code",
       "source": [
-        "y = periodogram(x, onesided=true, nfft=length(x), fs=fs, window=hamming);\r\nplot(freq(y), power(y))"
+        "y = DSP.periodogram(x, onesided=true, nfft=length(x), fs=fs, window=hamming);\r\nplot(freq(y), power(y))"
       ],
       "execution_count": 0,
       "outputs": [],
@@ -542,7 +542,7 @@
       "id": "637c59ce",
       "cell_type": "markdown",
       "source": [
-        "На спектре мы наблюдаем один пик на частоте 1000 Гц, а зона наблюдения спектра ограничивается частотой 4 кГц.\r\n\r\nПовысим частоту дискретизации сигнала в 3 раза с использованием интерполяции (с помощью той же функции <code>resample</code>)."
+        "На спектре мы наблюдаем один пик на частоте 1000 Гц, а зона наблюдения спектра ограничивается частотой 4 кГц.\r\n\r\n<br/>\r\n\r\nПовысим частоту дискретизации сигнала в 3 раза с использованием интерполяции (с помощью той же функции <code>resample</code>)."
       ],
       "attachments": {},
       "metadata": {
@@ -561,7 +561,7 @@
       "id": "47275e8a",
       "cell_type": "code",
       "source": [
-        "up = 3;\r\nx_up = resample(x, up);\r\ny_up = periodogram(x_up, onesided=true, nfft=length(x_up), fs=fs*up, window=hamming);\r\nplot(freq(y_up), power(y_up), xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", legend=false)"
+        "up = 3;\r\nx_up = resample(x, up);\r\ny_up = DSP.periodogram(x_up, onesided=true, nfft=length(x_up), fs=fs*up, window=hamming);\r\nplot(freq(y_up), power(y_up), xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", legend=false)"
       ],
       "execution_count": 0,
       "outputs": [],
@@ -802,7 +802,7 @@
       "id": "53747148",
       "cell_type": "code",
       "source": [
-        "using Plots, DSP;\r\nfs = 8000;\r\nt1 = [0:1/fs:0.01;];\r\nf0 = 1000;\r\nx = cos.(2*pi*f0*t1);\r\ncoeff = 4/5;\r\ns = resample(x, coeff);\r\ny = periodogram(s, onesided=true, nfft=length(s), fs=fs*coeff, window=hamming);\r\nplot(freq(y), power(y), xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", legend=false)"
+        "using Plots, DSP;\r\nfs = 8000;\r\nt1 = [0:1/fs:0.01;];\r\nf0 = 1000;\r\nx = cos.(2*pi*f0*t1);\r\ncoeff = 4/5;\r\ns = resample(x, coeff);\r\ny = DSP.periodogram(s, onesided=true, nfft=length(s), fs=fs*coeff, window=hamming);\r\nplot(freq(y), power(y), xlabel=\"частота, Гц\", ylabel=\"спектральная плотность мощности\", legend=false)"
       ],
       "execution_count": 0,
       "outputs": [],