Форум программистов, компьютерный форум, киберфорум
Python: IDE, инструментарий
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 04.07.2015
Сообщений: 31

Получение данных из сигнала в GNU Radio

04.06.2021, 23:37. Показов 2597. Ответов 5

Студворк — интернет-сервис помощи студентам
Здравствуйте. В рамках проекта к звуковой карте ПК подключен фототранзистор, который фиксирует мерцание светодиода, задаваемые через плату ESP32. Форма сигнала на прикрепленном изображении. Со стороны ESP используется ОnОffКeying. В качестве преамбулы 4 длинных колебания, период каждого из которых равен 3 периодам малого колебания, затем некоторое количество коротких колебаний.
Подскажите, пожалуйста, каким образом встроенными методами GNU Radio или с помощью embedded python block посчитать количество коротких колебаний? Например, чтобы при 10 коротких колебаниях после 4 длинных в консоль выводилась цифра 1, при 15 - 2, а без сигнала в консоли был постоянный 0?
Кликните здесь для просмотра всего текста
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.06.2021, 23:37
Ответы с готовыми решениями:

Вывод комплексного сигнала в wav файл (GNU Radio)
У меня есть излучаемый сигнал, сохраняемый в последствие в аудиофайл. В виде float выводится все отлично. Но мне нужен комплексный....

GNU Radio генерация сигнала
Доброго времени! Прошу совета у тех, кто сталкивался, или имеет представление. Разбираюсь с программой GNU Radio. Нужно научиться...

GNU Radio и генерация ЛЧМ сигнала
Доброго времени! Прошу совета у тех, кто сталкивался, или имеет представление. Разбираюсь с программой GNU Radio. Нужно научиться...

5
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
05.06.2021, 08:12
Цитата Сообщение от DenDen46 Посмотреть сообщение
посчитать количество коротких колебаний
Если частота следования импульсов выше частоты пропускания аудио карты, т.е. выше сотни кГц?

Добавлено через 41 секунду
Цитата Сообщение от DenDen46 Посмотреть сообщение
коротких колебаний
А это что такое?
0
0 / 0 / 0
Регистрация: 04.07.2015
Сообщений: 31
05.06.2021, 14:30  [ТС]
Цитата Сообщение от Nick07 Посмотреть сообщение
т.е. выше сотни кГц?
Частота следования импульсов задаётся на стороне esp32 и составляет на данном этапе 1000 Гц. После было бы круто увеличить эту частоту и научиться детектировать импульсы там, но для начала подойдёт и 1 кГц.
Цитата Сообщение от Nick07 Посмотреть сообщение
А это что такое?
Если взглянуть на скриншот из первого вложения, то можно увидеть 4 идущих подряд длинных импульса/колебания, период которых равен 3Т. после них идут 10 коротких колебаний, период которых равен Т.
0
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
05.06.2021, 17:44
Какое соотношение частоты стробирования и частоты колебаний?
0
0 / 0 / 0
Регистрация: 04.07.2015
Сообщений: 31
05.06.2021, 20:50  [ТС]
Цитата Сообщение от Nick07 Посмотреть сообщение
Какое соотношение частоты стробирования и частоты колебаний?
Тут вам, к сожалению, сказать не могу, ибо пока не особо в этом разбираюсь. Вообще предполагалось, что на стороне ЕСП передача будет на частоте 1000 Гц. Можно меньше, главное отработать принцип передачи сигнала и его приёма. Но тут возникла проблема с вызовом прерываний по таймеру, тк вроде задаю частоту в 30 Гц для примера, но получаю 2,67 кГц. Код, формирующий сигнал на стороне ЕСП, прикрепляю
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
//#include <ESP32Ticker.h>
 
#include <math.h>
 
hw_timer_t * timer1 = NULL;
 
const uint32_t numberOfPoints = 704;
 
unsigned char digitalSignal[numberOfPoints] = {0};
 
const float F = 30;
 
int iPoint = 0;
 
void LED1(){
  dacWrite(25, digitalSignal[iPoint]);
  iPoint = (iPoint+1) % numberOfPoints;
}
 
void setup()
{
  Serial.begin(115200);
  
  float S[numberOfPoints] = {0};
  float S1[numberOfPoints] = {0};
 
  uint32_t idx = 0, Nt = 8;
 
  for(uint32_t i = 0; i < 4; ++i){
    for(uint32_t i = 0; i < 3; ++i){
      for(uint32_t i = 0; i < 2; ++i){
        for(uint32_t i = 0; i < Nt; ++i){
          S[idx++] = sin(2 * PI / Nt * i);
        }
      }
    }
 
    for(uint32_t i = 0; i < 3; ++i){
      for(uint32_t i = 0; i < 2; ++i){
        for(uint32_t i = 0; i < Nt; ++i){
          S[idx++] = 0.0f;
        }
      }
    }
  }
 
  for(uint32_t i = 0; i < 10; ++i){
    for(uint32_t i = 0; i < 2; ++i){
      for(uint32_t i = 0; i < Nt; ++i){
        S[idx++] = sin(2 * PI / Nt * i);
      }
    }
    
    for(uint32_t i = 0; i < 2; ++i){
      for(uint32_t i = 0; i < Nt; ++i){
        S[idx++] = 0.0f;
      }
    }
  }
  
  Serial.println(idx);
  for(int i = 0; i < numberOfPoints; ++i){
    S1[i] = sin(3*2 * PI / Nt * i);
  }
  for(int i = 0; i < numberOfPoints; ++i){
    digitalSignal[i] = 205 + 50 * S[i];
  }
  
 
  timer1 = timerBegin(0, 8, true);
  timerAttachInterrupt(timer1, &LED1, true);
  timerAlarmWrite(timer1, 10000000 / numberOfPoints / F, true);
  timerAlarmEnable(timer1);
}
 
void loop()
{         
 
}
0
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
05.06.2021, 22:04
Цитата Сообщение от DenDen46 Посмотреть сообщение
к сожалению, сказать не могу
О чем можно говорить далее?

Пардон, Вы веткой не ошиблись?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.06.2021, 22:04
Помогаю со студенческими работами здесь

Получение данных из нескольких radio
Привет Появился вопрос как можно считать значения(а именно есть ли флажок и текст поля) ReactJS с RadioBox. Допустим у нас несколько...

AttributeError в GNU Radio
Доброго времени! Собрал схему в программе gnuradio. Возникало куча ошибок с синтаксисом и прочим, которые удалось решить (с питоном...

Raspberry Pi 3 и GNU RADIO
Здравствуйте, установил GNU Radio на Raspberry Pi3, все хорошо, но почему то выдает ошибку: ImportError:...

Linux mint GNU Radio error
Всем привет! Вот установил gnu radio на linux mint 18. Но при запуске: sudo gnuradio-companion выбивает ошибка

Получение данных из сигнала
Здравствуйте. В рамках проекта к звуковой карте ПК подключен фототранзистор, который фиксирует мерцание светодиода, задаваемые через плату...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru