JI3GAB/blog

ラジオに関する話題を中心につらつらと

最近はAPB-3で遊んでます

2014-11-23 19:06:24 | ソフトウェアラジオ
おじさん工房の小川さんがトラ技で発表されたAPB-3は、元々測定器の実現を主目的として作られたものだと思います。しかし、ハードウェアで言えば、100MHzのサンプリングレートのADC/DACとFPGA、USBのインタフェースがありますし、VHDLのコードを見てもスペアナ、ネットアナ等を構成するための回路ブロックはSDRのフロントエンドに必要なものがほとんど揃っています。

実際、作者のおじさん工房の小川さんはその後エレキ工房No.1でスタンドアロンのラジオを実現されていますし、トラ技の記事でもPCからコントロールするSSB送信機の記事を書かれていて、SSB送信機やトランシーバの実行ファイルはおじさん工房のサイトにて公開されていました。

一方でPC側のアプリケーションやFPGAのVHDLソースコードは、APB-3を購入した時にCD-ROMの形で提供されていましたが、その後のSSBトランシーバのソース等は提供されていませんでした。APB-3を使って実際にオンエアされている方を始めとして、自分でソースを変更してより使いやすくしたいという要望があり、最近SSBトランシーバのソースコードが測定器用ソースとの差分という形で提供されました。これをきっかけに何人かの方が機能追加などに挑戦されています。

私自身は、そういう方々と情報交換しながら、機能追加に協力する一方で、PCの側で信号処理を行う形のSDRとして利用するような改造を考えています。
現在のAPB-3用SSBトランシーバプログラムでは、例えば送信側であれば、マイク入力からSSB発生、周波数変換まで全てAPB-3のFPGAの中で処理していて、PCとの通信は周波数の設定等いくつかのパラメータの変更のみです。もちろんそういう形の実現にはメリットもありますが、FPGA側ではDDC/DUCのみ行い、PC側でベースバンドの信号処理を行う方が柔軟性が高いのではないかというのと、自分自信がVHDLに慣れていないということもあって、信号処理の部分をもう少しPC側に持ってくる方式でのSDRトランシーバの実現を検討しているところです(実際に出来るまではだいぶ時間がかかりそうですがHi)。

これまで、短波帯でダイレクトにAD変換/変換を行うSDRのプラットフォームは海外製のものしか(恐らく)無い状況でしたが、APB-3は日本製でかつ自分で中身をいじれるプラットフォームの候補として有力なのではないかと考えています。最近やはりトラ技で発表されたTRX-305も魅力的ではあるんですが。

差分ファイルや機能追加に関する議論についてはおじさん工房のサイトをご覧ください。もちろん、何かありましたらここにもコメントいただけると幸いです。

・APB-3のページ http://ojisankoubou.web.fc2.com/apb-3/index.html
・おじさん工房BBS http://ojisankoubou.bbs.fc2.com/
コメント (3)

HPSDR ワークショップ in Friedrichshafen の映像が公開されました

2014-07-15 22:39:07 | ソフトウェアラジオ
Apache Labs.のANANシリーズの元となったHermes(DDC/DUC方式のSDRトランシーバボード)や、それらのハードウェアを用いてプリディストーションを実現するOpenHPSDR版PowerSDR(FlexRadioのオリジナルから派生したバージョン)を開発しているのは、アマチュア無線家たちによるHPSDR(High Performance Software Defined Radio)というプロジェクトです。6月の末にドイツの Friedrichshafen で開催されるハムの祭典は、ヨーロッパでも最大規模のものだそうですが、そこで今年、HPSDRのワークショップが開かれました。

"HPSDR Workshop - Highlights and Perspectives in Advanced SDR-Technology" と題されたワークショップのプログラムはこちらにありますが、そのうちのほとんどの講演のビデオが公開されています。

プログラムのタイトル(内容のわかるものは日本語のごく短い記述を加えました)と動画へのリンクをここに書きますが、詳しい内容は上記のリンク先の説明を読んでください。発表はすべて英語で行われています。

なお、下にリンクを張った動画は、hamsdr.comにアップロードされたもので、容量の関係からかなり圧縮されていて画質はそれほど良くありません。ただ、いくつか見た限りはそれほど支障はないと思います。現在は高画質のものもOpenHPSDRのサイトで提供されています(その分ファイルサイズは大きいです)。

1. WDSP -- a new DSP - core for SDRs by Dr. Warren C. Pratt, NR0V
現在のOpenHPSDR版PowerSDRのコアとなっている信号処理ライブラリ (動画)

2. Android HPSDR by John Melton, G0ORX/N6LYT
Android上で動くHPSDR用アプリ (動画)

