SlideShare a Scribd company logo
1 of 63
©SIProp Project, 2006-2008 1
次世代アマチュア衛星受信のスタンダード
「SDR+GNU Radio」演習
今村謙之(Noritsuna Imamura)
JI1SZP
noritsuna@siprop.org
©SIProp Project, 2006-2019 2
はじめに
基本的なものこれを読もう!
RFワールド No.44
「GRCで広がるSDRの世界」
本演習はこの本でさえ躓いてしまった人を救います!
©SIProp Project, 2006-2019 3
GNURadio演習
©SIProp Project, 2006-2019 4
コンセプト
ディジタルの知識不要
IQの知識さえ、不要!
プログラミングの知識不要
必要な部分のみ、きちんと解説します
intなどのプリミティブ型とは?
Pythonとは何か?
git, configure, makeとは何か?
Linux/Ubuntuの知識不要
必要なコマンドなどは、きちんと解説します
Linuxコマンドの基本
最終習得知識
インターネットにあるGNURadioレシピを改造して、使
いこなせるようにする!
©SIProp Project, 2006-2019 5
SDR用のディジタル送受信ソフトウェア
GNURadio
オープンソースのソフトウェア信号処理器
フロー・ダイヤグラムによる実装が可能
ディジタル処理を行うためのソフトウェア
同様の機能を持つ商用のソフトウェア信号処理器
• MATLABのSimulink
• LabVIEWのVI
動作環境
Windows and Linux
https://www.gnuradio.org/
GRC(GNURadio-companion)
フローダイヤグラムエディタ
ブロック
信号処理を行う単位
フロー
信号の伝達ライン
©SIProp Project, 2006-2019 6
ディジタルは難しい?
必要な知識
アナログ無線
無線用語の英語
アナログ回路
ディジタル回路
©SIProp Project, 2006-2019 7
SDRの基本と必要機材
©SIProp Project, 2006-2019 8
必要機材
パソコン
CPU: 第四世代以降Core 3-9i、2コア以上(4コア推奨)
最新のパソコンを推奨
USBメモリ or USB-HDD or USB-SSD
USB3.0以上推奨
32GB以上(大容量のUSB-HDD推奨)
SDR(送信までしたい場合)
Lime SDR mini
https://www.crowdsupply.com/lime-micro/limesdr-mini
Pluto SDR
https://www.analog.com/jp/design-center/evaluation-
hardware-and-software/evaluation-boards-kits/adalm-
pluto.html
©SIProp Project, 2006-2019 9
Linuxインストール方法(検討)
今あるWindowsの領域を縮小させて、そこにLinux
をインストールして、DualBootとする
一般的なLinuxのインストール方法
問題点:Linuxを消すことはできなく、デフォルトだとLinuxが起動
するモードとなる
OSに関する知識があれば、変更や削除可能
USBメモリにLinuxをインストールする
USBメモリを引き抜けば、Linuxの痕跡をすべて消せる
問題点:セットアップ時にミスをするとWindowsが起動しなくなる
修復にはOSに関する知識が必要
Live USBメモリのLinuxを利用する
USBメモリを引き抜けば、Linuxの痕跡をすべて消せる
問題点:データの保存領域が4GBしか作れない
そのため、本格的な利用は不可能
©SIProp Project, 2006-2019 10
インストール環境
OS
Ubuntu 18.04 LTS 日本語Remix
LTS版Ubuntuの現時点(2019年)での最新版
https://www.ubuntulinux.jp/japanese
インストール方法
UNetBootin
USBメモリにLive Linuxをセットアップするためのツール
https://unetbootin.github.io/
これを使って、USBメモリやUSB-HDDにLinuxをセットアップ
する
©SIProp Project, 2006-2019 11
Linuxのセットアップ
USBメモリ用ddイメージ入手先
• https://www.noritsuna.jp/download/grc_ubuntu.zip
©SIProp Project, 2006-2019 12
Linuxとは?
Linux
Unixを参考にして作られたOS(POSIX非準拠)
Linuxの種類
ディストリビューション
各種コマンドやアプリケーションをパッケージ化したもの
Linuxとは本来Kernel(OSのコア)のみを指す
Ubuntu 18.04 LTS 日本語Remix
Ubuntu
Debian系ディストリビューションで一番使われている
18.04
前半がリリース年、後半はリリース月
LTS(Long Term Support)
10年間のサポートをする長期利用可能なリリース
偶数年の4月にリリースされる
これ以外は9か月
©SIProp Project, 2006-2019 13
Linuxのセットアップ:PCの確認
ブートシステム(ファームウェア)
UEFI
Windows8(2012年)で採用されたためそれ以降のPCは個の
ブートシステムとなっている
問題点
セキュリティーが強化されているため、いろいろとオプションを
変えないとUSBメモリブートできない可能性がある
システムによって設定法が大きく違う
BIOS
UEFIの前のブートシステム
問題点
USBメモリブートに対応していない可能性がある
©SIProp Project, 2006-2019 14
UTC(協定世界時)に変更する
Ubuntuは、UTCで時刻管理をしているため、
UbuntuからWindows(JSTでの管理)に戻ってくる
と9時間(JST分)時間がずれてしまう
WindowsをUTCに変更する
ロケール管理により、表示時間は自動的にUTC+9時間(JST
分)されるため、使い勝手に影響はない
reg add
"HKEY_LOCAL_MACHINESystemCurrentControlSetC
ontrolTimeZoneInformation" /v RealTimeIsUniversal /d 1
/t REG_DWORD /f
©SIProp Project, 2006-2019 15
詳しくは・・・
これを読もう!
RFワールド No.44
「GRCで広がるSDRの世界」
©SIProp Project, 2006-2019 16
GNURadioのセットアップ
©SIProp Project, 2006-2019 17
Linuxの操作方法:GUI
Windowsとほぼ同じ
アプリの起動方法
メニューからアイコンをクリックして起動する
アプリの操作方法
Windowsが開くので、マウスとキーボードで操作する
©SIProp Project, 2006-2019 18
Linuxの操作方法:CUI
コマンドプロンプト
起動方法
「端末(Terminal)」というアプリ
操作方法
「Linuxコマンド」を入力することで操作を行う
©SIProp Project, 2006-2019 19
CUIにおける重要な概念
ディレクトリ
ルートディレクトリ
/
Windowsの「C:」に相当するもの
ホームディレクトリ
/home/[ユーザID]
Windowsの「PC」に相当するもの
ファイルなどはここに保存すること
パーミッション(permission)
ユーザ権限
LinuxはUnix系OSであるため権限がきちんと決められている
コマンド実行時にpermission系のエラーが出た場合
sudo コマンドを付けて実行すること
©SIProp Project, 2006-2019 20
Linuxコマンド(使うものだけ抜粋)
基本コマンド
コピー
cp [コピー元] [コピー先]
cp –ar * ../docs/
再帰的に全て処理
ディレクトリ変更
cd [移動先]
cd ../
一つ上に戻る
ディレクトリ作成
mkdir [ディレクトリ名]
ディレクトリ表示
ls
ls -la
詳細表示
拡張コマンド
ソフトインストール
apt install [ソフト名]
スーパーユーザ実行
sudo [コマンド]
開発コマンド
ダウンロード
git clone [git URL]
コンフィグ
./configure
ビルド
make
インストール
sudo make install
user@pc:~ $ sudo raspi-config
©SIProp Project, 2006-2019 21
GNURadioのインストール
インストールするもの
GNURadio本体
デフォルトのものはバージョンが古い
最新版を使いたい場合は、RFワールド No.44を参照
PlutoSDR用ドライバ
RTL-SDR用ドライバ
開発環境
user@pc:~ $ sudo apt update
user@pc:~ $ sudo apt upgrade
user@pc:~ $ sudo apt install gnuradio
user@pc:~ $ sudo apt install gr-iio
user@pc:~ $ sudo apt install rtl-sdr gr-osmosdr
user@pc:~ $ sudo apt install git cmake build-essential
©SIProp Project, 2006-2019 22
パスワード:grc=study
©SIProp Project, 2006-2019 23
GNURadioの基本操作をマスターする
©SIProp Project, 2006-2019 24
GNURadioの起動と画面の説明
初期画面 フローエディタ
エリア
ライブラリ
変数一覧
メッセージ
©SIProp Project, 2006-2019 25
ブロックの基本の解説
分類
ソース
入力元
シンク
出力先
処理器
変数
GUI
パラメータ
ブロックの処理の内容を決定する
変数 GUI
シンク
ソース
処理器パラメータ
©SIProp Project, 2006-2019 26
ブロックの操作 1/2
検索
1. Ctrl + Fキーを押す
2. ライブラリウィンドに検索エリアが出る
3. 利用したいブロック名を入れる
4. 候補が表示される
追加
1. 利用したいブロックをダブルクリックする
2. フローエディタエリアにブロックが出現する
選択・変更
1. マウスでクリックすると選択できる
2. ダブルクリックするとオプション変更できる
移動
1. マウスでドラッグ&ドロップで移動可能
©SIProp Project, 2006-2019 27
ブロックの操作 2/2
エラーの修正
1. 赤字部分がある場合、エラーがあるということである
2. ブロックやフローをクリックして、選択する
3. メニューの「エラー表示」アイコン(一時停止マーク)をクリックす
る
4. エラーメッセージウィンドウに表示されている内容に合わせて修
正する
©SIProp Project, 2006-2019 28
実行する
実行
1. 「Run」アイコン(▷マーク)をクリックする
2. 自動で「generate」されて、実行される
停止
1. 「Stop」アイコン(×マーク)をクリックする
2. 終了する
©SIProp Project, 2006-2019 29
保存する
保存
1. 「Save」アイコン(フロッピーディスクマーク)をクリックする
2. 保存先のディレクトリとファイル名を付けて、OKする
読み込み
1. 「Open」アイコン(フォルダマーク)をクリックする
2. 読み込みしたいファイルのディレクトリとファイル名を選択する
新規作成
1. 「New」アイコン(白紙マーク)をクリックする
©SIProp Project, 2006-2019 30
GNURadioの演習
演習用ファイル入手先
• https://www.noritsuna.jp/download/grc_study.zip
©SIProp Project, 2006-2019 31
演習1:波形の生成と出力
100Hzと150Hzのコサイン波を生成して、波形表
示を行う
目的
一番スタンダードな使い方をマスターする
内容
ブロック
接続
型の理解
生成
実行
演習用GRC
©SIProp Project, 2006-2019 32
接続の方法と種類
基本型(必要なもののみ抜粋)
Complex(複素数=IQ)型
波形のこと
プログラム型
波形を信号処理した人間が理解できる数値
Float(小数点)
Integer(整数)
32bit(約-21億~約21億)
Bit(データ)型
波形を信号処理し、摘出されたデータ
パケット
配列(型の集合)
スカラー(1個)
ベクター(2個以上)
接続
n対1
1対n
©SIProp Project, 2006-2019 33
演習1-1:波形の生成と出力
コサイン波を生成して、波形表示を行う
基本レシピを作る
1. 「Signal Source」ブロックを配置する
1. Frequencyを「100」に変更する
2. 「Qt Time Sink」ブロックを配置する
3. 接続する
©SIProp Project, 2006-2019 34
演習1-1:波形の生成と出力
コサイン波を生成して、波形表示を行う
基本レシピを作る
1. 「Signal Source」ブロックを配置する
1. Frequencyを「100」に変更する
2. 「Qt Time Sink」ブロックを配置する
3. 接続する
©SIProp Project, 2006-2019 35
IQ(変調)だけ、理解する
ディジタル通信=データ通信
それを実現しているのがIQ変調
実は、GNURadioを使う上では使わない・・・
出典:http://www.ni.com/tutorial/4805/ja/
©SIProp Project, 2006-2019 36
演習1-2:波形の生成と出力
コサイン波を生成して、波形表示を行う
波形を一つだけにする
1. 「Signal Source」ブロックの出力を変更する
1. Complex -> Float
©SIProp Project, 2006-2019 37
演習1-3:波形の生成と出力
コサイン波を生成して、波形表示を行う
違う波形も表示する
1. 「Signal Source」ブロックを追加する
1. Frequencyを「150」にする
2. 「Qt Time Sink」ブロックの「Input of Number」を「2」にする
3. 接続する
©SIProp Project, 2006-2019 38
演習2:SDRを接続し、各種表示を行う
SDRからの出力を、FFT、ウォーターフォール表
示させる
目的
SDRの使い方をマスターする
内容
周波数設定
サンプリングレート
ゲイン
各種GUIツール
©SIProp Project, 2006-2019 39
演習2-1:SDRを接続し、各種表示を行う
SDRからの出力を、FFT、ウォーターフォール表
示させる
SDR Sourceの出力を表示する
1. 「Pluto SDR Source」ブロックを追加する
1. Device URLを「ip:pluto.local」とする
2. LO Frequencyを「438.2e6」とする
1. e6=10^6(10の6乗)
3. Sampling Rateを「samp_rate」とする
4. RF Bandwidthを「samp_rate」とする
2. 「Variable」ブロックのID:「samp_rate」を変更する
1. Valueを「2084000」とする
3. 「Qt GUI Sink」ブロックを追加する
1. Center Frequencyを「438.2e6」とする
2. Bandwidthを「samp_rate」とする
4. 接続する
1. LO Frequencyを「int(438.2e6)」とする
©SIProp Project, 2006-2019 40
演習2-2:SDRを接続し、各種表示を行う
SDRからの出力を、FFT、ウォーターフォール表示さ
せる
先程のファイルをそのまま使います
SDR Sinkに入力したものを表示する
1. 「Pluto SDR Sink」ブロックを追加する
1. Device URLを「ip:pluto.local」とする
2. LO Frequencyを「int(438.2e6)」とする
1. e6=10^6(10の6乗)
3. Sampling Rateを「samp_rate」とする
4. RF Bandwidthを「samp_rate」とする
2. 「Signal Source」ブロックを追加する
3. 接続する
4. TXとRXを直結するか、ダミーローダーを接続する
!!!注意:電波が出来ます。ダミーローダの接続必須!!!
©SIProp Project, 2006-2019 41
FO-99(NEXUS)のデータ受信器(GMSKデータ受
信器)を作成する
©SIProp Project, 2006-2019 42
FO-99(NEXUS)用のGMSK受信GRC
完全版は非常に複雑
簡易版を作りながら、GMSK(データ)通信の仕方を学ぶ
©SIProp Project, 2006-2019 43
演習3:リアルタイム変更する
中心周波数を変更しながら、表示を行う
目的
周波数変更など、実際にGNURadioを使いこなすうえ
で必要な機能をマスターする
内容
スライドバー
https://www.amazon.co.jp/dp/B0032Y0OH0/
https://github.com/nanosyzygy/ShuttlePRO
変数
©SIProp Project, 2006-2019 44
演習3-1:リアルタイム変更する
中心周波数を変更しながら、表示を行う
「固定値の変数化」を行う
1. 「Variable」ブロックを追加する
1. IDを「center_freq」とする
2. Valueを「center_freq_val」とする
2. 「Qt GUI Range」ブロックを追加する
1. IDを「center_freq_val」とする
2. Default Valueを「438.2e6」とする
3. Start=437e6, Stop=439e6, Step=200をする
 最小周波数、最大周波数、ステップ周波数
