Перестали работать кнопки и открываться картинки на сайте ? ... Код страниц исправный ; посмотреть решение здесь ...
Авторский сайт [x] запретить сбор данных
Быстрое введение в GNU Radio, краткий обзор возможностей и знакомство с конструктором радио разработки - для начинающих радиолюбителей и среднего уровня мастерства ... Более 25 страниц онлайн руководства - в кратком и сжатом виде, раскрывающем самую суть компании блочного проектирования радио устройств для забавы, игр, саморазвития, обучения, создания и тестирования электронной аппаратуры на основе компьютерного моделирования ... От простого к сложному и обратно ...
# ... wiki.gnuradio.org, GNU Radio учебники и руководства для начинающих, среднего уровня и разработчиков.
... Подготовлено по материалам руководств и наставлений Wiki Gnu Radio ...
GNU Radio - это бесплатный набор инструментов для разработки ПО с открытым исходным кодом, который предоставляет блоки обработки сигналов для реализации программных радиомодулей, используемых с недорогим SDR радио донглом ...
GNU Radio - это среда, которая позволяет пользователям проектировать, моделировать и развертывать высокопроизводительные реальные радиосистемы - потоковые графы ... Это решение не предоставляет готовых приложений для конкретных образцов оборудования или стандартов радиосвязи, но используется для разработки - практически любых систем с ограниченной полосой частот ...
Раньше, при разработке устройств радиосвязи - инженеру приходилось разрабатывать и отлаживать схемы с помощью дорогостоящего оборудования ... Программно-определяемое радио (SDR) берет на себя обработку аналогового сигнала и переносит ее, насколько это физически и экономически возможно, на обработку радиосигнала на компьютере с использованием алгоритмов программного обеспечения ... Зачем изобретать велосипед и заново реализовывать стандартные и отлаженные блоки? ... Вы действительно хотите написать все графические интерфейсы - самостоятельно? ...
GNU Radio - фреймворк, предназначенный для написания приложений обработки сигналов для обычных компьютеров ... Аналоговый сигнал конвертируется в цифровой, состоящий из дискретизированных чисел, взятых через равные промежутки времени, последовательно ... Теперь, когда у нас есть последовательность чисел, наш компьютер может делать с ней - что угодно ... При создании приложения обработки сигналов создается полный граф блоков, называемый блок-графом ...
GNU Radio - это платформа для разработки этих блоков обработки и создания блок-схем, которые включают приложения обработки радиосигналов ... Стандартные блоки ... Генераторы сигналов ... Модуляторы ... Графический интерфейс ... Математические операторы ... Модели каналов ... Фильтры ... Анализ Фурье ... Можно писать свои собственные блоки ... Таким образом, GNU Radio - это, главным образом, фреймворк для разработки блоков обработки сигналов и их взаимодействия ... Задача пользователя - создать из него что-то полезное, хотя оно уже содержит множество полезных рабочих примеров ... Думайте об этом, как - о наборе строительных блоков ...
Все блоки в графе имеющие входы и выходы - должны иметь подключения ... Чёрные стрелки - указывают направление движения сигнала в процессе обработки ... Обратите внимание : красная стрелка указывает несоответствие выходных и входных типов данных для последовательно соединённых блоков ...
Созданный блок-граф описывается двумя файлами :
*.grc - графически отображает блоки потока в GRC ...
*.py - содержит фактический Python код обработки потокового графа ...
GNU Radio Companion (GRC) использует типы данных Python для представления переменных ... Простейшие типы данных описывают числа ... Числа в Python могут быть числами с плавающей запятой или целыми числами ...
float() - преобразовать целые числа - в числа с плавающей запятой ...
int() - преобразовать числа с плавающей запятой - в целые числа ...
Преобразование типов можно выполнить внутри блоков переменных ...
GRC отображает числа иначе, чем Python ... GRC преобразует все числа в единицы СИ ... Обратите внимание, что GRC может отображать число в формате, отличном от того, который представлен в Python ...
Строки ... Python использует как одинарные, так и двойные кавычки для хранения строк ... Строки можно использовать в качестве переменных в GRC:
Списки и кортежи ... Переменные в GRC могут использовать списки Python ... Переменные в GRC могут использовать кортежи Python ...
Цвета свойств в GNU Radio Companion ... GRC использует цветовую схему для представления типов данных при редактировании свойств блока ...
оранжевый - числа с плавающей точкой, Float 32 ...
зеленый - целые числа, Integer 32 ...
фиолетовый - строка, String, Char / Byte (или Integer 8) ...
не имеют цвета - блоки переменных, поскольку их можно использовать для представления любого типа данных или объекта ...
Блоки GNU Radio реализованы, как - функции ... Блоки - принимают параметры, которые изменяют поведение ... Значение передают через переменные, интегрированные в блоки / функции ... Переменная - может содержать - другую переменную ... Зависимые переменные - зависят друг от друга ... Переменные можно обновлять во время работы потокового графа - с использованием виджетов QT GUI ...
Виджет QT GUI Range создает ползунок, который можно использовать для обновления переменной ...
Id = переменная ... Тип - float ... Start, Stop, Step - настройки начала, конца и шага ...
Виджет QT GUI Chooser создает раскрывающееся меню опций для переменной ...
Id = переменная ... Тип - integer ... Вариант 1, 2, 3 - выбор предустановленных значений ...
Каждый входной и выходной порт в блоке будет иметь связанный с ним тип данных ... Тип данных определяется цветом порта ввода и вывода ... Смотреть - Справка - Типы данных и связанные с ними цвета ... Наиболее распространенными типами данных в блоках GNU Radio являются ...
Complex Float 32 синего цвета ... Использует пару 32-битных чисел с плавающей запятой для представления реальной и мнимой частей сложной выборки - сложный тип данных ... Таким образом, каждая комплексная выборка имеет размер 64 бита : 32-битное число с плавающей запятой - для действительного компонента и 32-битное число с плавающей запятой - для мнимого компонента ...
Float 32 оранжевого цвета ...
Integer 16 (или short ) желтого цвета ...
Integer 8 (или char / byte ) фиолетового цвета ...
Взять блок Random Source ... Установить тип выходных данных = byte ... Параметры случайного источника по умолчанию - будут случайным образом генерировать значения 0 и 1 ...
Добавить блок Throttle, дросселирующе ограничивающий выход случайной частоты выборок - до 32к ... Установить тип проходных данных = byte ...
Подключить виджет QT GUI Time Sink - временной приёмник (прообраз осциллографа) ... QT GUI Time Sink - не имеет типа данных char - выбрать float ... Библиотека блоков GNU Radio поставляется с различными преобразователями типов данных ... Найти блок Char to Float и вставить между дросселем и осциллографом ...
Теперь все блоки - можно соединить, чтобы увидеть отображаемые данные из блока Random Source , которые имеют рандомизированные 0 и 1 - на осциллограмме ...
Преобразование данных выполнено успешно ...
Упаковка битов ... Взять блок случайный источник ... Выбрать тип = byte ... Random Source генерит сигналы от min = 0 до max 2 не включительно, то есть от 0 до 1, двоичные сигналы ...
Блок Pack K Bits используется для распараллеливания или упаковки нескольких битов в один байт для представления больших двоичных значений ... Добавить блоки Throttle , Pack K Bits , Char to Float и QT GUI Histogram Sink в блок-граф и соединить их ...
Упаковка битов в байт полезна при представлении двоичных данных, а также при использовании блоков модулятора : Constellation Modulator , GFSK Mod и OFDM Transmitter ...
Объяснение блока упаковки битов ... Настроить К = 4 количество пакуемых битов ... Блок Pack K Bits принимает K бит и помещает их в байт, сначала заполняя младший бит (LSB) ... Случайный источник генерирует последовательные биты, блок Pack K Bits - преобразует их в параллельный байт ...
Четыре бита дают числа от 0 до 2^4 -1=15 ... 16 возможных значений ... Поэтому ось виджета QT GUI Histogram Sink нужно установить, min = -1 ; max = 16, чтобы вместить весь диапазон 0 (-1) ... 15 (+1) возможных значений ...
Распаковка битов ... Распаковка сериализует байт в строку последовательных битов ... Добавить блок Unpack K Bits - между блоком Pack K Bits и блоком Char to Float ... Изменить свойства К = 4 для Unpack K Bits ...
Распаковка начинается с младшего LSB разряда и продолжается до старшего MSB ... Незначащие старшие нули в байте - игнорируются ...
Блок Unpack K Bits полностью меняет операцию входного потока Pack K Bits ... QT GUI Time Sink демонстрирует, что Pack и Unpack - выполняют идеально обратные операции ...
Блоки в GNU Radio можно соединять с помощью потоков или векторов ... Поток несет 1 выборку для каждого момента времени ... Поток создает сериализованные последовательные данные ... Поток представляет собой скаляр - в каждый момент времени ... Поток должен иметь тип данных, например Float 32 или Byte ...
Блок Signal Source создает поток Complex Float 32 ... Выход блока в каждый момент времени содержит 1 (одну) комплексную выборку - в каждый момент времени существует одна сложная выборка ...
Векторы содержат несколько выборок за каждый момент времени ... Векторы представляют данные параллельно ... Вектор представляет массив - в каждый момент времени ... GRC использует более светлые цвета для обозначения потоков и более темные цвета для представления векторных выходных данных ...
Взять источник Signal Source и настроить частота = 1000, амплитуда = 1 ... Взять другой источник и настроить частота = 100, амплитуда = 0.1, чтобы визуально различать сигналы ... Тип сигналов Cosine ... Initial Phase = 0 ...
Взять блок Streams to Vector и подключить источники ко входам in0 и in1 ...
Блок Streams to Vector действует, как - чередователь ... Блок Streams to Vector берет выборку из порта in0 и помещает ее в первый элемент выходного вектора, а выборку из порта in1 - во второй элемент ... Блок Streams to Vector объединяет два входных последовательных потока в двумерный векторный выходной сигнал ...
К блоку Streams to Vector подключить блок Vector to Stream ... Блок Vector to Stream сериализует вектор в последовательный поток ... Выборки на выходе Vector to Stream, полученные из двух разных источников - будут чередоваться в одном последовательном выводе ... Interleaved Signal Sources - чередующиеся выборки на выходе ...
Блок Hier используется как оболочка для упрощения нескольких блоков GNU Radio - в один блок, используемый для обработки сигналов ... Примером этого блока будет блок сдвига частоты, который умножает источник сигнала на входной сигнал ...
Frequency Shifter Hierarchical Block - Иерархический блок частотного сдвига ...
Источник сигнала поступает на вход in0 умножителя Multiply ...
Источник Гауссова шума, через ФНЧ Low Pass Filter - поступает на вход in1 умножителя Multiply ...
На выходе умножителя дроссель ограничивает частоту выборки 32k ...
Выделить мышью блоки Signal Source и Multiply, включая связи между ними ... Щёлкнуть правой кнопкой мыши на выделенном и выбрать - Дополнительно - Создать Hier ... Блок-граф создается на новой вкладке GRC ...
Дважды щелкнуть - Параметры - и отредактировать свойства ... Идентификатор : FrequencyShifter ... Название : Блок сдвига частоты ... Генерируемые параметры : блок Hier ...
Категория - это место , где блок можно найти в библиотеке блоков - справа от GRC ... Блок hier будет расположен в разделе GRC Hier Blocks - вместо Core , где расположены остальные блоки GNU Radio ... Сохранить блок-граф ...
Переменная отличается от параметра в GNU Radio ...
Параметр - создает интерфейс для вышестоящего блока , позволяющий принимать значение из внешнего источника, тогда как ...
Переменная - существует только внутри вышестоящего блока ...
Переменную необходимо преобразовать в параметр, чтобы его можно было обновить из другого блока - в более крупном блок-графе ... Удалить переменную и добавить блок параметров в рабочую область GRC ...
Панель используется для указания входных и выходных портов в более высоком блоке ... Добавить в блок-схему Pad Source и Pad Sink - которые будут действовать как входные и выходные порты ...
Нажать - Создать блок-график - чтобы создать исходный код блока более высокого уровня ... Будут созданы файлы Python .py и файл YAML .yml ...
Для v3.8 - в домашнем каталоге / home / $USER / .grc_gnuradio / ...
Для v3.10 - в каталоге, где сохранен файл .grc ... Создать каталог .grc_gnuradio и скопировать туда файлы .py и .yml ...
GRC необходимо обновить внутренний список блоков, прежде чем блок Frequency Shifter можно будет использовать в блок-графе ... В библиотеке блоков ниже Core появилась новая категория GRC Hier Blocks , и блок сдвига частоты можно использовать в блок-графах ...
Теперь этот блок можно использовать в блок-графе ... Вернуться в начальный блок-граф и удалить блоки Signal Source и Multiply ... Добавить блок сдвига частоты в рабочую область и соединить его с остальной частью блок-схемы ... Отредактировать свойства блока частотного сдвига , добавив переменные samp_rate и Frequency ...
Запуск блок-графа откроет окно QT GUI Frequency Sink с ползунком QT QUI Range ... Перетаскивание ползунка частоты приведет к передаче значения через параметр блока сдвига частоты , что приведет к изменению центральной частоты сигнала ...
Более высокий блок можно очистить из памяти GRC - удалив соответствующие файлы *.py и *.yml ...
Это инструмент для быстрого создания прототипа блока - внутри блок-графа ... Добавить блок Python ... Встроенный блок Python имеет два свойства ...
Code - клик-бокс, содержащий ссылку на код Python для блока ... Открыть редактор ... Отобразится приглашение с выбором, какой текстовый редактор использовать для написания кода Python ... Использовать по умолчанию ...
example_Param - входной параметр блока ...
В блочном коде Python есть три важных раздела ...
Операторы import - в зеленом поле ... Подключает библиотеки ...
Метод __init__ - в синем поле ... Все инит параметры должны иметь значения по умолчанию ... Принимает example_param параметр с аргументом по умолчанию 1,0 ... Объявляет, что блок имеет вход и выход, что является типом данных GNU Radio np.complex64 Complex Float 32 ... Сохраняет переменную из входного параметра self.example_param ...
Метод work() - в красном поле ... Имеет входные input_items и выходные output_items параметры ... Применяет математическую операцию input_items и сохраняет результат в output_items ... Возвращает количество произведенных выборок ...
Код изменен для добавления пользовательского поведения ... Переименовать example_param в - более информативное имя ... Не забывать делать отступы кратными 4 пробелам (4, 8, 12 и т. д.) при начале новых строк в Python ... По умолчанию во встроенном блоке Python используется отступ, кратный 4 пробелам ... Смешение табуляции и пробелов приводит к синтаксической ошибке ... Сохранять код ...
Блок по умолчанию имеет один вход и один выход, однако для блока нам нужны два входа ... Чтобы добавить вход, добавьте в список второй np.complex64 ...
in_sig = [ np.complex64, np.complex64 ] - заявлены два входа ...
Выполнить математическую операцию - по условию ...
Здесь используются векторы ... Прежде чем двигаться дальше - прочтите руководство Потоки и Векторы ... Встроенный блок Python необходимо изменить, чтобы ...
принимать векторные входные данные ...
создавать векторные выходные данные ...
измените типы данных - на плавающие ...
Что касается учебника Потоки и Векторы , с точки зрения более высокого уровня, Потоки - обычно представляют собой частный случай Векторов, которые имеют только один параллельный элемент данных - вместо нескольких ... Вот почему мы можем просто изменить параметры in_sig и out_sig, чтобы использовать векторы, а не - потоки ... Поскольку случай потоков настолько распространен, что у него есть - свой простой синтаксис, тогда как синтаксис векторов - немного сложнее ... В частности, при использовании векторов мы должны указать длину вектора вместе с типом данных элементов в векторах ... Мы делаем это, используя кортеж в Python ...
Предупреждение относительно длины векторов ... Встроенный блок Python имеет одно отличие, которого нет у других модулей ... Прежде чем запустить блок-граф, GRC проверяет - совпадают ли все подключенные типы данных и размеры векторов ... Во время этого процесса значение по умолчанию VectorSize в функции
__init__() = def __init__ (self, VectorSize=16) и это число используется для определения размера векторов для ввода in_sig и вывода out_sig - при определении правильности блок-схемы ...
В этом случае VectorSize=16 ... GRC предполагает, что порты ввода и вывода представляют собой векторы длиной 16, даже если через свойства блока - передается другой параметр (!) ... Случаи, когда GRC - не распознает ошибку длины вектора, но граф потока - аварийно завершает работу после его запуска, например : заявлено, длина = 16, используется = 128 ... Альтернативно, GRC покажет ошибку, если параметр по умолчанию не соответствует размеру вектора других блоков ... Например, в случае, когда длина вектора по умолчанию в коде равна 128, но переданный параметр равен 16 ...
Для потока входные и выходные данные - могут быть индексированы с использованием как номера порта, так и индекса выборки ...
Индексация на основе номера порта [portIndex] - возвращает все входные выборки для определенного порта ...
Индекс выборки - возвращает конкретный [portIndex] [sampleIndex] ... Двухмерный массив ...
Входные и выходные _items включают дополнительное измерение при использовании векторов ... Векторы - добавляют дополнительное измерение, представленное ниже как векторный индекс . input_items и output_items, теперь представляют собой - трехмерные массивы : [portIndex] [vectorIndex] [sampleIndex] ...
Индексация на основе portIndex - возвращает двумерный массив всех векторов и выборок ...
Индексирование на основе portIndex и vectorIndex - возвращает одномерный массив образцов ...
Индексирование на основе portIndex , VectorIndex и sampleIndex - возвращает один образец ...
Функция work() изменена и теперь включает функцию максимального удержания ... Добавить цикл по всем векторам в input_items[0] ...
Для векторного индекса в диапазоне len - вычислить максимальное значение вектора ... Просмотреть каждый из входных образцов и назначить каждому выходному образцу - maxValue ...
Можно запрограммировать несколько векторных портов и отсэмплировать все их - по максимуму значений ...
Сообщения - это асинхронный способ передачи информации между блоками ... Сообщения хороши для передачи управляющих данных, поддержания согласованного состояния между блоками и предоставления некоторых форм обратной связи, не связанной с данными, для блоков в блок-графе ...
Сообщения имеют несколько уникальных свойств ...
* Не существует гарантии, основанной на тактовой частоте выборки, когда сообщения будут доставлены ...
* Сообщения не связаны с конкретным образцом, например тегом ...
* Порты ввода и вывода сообщений не обязательно должны быть подключены в GRC ...
* Порты сообщений используют полиморфный тип (PMT) ...
* Порты сообщений обозначены серым цветом, а их соединения выделены пунктирными линиями ...
GNU Radio изначально была потоковой системой без какого-либо другого механизма для передачи данных между блоками ... Потоки данных - это модель, которая хорошо работает для выборок, битов и т. д., но на самом деле не является подходящим механизмом для управления данными, метаданными или структурами пакетов (по крайней мере, на каком-то этапе цепочки обработки) ...
Часть этой проблемы - решена введением потока тегов тегов ... Это параллельный поток потоковой передачи данных ... Разница в том, что теги предназначены для хранения метаданных и управляющей информации ... Теги специально связаны с конкретной выборкой в потоке данных и передаются вниз по течению вместе с данными ... Эта модель позволяет другим блокам идентифицировать, что событие или действие произошло или должно произойти с конкретным элементом ... Основное ограничение заключается в том, что поток тегов на самом деле доступен только внутри рабочей функции и течет только в одном направлении ... Его преимущество в том, что он изосинхронен с данными ...
Нам нужна более общая система передачи сообщений по нескольким причинам ...
Первый - заключается в том, чтобы позволить нижестоящим блокам обмениваться данными с вышестоящими блоками ...
Второе - предоставить нам более простой способ взаимодействия между внешними приложениями и GNU Radio ... Интерфейс передачи сообщений GNU Radio обрабатывает эти случаи, хотя и на асинхронной основе ...
Интерфейс передачи сообщений в значительной степени опирается на полиморфные типы (PMT) в GNU Radio ...
Полиморфные типы используются в качестве переносчиков данных из одного блока / потока - в другой, для таких вещей, как теги потоков и интерфейсы передачи сообщений ... PMT могут представлять различные данные, от логических значений до словарей ... В некотором смысле PMT - это способ расширить строгую типизацию C++ чем-то более гибким ...
В Python мы можем использовать динамическую типизацию, и на самом деле существует вспомогательная функция для выполнения этих преобразований (в C++ также есть вспомогательная функция для преобразования в PMT, называемая pmt::mp(), но она - менее мощная и не совсем такая полезная, поскольку типы в C++ всегда - строго известны) ... PMT в Python - достаточно сложная тема и требует отдельного изучения ...
Обзор тегов ... Теги - это способ передачи информации вместе с оцифрованными радиочастотными образцами - синхронно во времени ... Теги особенно полезны, когда нисходящим блокам необходимо знать, по какой выборке приемник был настроен на новую частоту, или для включения временных меток с конкретными выборками ...
Если сообщения передают информацию асинхронно - без гарантии времени на основе часов, теги - представляют собой информацию, связанную с конкретными радиочастотными выборками ... Теги перемещаются вместе с оцифрованными радиочастотными выборками в потоках и векторах данных, включая Complex Float 32 , Float 32 , Byte и все другие форматы ...
FIR Type = Complex Decimating ... Decimation = 1 ... Gain = 1 ... Cutoff Freq = sample rate / 4 ... Transition Width = sample rate / 8 ... Window = Hamming ...
ФНЧ Hamming - это тип фильтра нижних частот, который использует окно Хэмминга для формирования амплитудно-частотной характеристики ... Окно Хэмминга - это одно из окон, которые используются в цифровой обработке сигналов для управления спектральными характеристиками фильтра ... Окно Хэмминга имеет форму, которая напоминает колокол, и оно применяется для уменьшения влияния выбросов - резких изменений амплитуды - на спектральную характеристику фильтра ... Окно Хэмминга помогает сгладить переходы между проходной и подавленной областями фильтра ... Фильтр, использующий окно Хэмминга, может быть настроен для подавления высокочастотных компонентов сигнала и пропуска низкочастотных компонентов ... Он может использоваться в различных областях, включая цифровую обработку сигналов, аудиообработку и радиосвязь ...
Ещё примеры ФНЧ фильтров ...
ФНЧ фильтр Butterworth - это классический фильтр с плоской амплитудно-частотной характеристикой ...
ФНЧ фильтр Kaiser - этот фильтр использует окно Кайзера для управления формой амплитудно-частотной характеристики ...
FIR Filter - фильтр с конечной импульсной характеристикой, который может быть настроен для работы как ФНЧ ...
IIR Filter - фильтр с бесконечной импульсной характеристикой, который также может быть настроен для работы как ФНЧ ...
ФНЧ (фильтр нижних частот) может быть реализован в виде кран-фильтра ... Кран-фильтр - это один из способов реализации ФНЧ, который использует комбинацию резисторов и конденсаторов для фильтрации низкочастотных сигналов ... Он может иметь различные конфигурации, такие как RC-кран-фильтр или LC-кран-фильтр, в зависимости от использованных компонентов ...
Заменить фильтр нижних частот на КИХ фильтр с частотным расширением / Frequence Xlating FIR Filter ... Подключить блок : Отводы фильтра нижних частот / Low Pass Filter Taps ...
Блок Low-Pass Filter Taps проектирует набор отводов фильтра, которые можно применить к блокам фильтрации ... Отводы фильтров также могут называться весами или коэффициентами ... Реакция и производительность фильтра - зависят от параметров, введенных пользователем ... Блок Low-Pass Filter Taps сохраняет отводы фильтра в списке в переменной lowPassFilterTaps ...
Альтернативные методы можно использовать для разработки отводов фильтров, а затем ввести их вручную как переменную Python ... Например, блок Frequency Xlating FIR Filter принимает отводы фильтра, как - массив NumPy ...
Чтобы иметь доступ к функциям и типам данных NumPy, его необходимо сначала импортировать ... Добавьте блок Import ...
Ввести команду import numpy as np ...
Простой фильтр усреднения скользящим окном - moving-average или boxcar - можно спроектировать, установив одинаковые значения всех отводов фильтра ... Это можно сделать с помощью функции NumPy ones() , которая возвращает массив NumPy, состоящий из всех единиц указанной длины ...
Ввести переменную boxcarFilter = np.ones(8)/8 и заменить ею переменную lowPassFilterTaps ...
Фильтр скользящего среднего (moving-average filter) - это один из наиболее распространенных методов фильтрации в цифровой обработке сигналов ... Он используется для сглаживания временных рядов и устранения шумов ... Принцип работы фильтра скользящего среднего заключается в вычислении среднего значения сигнала в окне определенной ширины и замене исходного значения сигнала этим средним значением ... Ширина окна определяет количество соседних отсчетов, которые учитываются при вычислении среднего значения ...
Многие из блоков фильтрации имеют опции для выбора комбинаций вещественных или комплексных типов данных для ввода и вывода, а также действительных или комплексных весов фильтра ... Пример метода использования комплексных весов фильтра для преобразования реального сигнала в комплексный ...
LowPassTaps используются в качестве основы для сложного полосового фильтра ...
Путем математических преобразований - центральная частота фильтра нижних частот была перемещена до 1/4 частоты дискретизации, которая теперь является полосовым фильтром ... Частотная характеристика теперь различается между положительными и отрицательными частотами, что может быть свойством сложных фильтров (но - не реальных фильтров) ...
Интерполяция - это процесс увеличения частоты дискретизации и, следовательно, доступной полосы пропускания ... В примере показано, как увеличить частоту дискретизации с помощью блока Interpolating FIR Filter ...
Интерполирующий КИХ-фильтр увеличивает частоту дискретизации с 32 кГц до 128 кГц, в 4 раза, благодаря переменной interpolation_rate ...
Если интерполяция - увеличивает частоту дискретизации, децимация - уменьшает частоту дискретизации и доступную полосу пропускания ... Обратите внимание, что полоса пропускания - была уменьшена на коэффициент 1/4 из-за блока Decimating FIR Filter ...
Интерполирующий КИХ-фильтр и Децимирующий КИХ-фильтр изменяют частоту дискретизации - на целочисленные значения ... Могут возникнуть ситуации, когда частоту дискретизации - необходимо изменить на дробное число, например 2/3 ... Один из способов выполнить дробную повторную выборку - применить интерполяцию на 2 с последующим прореживанием на 3 ... Лучший способ - использовать блок Rational Resampler ...
Заменить Decimating FIR Filter на Rational Resampler ... Обратите внимание, что пропускная способность в этом случае - уменьшена в 2/3 раза за счет блока Rational Resampler - путем математических операций ...
Narrowband FM transceiver ... Как можно генерировать и принимать узкополосный FM-сигнал (NBFM) ...
Приёмник NBFM ... Данные принимаются от передатчика через ZMQ_SUB_Source с частотой дискретизации 576 кГц ... Он фильтруется до полосы пропускания 6 кГц и прореживается (уменьшается) в 3 раза с помощью FFT_Filter , что дает выходную частоту дискретизации 192 кГц ... Блок NBFM_Receive демодулирует входной сигнал и создает выходную частоту дискретизации 48 кГц, которая соответствует желаемой частоте звука ...
Передатчик NBFM ... Вход микрофона - частота дискретизации 48 кГц ... Звук фильтруется в диапазоне от 300 до 5000 Гц с помощью Band_Pass_Filter ... Большинство репитеров используют тональный сигнал для запуска передатчика ... Signal_Source генерирует тон PL ... Аудиосигнал плюс тон PL - подаются в блок NBFM_Transmit ... Выходная частота дискретизации составляет 192 кГц ... Low_Pass_Filter ограничивает сигнал до 5 кГц ... Блок Repeat интерполирует (умножает) частоту дискретизации на 3, давая выходную частоту 576 кГц ...
SSB, Single Sideband transceiver ... Как можно генерировать и принимать сигнал с одной боковой полосой (SSB) ...
Метод Weaver для демодуляции SSB ... Традиционно SSB создавался и принимался с использованием узкополосных фильтров или с использованием метода фазировки, требующего фазового сдвига на 90 градусов по всему звуковому спектру ... Третий метод генерации и обнаружения однополосных сигналов - предполагает использование гетеродина с частотой в середине звукового спектра (1500 Гц) для сигналов I и Q отдельно, а затем их добавление или вычитание для восстановления звука верхней или нижней боковой полосы ...
Тестирование ... Блок переменных - определяет частоту дискретизации 256k ... Другой блок переменных - определяет коэффициент прореживания ... Поскольку Audio Sink (динамик) использует частоту дискретизации 32 кГц, мы уменьшим входную частоту дискретизации - в 8 раз ...
Приёмник ... Сигнал от секции передатчика принимается источником ZMQ PULL ... Это несущая 16 кГц с частотой дискретизации 192 кГц ...
Передатчик ... Вход микрофона определяется блоком Audio Source ... Частота дискретизации 48 кГц ... Для оставшейся части блок-схемы используется частота дискретизации 192 кГц ... Это значение было выбрано для обеспечения несущей частоты 16 кГц и 12 выборок за цикл ... Чтобы повысить частоту дискретизации аудиовхода 48 кГц до частоты дискретизации 192 кГц - используется блок Repeat со значением интерполяции = 4 ... Несущий сигнал (в этом примере составляет 16 кГц) генерируется блоком Signal Source ... Чтобы создать сигнал с двойной боковой полосой, сигнал несущей умножается на аудиосигнал ... Полосовой фильтр создает однополосный сигнал, пропуская частоты от 16 300 Гц до 19 000 Гц и отсекая остальные (метод фильтра) ... Это дает сигнал только с одной боковой полосой (верхней) и без несущей ... Звуковые частоты этого сигнала составляют от 300 Гц до 3000 Гц ... В реальном радиопередатчике выходной сигнал полосового фильтра подается на радиочастотное (РЧ) оборудование ... В этом уроке мы отправляем сигнал передачи в сокет данных ZMQ PUSH Sink, подключенный к секции приемника ...
Здесь мы сосредоточимся - на моделировании, а не на передаче по беспроводной сети ... Будут обсуждаться многие вопросы, связанные с тем, что происходит при передаче и приеме сигналов с реальными аппаратными и канальными эффектами ... Мы настроим симуляцию, а затем шаг за шагом объясним - как восстановить сигнал ... Во время обучения имейте в виду, что это - всего лишь один из способов обработки приема цифрового сигнала ... Для этих этапов разработаны различные алгоритмы и методы, и разные типы цифровых сигналов ведут себя - по-разному ... Здесь мы проходим ряд этапов и используем алгоритмы, доступные в GNU Radio, для приема и демодуляции сигнала PSK ... Однако это руководство - никоим образом не должно означать, что это - единственный способ выполнить эту задачу ...
В версии 3.10 Эквалайзер CMA и Эквалайзер LMS DD - устарели и были заменены на Linear_Equalizer и Adaptive_Algorithm ... Предполагается, что читатель изучит блок-схемы и полученные результаты, но не обязательно будет строить каждую из них ... Однако ссылки на исходные файлы GRC - включены ...
Передача сигнала ... На первом этапе передается сигнал QPSK ... Мы генерируем поток битов и модулируем его в сложное созвездие ... Для этого мы используем блок Constellation Modulator ... Объект созвездия позволяет нам определить, как кодируются символы ... Блок модулятора может затем использовать эту схему модуляции с дифференциальным кодированием или без него ... Модулятор созвездия ожидает упакованные байты, поэтому у нас есть генератор случайных чисел, предоставляющий байты со значениями от 0 до 255 ...
Количеством выборок на символ ... Значение избыточной пропускной способности ... Межсимвольная интерференция / ISI ... Добавление нарушений канала ... Тепловой шум в приемнике, известный как - аддитивный белый гауссов шум (AWGN) ... Часы, определяющие частоту радиостанций ... Восстановление тайминга ... Лучшее время выборки входящих сигналов, чтобы максимизировать отношение сигнал / шум (SNR) ... Блок многофазной синхронизации часов ... Многолучевое распространение ... Фазовая и точная частотная коррекция ... Петля Костаса для синхронизации BPSK, QPSK и 8PSK ... Расшифровка и декодирование сигнала ... Упаковка в байт и распаковка в биты ...
Разница между QPSK и BPSK заключается в количестве бит на символ ... QPSK использует 2-битные символы ; BPSK использует 1-битные символы ... В обоих случаях блок Constellation Modulator использует все 8 входных битов ... Обратите внимание, что объект Созвездие - отличается для QPSK и BPSK ... Объект созвездия позволяет нам определить, как кодируются символы ... При демодуляции BPSK - очень много общих моментов с QPSK ...
Чтобы смоделировать простые передатчик и приемник с частотной манипуляцией (FSK), никакого специального оборудования - не требуется ... Скорость передачи данных для радиотелетайпа Бодо ... Она определяется как битовое время в 22 миллисекунды, поэтому скорость передачи данных устанавливается равной 1/0,022, что дает 45,4545 ... Стандартные тоны RTTY (радиотелетайпа) 2295 Гц (Mark=1) и 2125 Гц (Пробел=0) - генерируются VCO ... Коэффициент задержки компенсирует задержки обработки схемы ... Преамбула состоит из символа - %, за которым следуют 50 заглавных букв - U, за которыми следует - ] ... Это повторяется четыре раза, чтобы приемник мог синхронизироваться ... Пост-файл-заполнитель отправляется 10 раз ...
В дальнейшем мы предполагаем, что читатель знаком с мультиплексированием с ортогональным частотным разделением каналов (OFDM) и с тем, как оно работает ... Введение в OFDM можно найти в стандартных учебниках по цифровой связи ... GNU Radio предоставляет блоки для передачи и приема сигналов, модулированных OFDM ... Эти блоки имеют очень общий дизайн ... Для разработчика это означает, что часто желаемая функциональность может быть достигнута путем правильной параметризации доступных блоков, но в некоторых случаях необходимо включать пользовательские блоки ... Конструкция компонентов OFDM такова, что добавление собственных функций возможно - без особых усилий ...
Сдвиг БПФ ... Во всех случаях, когда символы OFDM передаются между блоками, поведением по умолчанию является БПФ-сдвиг этих символов, т. е. несущая постоянного тока находится посередине (точнее, на уровне несущей (N/2), где N - это длина БПФ и индексация несущей начинаются с 0) ... Причина этого соглашения заключается в том, что для работы некоторых блоков - требуется порядок символов со сдвигом БПФ ... Кроме того, при просмотре, OFDM символы, сдвинутые с помощью БПФ - располагаются в своем естественном порядке, т.е. в том виде, в каком они появляются в полосе пропускания ...
Каждый символ OFDM несет в себе 4 символа данных ... Со стороны получателя - необходимы дополнительные усилия ... Преамбула Schmidl & Cox - это метод синхронизации частоты и времени для систем OFDM (ортогональное частотное разделение мультиплексирование) ... Преамбула Schmidl & Cox состоит из двух одинаковых символов, которые используются для оценки времени и частоты приемника ... Она помогает синхронизировать передачу и прием сигналов OFDM, что позволяет эффективно извлекать данные из сигнала ... Этот метод синхронизации имеет высокую устойчивость к помехам и искажениям, что делает его особенно полезным для систем связи, использующих OFDM ... Преамбула состоит из символа - %, за которым следуют 50 символов - U и - ] ... Она повторяется двадцать раз, чтобы приемник мог синхронизироваться ... Заполнитель пост-файла отправляется четыре раза ...
Поскольку отправка случайных двоичных данных - может вызвать ошибки при передаче данных, было обнаружено, что преобразование двоичного файла в кодировку Base64 - сначала работает надежно ... Можно использовать программу постобработки для удаления преамбул и преобразования кода Base64 - обратно в двоичные данные ... Примечания ... Одним из подходов к последующей обработке полученного файла, может быть замена File_Sink - на ZMQ_PUB_Sink ...
Packet Communications ... В этом руководстве представлены методы передачи и получения пакетных данных ... Как было показано в учебных пособиях по QPSK и BPSK, полученный поток битовых данных можно проверить - путем сравнения его с (задержанными) переданными данными ... Однако восстановить выравнивание этих битов - не удалось ... Именно здесь в игру вступает - обработка пакетов ...
Чтобы понять основы обработки пакетов, в этом разделе представлено моделирование передатчика и приемника с использованием стандартных блоков GNU Radio - без какой-либо модуляции или ухудшения качества канала ... Чтобы строб сообщения генерировал PDU - PMT сообщения должен иметь вид инициализации включая u8vector, длину вектора и значения символов ... Блок Async CRC32 вычисляет CRC полезных данных и добавляет к нему значение ...
Переменная, идентификатор = hdr_format ... Средство форматирования протокола генерирует заголовок с длиной / номером пакета и 8-битным CRC ... Код доступа - не создается ... PDU преобразует полученные PDU в поток с тегами, добавляя теги длины ... Мультиплексор Tagged Stream объединяет заголовок и полезную нагрузку ... Блок Header / Payload Demux - синхронизируется с данными заголовка и затем выводит данные полезной нагрузки ...
Использование BPSK с аппаратным моделированием ... Чтобы создать преамбулу, заголовок по умолчанию и данные полезной нагрузки в одном сообщении PDU - был создан блок Embedded Python ... Преамбула состоит из 32 байтов 0x55, дающих чередующиеся 1 и 0 ... Нециклический 32-битный код доступа - 0xe15ae893 ... Длина полезной нагрузки повторяется (16 бит) ... Затем добавляется полезная нагрузка ...
Моделирование пакетной связи с использованием потоков ... Успех этой методологии основан на том, что входной файл дополняется кратным - packet_len байтам, так что последние несколько байтов исходного файла - не теряются в частично необработанном пакете ...
Использование альтернативного блока File Source ... Существует модуль Out-of-Tree (OOT), который считывает текстовый или двоичный файл и создает потоковый вывод с тегами package_len для GNU Radio ... Функционально он заменяет блок File Source и блок Stream to Tagged Stream ... Преимущество этого блока заключается в том, что, когда размер входного файла не кратен длине выбранного пакета, остаток в конце файла не теряется в буфере - блока поток в поток с тегами ... Это исключает необходимость в предварительном процессоре, таком как программа заполнения текста ...
Выводы на основе этой части знаний ...
* BPSK и QPSK - не очень подходят для пакетной передачи из-за необходимости сходимости приемника по фактическим значениям времени и частоты ... Чем дольше время между пакетами данных, тем больше приемнику потребуется для повторной сходимости значений времени и частоты для нового пакета ...
* Поскольку почти вся любительская радиосвязь является полудуплексной и передает пакеты данных, более подходящей модуляцией была бы FSK или AFSK ... По-прежнему будет применяться то же форматирование и восстановление пакетов ...
* Наблюдения ... Во время разработки и тестирования этого руководства - были замечены следующие моменты ... Блоки Header / Payload Demux и Protocol Parser - похоже, работают только с форматом : digital.header_format_crc ... Для блока Correlate Access Code - Tag Stream - требуется объект формата заголовка по умолчанию, и ожидается 32-битный код доступа ...
Для тестирования по беспроводной сети вместо моделирования канала - использовать модуль SDR передачи / приема ...
Отправка нетекстовых файлов ... Можно отправлять любые текстовые, двоичные и другие нетекстовые файлы (например, PDF или PNG) ...
Получение файла .py скрипт получает сигнал BPSK и представляет его потоку Correlate Access Code-Tag ... Этот блок обнаруживает код доступа и передает полезную нагрузку в Stream_CRC32 для проверки правильности CRC ... Если CRC в порядке - данные отправляются в File_Sink ...
Блок EPB : File Source to Tagged Stream - это встроенный блок Python, который заменяет блок File_Source , блок Stream_to_Tagged_Stream и части блока Burst_Shaper ... Блок Python выполняет следующие функции : ...
# отправка преамбулы, чтобы позволить получателю - синхронизироваться ... Преамбула состоит из символа - %, за которым следуют 50 заглавных букв U, за которыми следует - ] ... Это повторяется 100 раз, чтобы приемник мог синхронизироваться ... Пост-файл-заполнитель отправляется 40 раз ...
# прочитать файл частями - Pkt_Len ...
# преобразовать данные - в формат Base64, который выдает 4 байта вывода на каждые 3 байта ввода ...
# отправлять каждый фрагмент Base64 - с измененными тегами package_len ...
# отправлять заполнитель пост-файла, чтобы убедиться, что все буферы - очищены ...
Пошаговое руководство по аппаратному обеспечению ... Введение ... Одна из наиболее простых (и невероятно полезных) вещей, которые вы можете сделать в GNU Radio с приемником, это - создать программный анализатор радиоспектра ... Это также отличный первый шаг, поскольку он позволит убедиться, что ваше оборудование имеет базовую функциональность ... С GNU Radio можно начинать работать, от простых и дешёвых радио приемников, таких как RTL-SDR - до очень высокопроизводительных систем стоимостью в десятки тысяч долларов ...
Для анализатора спектра, мы хотим, чтобы автоматическая регулировка усиления (АРУ) - была отключена, поскольку мы будем просматривать спектр, который часто будет пустым, и сложно определить, присутствует ли сигнал или нет, когда АРУ постоянно регулирует усиление, чтобы полученные пробы - всегда находились на постоянном уровне ... Вы можете думать об АРУ как о чем-то, автоматически регулирующем ручку громкости ... Включение АРУ лучше подходит для приложений, когда вы знаете, что существует сигнал на частоте, на которую вы настроены ...
Во время работы, анализатор настраивается регуляторами - на частоту, дискретизацию выборки - влияющий на ширину полосы пропускания, или отрегулировать усиление ...
Вопросы аппаратного обеспечения ... Установка частоты дискретизации включает в себя несколько факторов, которые - следует учитывать ... Различные аппаратные устройства имеют ограничения на частоту дискретизации, которую они могут обеспечить ... Некоторые из них, например FunCube Pro+ - имеют фиксированную частоту дискретизации 192 кГц ... Настройка частоты дискретизации потокового графа должна соответствовать ограничениям устройства ... Используемое компьютерное оборудование и ОС - также накладывают ограничения на пропускную способность данных, например : USB2 / USB3 ; скорость процессора ; количество ядер процессора ...
Появление букв O в строке статуса - означает переизбыток данных ... Это связано с тем, что поток входных данных генерирует данные - быстрее, чем компьютер - может их потребить, поэтому это может быть связано с узким местом аппаратуры, или блок-граф пытается сделать слишком много с этими выборками ... Регулировка частоты дискретизации и / или размера входного буфера (если возможно) - может облегчить проблему ...
Аудиоприемник - позволяет воспроизводить сигнал через динамики или другое аудиоустройство ... Чтобы установить частоту дискретизации звука - нужно понимать, что не все частоты дискретизации могут поддерживаться оборудованием ...
Для типичных приложений следует установить значение 48 кГц ...
Имя устройства - оставить пустым, чтобы выбрать аудиоустройство - по умолчанию ... Имя устройства - зависит от ОС ...
В Linux звуковое устройство выбирается через ALSA, где типичные варианты включают : ... default ( по умолчанию ; обратите внимание, что в большинстве настольных систем этим фактически управляет PipeWire или PulseAudio, чтобы проверить это, вы можете выполнить команду : aplay -L | grep -A1 ^default ) ... plughw:0,0 - это то же самое, что hw:0,0 и включает программную обработку, которая позволяет, например, выбрать частоту дискретизации, которая изначально - не поддерживается звуковой картой ... pipewire (чтобы явно использовать PipeWire) ... pulse (чтобы явно использовать PulseAudio) ... Для пользователей ALSA с проблемами со звуком выполните следующую процедуру : aplay -L ; найти нужную запись и использовать первую строку - в качестве имени устройства ... Если в имени нет пробелов, кавычки - необязательны ...
В Windows зайти в - Настройки - Система - Звук - Вывод ... Списки в разделе Имя - содержат точные имена доступных в настоящее время устройств ... Если к компьютеру подключено новое аудиоустройство, то появится новое имя ... Поскольку большинство имен устройств содержат пробелы - обязательно заключайте аргумент имени в кавычки ...
Количество входов ... 1 - моно ... 2 - стерео ...
Обратите внимание, что для связки блоков Signal Source и Audio Sink - не нужен блок Throttle - Audio Sink должен дросселировать за вас ... Если же, в конечном итоге, дросселированный источник сигнала, уже используется - установить для параметра - блокировать значение = Нет ...
Список всех страниц, раздел linux : смотреть онлайн бесплатно, интересное - надо посмотреть ...
Автодиагност визитка, компьютерная диагностика двигателя автомобиля, грузовика. Отечественные и импортные ... Быстрое чтение кодов ошибок DTC ... K-Line. ELM 327. ОБД. EOBD. MOBD. USA OBD. JOBD ... Рекомендации ... Подробнее ...
ссылки ...
Уголок автолюбителя ... Авто транспорт ... Информация ... диагностика двигателя адреса ... Ниссан, Nissan ... диагностика автомобиля с выездом ... диагностика турбины двигателя ... Другие машины и услуги ...
Длина волны в частоту. Калькулятор. Метры в Г ... Перевод длины волны метров в частоту. Calc Wave Freq. Калькулятор, радио технич. расчеты п ...
На трассе М-12 как погода от Яндекс точные пр ... Как с погодой на магистрали М-12, альтернативный прогноз от Яндекс. Сайт лучшей и точной к ...
Камеры ПК ЦУП, дорожные, метео. Объекты на ка ... ПК ЦУП. Центр управления и дорожного мониторинга. Видеоконтроль, карта, объекты, камера. М ...
М8 в г. Москва, Ярославль, Вологда, Архангель ... Москва, Ростов, Ярославль, Вологда, Вельск, Архангельск, Северодвинск. Прогноз погоды на т ...
APRS для Windows. TNC модем. Программы. Как и ... Станции для связи. APRS и TNC. Virtual связка. Как использовать. О работе режимов, ошибки ...
Калькулятор стоимости грузоперевозок. Эффекти ... Грузоперевозки, калькулятор стоимости грузовой доставки. Расчет стоимости грузоперевозок. ...
ProScan. Сканер ОБД2. ... ProScan, программа для сканирования OBD-II и анализа производительности транспортных средс ...
2023-10-01 ... какие новости ... содержание кратчайшее ... шутка ))) ...
# ... tass.ru, В России планируют создать лабораторию аэрокосмического мониторинга пастбищ.
... Методику разработали ученые Ставропольского государственного аграрного университета, и апробировали в хозяйствах Ставрополья и Республики Казахстан ... Лаборатория позволит объединить возможности аэрокосмической техники и современных цифровых технологий для развития животноводческой отрасли, а научный подход в области технологий аэрокосмического мониторинга позволит увеличить продуктивность пастбищ от 25% до 35%, прогнозируя экономический эффект в масштабах страны - более 10 млрд рублей ...
2023-11-22 ... содержание краткое ... краткое содержание ... шутка ))) ...
# ... gazeta.ru, Предидент РФ В. В. Путин объявил 2024 год в России - Годом Семьи.
... Решение принято для популяризации госполитики в сфере защиты семьи и сохранения традиционных семейных ценностей ... Правительству РФ поручается образовать соответствующий оргкомитет и утвердить план мероприятий Года семьи ... Поддержка материнства и детства, улучшение демографической ситуации, обеспечение достойного уровня и качества жизни семей в России - входят в числе ключевых приоритетов ближайшего будущего РФ ...
2023-11-09 ... то же самое лучше всех ... ничто не поменялось, но все в восторге ... шутка ))) ...
# ... pravda.ru, Ученые в России нашли способ восстанавливать поврежденные нервы периферической нервной системы.
... Исследование основано на использовании композитных волокон из хитозана и углеродных нанотрубок, способных восстанавливать поврежденные нервы ПНС и их функции ... Отмечается, что ЦНС функционирует - по-другому, клетки имеют другую природу, поэтому разработанный подход - не может применяться при лечение повреждений ЦНС ...
# ... abnews.ru, Cтандартизация электронных медицинских карт - ускорит развитие и внедрение ИИ в медицину.
... Опечатки, незаполненные строки и пропуски в текстах также мешают формированию баз данных для обучения ИИ-моделей ... Одновременно необходимо обеспечить важность баланса между приватностью пациента и развитием технологий ИИ ...
# ... nauka.tass.ru, Исследователи из Illinois State University, США - добились успеха в борьбе с грибковыми инфекциями - не повреждая почек.
... Биохимики модифицировали природный противогрибковый препарат амфотерицин таким образом, что его введение в организм людей и животных больше не ведет к повреждению почечной ткани ... Молекула, созданная международной группой учёных - щадяще воздействует на почки, не вырабатывает устойчивости грибков, и при этом - обладает широким спектром действия ... Во всех случаях тестирования, новая версия амфотерицина B - превзошла ныне применяемые лекарства или была сопоставима с ними по уровню эффективности ...
Смотреть все самые интересные новости последних дней, недели, месяца ...
22:35 25.11.2023 Пневмоподвеска ECAS Экран МАЗ. Работа и неисправности. ... IndexNow : Y223525112023 , B223525112023 ...
7:16 16.11.2023 Научиться интерактивности. Скрытый контент в браузере.
13:46 15.11.2023 Дискретизация. Сэмплирование. Квантование. Понимание.
22:11 14.11.2023 AI. Character. Chat. Image. Voice. Cover. Video. Free.
4:47 14.11.2023 #4. Введение в радио конструктор GNU Radio на Python.
4:42 14.11.2023 #3. Радио конструктор обработки цифровых сигналов.
20:48 10.11.2023 Gorizont Linux LiveCD. RTL SDR редакция. Radio обзор.
кино фильм 1983 Мэри Поппинс до свидания ...
Что посмотреть, кино для детей, подборка фильмов детские сказки ...
1983 Мэри Поппинс, до свидания ...
Наталья Андрейченко, Филипп Рукавишников, Анна Плисецкая ... Появившись ниоткуда, няня, обладающая волшебными свойствами - быстро становится любимицей детей и взрослых ... Увлекательные приключения в мире фантазии и волшебства учат ценить важные ценности, такие как семья, доброта и взаимопомощь ... Уходя, Мэри Поппинс оставляет всем надежду, которую принесёт добрый ветер ...
Cоциальная сеть, моя страница, поиск, вход без регистрации, знакомство без пароля, войти бесплатно ...
Разрешенные соцсети в РФ :
vk.com, моя страница вконтакте.
ok.ru, моя страница одноклассники.
t.me, моя страница телеграм.
youtube.com, мой канал на ютубе.
Запрещенные соцсети в РФ :
twitter.com, моя страница твиттер.
fb.me, моя страница фейсбук.
instagram.com, моя страница инстаграм.
linkedin.com, моя страница в линкедин.
песенки ... музон слушать ...
...
Метко - Гости Из Будущего.
...
Flames Of Love - Fancy.
...
Синий Вечер - Шульжевский.
слушать бесплатно песенку ... музыка music ...
...
Умамы - Потап и Настя.
...
Sex Sell - Benefit.
...
Реальная Жизнь - Брежнева.
dance music ... слушать музыку ...
...
Heart Attack - Trey Songz.
...
Нева - 5nizza.
...
F With You - Bob Sinclar, Sophie Ellis-Bextor.
techstop-ekb.ru © ТехСтоп, Екатеринбург, Россия. 2023.