3. Chirp -- an advanced beacon project using weak signal detection by Phil Harman, VK6PH (動画)

4. Digital Predistortion linearizes RF amplifiers by Dr. Warren C. Pratt, NR0V
デジタルプリディストーションの概要と課題 (動画)

5. CuSDR-- Synopsis and new Developments by Dr. Hermann von Hasseln, DL3HVH
GPU(ビデオカード用のプロセッサ)を使って信号処理を行うHPSDR用ソフトウェア (動画)

6. ORION -- a new DDC/DUC board by Abhi Abhiarunoday
ANAN-200DのコアとなるSDRプラットフォーム"ORION"について

7. Future prospectives of HPSDR by Phil Harman, VK6PH
HPSDRプロジェクトの今後(動画1動画2)

私がこれまで見たのは主に 1.WDSP、4.プリディストーション、と7.HPSDRプロジェクトの今後、のビデオです。WDSPは、最近のHPSDR版PowerSDRのコアになっている信号処理ライブラリで、従来用いられてきたDttSPライブラリを置き換えるものになっています。

最近話題を集め始めたプリディストーションの説明は、かなり分かりやすいものだと思いますし、memory effectの問題など残された課題にも触れています。また、最後のところで聴衆(恐らくLeif Asbrink氏?)から、「高次の歪はむしろ増えているようだが…」という質問が出て来るのも興味深いところです(残念ながら圧縮版ではPratt氏の回答の部分が切れてしまっています。気になる方は高解像度版をどうぞ)。余談ですが、Pratt氏の話は意識的にか、少しゆっくりめの速度で話されていてありがたいですHi

また、HPSDRプロジェクトの今後に関する講演では、前半では主に通信プロトコルとハードウェアの話、後半で将来的なアーキテクチャについて話しています。後半の内容はざっくり言うと、例えば受信であればADCで取り込んだデータをほぼそのまま(FPGAによるデシメーション等を行わずに)高速なインタフェースでサーバに送り、サーバ上ではGPUによる並列処理で高速な信号処理を行い、クライアントからの要求に応じて結果を送信するというようなものです(多少とり違えているところもあるかも知れませんが、なかなか刺激的な内容でした)。

こういう講演を生で聞いてみたいものだなあと思ったりしました。なかなか付いて行くのが大変そうですけれど。
コメント

"Radio Receiver" Chromeアプリ 1.09リリース

2014-06-03 23:45:14 | ソフトウェアラジオ
R820T/RTL2832Uを使用するワンセグチューナーでFM放送を受信できるChromeアプリ "Radio Receiver" のVersion 1.09がリリースされました。

前のエントリの時点(1.08)では、「R820Tを搭載していてかつ、vendor IDが"0x0bda"、 product IDが"0x2838"のドングルのみ」利用可能で、同じチップを搭載していても、product ID が"0x2832"となっている一部のドングルでは利用できないという問題がありました。

それに対して、JA5FNXさんが作者のJacoboさんにリクエストされて、product ID が"0x2832" のドングルでも利用できるように対応したバージョン1.09がリリースされました。すでにChromeアプリをインストールされた方は自動的にバージョンアップされているはずです(TNX Jacobo es JA5FNX)。

JA5FNXさんのブログエントリを読んでいただければ充分なのですが、こちらでもアプリを紹介しましたので、追加情報としてお伝えした次第です。
コメント

ワンセグチューナーでFM放送を受信するChromeアプリ "Radio Receiver"

2014-06-02 01:00:29 | ソフトウェアラジオ
もうご存知の方も多いかと思いますが、ここのところ試していたもので、なかなか面白いと思ったので紹介します。主にtwitterで @JA5FNXさんや @edy555さんから情報をいただきました。

SDRとして使えるワンセグチューナーはすっかりポピュラーになって、HDSDRやSDR#等をはじめ、様々なソフトウェアで利用出来るようになっていますが、今回紹介するのは、ブラウザのみでワンセグチューナーをFMラジオとして使えるというものです(作者はJacobo Tarrio氏)。

Google ChromeのAPIを利用し、Chromeアプリとしてリリースされているので、Chromeブラウザが必要です。また、対応しているチューナーも、RTL2832U搭載のもののうち、チューナーチップとしてR820Tを仕様しているもののみが対象です。もっと細かくいうと、現状では、vendor IDが"0x0bda"で product IDが"0x2838"のドングルのみで、R820Tを利用していてもproduct IDが異なるものも存在するようなので、そのままでは使えません(詳しくはFNXさんのブログ記事を参照してください)。