3. 「Pluto SDR Source」ブロックを追加する
1. LO Frequencyを「int(center_freq)」にする
2. 他は「演習2」と同じにする
4. 「Qt GUI」ブロックを追加する
1. Center Frequencyを「438.2e6」
2. Bandwidthは「samp_rate」とする
©SIProp Project, 2006-2019 45
おまけ
ジョグダイヤルを使えるようにする
ターゲット製品
ShuttleXpress 3D
https://www.amazon.co.jp/dp/B0032Y0OH0/
インストール方法
https://github.com/nanosyzygy/ShuttlePRO
使い方
1. Ubuntuを起動する
2. USBに本製品を挿す
3. デスクトップ上の「ジョグダイヤル」アイコンをダブルクリック
する
4. GNURadioの「Range」にフォーカスを合わせる
5. ジョグを回す
©SIProp Project, 2006-2019 46
実は・・・
ここまでは、GNURadioに無線機として、最低限あ
るべき機能を付加した
基本的な機能
電波の送受信
各種情報の表示
中心周波数変更
これ以降は、無線機としての完成度向上やSDR
ならではの機能を付加していく
無線機の性能を上げる
LPFやAGCなど
無線機の機能を増やす
IQデータを保存する
GMSKなどの変調方式
データ処理(TNC)
©SIProp Project, 2006-2019 47
演習4:波形を保存して、再生する
SDR受信波をファイルに保存して、その保存した
サイン波を「まったく同じに」読み込む
目的
GNURadioにおけるタイミング処理の概念を理解する
FPGAなどにおけるクロック処理の概念となる
1クロック≒一定時間を理解する
内容
保存
読み込み
処理時間の概念の把握
既存の無線機の違い
保存して、何度でも再生し、実験できる
©SIProp Project, 2006-2019 48
演習4-1:波形を保存して、再生する
SDR受信波をファイルに保存して、その保存した
サイン波を「まったく同じに」読み込む
「演習3」のファイルをそのまま使います
IQデータをファイルに保存する
1. 「File Sink」ブロックを追加する
1. Fileに「iq_data.wav」を入力する
2. 「Pluto SDR Source」ブロックと接続する
©SIProp Project, 2006-2019 49
演習4-2:波形を保存して、再生する
SDR受信波をファイルに保存して、その保存した
サイン波を「まったく同じに」読み込む
新規作成をします
ファイルに保存したIQデータを再生する
1. 「File Source」ブロックを追加する
1. Fileに「iq_data.wav」を入力する
2. Repeatを「No」にする
2. 「Qt GUI Sink」ブロックを追加する
1. Center Frequencyを「438.2e6」とする
1. 保存時の中心周波数と同じ値にする
3. 接続する
©SIProp Project, 2006-2019 50
演習4-3:波形を保存して、再生する
SDR受信波をファイルに保存して、その保存した
サイン波を「まったく同じに」読み込む
先程のファイルをそのまま使います
処理時間を実時間に同期させる
1. 「Throttle」ブロックを追加する
1. Sampling Rateに「2084000」を入力する
1. 保存時のSampling Rateと同じ値にする
2. 「File Source」ブロックの間に挿入する
3. 「Qt GUI Sink」ブロックを変更する
1. Bandwidthに「2084000」を入力する
1. 任意の値でよいが、初期値が32000と低すぎるため、
変更したほうが見栄えが良い。
©SIProp Project, 2006-2019 51
演習5:LPFをマスターする
LPFをいれて、波形を表示する
目的
アナログの処理器が付いていることを理解する
アナログ処理器ではあるが、内部的にはディジタル処理して
いる
Tapで処理内容を変えられる
内容
LPFの設定内容の解説
既存の無線機の違い
各種フィルターを固定値ではなく、自分で設計できる
©SIProp Project, 2006-2019 52
演習5-1:LPFをマスターする
LPFをいれて、波形を表示する
「演習3」のファイルをそのまま使います
GNURadioにおけるLPFを理解する
1. 「Low Pass Filter」ブロックを追加する
1. Cutoff Freqに「640000」を入力する
2. Transition Widthに「120000」を入力する
2. 「Pluto SDR Source」ブロックの間に挿入する
出典:RFワールドNo.44
©SIProp Project, 2006-2019 53
演習5:LPFをマスターする
よくあるLPFにみえるけど・・・
アナログLPFとディジタルLPFの違い
実数と複素数の違い!!!
ここだけ、抑えればアナログもディジタルも同じ!!!
出典:RFワールドNo.44
©SIProp Project, 2006-2019 54
演習6:GMSK Demodをマスターする
GMSKを実際に受信して、データ化する
ただし、ファイルから読み込む形式
目的
コンスタレーション表示やアイパターン表示のさせ方
を理解する
内容
GMSKの可視化
既存の無線機の違い
アイパターンやコンスタレーションも表示可能
ウォーターフォールだけじゃない!
©SIProp Project, 2006-2019 55
演習6-1:GMSK Demodをマスターする
GMSK9600を実際に受信して、データ化する
先程のファイルをそのまま使います
GMSK復調し、タイム表示やコンスタレーション表示する
1. 「GMSK Demod」ブロックを追加する
1. 「Low Pass Filter」ブロックの後に接続する
2. 「Low Pass Filter」ブロックを変更する
1. Decimationに「samp_rate/9600/2」を入力する
2. Cutoff Freqに「9600/2」を入力する
3. Transition Widthに「600」を入力する
3. 「Qt GUI Sink」ブロックを変更する
1. Bandwidthに「9600*2」を入力する
4. 「File Sink」ブロックを追加する
1. Fileに「GMSK_demod.dat」を入力する
2. Input Typeを「Byte」に変更する
5. 保存したデータの表示コマンド
1. hexdump –C GMSK_demod.dat
©SIProp Project, 2006-2019 56
AFSK1200送受信器を作成する
©SIProp Project, 2006-2019 57
演習7:APRSパケット受信器を作成する
APRSパケットを受信してみる
目的
Audio入出力を利用して、既存のアマチュア無線機と
連携させる
内容
サンプリングレート
≒インピーダンスマッチング
ハードウェア連携
既存の無線機の違い
bit(データ)操作により、TNCを作成できる
©SIProp Project, 2006-2019 58
演習7-1:APRSパケット受信器を作成する
APRSパケットを受信してみる
「study_7_start.grc」ファイルを読み込む
1. 「Audio Sink」ブロックを追加する
2. 「Multiply Const」ブロックを追加する
1. IO Typeを「Float」に変更する
2. Constantを「0.1」に変更する
1. これがボリュームとなる
3. 「Audio Sink」と「AX.25 FSK Mod」の間に接続する
3. 「Audio Source」ブロックを追加する
1. 「FSK Demodulator」と接続する
2. 「Qt GUI Time Sink」と接続する
AFを利用し、既存無線機と連携する
「Audio Sink」がスピーカー出力
「Audio Source」がマイク入力である
実際に動かすには下記のライブラリが必要です
https://github.com/tkuester/gr-bruninga と https://github.com/dl1ksv/gr-ax25
©SIProp Project, 2006-2019 59
GR-satellitesをビルドして、GNURadioに登録する
©SIProp Project, 2006-2019 60
演習8: GR-satellitesをビルドする
GR-satellitesをビルドして、GNURadioに登録する
目的
ネットに一杯存在しているGNURadioのレシピを自力で
使えるようにする
ネットに存在しているものは、「ソースコード」の状態で存在し
てるため、コンパイル(ビルド)する必要がある
GR-satellites
https://github.com/daniestevez/gr-satellites
内容
ライブラリの追加の方法
既存の無線機の違い
他人が作った機能を追加できる
©SIProp Project, 2006-2019 61
コンパイル(ビルド)とは?
ソースコード(プログラム)を実行できる形に変換
すること
その作業に必要なコマンド(ツール)
git clone [プログラムのURL]
ソースコードをダウンロードするためのコマンド
./configure
コンパイルに必要な設定を自動で行うコマンド
cmake ../
上記のconfigureと同じ。プログラムにより、こちらを使う場合も
ある
make
コンパイル(ビルド)を実際に行うコマンド
sudo make install
プログラムをインストールするコマンド
©SIProp Project, 2006-2019 62
演習8-1: GR-satellitesをビルドする
ソースコードをダウンロードして、ビルドし、インス
トールする
赤字部分がレシピ(アプリ)特有部分であとは同じである
user@pc:~ $ git clone https://github.com/daniestevez/libfec
user@pc:~ $ cd libfec
user@pc:~ $ ./configure
user@pc:~ $ make
user@pc:~ $ sudo make install
user@pc:~ $ cd ../
user@pc:~ $ git clone https://github.com/daniestevez/gr-satellites
user@pc:~ $ cd gr-satellites
user@pc:~ $ mkdir build
user@pc:~ $ cd build
user@pc:~ $ cmake ../
user@pc:~ $ make
user@pc:~ $ sudo make install
user@pc:~ $ cd ../../
©SIProp Project, 2006-2019 63
今なら読みこなせる!
忘れてしまったら、こちらも読み返してください
RFワールド No.44
「GRCで広がるSDRの世界」

