Making a bit stream in GNU Radio

2016-02-09

We will see how to make bit stream in GNU Radio. Generally speaking, we can two different methods. One is using the Random noise block and the other is the using the Signal source block. First, we make a flow diagram like a following picture. You can download the grc file here. bit_stream_tutorial.grc (1) Random source block First we are making 8 bit random signal (Maximum 256 = 2^8) and…

Read More >>

Threshold in GNU Radio

2016-01-26

Threshold Threshold implements a comparator with configurable hysteresis. The output transitions from 0.0 to 1.0 when the input signal transitions from below to above the High level. The output transitions from 1.0 to 0.0 when the input signal transitions from above to below the Low level. The Low level must be less than the High level.   GRC File can be downloaded here. threshold_test.grc Threshold Block Setting Low and High…

Read More >>

Good Tutorials on GNU Radio available on web.

2016-01-25

  a.  CSUN/EAFB Software Defined Radio (SDR) Senior Project http://www.csun.edu/~skatz/katzpage/sdr_project/sdrproject.html This link lead us to the tutorials which were written by Prof. S. Katz of California State University. There are well explained and very helpful to understand how to use the GNU Radio. b. Tutorials by Ettus Research This tutorials is provided by Balint Seeber of Ettus Research.  I highly recommend to read this article first if you are an…

Read More >>

GNU Radio Installation on Raspberry Pi 2

2016-01-19

今日はRaspberry PiにGnu Radioをインストールする方法をご紹介します。 Raspberry PiにはいくつのLinux Distributionが存在しており、その中ではDebian系のRaspbianが広く使われています。しかし、RaspbianではGnu Radioがうまくインストールできない問題があります。但し、、RaspbianでGnu Radioのインストールが出来たとの報告もありますが、私が2016年1月に下記のリンクのRaspbianにGnu Radio 3.7のインストールをトライしたところ、全部失敗に終わりました。 Raspbian Download Page 従って、今回はRaspberry PiにUbuntu Mateをインストールして、その上にGnu Radioを設置することにします。   1. Raspberry PIにUbuntu Mateのインストール Ubuntu Mateのインストールに関しては、下記のリンクを参照してください。 Ubuntu MATE for the Raspberry Pi 2 Overclock raspberry pi with ubuntu mate Ubuntu Mateのインストールが終わったら、起動後に下記のような画面になります。 2. Ubuntu Mate上でSoftware Centerを設置 そして、Ubuntu MateにはSoftware Centerが基本に設置されていないため、sudo apt-get installのコマンドでSoftware Centerを設置します。 > sudo apt-get insatall software-center インストールが終わり、コマンド窓でSoftware Centerを起動します。 >software-center   3. Software Center上でGnu Radioを設置 Software Centerの検索窓でgnuradioを入力します。その後、インストールボタンを押してください。 先月からUbuntuのSoftware CenterにGnu Radioが設置できるようになり、以前よりだいぶ楽になりました。 また、Raspbianではいつも出ていたエラーが一切なく、一発でGnu Radioがインストールが出来ました。 4. Gnu Radioでのテストプログラムの実行…

Read More >>

FM Receiver using GNU Radio

2016-01-14

今日はGNU Radioを用いて、FM受信機を作成してみます。 SDRのH/WをGNU Radioで制御するとき、殆どのユーザーはFM受信機から始まるんですね。ここまでできたらあなたもGNU Radioの立派なユーザーです。そして、WebやYoutubeなどではいくつのGNU Radioを使うFM受信機の事例がありますが、どれも説明が簡単であり、返って中身を理解するためにはあまり役に立たなかった気がしましたので、ここでは少し詳しく説明いたします。 まず、下記のフローチャートを見てみてください。 これが今回ソフト無線でFM受信機を作る設計図になります。フローチャートの各ブロックはGNU Radioのブロックに対応しています。 (0) 事前の設定 Sampling Rate : 2 MHz Channel widht : 200 kHz (1) SDR H/W Source ソフト無線のH/Wをソースとして指定します。その時、アンテナのゲイン及び中心周波数を指定します。 Gain : 40 dB (受信環境によって0 ~ 40 dBの間の適正な数値を入力してください。) Center Frequency : これが受信する周波数になります。私の場合、実験室だとFM放送の電波が入らないため、手持ちのFMトランスミッタを使っています。そのため、中心周波数がFMトランスミッタの94 MHzになりました。 (2) Low Pass Filter SDR H/Wから受信した信号をLow Pass Filterにかけます。同時にSampling RateのDecimationも行いますので、Low Pass Filterの出力のSampling Rateは200 kHzになります。 Decimation = (Sample Rate)/(Channel width) = 2 MHz / 200 kHz = 10 その結果、Sampling rate after LPF = 2…

Read More >>

OFDM Tutorial in GNU Radio

2016-01-08

今日はGNU Radioを利用してOFDMを見てみます。 下記のようなブロック図を作成してください。 例題ファイルは下記のリンクでダウンロードできます。 OFDM_tutorial.grc (1) Random Sourceの設定 Output Type : Short (2) OFDM Modulation Blockの設定 Modulation : BPSK (binary phase-shift keying) FFT Length : 512 (3) 実行結果 OFDMのスペクトルが表示されます。 まあ、簡単ですね。 更にOFDMに関して勉強たいユーザーのために、良い参考書を2冊ご紹介します。 (a) わかりやすいOFDM技術 この本からOFDMを始める方がほとんどだと思うほど、有名な本ですね。 デジタル変調・信号処理の知識がある方には、大変読みやすい内容です。 わかりやすいOFDM技術 (b) ディジタル通信・放送の変復調技術 デジタル変調に関して数式を使い、的確な説明がされています。 「デジタル変調って何?いろいろ入門書を読んでみたけど、より具体的な話が聞きたい!」と思う方に大変いいと思います。 OFDMに関しても詳しく説明されています。 ディジタル通信・放送の変復調技術    