インストールは、Chromeブラウザで、ChromeウェブストアのRadio Receiverのページにアクセスし、「CHROMEに追加」ボタンを押すだけです。

ブラウザのみでと書きましたが、Chromeアプリとして実現されているので、ブラウザとは別に次のような独自のウィンドウが開きます。



画面はシンプルで、パワーON、チューニング、スキャン、それに周波数メモリ関係のボタンが見えます。右上にスパナのようなボタンがありますが、そこを押すと設定画面が出てきます。"Region"で"Japan"を選ぶと日本のFM放送周波数の範囲で使えるようになります。最近のバージョンでは、周波数の(半自動?)補正機能やゲインコントロールの方法が選択出来たりします。また、図の中で周波数の右側の表示は上から、ステレオ/モノラルの選択、音量で、クリックすると状態を変更することが出来ます。

最初にこのアプリをJA5FNXさんから教えてもらったときはバージョン1.04で、その時は私のところや @edy555さんはじめ、動作しないというレポートがあったのですが、1.06でその大きなバグは解消されました。これにあたっては @edy555さんが作者と協力されたということです。リリース、バグ、機能等に関する情報交換は、Googleグループで行われています。

シンプルなものではありますが、ブラウザとその拡張機能だけでワンセグチューナーがSDRとして使えるのは面白いですね。なお、他のアプリと同様、該当するワンセグチューナーを利用するためには、Zadigによるドライバの入れ替えは必要です。また、先に触れたように、R820T使用でも現状では動作しないチューナーがありますので、ご注意ください。

追記: product ID が "0x2832" のチューナーで動作しない件は新しいリリース1.09で対応されました(次エントリ参照)。
コメント

HiQSDRでもプリディストーションの実装が始まったようです

2014-02-12 00:37:37 | ソフトウェアラジオ
この数週間、OpenHPSDRやapache-labs 関連のMLはプリディストーションに関する話題で持ちきりですが、そんな中、HiQSDRでもプリディストーションの実装を進めているという話が出てきました。
HiQSDRというのは、元々はN2ADR, Ahlstrom氏が米QEX誌に発表したDDC/DUC方式のSDRトランシーバで、それを主にヨーロッパのアマチュアが基板を販売、配布しているものです。私も一度ある方のご好意で使わせていただいのですが、基本的にはOpenHPSDRのHermesと同じような構成で、ソフトウェアもN2ADRご本人がリリースしているQuiskを初めとしていくつかのものが開発されています。

今回、プリディストーションを実装して実験しているのは、DL2STG氏で、氏が開発している、HiQSDR用のGNU Radioのブロックの中で実現しているようです。また、このプリディストーションもアダプティブなもので、そのためにFPGAのイメージも変更を加えたそうです。リンク先のページの2 tone testのスペクトラムを見る限り、こちらもかなりの効果が期待できそうです。

HiQSDRは最近まで、基板(組み立て済みもあり)のみの提供でしたが、最近では、エキサイタと10Wのアンプを収められるケース、HiQTRX-10も販売されているようで、これからも注目したいと思います。

詳しい情報は上記のリンク先や、Yahoo GroupsのN2ADR-SDR groupを参照してください。

今年はプリディストーションという言葉やその技術が一気にアマチュアに広がるのではないかという予感がします。


コメント (2)

OpenHPSDR Pure Signal Predistortionを試してみた

2014-01-26 02:12:43 | ソフトウェアラジオ
先のエントリで紹介したデジタルプリディストーション対応のPowerSDRとそのためのファームウェアを早速、手元のHermes/ANAN-100にインストールしてみました。OpenHPSDRのプリディストーション機能は"Pure Signal"と名付けられているようです。

まずはツートーンテストを行ってみました。下に14MHzでのスクリーンショットを貼っておきます。かなりうまく働いていると思います。
今後は、実際の音声信号に対してアダプティブプリディストーションがどのくらいうまく働くのか調べてみたいと思っています。

しかし、やはりアダプティブ(適応的)なのは非常にいいですね。私もそのうちアダプティブプリディストーションを実装してみたいと考えています。いやー、やられたなあ。


IMD @ 14MHz/30W PEP without predistortion



IMD @ 14MHz/30W PEP with predistortion



IMD @ 14MHz/80W PEP without predistortion



IMD @ 14MHz/80W PEP with predistortion



コメント

OpenHPSDR版PowerSDRにアダプティブプリディストーションが組み込まれたらしい

2014-01-25 13:55:22 | ソフトウェアラジオ
今年もよろしくおねがいします。