More Related Content

What's hot

Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像
Sho Shimizu
 

What's hot (20)

テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
Rust で RTOS を考える
Rust で RTOS を考えるRust で RTOS を考える
Rust で RTOS を考える
 
BRDFモデルの変遷
BRDFモデルの変遷BRDFモデルの変遷
BRDFモデルの変遷
 
Pythonでの開発を効率的に進めるためのツール設定
Pythonでの開発を効率的に進めるためのツール設定Pythonでの開発を効率的に進めるためのツール設定
Pythonでの開発を効率的に進めるためのツール設定
 
ゼロから始める転移学習
ゼロから始める転移学習ゼロから始める転移学習
ゼロから始める転移学習
 
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 BridgeVyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 Bridge
 
国際会議 interspeech 2020 報告
国際会議 interspeech 2020 報告国際会議 interspeech 2020 報告
国際会議 interspeech 2020 報告
 
Recurrent Neural Networks
Recurrent Neural NetworksRecurrent Neural Networks
Recurrent Neural Networks
 
ウェーブレット変換の基礎と応用事例:連続ウェーブレット変換を中心に
ウェーブレット変換の基礎と応用事例:連続ウェーブレット変換を中心にウェーブレット変換の基礎と応用事例:連続ウェーブレット変換を中心に
ウェーブレット変換の基礎と応用事例:連続ウェーブレット変換を中心に
 
