goo blog サービス終了のお知らせ 

JI3GAB/blog

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

デジタルプリディストーションを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)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« デジタルプリディストーショ... | トップ | OpenHPSDR版PowerSDRにアダプ... »
最新の画像もっと見る

12 コメント(10/1 コメント投稿終了予定)

コメント日が  古い順  |   新しい順
Unknown (JI3OPT)
2013-10-01 22:42:19
こんなにできるのがすばらしいです。twitter に書いてたことですけど、高次歪がとれない、というのは、単に処理帯域幅以上だったということはないのですか? 
返信する
高次歪み (ji3gab)
2013-10-02 11:02:20
ども。お、珍しくコメントがついてると思ったら君でしたか。いや、ありがとう。これ組み込むのは結構疲れました。まだまだですけど。まあ一応動いて良かったです。

処理帯域幅以上というのは、何が何の帯域幅以上なんですか? 処理帯域幅の方はサンプリング周波数(ベースバンドで処理している)のことでしょうか?
返信する
すげ~~~ (JI1ANI/福井)
2013-10-02 22:35:15
やましたね。SDRで使ってみたくなりました・・・・。
返信する
Re: すげ~~~ (ji3gab)
2013-10-03 01:00:38
福井さんこんばんは。コメントありがとうございます。是非誰かに追試してもらえたらなあと思ってます。
ただ、送信も出来るSDRのハードウェアで日本で気軽に入手出来るものってなかなか難しいんですよね。
返信する
Re: 高次歪み (ji3gab)
2013-10-03 01:02:33
送信側のベースバンドでPDをかけるところのサンプリングレートが低いということでしょうか。ANAN/HERMESではそこは48kHzという制約があります。
返信する
使えるSDR無線機は・・・ (福井)
2013-10-07 12:29:47
こちらのブログで紹介させていただきました。
実験できるのはANANの他にFlexRadio辺りでしょうか?FlexRadioで実験できると、結構ユーザーがいるように感じますが・・・。
普通の無線機の出力をPCサウンドカードに取り込んで、別途、マイク入力した信号にプリディストーション加工してから無線機に入力するような形なら、だれでも実験できますが、取り込み方が難しいですね。
返信する
Re: 使えるSDR無線機は・・・ (ji3gab)
2013-10-07 20:17:39
ブログで紹介していただきありがとうございます。
今回のPowerSDR改そのものでは残念ながらHermesをベースとしたSDRでしか動作しません。特にHermesに依存している部分はないので、Flex5000でもFlex版のPowerSDRに同じような改造を施せば動くはずですが、今は手元に機械がないので確認が出来ません。
Flex3000や1500では多分単体ではfull-duplexで動作させられないと思います。他にもう一台SDR受信機を用意して…みたいな工夫が必要です。
Softrockのような送信機と受信機の組み合わせも多少改造すれば行けるはずです。
普通の無線機でやってみるのも面白そうですが、アナログ部分でALCやAGCのようなゲインを可変させる要素があるとダメですね。
返信する
ALCがありましたね (福井)
2013-10-08 12:23:04
AGCはOffにできる無線機もありますが、ALCは改造しないとダメですね。
単体full-duplex必須了解です。うーん、ハードル高くなっちゃいますね。やはりエンジニアリングサンプル価格の時に購入すべきでした・・・・
返信する
単体full duplex (ji3gab)
2013-10-08 21:31:49
基本的には単体でfull duplexで動くSDRを想定してやっていますが、必須かと言われると必ずしもそうではありません。要するに送信波をちゃんとモニター出来るようになっていればOKです。
モニター用の受信機と送信機は周波数が安定であれば全く同じ周波数でなくてもいいのですが、同じクロックを基準としていて同一周波数の場合が一番処理が楽になります。
とは言え、やはり単体でfull duplexで動作するDDC/DUCベースのエキサイタやトランシーバが容易に入手出来るようになるといいですね。
返信する
周波数の一致 (福井)
2013-10-09 12:27:26
周波数の安定を突き詰めると、やはり同じクロックに行き着くと思うのです。位相比較とかするならミリHz単位で一致していないと良い結果はでないのではないかと思います。
IC7800のメインとサブ受信機の周波数は一致していると思ったら、実は0.4HzほどDDSでズレていたことがあって、AF段でのノイズキャンセル効果にフェーディングがかかって困ったことがあります。
なので、ズレるなら一緒に同じようにズレて、相対関係が保てることの方が重要なのではないかと思った次第です。
返信する

コメントを投稿

サービス終了に伴い、10月1日にコメント投稿機能を終了させていただく予定です。

ソフトウェアラジオ」カテゴリの最新記事