Зовут меня Игорем, живу я в Нижнем Новгороде. Увлекаюсь радиолюбительством.
Решил завести этит блог по причине острой нехватки информации о GnuRadio на русском.
Зовут меня Игорем, живу я в Нижнем Новгороде. Увлекаюсь радиолюбительством.
Решил завести этит блог по причине острой нехватки информации о GnuRadio на русском.
Здравствуйте Игорь. Можете помоч с проблемой, которая у меня возникла при создании протокола передачи информации. У меня из железа 2 шт Ettus Research USRP N210.
Я хочу сделать самый простой протокол передачи: например PSK модуляцию.
Тут мои наработки: http://1drv.ms/1Smeho2.
И у меня не получается на железе получить какой нибудь положительный результат. Думаю возможная проблема из за погрешности генератора частоты.
http://courses.washington.edu/ee420/projects/lab1_gnuradio.pdf — тут нашел описание как с этим справляются. Но результат не изменился. Возможно я не понял чего то. Любая информация совет для меня много значит.
Спасибо!
Игорь, ты молодец!!!
Ты выполняешь прекрасную работу. Я думаю благодаря тебе многие люди узнают то, что они ищут. Продолжай производить качественные материалы по исследуемой тематике.
Игорь спасибо.
Здравствуйте Игорь, спасибо за вашу работу! Очень интересно. Подскажите пожалуйста, какая разница между Ubuntu и Windows для работы с GNURadio? Я пока изучаю GNURadio на ноутбуке и не соединяю устройство.
Вы знакомы с приёмником от фирмы Ettus модель USRP e100?
Если да то не подскажете как настроить параметры (или можете дать ссылочку с подробной информацией) какие схемы надо на GNURadio составить чтобы работал как передатчик и приёмник?
Буду признательна если сделаете примеры с Eye Diagramm
Спасибо большое!
Здравствуйте. подскажите как программировать в GnuRadio если я хочу создать свой блок а не использовать стандартные или его нет в библиотеке математических функций.
Добрый день.
В ближайшее время я опубликую статью о создании блока для GnuRadio на Питоне.
В качестве старта можно начать изучать официальное руководство по созданию блоков: http://gnuradio.org/redmine/projects/gnuradio/wiki/Guided_Tutorial_GNU_Radio_in_C++
Спасибо за работы!
Необходима организация модема (без TCP,но с CRC) на нестандартных частотах (400-1300Мгц) с пропускной способностью 1-2мб/с,связь двухсторонняя.
1)На GNUradio такое возможно поднять?
2)Какие платы стоит рассматривать,на что обратить внимание?
Добрый день, спасибо, стараюсь
1) Думаю да, возможно.
2) Выбор один — USRP, ибо только он имеет FullDuplex.
Доброе время суток.
Хотелось бы разобраться с таким вопросом.
Скачал Ubuntu со встроенным GNU radio. поставил на виртуальную машину.
И заметил — все созданные файлы эта система не сохраняет.
Если кто может помочь — заранее признателен!
Довольно странно. Какая виртуальная машина?
Вы точно установили систему, а не просто запустили с LiveDVD?
Доброе время суток.
ОС (реальная) — Виндоус 8 (х64). Виртуальная машина — VM ware Workstation 10.0.
Насчет запуска, наверно происходит запуск с LiveCD, хотя я пытался именно установить систему.
Виртуальный диск получился размером — около 4 Мб.
У меня есть еще одна система Ubuntu 16.04. Её ставил точно также, как и предыдущую. Вирт. диск получился около 4 Гб. И все прекрасно.
Похоже почему-то система действительно запустилась в LiveCD режиме. Образ диска ну никак не может быть 4 Мб.
Здравствуйте Игорь, спасибо за вашу работу! Может вы знаете про проект Openwebrx? Очень хороший проект, сервер запустился с полпинка, все работает просто замечательно. В качестве приемника самый простой китайский донгл на Generic RTL2832U.
Я его использую чтобы мониторить всего одну частоту с SSB на КВ. Но уж очень большая полоса приема, мне надо его уменьшить до 25 кГц. И хотелось бы увеличить разрешение по частоте со 100 до 10 Гц. Я писал Андрашу, создателю проекта, с подобным вопросом, он мне посоветовал изменить две строки в конфиге, но ничего не получилось, (ошибок не выдает, но звук идет маленькими кусочками с большими перерывами)
Вот так он мне посоветовал:
start_rtl_command=»rtl_sdr -s {samp_rate} -f {center_freq} -p {ppm} -g {rf_gain} — | csdr convert_u8_f | csdr fir_decimate_cc 10 0.03″.format(rf_gain=rf_gain, center_freq=center_freq, samp_rate=samp_rate, ppm=ppm)
format_conversion=»»
Я пытался менять конфиг по всякому, но ничего не добился и совсем запутался. Может поможете?
Хм, с этим проектом никогда не работал. Но штучка интересная.
По вашему вопросу. Видимо разрешение по частоте изменяется применением децимации сигнала в 10 раз. «csdr fir_decimate_cc 10″
А можете привести обычный конфиг, и то что Андраш посоветовал?
Да, конечно:
config_webrx.py
# -*- coding: utf-8 -*-
«»»
config_webrx: configuration options for OpenWebRX
This file is part of OpenWebRX,
an open-source SDR receiver software with a web UI.
Copyright (c) 2013-2015 by Andras Retzler
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
In addition, as a special exception, the copyright holders
state that config_rtl.py and config_webrx.py are not part of the
Corresponding Source defined in GNU AGPL version 3 section 1.
(It means that you do not have to redistribute config_rtl.py and
config_webrx.py if you make any changes to these two configuration files,
and use them for running your web service with OpenWebRX.)
«»»
# NOTE: you can find additional information about configuring OpenWebRX in the Wiki:
# https://github.com/simonyiszk/openwebrx/wiki
# ==== Server settings ====
web_port=8073
server_hostname=»localhost» # If this contains an incorrect value, the web UI may freeze on load (it can’t open websocket)
max_clients=20
# ==== Web GUI configuration ====
receiver_name=»[Callsign]»
receiver_location=»Budapest, Hungary»
receiver_qra=»JN97ML»
receiver_asl=200
receiver_ant=»Longwire»
receiver_device=»RTL-SDR»
receiver_admin=»example@example.com»
receiver_gps=(47.000000,19.000000)
photo_height=350
photo_title=»Panorama of Budapest from Schönherz Zoltán Dormitory»
photo_desc=»»»
You can add your own background photo and receiver information.
Receiver is operated by: %[RX_ADMIN]
Device: %[RX_DEVICE]
Antenna: %[RX_ANT]
Website: http://localhost
«»»
# ==== sdr.hu listing ====
# If you want your ham receiver to be listed publicly on sdr.hu, then take the following steps:
# 1. Register at: http://sdr.hu/register
# 2. You will get an unique key by email. Copy it and paste here:
sdrhu_key = «»
# 3. Set this setting to True to enable listing:
sdrhu_public_listing = False
# ==== DSP/RX settings ====
dsp_plugin=»csdr»
fft_fps=9
fft_size=4096
fft_voverlap_factor=0.3 #If it is above 0, multiple FFTs will be used for creating a line on the diagram.
samp_rate = 250000
center_freq = 145525000
rf_gain = 5 #in dB. For an RTL-SDR, rf_gain=0 will set the tuner to auto gain mode, else it will be in manual gain mode.
ppm = 0
audio_compression=»adpcm» #valid values: «adpcm», «none»
fft_compression=»adpcm» #valid values: «adpcm», «none»
start_rtl_thread=True
# ==== I/Q sources ====
# (Uncomment the appropriate by removing # characters at the beginning of the corresponding lines.)
# There are guides for setting may different SDR hardware including AirSpy, AFEDRI-SDR, RTL-SDR in direct sampling mode, etc. in the Wiki:
# https://github.com/simonyiszk/openwebrx/wiki
# You can use other SDR hardware as well, by giving your own command that outputs the I/Q samples… Some examples of configuration are available here (default is RTL-SDR):
# >> RTL-SDR via rtl_sdr
start_rtl_command=»rtl_sdr -s {samp_rate} -f {center_freq} -p {ppm} -g {rf_gain} -«.format(rf_gain=rf_gain, center_freq=center_freq, samp_rate=samp_rate, ppm=ppm)
format_conversion=»csdr convert_u8_f»
#start_rtl_command=»hackrf_transfer -s {samp_rate} -f {center_freq} -g {rf_gain} -l16 -a0 -q -r-«.format(rf_gain=rf_gain, center_freq=center_freq, samp_rate=samp_rate, ppm=ppm)
#format_conversion=»csdr convert_s8_f»
«»»
To use a HackRF, compile the HackRF host tools from its «stdout» branch:
git clone https://github.com/mossmann/hackrf/
cd hackrf
git fetch
git checkout origin/stdout
cd host
mkdir build
cd build
cmake .. -DINSTALL_UDEV_RULES=ON
make
sudo make install
«»»
# >> Sound card SDR (needs ALSA)
# I did not have the chance to properly test it.
#samp_rate = 96000
#start_rtl_command=»arecord -f S16_LE -r {samp_rate} -c2 -«.format(samp_rate=samp_rate)
#format_conversion=»csdr convert_s16_f | csdr gain_ff 30″
# >> /dev/urandom test signal source
#samp_rate = 2400000
#start_rtl_command=»cat /dev/urandom | (pv -qL
python -c 'print int({samp_rate} * 2.2)'
2>&1)».format(rf_gain=rf_gain, center_freq=center_freq, samp_rate=samp_rate)#format_conversion=»csdr convert_u8_f»
# >> Pre-recorded raw I/Q file as signal source
# You will have to correctly specify: samp_rate, center_freq, format_conversion in order to correctly play an I/Q file.
#start_rtl_command=»(while true; do cat my_iq_file.raw; done) | csdr flowcontrol {sr} 20 «.format(sr=samp_rate*2*1.05)
#format_conversion=»csdr convert_u8_f»
# >> gr-osmosdr signal source using GNU Radio (follow this guide: https://github.com/simonyiszk/openwebrx/wiki/Using-GrOsmoSDR-as-signal-source)
#start_rtl_command=»cat /tmp/osmocom_fifo»
#format_conversion=»»
# ==== Misc settings ====
shown_center_freq = center_freq #you can change this if you use an upconverter
client_audio_buffer_size = 5
#increasing client_audio_buffer_size will:
# — also increase the latency
# — decrease the chance of audio underruns
start_freq = center_freq
start_mod = «nfm» #nfm, am, lsb, usb, cw
iq_server_port = 4951 #TCP port for ncat to listen on. It will send I/Q data over its connections, for internal use in OpenWebRX. It is only accessible from the localhost by default.
#access_log = «~/openwebrx_access.log»
# ==== Color themes ====
#A guide is available to help you set these values: https://github.com/simonyiszk/openwebrx/wiki/Calibrating-waterfall-display-levels
### default theme by teejez:
waterfall_colors = «[0x000000ff,0x0000ffff,0x00ffffff,0x00ff00ff,0xffff00ff,0xff0000ff,0xff00ffff,0xffffffff]»
waterfall_min_level = -88 #in dB
waterfall_max_level = -20
waterfall_auto_level_margin = (5, 40)
### old theme by HA7ILM:
#waterfall_colors = «[0x000000ff,0x2e6893ff, 0x69a5d0ff, 0x214b69ff, 0x9dc4e0ff, 0xfff775ff, 0xff8a8aff, 0xb20000ff]»
#waterfall_min_level = -115 #in dB
#waterfall_max_level = 0
#waterfall_auto_level_margin = (20, 30)
##For the old colors, you might also want to set [fft_voverlap_factor] to 0.
#Note: When the auto waterfall level button is clicked, the following happens:
# [waterfall_min_level] = [current_min_power_level] — [waterfall_auto_level_margin[0]]
# [waterfall_max_level] = [current_max_power_level] + [waterfall_auto_level_margin[1]]
#
# ___|____________________________________|____________________________________|____________________________________|___> signal power
# \_waterfall_auto_level_margin[0]_/ |__ current_min_power_level | \_waterfall_auto_level_margin[1]_/
# current_max_power_level __|
# ==== Experimental settings ===
#Warning! These are very experimental.
csdr_dynamic_bufsize = False # This allows you to change the buffering mode of csdr.
csdr_print_bufsizes = False # This prints the buffer sizes used for csdr processes.
csdr_through = False # Setting this True will print out how much data is going into the DSP chains.
#Look up external IP address automatically from icanhazip.com, and use it as [server_hostname]
«»»
print «[openwebrx-config] Detecting external IP address…»
import urllib2
server_hostname=urllib2.urlopen(«http://icanhazip.com»).read()[:-1]
print «[openwebrx-config] External IP address detected:», server_hostname
«»»
Минимальный samp_rate = 250000
Ответ Андраша:
You could try this config:
samp_rate = 250000
start_rtl_command=»rtl_sdr -s {samp_rate} -f {center_freq} -p {ppm} -g {rf_gain} — | csdr convert_u8_f | csdr fir_decimate_cc 10 0.03″.format(rf_gain=rf_gain, center_freq=center_freq, samp_rate=samp_rate, ppm=ppm)
format_conversion=»»
VY 73!
Andras
Да, с измененным конфигом полоса не меняется, как и было 250 кгц.
Кажется я свой первый вопрос задал неправильно, в смысле получить разрешение в 10 гц можно, путем прямого ввода частоты в адресной строке браузера (хотя декодируется не очень точно, с разбросом в 1-4 Гц), просто я думал что с уменьшением полосы можно будет увидеть еще одну значащую цифру на шкале. Конечно здесь дело в жаваскрипте. Тут я уже даже пытаться ничего не буду. Так придется пользоваться, хотя очень неудобно.
Но уменьшить общую полосу на водопаде очень надо, согласен даже до 10 кГц.
Доброе время суток.
Уважаемые форумчане, кто может помогите!
После долго труда наконец удалось поставить и настроить должным образом GNU radio на виндоус (8-ка 64-бит). И тут новая проблема — количество блоков почти в два раза меньше чем в Убунту 12 со встроенным gnu radio. Мне надо GNU radio для работы с HackRF.
Кто знает, подскажите как загрузить недостающие блоки, именно нужных блоков нету.
Кто имеет опыт работы с HackRF в Windows (8-ка, 10-ка) прошу откликнуться.
очень надо.
1
Здравствуйте, Игорь. Может у Вас есть рабочий email куда можно задать вопрос с рисунком и т.д.
Как разместить статейку у вас на сайте по установке GNURadio?
Я уже на этом собаку съел на этом. А вопросы у народа остались
У вас я видел, но это только 20%. Я себе всегда ставил из исходов под Debian 9.4 и Ununtu 16.04