BRDF レンダリングの方程式
BRDF レンダリングの方程式BRDF レンダリングの方程式
BRDF レンダリングの方程式
 
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
 
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
 
【DL輪読会】Scale Efficiently: Insights from Pre-training and Fine-tuning Transfor...
【DL輪読会】Scale Efficiently: Insights from Pre-training and Fine-tuning Transfor...【DL輪読会】Scale Efficiently: Insights from Pre-training and Fine-tuning Transfor...
【DL輪読会】Scale Efficiently: Insights from Pre-training and Fine-tuning Transfor...
 
いまどきの組込みOSの​ ZephyrRTOSと​ OpenThreadを​ Arduino環境で遊んでみる
いまどきの組込みOSの​ ZephyrRTOSと​ OpenThreadを​ Arduino環境で遊んでみるいまどきの組込みOSの​ ZephyrRTOSと​ OpenThreadを​ Arduino環境で遊んでみる
いまどきの組込みOSの​ ZephyrRTOSと​ OpenThreadを​ Arduino環境で遊んでみる
 
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
 
Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像
 
[DL輪読会]画像を使ったSim2Realの現況
[DL輪読会]画像を使ったSim2Realの現況[DL輪読会]画像を使ったSim2Realの現況
[DL輪読会]画像を使ったSim2Realの現況
 
無料で仮想Junos環境を手元に作ろう
無料で仮想Junos環境を手元に作ろう無料で仮想Junos環境を手元に作ろう
無料で仮想Junos環境を手元に作ろう
 
テストコード入門
テストコード入門テストコード入門
テストコード入門
 
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
 

Similar to GNU Radio Study for Super beginner

Cq tse-fm3セミナー資料
Cq tse-fm3セミナー資料Cq tse-fm3セミナー資料
Cq tse-fm3セミナー資料
Masaki Muranaka
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
Kaoru NAKAMURA
 
2011年10月21日
2011年10月21日2011年10月21日
2011年10月21日
nukaemon
 
たまにはライセンスの話をしよう 20110211
たまにはライセンスの話をしよう 20110211たまにはライセンスの話をしよう 20110211
たまにはライセンスの話をしよう 20110211
Yutaka Kachi
 
Open design computer project(boost)
Open design computer project(boost)Open design computer project(boost)
Open design computer project(boost)
Ito Takahiro
 

Similar to GNU Radio Study for Super beginner (20)

Lpicl1セミナー資料20140315
Lpicl1セミナー資料20140315Lpicl1セミナー資料20140315
Lpicl1セミナー資料20140315
 
Cq tse-fm3セミナー資料
Cq tse-fm3セミナー資料Cq tse-fm3セミナー資料
Cq tse-fm3セミナー資料
 
高速にコンテナを起動できるイメージフォーマット
高速にコンテナを起動できるイメージフォーマット高速にコンテナを起動できるイメージフォーマット
高速にコンテナを起動できるイメージフォーマット
 
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
 
「ADX2 LE」Unity プラグイン クイック導入ガイド
「ADX2 LE」Unity プラグイン クイック導入ガイド「ADX2 LE」Unity プラグイン クイック導入ガイド
「ADX2 LE」Unity プラグイン クイック導入ガイド
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
 
Odl intro20141029
Odl intro20141029Odl intro20141029
Odl intro20141029
 
組込みAndroid入門実習
組込みAndroid入門実習組込みAndroid入門実習
組込みAndroid入門実習
 
KOGEI & KAIT Funnel WS
KOGEI & KAIT Funnel WSKOGEI & KAIT Funnel WS
KOGEI & KAIT Funnel WS
 
3Dリッチコンテンツビジネス活用のご提案ver3.1
3Dリッチコンテンツビジネス活用のご提案ver3.13Dリッチコンテンツビジネス活用のご提案ver3.1
3Dリッチコンテンツビジネス活用のご提案ver3.1
 
高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)
高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)
高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
Nishimotz osc2011oct-v2
Nishimotz osc2011oct-v2Nishimotz osc2011oct-v2
Nishimotz osc2011oct-v2
 