今年最初のニュースです。私もプリディストーションの実験を拙いながら少しずつ行ってきましたが、NR0V, Warren氏らが開発を進め、以前からテストを重ねていたHPSDR版のプリディストーションがHPSDR版PowerSDRに組み込まれたようです。

何より、私のものと違うのは適応的(adaptive)にプリディストーションのパラメータを更新するので、マニュアルキャリブレーションが必要なく、送信中に負荷や熱の状況が変わっても追随するという点で、これは大きいです。

私もまだダウンロードしてきただけなのですが、追ってレポートを書ければと思っています。なお、プリディストーション機能を利用するにはHermesのファームウェアの更新も必要ですし、それなりのセットアップも必要になります。

OpenHPSDR PowerSDR-mRX PS (3.2.7)に関するリリースコメントは、

http://lists.openhpsdr.org/pipermail/hpsdr-openhpsdr.org/2014-January/021992.html

ファームウェアに関しては

http://lists.openhpsdr.org/pipermail/hpsdr-openhpsdr.org/2014-January/021991.html

です。

PowerSDRについてはまだそれほど「枯れていない」そうで、プリディストーションが必要でない場合には前のバージョン、3.2.1の方が良いだろうとのことです。

以上
コメント

デジタルプリディストーションをPowerSDRに組み込んでみた

2013-09-21 00:31:29 | ソフトウェアラジオ
またしばらく更新が滞っていました。ハムフェアに行ったりはしましたが、無線のアクティビティは上がらずプリディストーションの実験もあまり進んでいませんでした。

色々やりたいことはあったのですが、GNURadioで実験しているだけでなく、実際に運用できるようなソフトウェアにするということにまずはトライすることにしました。1からSDRのソフトウェアを書くのはハードルが高過ぎるので、既存のものにDPDのコードを入れるということになります。

既存のソフトウェアといってもたくさんあるのですが、まずはHermes/ANANで動くものということで、その中でも最も一般的に使用されているHPSDR版のPowerSDRをターゲットに決めました。PowerSDRは今となってはそれなりに大きなプログラムで、コアの信号処理やハードのコントロールはCのライブラリで、それ以外の処理や画面の部分はC#で書かれています。最初はCのライブラリ(DttSP)に手を入れるのかなと思っていましたが、ソースコードを読んでいるとC#の部分で出来そうなことがわかりました。慣れないC#を読んだり書いたりして1週間くらいでキャリブレーションのルーチンが動き、今日、実際にDPDを有効にして送信する部分が出来ました。

画面はこんな感じです。スペクトラムのディスプレイの下、右の方の囲みの中にDCalというボタンとDPDというボタンがあるのが見えると思います。それぞれ、DPDキャリブレーション(プリディストーションのテーブルを作成する)用と送信時にDPDを有効にするボタンです。DCalっていう名前は略称としてどうかと思うのでそのうち差し替えます。他にも多分色々本質的な問題はあると思うのですが、とりあえず動いたということで。

2-tone @ 14MHz/80W pep without predistortion


2-tone @ 14MHz/80W pep with predistortion

コメント (12)

デジタルプリディストーションの実験(その3)

2013-07-13 02:18:20 | ソフトウェアラジオ
引き続きDPD(デジタルプリディストーション)の実験をやっています。
先のエントリでかなり端折って書いているので、数名の方から「2-toneのグラフはシミレーション結果ですか」という質問をいただきましたが、あれは実データです。実際にプリディストーションをかけた場合と素の状態で送信して、それをモニタした結果です。
もう一つ、「100分割だと40dBの範囲になるが、それで大丈夫なのか」という質問もいただきました。特性を取ってLUTに反映したのは40dBの範囲になるのですが、それ以下のレベルの場合にはゲイン/位相はほとんど変化しないということにして扱っています(大雑把に言うと補正しない)。実際、前のPAの特性のグラフを見ていただくと、特にANAN-100の場合にはレベルが低いところでは変化が少なくなっているのがわかると思います。本当はもうちょっと低いところまで一度厳密にデータを取ってみるべきだとは思いますが。

さて、2-toneだけでテストしていてもつまらないので、実際に音声信号にプリディストーションをかけてみたらどうなるかやってみました。GNURadioで簡単なSSBジェネレータのプログラムを作成し、そこにプリディストーションをかけた音声信号を入力してみました。

本当は動画でも投稿すればいいのでしょうが、数十秒の音声信号を入れてモニターしてピークホールドしたものを下に貼っておきます。青い線がリアルタイムの信号で緑の線がピークホールドしたものです。青い線の方もなるべくレベルの高いところをキャプチャしたかったのですが、なかなかタイミングがうまく合わず適当なところになっています。出力はピークで25Wから30W程度です。