Read More >>

Delta modulation with GNU Radio

2016-01-04

今回はデルタ変調の例題をご紹介します。 正確にはContinuously Variable Slope Delta Modulationで、音声を符号化する手法で体表的なものです。 詳細はこちらのページを参照してください。 Continuously variable slope delta modulation (1) まず、下記のようなフロー図を準備します。 GRCファイルは下記のリンクでダウンロードできます。 Delta_modulation_Tutorial.grc (2) VCO Block Voltage controlled oscillator, which outputs a sinusoid of a frequency that is a function of the input voltage. The input is float stream of control voltages and the output is a float oscillator output. (3) CSVD Encoder block Continuously variable slope delta modulation (CVSD or CVSDM) is a voice coding method….

Read More >>

Phase shift keying modulation in GNU Radio

2015-12-29

今日はデジタル変調の一つであるPhase Shift Keying (PSK)変調について、見てみます。 PSK変調に関して、下記のHPに詳細説明が掲載されていますので、参考にしてください。 PSK Modulation (by Circuit Design) まず、下記のようにブロック図をかきます。今回はQT_GUIで作成します。 GNU Radioファイルは下記のリンクでダウンロードできます。 PSK_tutorial   (1) Sampling Rate : 32000にします。 (2) Random Sourceを次のように設定します。 Output type : Byte Number of samples : 10000 (3) PSK Modulationを次のように設定します。 Number of Constellation : arity (Varibleで設定します。) Samples/Symbol : sps ( Varibleで設定します。) Excess BW : excess_bw (Variableで設定します。) (4) PSK ModulationのVariableの設定 arity :4 sps :4 excess_bw : 0.350 = 350e-3 rrc_taps : 1 (5) Decimation FIR Filter Taps : rrc_tapsを入力(画面上に1になっていますが、すみません。rrc_tapsに入力してください。)…

Read More >>

量子化(Quantinization) in GNU Radio

2015-12-21

今回は量子化の話です。 量子化とは、アナログ信号などの連続量を整数などの離散値で近似的に表現すること。信号処理の授業ではじめに出てくる話ですね。 GNU Radioで、Sine Waveを作り、その振幅を量子化して表現してみます。 まず、このようなブロック図を作成してください。 例題ファイルは、下記のリンクをクリックしてください。 Quantinization_tutorial.grc (1) Quantinizerのブロックを開き、Bitsにvariable_bitsを入力してください。 このBitsの項目で、量子化する解像度を決めます。例えば、1bitだと2^1=2 だから 2段階で量子化。 3bitsだと2^3=8ですので、8段階で量子化する具合です。 そして、variable_bitsとして、設定しておいて、次にWX GUI Chooserでいくつの値が選択できるようにします。 (2) WX GUI Chooserで id = variable_bits Label = Bits Default Value = 3 Choices = [1,2,3,4,8,16] にします。 Choicesは単に1bit ~ 16 bitsの間の任意を整数を入れても構いません。 (3) 次に実行してみましょう。BitsのDefault値が3になっていますので、2^3 =8として8段階に量子化されていることがわかります。 (4) この画面の右上にBits数を設定できるようになっています。これを1にしてみます。 すると、2^1 =2として、2段階に量子化されていることがわかります。 まあ、簡単ですね。GNU Radioの内部では、基本的に何Bitsで量子化しているかご存知の方はコメントを残していただけますか? よろしくお願いします。  

Read More >>

QAM (Quadrature Amplitude Modulation) in GNU Radio

2015-12-21

今回は、QAM(Quadrature Amplitude Modulation)のTutorialの紹介です。 直角位相振幅変調とも呼ばれ、略してQAMと表記します。場合によっては、QAM変調、QAM Modulationとも言われています。(Modulationが2回出ていますが、なぜか習慣が定着されたそうで.) QAMに関しては、Wikipediaでわかりやすい説明があったので、リンクを添付します。 直角位相振幅変調 (Wiki) まず、このようなブロック図を作成します。例題ファイルを開くとGnu Radio上に同じ画面が表示されます。 QAM_modulation_Tutorial.grc (1) Variableブロックで、サンプリング周波数を500kHzに設定します。 (2)Random Sourceブロックで、Num Sampleを2,000,000にします。 (3) Signal Source ブロックを開き、周波数を25 kHzにします。2つのSignal Sourceブロックがあり、それぞれI相とQ相の信号を作り復調の時に使われます。したがって、一個目のブロックはSineとして、2個目のブロックはCosineとして設定します。 (4) QAM Modブロックを設定します。Samples/Symbolを4にして、Number of Constellationを16にします。 (5) 同様にQAM Demod ブロックを設定します。 Samples/Symbolを4にして、Number of Constellationを16にします。 (6) もう一度、全体のブロックを見てみましょう。 (7) 実行すると、QAM Mod(TX)とQAM Demode(RX)での波形が観測できます。 このように、GNU Radio上で簡単にQAMのシミュレーションを実行することが可能です。みなさんもぜひGNU Radioの凄さを実感してみてください。

Read More >>