2011年10月21日
2011年10月21日2011年10月21日
2011年10月21日
 
Sigpx 2.5
Sigpx 2.5Sigpx 2.5
Sigpx 2.5
 
Cocos2d-xハンズオンセミナー
Cocos2d-xハンズオンセミナーCocos2d-xハンズオンセミナー
Cocos2d-xハンズオンセミナー
 
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜
 
たまにはライセンスの話をしよう 20110211
たまにはライセンスの話をしよう 20110211たまにはライセンスの話をしよう 20110211
たまにはライセンスの話をしよう 20110211
 
Open design computer project(boost)
Open design computer project(boost)Open design computer project(boost)
Open design computer project(boost)
 
Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下
 

More from Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)

More from Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院) (20)

What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?
 
半導体製造(TinyTapeout)に挑戦しよう!
半導体製造(TinyTapeout)に挑戦しよう!半導体製造(TinyTapeout)に挑戦しよう!
半導体製造(TinyTapeout)に挑戦しよう!
 
Introduction of ISHI-KAI with OpenMPW
Introduction of ISHI-KAI with OpenMPWIntroduction of ISHI-KAI with OpenMPW
Introduction of ISHI-KAI with OpenMPW
 
Kernel/VMレイヤーを自分色に染める!By ISHI会
Kernel/VMレイヤーを自分色に染める!By ISHI会Kernel/VMレイヤーを自分色に染める!By ISHI会
Kernel/VMレイヤーを自分色に染める!By ISHI会
 
Principle Representation of The 8 Qubits Quantum Computer by RaspberryPi
Principle Representation of The 8 Qubits Quantum Computer by RaspberryPiPrinciple Representation of The 8 Qubits Quantum Computer by RaspberryPi
Principle Representation of The 8 Qubits Quantum Computer by RaspberryPi
 
Microwaveguquantum
MicrowaveguquantumMicrowaveguquantum
Microwaveguquantum
 
The easiest way of setup QuTiP on Windows
The easiest way of setup QuTiP on WindowsThe easiest way of setup QuTiP on Windows
The easiest way of setup QuTiP on Windows
 
The Self-Contained SDR Satellite Grand Station with Raspberry Pi 3
The Self-Contained SDR Satellite Grand Station with Raspberry Pi 3The Self-Contained SDR Satellite Grand Station with Raspberry Pi 3
The Self-Contained SDR Satellite Grand Station with Raspberry Pi 3
 
Self‐Contained SDR Grand Station with Raspberry Pi 3
Self‐Contained SDR Grand Station with Raspberry Pi 3Self‐Contained SDR Grand Station with Raspberry Pi 3
Self‐Contained SDR Grand Station with Raspberry Pi 3
 
衛星追尾用パラボラアンテナ建設記
衛星追尾用パラボラアンテナ建設記衛星追尾用パラボラアンテナ建設記
衛星追尾用パラボラアンテナ建設記
 
All list of the measuring machines for microwave
All list of the measuring machines for microwaveAll list of the measuring machines for microwave
All list of the measuring machines for microwave
 
How to setup mastodon in chinese
How to setup mastodon in chineseHow to setup mastodon in chinese
How to setup mastodon in chinese
 
Radiation Test -Raspberry PI Zero-
Radiation Test -Raspberry PI Zero-Radiation Test -Raspberry PI Zero-
Radiation Test -Raspberry PI Zero-
 
將DNA在廚房抽出的程序
將DNA在廚房抽出的程序將DNA在廚房抽出的程序
將DNA在廚房抽出的程序
 
Protocol of the DNA Extraction in Kitchen
Protocol of the DNA Extraction in KitchenProtocol of the DNA Extraction in Kitchen
Protocol of the DNA Extraction in Kitchen
 
How to Build & Use OpenCL on Android Studio
How to Build & Use OpenCL on Android StudioHow to Build & Use OpenCL on Android Studio
How to Build & Use OpenCL on Android Studio
 
OpenCV acceleration battle:OpenCL on Firefly-RK3288(MALI-T764) vs. FPGA on Ze...
OpenCV acceleration battle:OpenCL on Firefly-RK3288(MALI-T764) vs. FPGA on Ze...OpenCV acceleration battle:OpenCL on Firefly-RK3288(MALI-T764) vs. FPGA on Ze...
OpenCV acceleration battle:OpenCL on Firefly-RK3288(MALI-T764) vs. FPGA on Ze...
 
Zedroid - Android (5.0 and later) on Zedboard
Zedroid - Android (5.0 and later) on ZedboardZedroid - Android (5.0 and later) on Zedboard
Zedroid - Android (5.0 and later) on Zedboard
 
How to Build & Use OpenCL on OpenCV & Android NDK
How to Build & Use OpenCL on OpenCV & Android NDKHow to Build & Use OpenCL on OpenCV & Android NDK
How to Build & Use OpenCL on OpenCV & Android NDK
 
3D Printed Google Cardboard for workshop
3D Printed Google Cardboard for workshop3D Printed Google Cardboard for workshop
3D Printed Google Cardboard for workshop
 

Recently uploaded

Recently uploaded (10)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