14MHz USB 音声信号 25W DPD無し


14MHz USB 音声信号 25W DPD有り


近接のIMDはなかなかいい感じに抑えられてますよね。一方で2-toneの時と同じように裾は若干広がってしまいます。実際にオンエアしたらどちらがいいのでしょうね。モニター音を聞いている限りは帯域内の音はDPD有りの方がすっきりしているように感じますが、周囲の局への妨害は…。
というわけで、音声信号を入れてSSB変調した時もそれなりに効果はあるということはわかりました。
実は最初やってみたらDPDをかけたときに、モニターするとひどい音で「これはダメなのか」と思ったのですが、次の日の夜に電車に乗っている時にバグに気づいて直したら何とかまともな信号になったようです。

本当は実験の構成とかを先にもう少し詳しく書くべきだと思ったのですが、それは週末中にでもぼちぼち書くと思います(多分)。

あと、最近まったく更新していなかった手書きHTMLのホームページの方にDPD実験の記事の英語版を作ってみました(恥ずかしいけど)。そちらの方にはsetupの図なんかも載せてます。
コメント

デジタルプリディストーションの予備実験(その2)

2013-06-30 20:39:51 | ソフトウェアラジオ
1つ前のエントリでご紹介したように、最初の実験は思ったよりうまく行ったというのが正直な実感で、特に3次、5次等のIMDが大きく下がったことから「これは行けそうだ」と思いました。そこで、他の機器でも試してみようと考えたわけです。

私の部屋にはANANの他にもう1つ、USRP1とヤエス FT-450のPA部を組み合わせたものがあります。
USRPシリーズはGNURadioプロジェクトから生まれたハードウェアで、アマチュア無線用というよりは汎用のプラットフォームで学術機関等でも多く使われているようです。中身は64MHz/12bitのADC2つと128MHz/14bitのDACが2つとFPGAによるDUC(Digital Up Converter)・DDC(Digital Down Converter)で構成されています。

一方FT-450は安価なIF DSPトランシーバでお馴染みですが、これのパワーアンプはANANと同様、三菱のFETを使っています。具体的にはRD06HHF1→RD16HHF1x2→RD100HHF1x2という構成です。USRP1の出力は約0dBm弱で、これをFT450のプリドライバに入力すると大体レベル的に合うようです。
ちなみにANANの場合はPA部にRD06のプリドライバの部分は無く、代わりにHermesのボード側にOPA2674によるアンプが入っています。

今回も実験は3.5MHzを中心に行いました。まず先のエントリと同じようにPAの特性を取ったものを下の図に示します。

AM-AM characteristics of the FT-450's PA @3.5MHz(Max Pout=100W)


AM-AM characteristics of the FT-450's PA @3.5MHz(Max Pout=100W)


これを元に2-tone信号にプリディストーションをかけてIMDを測定したのが次の図になります。前回と同じように30W出力(DPD無し、有り)、100W出力(DPD無し、有り)の順になります。前回と違って各トーンは700Hzと1900Hzと狭くなっていますが、特に意味はありません。他の幅でも調べましたが結果に大きな差は無かったです。

IMD @ 3.5MHz/30W pep without predistortion


IMD @ 3.5MHz/30W pep with predistortion


IMD @ 3.5MHz/100W pep without predistortion


IMD @ 3.5MHz/100W pep with predistortion


1つ前のエントリでの結果と比べると、ぱっと見て変化が少ないですよね。よく見ると、3次の歪はむしろ増えている部分があって、5次より上に関しては若干減っているが、いいところでも5〜10dBというところ。
周波数を変えて試しましたが、傾向としては同じです。今回グラフはありませんが、出力が10Wくらいのところでは、3次歪も含めて良くなるポイントがあったくらいです。
また、USRPを使ったことで何か見落としていることがあるかも知れないと思い、Hermesの出力をFT-450のPAに入れて前回と同じプログラムでやったりもしましたが、その結果も変わらず。
また、前回もそうですが、2-toneのFFTのグラフはエキサイタ(HermesやUSRP1)をfull-duplexで動作させて表示したものですが、他の受信機でもモニターして大きな差が無いことは確認しています。

ドライバ、ファイナルに関してデバイスとしては同じものを使っているので、似たような結果が出るかと思ったのですが、予想は裏切られました。もう少し実験を行いながら原因についても調べてみたいと思っています。

実際にはANANが来たのは最近で、準備はUSRP1+FT-450でやっていたわけで、こっちの結果だけ見てたらエントリも書かなかったかも知れません。
他のPAも試してみたいところですが、手元には他に無いのが残念です。
コメント (4)