おじさん工房 BBS 593173


SDR-3 ヒルベルト変換フィルタのオプション

1:ji1udd :

2019/06/28 (Fri) 23:01:48

SDR-3な皆様へ

JA3GSEさんのホームページで SDR-3 の記事を目にしたのがきっかけとなり、ヒルベルト変換フィルタのオプションを作ってみました。
https://github.com/ji1udd/SDR-3 の Option1 になります。

特性については、言葉での説明は難しいので JA3GSEさんの HP を是非ご覧下さい。急に評価をお願いしたのですが快く引き受けて下さり速攻で評価して頂きました。
JA3GSEさんのHPは大変詳しく解説をされており、また本件以外にも参考となる情報満載ですので、必見かと思います。

2:やどさん :

2019/06/30 (Sun) 14:41:10

https://bbs6.fc2.com//bbs/img/_448700/448683/full/448683_1561873270.jpg ji1uddさん 皆様 こんにちは!

昨日からJA3GSE OMのホームページずっと見てました。

SDR-3のSBB音声を追及された記事やGPSによるSI5351Aの周波数ロック回路とか、スペアナ測定結果などとても興味深く飽きないです。
それにHAMSTOOLやLCフィルターの設計ツール(Excel)やマイクリミティングアンプにOPA2677を使用した低電力パワーアンプなどなど、とても参考になります。

あと、「これで SDR-3 は音に”うんちく”を述べる、7MHzや3.5MHzのOM達も一目置く存在になったと自負しています。」という一文が素敵です!


でも、Hilbert変換(PHAS)SSB音声は200Hz以下がカットされている事や低域の逆サイドの漏れなど、指摘されないと全然気が付かない自分はだめですぅ qrz

それで、以前に似たような投稿もあったな?と思いながら、再度(何回目だろう)トラ技2018年9月号も読み返してました。
→ カットオフ周波数を200Hzから100Hzへ エフイーエムさん 2019/02/06


●PHAS方式(PSN)では、Hilbertフィルターが肝なのですね

>既におじさん工房の「小川さん」が元のソースファイルにヒントを記述していたのですが、(JA3GSE OM)

これは ji1uddさんが“Option1”に追加された修正内容と思って宜しいでしょうか?

つまり、Option1 適用により
 127tap fs=12kHz freq=240-5760Hz 80dBの Hilbertフィルターの選択を止めて、
 255tap fs=12kHz freq=96Hz-5904Hz を適用し、低音域を延ばすとともにtapを127から255にして逆サイドの漏れも改善する。




・添付画像は、石川高専 山田洋士 研究室ホームページ Digital Filter Design Services 「ヒルベルト変換器の設計」で係数を求めてみた結果です。
http://dsp.jpn.org/dfdesign/fir/hil-input.shtml


・あと、TT@北海道さんのブログが理解に役に立ちましたので URLとその記事を一部貼っておきます。
https://ttrf.tk/posts/2015-03-22-hilbert-transform-ssb-generation-ad9857-nucleo/

「さて変調ですが、まずは、変調モードとしてSSBを試してみます。SSBを生成するためには、音声の実信号を、複素信号に変換します。このとき、正または負いずれか片側の周波数成分だけを取り出すようにします。この変換をするのがヒルベルト変換です。」
「ヒルベルト変換の計算はFIRと同様ですが、係数列は中心から前後で符号を反対にした対称な形をしています。また交互に0になっています。これらの性質を使って計算量を減らすようにします。」
「ヒルベルト変換は、タップを途中で打ち切っている関係上、0Hzで完全にカットされるわけではなく、少々逆サイドへ信号がはみ出てしまうようです。」
「(追記)考えてみれば当然の話で、127タップで、サンプリングレートが48kHzであれば、48000/127でおよそ400Hzですから、それ以下はFIRで素通りになるのは当たり前の話でした。50Hzまで欲しければあと8倍タップを増やすか、レートを下げるかのいずれかです。(追記終)」

//
3:ji1udd :

2019/06/30 (Sun) 15:43:17

やどさん、こんにちは。

「小川さんのヒント」というのは、
私が JA3GSE 辻さんのHPを拝見して、Hilbertフィルタを 127タップから255タップ化してみようと思い、オリジナルのソースコード(hilbert_coeff.c)を見たら、既に 255タップの係数の記述が存在していたということを意味してます(^^)

Option1では、このあらかじめ記述されていた係数は使用せずに、もう少しチャレンジした係数値となってます。

係数を求めるのに使用したツールはやどさんが使われたものと同じ石川高専のHP上ツールです。
このHPで表示されるグラフが小さいので別途でトラ技'18/9月号の P.93の図4-b のグラフを描ければ良いのですが、わからずにいます。#有償ツールだと手が出ませんけど。


実は、何となくレベルですけど、群遅延特性がフラットなFIRを使っているPHAS方式が好みだったりします(^^)

4:やどさん :

2019/06/30 (Sun) 20:04:50

ji1uddさん こんにちは!

>Hilbertフィルタを 127タップから255タップ化してみようと思い、オリジナルのソースコード(hilbert_coeff.c)を見たら、既に 255タップの係数の記述が存在していた

ありがとうございます、了解しました。
確かに!"hilbert_coeff.c"にすでに255tapの係数が入っていましたね。
なぜ200Hzの逆サイドバンドが出る127tapをにしてあったのかな?
なんて思いましたが、JA3GSEさんのように特性を追及しても改善修正できるようなソースにしてあったのですね。。凄すぎ~ (^^;

→ "hilbert_coeff.c"
#if HILBERT_TAP==255
// 255tap fs=12kHz freq=110-5890Hz 80dB
float hilbert_coeff[64] = {


はじめ、石川高専webツールだとa0からa255まであるけど、ソースの係数は hilbert_coeff[64]の64個?
と思っていたのですが、TT@北海道さんの「計算量を減らす」という記事で64で良いと分かった次第です。

あ、群遅延特性グラフ、確かにフラットですね!
→イマイチ分かってませんが 汗;

//
5:笛吹きおじさん :

2019/06/30 (Sun) 22:29:56

皆さま、今晩は。
その昔、3.5MでJA3GSE局とそのお仲間のQSOをよく聞いていました。
当時、ポリフエーズ ネットワークが流行り私も、抵抗+Capの組み合わせのネットワークを作りTS850に繋いでQSOをしておりました。
抵抗+Capのネットワークは周波数特性がフラットではなく補正が必要でした。
その後、OPアンプのオールパス フィルタを10段くらいつなぎ40Hz~5KHzまでほぼフラットなものを作りQSOを楽しんでいました。
TS850にはオプションのDSPもあります。
自作PSNとDSPを切り替えて遊んでいました。モニタでは両者の音質はほぼ同じと思えました。

3.5Mはアンテナがなく7M及び14Mでオンエアーしていました。
SDR3には直接関係ありませんが、当時が懐かしくて書き込みさせて頂きました。
現在はマンション暮らしでアンテナも立てられず、そうこうしている内に免許も切れてしまいました。

昔の思い出です。

  • 名前: E-mail(省略可):
  • 画像:

Copyright © 1999- FC2, inc All Rights Reserved.