GNU Radio Study for Super beginner

  • 1. ©SIProp Project, 2006-2008 1 次世代アマチュア衛星受信のスタンダード 「SDR+GNU Radio」演習 今村謙之(Noritsuna Imamura) JI1SZP noritsuna@siprop.org
  • 2. ©SIProp Project, 2006-2019 2 はじめに 基本的なものこれを読もう! RFワールド No.44 「GRCで広がるSDRの世界」 本演習はこの本でさえ躓いてしまった人を救います!
  • 3. ©SIProp Project, 2006-2019 3 GNURadio演習
  • 4. ©SIProp Project, 2006-2019 4 コンセプト ディジタルの知識不要 IQの知識さえ、不要! プログラミングの知識不要 必要な部分のみ、きちんと解説します intなどのプリミティブ型とは? Pythonとは何か? git, configure, makeとは何か? Linux/Ubuntuの知識不要 必要なコマンドなどは、きちんと解説します Linuxコマンドの基本 最終習得知識 インターネットにあるGNURadioレシピを改造して、使 いこなせるようにする!
  • 5. ©SIProp Project, 2006-2019 5 SDR用のディジタル送受信ソフトウェア GNURadio オープンソースのソフトウェア信号処理器 フロー・ダイヤグラムによる実装が可能 ディジタル処理を行うためのソフトウェア 同様の機能を持つ商用のソフトウェア信号処理器 • MATLABのSimulink • LabVIEWのVI 動作環境 Windows and Linux https://www.gnuradio.org/ GRC(GNURadio-companion) フローダイヤグラムエディタ ブロック 信号処理を行う単位 フロー 信号の伝達ライン
  • 6. ©SIProp Project, 2006-2019 6 ディジタルは難しい? 必要な知識 アナログ無線 無線用語の英語 アナログ回路 ディジタル回路
  • 7. ©SIProp Project, 2006-2019 7 SDRの基本と必要機材
  • 8. ©SIProp Project, 2006-2019 8 必要機材 パソコン CPU: 第四世代以降Core 3-9i、2コア以上(4コア推奨) 最新のパソコンを推奨 USBメモリ or USB-HDD or USB-SSD USB3.0以上推奨 32GB以上(大容量のUSB-HDD推奨) SDR(送信までしたい場合) Lime SDR mini https://www.crowdsupply.com/lime-micro/limesdr-mini Pluto SDR https://www.analog.com/jp/design-center/evaluation- hardware-and-software/evaluation-boards-kits/adalm- pluto.html
  • 9. ©SIProp Project, 2006-2019 9 Linuxインストール方法(検討) 今あるWindowsの領域を縮小させて、そこにLinux をインストールして、DualBootとする 一般的なLinuxのインストール方法 問題点:Linuxを消すことはできなく、デフォルトだとLinuxが起動 するモードとなる OSに関する知識があれば、変更や削除可能 USBメモリにLinuxをインストールする USBメモリを引き抜けば、Linuxの痕跡をすべて消せる 問題点:セットアップ時にミスをするとWindowsが起動しなくなる 修復にはOSに関する知識が必要 Live USBメモリのLinuxを利用する USBメモリを引き抜けば、Linuxの痕跡をすべて消せる 問題点:データの保存領域が4GBしか作れない そのため、本格的な利用は不可能
  • 10. ©SIProp Project, 2006-2019 10 インストール環境 OS Ubuntu 18.04 LTS 日本語Remix LTS版Ubuntuの現時点(2019年)での最新版 https://www.ubuntulinux.jp/japanese インストール方法 UNetBootin USBメモリにLive Linuxをセットアップするためのツール https://unetbootin.github.io/ これを使って、USBメモリやUSB-HDDにLinuxをセットアップ する
  • 11. ©SIProp Project, 2006-2019 11 Linuxのセットアップ USBメモリ用ddイメージ入手先 • https://www.noritsuna.jp/download/grc_ubuntu.zip
  • 12. ©SIProp Project, 2006-2019 12 Linuxとは? Linux Unixを参考にして作られたOS(POSIX非準拠) Linuxの種類 ディストリビューション 各種コマンドやアプリケーションをパッケージ化したもの Linuxとは本来Kernel(OSのコア)のみを指す Ubuntu 18.04 LTS 日本語Remix Ubuntu Debian系ディストリビューションで一番使われている 18.04 前半がリリース年、後半はリリース月 LTS(Long Term Support) 10年間のサポートをする長期利用可能なリリース 偶数年の4月にリリースされる これ以外は9か月
  • 13. ©SIProp Project, 2006-2019 13 Linuxのセットアップ:PCの確認 ブートシステム(ファームウェア) UEFI Windows8(2012年)で採用されたためそれ以降のPCは個の ブートシステムとなっている 問題点 セキュリティーが強化されているため、いろいろとオプションを 変えないとUSBメモリブートできない可能性がある システムによって設定法が大きく違う BIOS UEFIの前のブートシステム 問題点 USBメモリブートに対応していない可能性がある
  • 14. ©SIProp Project, 2006-2019 14 UTC(協定世界時)に変更する Ubuntuは、UTCで時刻管理をしているため、 UbuntuからWindows(JSTでの管理)に戻ってくる と9時間(JST分)時間がずれてしまう WindowsをUTCに変更する ロケール管理により、表示時間は自動的にUTC+9時間(JST 分)されるため、使い勝手に影響はない reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetC ontrolTimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f
  • 15. ©SIProp Project, 2006-2019 15 詳しくは・・・ これを読もう! RFワールド No.44 「GRCで広がるSDRの世界」
  • 16. ©SIProp Project, 2006-2019 16 GNURadioのセットアップ
  • 17. ©SIProp Project, 2006-2019 17 Linuxの操作方法:GUI Windowsとほぼ同じ アプリの起動方法 メニューからアイコンをクリックして起動する アプリの操作方法 Windowsが開くので、マウスとキーボードで操作する
  • 18. ©SIProp Project, 2006-2019 18 Linuxの操作方法:CUI コマンドプロンプト 起動方法 「端末(Terminal)」というアプリ 操作方法 「Linuxコマンド」を入力することで操作を行う
  • 19. ©SIProp Project, 2006-2019 19 CUIにおける重要な概念 ディレクトリ ルートディレクトリ / Windowsの「C:」に相当するもの ホームディレクトリ /home/[ユーザID] Windowsの「PC」に相当するもの ファイルなどはここに保存すること パーミッション(permission) ユーザ権限 LinuxはUnix系OSであるため権限がきちんと決められている コマンド実行時にpermission系のエラーが出た場合 sudo コマンドを付けて実行すること
  • 20. ©SIProp Project, 2006-2019 20 Linuxコマンド(使うものだけ抜粋) 基本コマンド コピー cp [コピー元] [コピー先] cp –ar * ../docs/ 再帰的に全て処理 ディレクトリ変更 cd [移動先] cd ../ 一つ上に戻る ディレクトリ作成 mkdir [ディレクトリ名] ディレクトリ表示 ls ls -la 詳細表示 拡張コマンド ソフトインストール apt install [ソフト名] スーパーユーザ実行 sudo [コマンド] 開発コマンド ダウンロード git clone [git URL] コンフィグ ./configure ビルド make インストール sudo make install user@pc:~ $ sudo raspi-config
  • 21. ©SIProp Project, 2006-2019 21 GNURadioのインストール インストールするもの GNURadio本体 デフォルトのものはバージョンが古い 最新版を使いたい場合は、RFワールド No.44を参照 PlutoSDR用ドライバ RTL-SDR用ドライバ 開発環境 user@pc:~ $ sudo apt update user@pc:~ $ sudo apt upgrade user@pc:~ $ sudo apt install gnuradio user@pc:~ $ sudo apt install gr-iio user@pc:~ $ sudo apt install rtl-sdr gr-osmosdr user@pc:~ $ sudo apt install git cmake build-essential
  • 22. ©SIProp Project, 2006-2019 22 パスワード:grc=study
  • 23. ©SIProp Project, 2006-2019 23 GNURadioの基本操作をマスターする
  • 24. ©SIProp Project, 2006-2019 24 GNURadioの起動と画面の説明 初期画面 フローエディタ エリア ライブラリ 変数一覧 メッセージ
  • 25. ©SIProp Project, 2006-2019 25 ブロックの基本の解説 分類 ソース 入力元 シンク 出力先 処理器 変数 GUI パラメータ ブロックの処理の内容を決定する 変数 GUI シンク ソース 処理器パラメータ
  • 26. ©SIProp Project, 2006-2019 26 ブロックの操作 1/2 検索 1. Ctrl + Fキーを押す 2. ライブラリウィンドに検索エリアが出る 3. 利用したいブロック名を入れる 4. 候補が表示される 追加 1. 利用したいブロックをダブルクリックする 2. フローエディタエリアにブロックが出現する 選択・変更 1. マウスでクリックすると選択できる 2. ダブルクリックするとオプション変更できる 移動 1. マウスでドラッグ&ドロップで移動可能
  • 27. ©SIProp Project, 2006-2019 27 ブロックの操作 2/2 エラーの修正 1. 赤字部分がある場合、エラーがあるということである 2. ブロックやフローをクリックして、選択する 3. メニューの「エラー表示」アイコン(一時停止マーク)をクリックす る 4. エラーメッセージウィンドウに表示されている内容に合わせて修 正する
  • 28. ©SIProp Project, 2006-2019 28 実行する 実行 1. 「Run」アイコン(▷マーク)をクリックする 2. 自動で「generate」されて、実行される 停止 1. 「Stop」アイコン(×マーク)をクリックする 2. 終了する
  • 29. ©SIProp Project, 2006-2019 29 保存する 保存 1. 「Save」アイコン(フロッピーディスクマーク)をクリックする 2. 保存先のディレクトリとファイル名を付けて、OKする 読み込み 1. 「Open」アイコン(フォルダマーク)をクリックする 2. 読み込みしたいファイルのディレクトリとファイル名を選択する 新規作成 1. 「New」アイコン(白紙マーク)をクリックする
  • 30. ©SIProp Project, 2006-2019 30 GNURadioの演習 演習用ファイル入手先 • https://www.noritsuna.jp/download/grc_study.zip
  • 31. ©SIProp Project, 2006-2019 31 演習1:波形の生成と出力 100Hzと150Hzのコサイン波を生成して、波形表 示を行う 目的 一番スタンダードな使い方をマスターする 内容 ブロック 接続 型の理解 生成 実行 演習用GRC
  • 32. ©SIProp Project, 2006-2019 32 接続の方法と種類 基本型(必要なもののみ抜粋) Complex(複素数=IQ)型 波形のこと プログラム型 波形を信号処理した人間が理解できる数値 Float(小数点) Integer(整数) 32bit(約-21億~約21億) Bit(データ)型 波形を信号処理し、摘出されたデータ パケット 配列(型の集合) スカラー(1個) ベクター(2個以上) 接続 n対1 1対n
  • 33. ©SIProp Project, 2006-2019 33 演習1-1:波形の生成と出力 コサイン波を生成して、波形表示を行う 基本レシピを作る 1. 「Signal Source」ブロックを配置する 1. Frequencyを「100」に変更する 2. 「Qt Time Sink」ブロックを配置する 3. 接続する
  • 34. ©SIProp Project, 2006-2019 34 演習1-1:波形の生成と出力 コサイン波を生成して、波形表示を行う 基本レシピを作る 1. 「Signal Source」ブロックを配置する 1. Frequencyを「100」に変更する 2. 「Qt Time Sink」ブロックを配置する 3. 接続する
  • 35. ©SIProp Project, 2006-2019 35 IQ(変調)だけ、理解する ディジタル通信=データ通信 それを実現しているのがIQ変調 実は、GNURadioを使う上では使わない・・・ 出典:http://www.ni.com/tutorial/4805/ja/
  • 36. ©SIProp Project, 2006-2019 36 演習1-2:波形の生成と出力 コサイン波を生成して、波形表示を行う 波形を一つだけにする 1. 「Signal Source」ブロックの出力を変更する 1. Complex -> Float
  • 37. ©SIProp Project, 2006-2019 37 演習1-3:波形の生成と出力 コサイン波を生成して、波形表示を行う 違う波形も表示する 1. 「Signal Source」ブロックを追加する 1. Frequencyを「150」にする 2. 「Qt Time Sink」ブロックの「Input of Number」を「2」にする 3. 接続する
  • 38. ©SIProp Project, 2006-2019 38 演習2:SDRを接続し、各種表示を行う SDRからの出力を、FFT、ウォーターフォール表 示させる 目的 SDRの使い方をマスターする 内容 周波数設定 サンプリングレート ゲイン 各種GUIツール
  • 39. ©SIProp Project, 2006-2019 39 演習2-1:SDRを接続し、各種表示を行う SDRからの出力を、FFT、ウォーターフォール表 示させる SDR Sourceの出力を表示する 1. 「Pluto SDR Source」ブロックを追加する 1. Device URLを「ip:pluto.local」とする 2. LO Frequencyを「438.2e6」とする 1. e6=10^6(10の6乗) 3. Sampling Rateを「samp_rate」とする 4. RF Bandwidthを「samp_rate」とする 2. 「Variable」ブロックのID:「samp_rate」を変更する 1. Valueを「2084000」とする 3. 「Qt GUI Sink」ブロックを追加する 1. Center Frequencyを「438.2e6」とする 2. Bandwidthを「samp_rate」とする 4. 接続する 1. LO Frequencyを「int(438.2e6)」とする
  • 40. ©SIProp Project, 2006-2019 40 演習2-2:SDRを接続し、各種表示を行う SDRからの出力を、FFT、ウォーターフォール表示さ せる 先程のファイルをそのまま使います SDR Sinkに入力したものを表示する 1. 「Pluto SDR Sink」ブロックを追加する 1. Device URLを「ip:pluto.local」とする 2. LO Frequencyを「int(438.2e6)」とする 1. e6=10^6(10の6乗) 3. Sampling Rateを「samp_rate」とする 4. RF Bandwidthを「samp_rate」とする 2. 「Signal Source」ブロックを追加する 3. 接続する 4. TXとRXを直結するか、ダミーローダーを接続する !!!注意:電波が出来ます。ダミーローダの接続必須!!!
  • 41. ©SIProp Project, 2006-2019 41 FO-99(NEXUS)のデータ受信器(GMSKデータ受 信器)を作成する
  • 42. ©SIProp Project, 2006-2019 42 FO-99(NEXUS)用のGMSK受信GRC 完全版は非常に複雑 簡易版を作りながら、GMSK(データ)通信の仕方を学ぶ
  • 43. ©SIProp Project, 2006-2019 43 演習3:リアルタイム変更する 中心周波数を変更しながら、表示を行う 目的 周波数変更など、実際にGNURadioを使いこなすうえ で必要な機能をマスターする 内容 スライドバー https://www.amazon.co.jp/dp/B0032Y0OH0/ https://github.com/nanosyzygy/ShuttlePRO 変数
  • 44. ©SIProp Project, 2006-2019 44 演習3-1:リアルタイム変更する 中心周波数を変更しながら、表示を行う 「固定値の変数化」を行う 1. 「Variable」ブロックを追加する 1. IDを「center_freq」とする 2. Valueを「center_freq_val」とする 2. 「Qt GUI Range」ブロックを追加する 1. IDを「center_freq_val」とする 2. Default Valueを「438.2e6」とする 3. Start=437e6, Stop=439e6, Step=200をする  最小周波数、最大周波数、ステップ周波数 3. 「Pluto SDR Source」ブロックを追加する 1. LO Frequencyを「int(center_freq)」にする 2. 他は「演習2」と同じにする 4. 「Qt GUI」ブロックを追加する 1. Center Frequencyを「438.2e6」 2. Bandwidthは「samp_rate」とする
  • 45. ©SIProp Project, 2006-2019 45 おまけ ジョグダイヤルを使えるようにする ターゲット製品 ShuttleXpress 3D https://www.amazon.co.jp/dp/B0032Y0OH0/ インストール方法 https://github.com/nanosyzygy/ShuttlePRO 使い方 1. Ubuntuを起動する 2. USBに本製品を挿す 3. デスクトップ上の「ジョグダイヤル」アイコンをダブルクリック する 4. GNURadioの「Range」にフォーカスを合わせる 5. ジョグを回す
  • 46. ©SIProp Project, 2006-2019 46 実は・・・ ここまでは、GNURadioに無線機として、最低限あ るべき機能を付加した 基本的な機能 電波の送受信 各種情報の表示 中心周波数変更 これ以降は、無線機としての完成度向上やSDR ならではの機能を付加していく 無線機の性能を上げる LPFやAGCなど 無線機の機能を増やす IQデータを保存する GMSKなどの変調方式 データ処理(TNC)
  • 47. ©SIProp Project, 2006-2019 47 演習4:波形を保存して、再生する SDR受信波をファイルに保存して、その保存した サイン波を「まったく同じに」読み込む 目的 GNURadioにおけるタイミング処理の概念を理解する FPGAなどにおけるクロック処理の概念となる 1クロック≒一定時間を理解する 内容 保存 読み込み 処理時間の概念の把握 既存の無線機の違い 保存して、何度でも再生し、実験できる
  • 48. ©SIProp Project, 2006-2019 48 演習4-1:波形を保存して、再生する SDR受信波をファイルに保存して、その保存した サイン波を「まったく同じに」読み込む 「演習3」のファイルをそのまま使います IQデータをファイルに保存する 1. 「File Sink」ブロックを追加する 1. Fileに「iq_data.wav」を入力する 2. 「Pluto SDR Source」ブロックと接続する
  • 49. ©SIProp Project, 2006-2019 49 演習4-2:波形を保存して、再生する SDR受信波をファイルに保存して、その保存した サイン波を「まったく同じに」読み込む 新規作成をします ファイルに保存したIQデータを再生する 1. 「File Source」ブロックを追加する 1. Fileに「iq_data.wav」を入力する 2. Repeatを「No」にする 2. 「Qt GUI Sink」ブロックを追加する 1. Center Frequencyを「438.2e6」とする 1. 保存時の中心周波数と同じ値にする 3. 接続する
  • 50. ©SIProp Project, 2006-2019 50 演習4-3:波形を保存して、再生する SDR受信波をファイルに保存して、その保存した サイン波を「まったく同じに」読み込む 先程のファイルをそのまま使います 処理時間を実時間に同期させる 1. 「Throttle」ブロックを追加する 1. Sampling Rateに「2084000」を入力する 1. 保存時のSampling Rateと同じ値にする 2. 「File Source」ブロックの間に挿入する 3. 「Qt GUI Sink」ブロックを変更する 1. Bandwidthに「2084000」を入力する 1. 任意の値でよいが、初期値が32000と低すぎるため、 変更したほうが見栄えが良い。
  • 51. ©SIProp Project, 2006-2019 51 演習5:LPFをマスターする LPFをいれて、波形を表示する 目的 アナログの処理器が付いていることを理解する アナログ処理器ではあるが、内部的にはディジタル処理して いる Tapで処理内容を変えられる 内容 LPFの設定内容の解説 既存の無線機の違い 各種フィルターを固定値ではなく、自分で設計できる
  • 52. ©SIProp Project, 2006-2019 52 演習5-1:LPFをマスターする LPFをいれて、波形を表示する 「演習3」のファイルをそのまま使います GNURadioにおけるLPFを理解する 1. 「Low Pass Filter」ブロックを追加する 1. Cutoff Freqに「640000」を入力する 2. Transition Widthに「120000」を入力する 2. 「Pluto SDR Source」ブロックの間に挿入する 出典:RFワールドNo.44
  • 53. ©SIProp Project, 2006-2019 53 演習5:LPFをマスターする よくあるLPFにみえるけど・・・ アナログLPFとディジタルLPFの違い 実数と複素数の違い!!! ここだけ、抑えればアナログもディジタルも同じ!!! 出典:RFワールドNo.44
  • 54. ©SIProp Project, 2006-2019 54 演習6:GMSK Demodをマスターする GMSKを実際に受信して、データ化する ただし、ファイルから読み込む形式 目的 コンスタレーション表示やアイパターン表示のさせ方 を理解する 内容 GMSKの可視化 既存の無線機の違い アイパターンやコンスタレーションも表示可能 ウォーターフォールだけじゃない!
  • 55. ©SIProp Project, 2006-2019 55 演習6-1:GMSK Demodをマスターする GMSK9600を実際に受信して、データ化する 先程のファイルをそのまま使います GMSK復調し、タイム表示やコンスタレーション表示する 1. 「GMSK Demod」ブロックを追加する 1. 「Low Pass Filter」ブロックの後に接続する 2. 「Low Pass Filter」ブロックを変更する 1. Decimationに「samp_rate/9600/2」を入力する 2. Cutoff Freqに「9600/2」を入力する 3. Transition Widthに「600」を入力する 3. 「Qt GUI Sink」ブロックを変更する 1. Bandwidthに「9600*2」を入力する 4. 「File Sink」ブロックを追加する 1. Fileに「GMSK_demod.dat」を入力する 2. Input Typeを「Byte」に変更する 5. 保存したデータの表示コマンド 1. hexdump –C GMSK_demod.dat
  • 56. ©SIProp Project, 2006-2019 56 AFSK1200送受信器を作成する
  • 57. ©SIProp Project, 2006-2019 57 演習7:APRSパケット受信器を作成する APRSパケットを受信してみる 目的 Audio入出力を利用して、既存のアマチュア無線機と 連携させる 内容 サンプリングレート ≒インピーダンスマッチング ハードウェア連携 既存の無線機の違い bit(データ)操作により、TNCを作成できる
  • 58. ©SIProp Project, 2006-2019 58 演習7-1:APRSパケット受信器を作成する APRSパケットを受信してみる 「study_7_start.grc」ファイルを読み込む 1. 「Audio Sink」ブロックを追加する 2. 「Multiply Const」ブロックを追加する 1. IO Typeを「Float」に変更する 2. Constantを「0.1」に変更する 1. これがボリュームとなる 3. 「Audio Sink」と「AX.25 FSK Mod」の間に接続する 3. 「Audio Source」ブロックを追加する 1. 「FSK Demodulator」と接続する 2. 「Qt GUI Time Sink」と接続する AFを利用し、既存無線機と連携する 「Audio Sink」がスピーカー出力 「Audio Source」がマイク入力である 実際に動かすには下記のライブラリが必要です https://github.com/tkuester/gr-bruninga と https://github.com/dl1ksv/gr-ax25
  • 59. ©SIProp Project, 2006-2019 59 GR-satellitesをビルドして、GNURadioに登録する
  • 60. ©SIProp Project, 2006-2019 60 演習8: GR-satellitesをビルドする GR-satellitesをビルドして、GNURadioに登録する 目的 ネットに一杯存在しているGNURadioのレシピを自力で 使えるようにする ネットに存在しているものは、「ソースコード」の状態で存在し てるため、コンパイル(ビルド)する必要がある GR-satellites https://github.com/daniestevez/gr-satellites 内容 ライブラリの追加の方法 既存の無線機の違い 他人が作った機能を追加できる
  • 61. ©SIProp Project, 2006-2019 61 コンパイル(ビルド)とは? ソースコード(プログラム)を実行できる形に変換 すること その作業に必要なコマンド(ツール) git clone [プログラムのURL] ソースコードをダウンロードするためのコマンド ./configure コンパイルに必要な設定を自動で行うコマンド cmake ../ 上記のconfigureと同じ。プログラムにより、こちらを使う場合も ある make コンパイル(ビルド)を実際に行うコマンド sudo make install プログラムをインストールするコマンド
  • 62. ©SIProp Project, 2006-2019 62 演習8-1: GR-satellitesをビルドする ソースコードをダウンロードして、ビルドし、インス トールする 赤字部分がレシピ(アプリ)特有部分であとは同じである user@pc:~ $ git clone https://github.com/daniestevez/libfec user@pc:~ $ cd libfec user@pc:~ $ ./configure user@pc:~ $ make user@pc:~ $ sudo make install user@pc:~ $ cd ../ user@pc:~ $ git clone https://github.com/daniestevez/gr-satellites user@pc:~ $ cd gr-satellites user@pc:~ $ mkdir build user@pc:~ $ cd build user@pc:~ $ cmake ../ user@pc:~ $ make user@pc:~ $ sudo make install user@pc:~ $ cd ../../
  • 63. ©SIProp Project, 2006-2019 63 今なら読みこなせる! 忘れてしまったら、こちらも読み返してください RFワールド No.44 「GRCで広がるSDRの世界」