python関連のファイルです。
フィルタ係数の設計に使用したJupyter notebookです。
- SSB-Filter-Design.ipynb : SSBモード用の1300Hz LPF IIRフィルタ設計
- CW-Filter-Design.ipynb : CWモード用の150Hz LPF IIRフィルタ設計
- TLV320AIC3204-1st-IIR-HPF.ipynb : Codec DSP用DCリジェクトHPFフィルタ
CentSDRをスクリプトやコマンドラインから制御するための、モジュール兼コマンドです。 シリアル(USB-CDC)のコマンドを、Pythonスクリプトで行うものです。内部バッファの波形をプロットすることもできます。
- python 2.7
- pyserial
波形表示をするにはオプションで下記が必要です
- numpy
- matplotlib
シリアルポートを指定する必要があります。環境変数CENTSDR_DEVICE
、または-d
オプションで指定します。スクリプトの冒頭のDEFAULT_DEVICE
を修正してもOKです。
$ export CENTSDR_DEVICE=/dev/ttyACM1
$ ./centsdr.py -d /dev/cu.usbmodem401 -p 0
$ CENTSDR_DEVICE=/dev/cu.usbmodem401 ./centsdr.py -p 0
$ ./centsdr.py -h
Usage: centsdr.py [options]
Options:
-h, --help show this help message and exit
-d DEV, --dev=DEV device node (default from env var CENTSDR_DEVICE)
-F FREQ, --freqeucy=FREQ
set tuning frequency
-G GAIN, --gain=GAIN gain (0-95)
-V VOLUME, --volume=VOLUME
set volume
-A AGC, --agc=AGC set agc
-M MODE, --mode=MODE set modulation
-C MODE, --channel=MODE
set channel
-P, --power show power
-s, --show show current setting
-S SHOWARG, --show-arg=SHOWARG
show specific setting
-p BUFFER, --plot=BUFFER
plot buffer
-l, --loop loop continuously
コマンドラインからの制御例を示します。オプションは複数同時に指定できます。
$ ./centsdr.py -F 27500000
$ ./centsdr.py -M fm
$ ./centsdr.py -V 10
$ ./centsdr.py -A mid
$ ./centsdr.py -G 40
$ ./centsdr.py -s
tune: 27500300
volume: 10
mode: fm
gain: 60
channel: 8
agc: manual
$ ./centsdr.py -P
-73.1
波形データが保存されているバッファ番号を指定します。
- 0: Capture buffer
- 1: Audio play buffer
- 2: intermediate buffer 1
- 3: intermediate buffer 2
$ ./centsdr.py -p 0
クローズは、ウィンドウのクローズボタンです。Ctrl-Cでは消えません。
-l
を指定すると連続して表示を行います。
$ ./centsdr.py -p 0 -l
こちらの停止はCtrl-Cです。クローズボタンでは消えません。
モジュールとしてimportしてスクリプトで使用することができます。
from centsdr import CentSDR
sdr = CentSDR()
sdr.set_tune(27500000)
sdr.set_mode('fm')
sdr.set_volume(20)