手習ひデジタル信号処理(59) Scilab、入力信号定義用の関数を手作り

Square
Joseph Halfmoon

前回はScilab上で「離散時間信号」ぽいプロットができるようになったので、今回は「離散時間信号」ぽい入力信号を生成する関数を準備したいと思います。必要に迫られてその場その場で「誤魔化して」きたのが今までの実体。これを反省、事前にある程度「汎用」に使える「信号源」を用意しておこうという目論見です。

“手習ひデジタル信号処理(59) Scilab、入力信号定義用の関数を手作り” の続きを読む

手習いデジタル信号処理(58) Scilab、連続時間信号と離散時間信号のプロット

plotSampleCD
Joseph Halfmoon

本シリーズ、ScilabとOctaveにはお世話になっておりますが知らん事多いなと痛感。そこで使い方、といってもデジタル信号処理に使いそうな部分を改めて手習ひさせていただくことにいたしました。初回は離散時間信号のプロットです。今までテキトーにプロットして離散信号なのに連続信号っぽいプロットになってしまった件もあり。

“手習いデジタル信号処理(58) Scilab、連続時間信号と離散時間信号のプロット” の続きを読む

手習ひデジタル信号処理(57) Keil Cloud StudioでSDRソースをビルド

SDR_IF_F446RE
Joseph Halfmoon

最近Arm社Online Compilerを直接は開けなくなりました(まだ使えますが。)今後は否が応でもKeil Studio Cloudのようです。しかし、三上先生のSDRの御ソースはOnline CompilerでMbed OS2前提です。今回はKeil Studio Cloudへの移行を試みてみました。

“手習ひデジタル信号処理(57) Keil Cloud StudioでSDRソースをビルド” の続きを読む

手習ひデジタル信号処理(56) SDR、AM復調できてもまだやることがあったデス

BlockDiagram
Joseph Halfmoon

前回「三上先生ツール」のおかげでSDRのAM受信機の動作は復調までバッチリ、と思ったらいつもの早合点でした。そのままDAしたらスピーカがならせると思うなよ、という感じです。CICフィルタのせいで減衰している高域を持ち上げ、信号に載っている直流成分を除去し、受信強度による音量の変動をAGCすることが必要だと。先は長い。 “手習ひデジタル信号処理(56) SDR、AM復調できてもまだやることがあったデス” の続きを読む

手習ひデジタル信号処理(55) SDR、三上先生ツールで全体動作を納得?

SDR_AM_BLKDiagA
Joseph Halfmoon

前回まででAMラジオ受信のSDR、ひととおり「部品」を手習ひできた感じです。しかし木を見て森を見ず。全体像をどう把握したものか。しかしお見通しでした。全体像が理解しやすくなるPC上のツールを三上先生がご用意くださっとります。三上先生ツールを動かしたら一目瞭然だわ、AMラジオの受信。今回はツールを動かしただけ。
“手習ひデジタル信号処理(55) SDR、三上先生ツールで全体動作を納得?” の続きを読む

手習ひデジタル信号処理(54) SDR、ダウン・サンプラ後段用のFIRフィルタ

downSamplingLowPassBlockDiag
Joseph Halfmoon

前回はCICフィルタを使ったダウンサンプラでした。しかしこれ一発でダウンサンプリングが終わるわけではなかったです。もう一回ダウンサンプリングやってようやく目標のサンプリング周波数まで落ちるんだと。2段目のダウンサンプラではFIRフィルタを使っているのですが、この特性が前段のCICと「補完的」なんだとか。 “手習ひデジタル信号処理(54) SDR、ダウン・サンプラ後段用のFIRフィルタ” の続きを読む

手習ひデジタル信号処理(53) SDR、CICフィルタを使うダウン・サンプリング

CIC_N_1
Joseph Halfmoon

前回は直交信号発生器でした。今回メインはダウン・サンプラです。しかし、ここで前々回「やった」CICフィルタが再登場します。CICフィルタを積分器部分と櫛型フィルタ部分に分け、その中間にダウンサンプラを組み込むことで櫛型フィルタ部分を一挙に簡単化するという大技を繰り出すためです。この定番を最初に考えついた人は誰なのかな?
“手習ひデジタル信号処理(53) SDR、CICフィルタを使うダウン・サンプリング” の続きを読む

手習ひデジタル信号処理(52) SDR、直交信号発生器、linux上のg++で動作確認

594kHzWave
Joseph Halfmoon

前回はCICフィルタの特性だったですが、今回はNCO(Numerically-Controlled Oscillator)、数値制御発振器です。搬送波周波数のSIN波とCOS波を同時生成できればよい、と。今回も朧げな記憶の奥底に最近やったような感じがします。同じことをやっても面白くないのでLinux上のgccで実習。 “手習ひデジタル信号処理(52) SDR、直交信号発生器、linux上のg++で動作確認” の続きを読む

手習ひデジタル信号処理(51) SDR、「CICフィルタ再び」Scilabでgainplot

CIC_SDR_GAIN
Joseph Halfmoon

前回はアンダーサンプリングでした。今回はCICフィルタです。途中までやりかけて気づきました。僅か2か月ほど前にCICフィルタやってました。年寄りの忘却力は強力。既に頭の中から抜けてました。前回とは目的は違いますがCICはCIC、でも微妙に記号など違っていたので「チョイ直し」でお茶を濁しますです。すみません。 “手習ひデジタル信号処理(51) SDR、「CICフィルタ再び」Scilabでgainplot” の続きを読む

手習ひデジタル信号処理(50) SDR、アンダーサンプリング、ナイキスト周波数より高い信号

UnderSamplingEC
Joseph Halfmoon

前回、三上先生のサンプルプログラムで、甲子園中継が受信できたと喜びました。しかし1点疑問あり。サンプリング周波数は900kHz(ナイキスト周波数は450kHz)なのに、受信したNHK第1放送(東京)は594kHzです。なぜ受信できるの?ここで登場するのがアンダーサンプリングとBPF(バンド・パスフィルタ)です。 “手習ひデジタル信号処理(50) SDR、アンダーサンプリング、ナイキスト周波数より高い信号” の続きを読む

手習ひデジタル信号処理(49) SDRで高校野球、甲子園中継(NHK第1)受信OKよ

SDR_DUT
Joseph Halfmoon

前回までに、Arm Cortex-M4コアのSTM32F446マイコンでの「ダイレクト・サンプリングSDR実験」用フロントエンド回路が出来上がりました。これからSDRのお勉強に入りますが、初回は早速AMラジオを受信してみます。なんたって三上先生のサンプルプログラムのバイナリがあるので、書き込めば動く筈。

“手習ひデジタル信号処理(49) SDRで高校野球、甲子園中継(NHK第1)受信OKよ” の続きを読む

手習ひデジタル信号処理(48) 続SDRの準備、RFフロントエンド部組み立て、振幅特性

NJU77701
Joseph Halfmoon

前回は、ダイレクト・サンプリングSDRの準備として、全然RFでない最後の音声出力部分、HT82V739使ったスピーカアンプ回路を組み立てて動作確認しました。今回はRFに向き合う高周波アンプとバンドパスフィルタを組み立てます。まあAMラジオが対象なので526.5kHzから1620kHzですが、ともかくRFフロントエンド。
“手習ひデジタル信号処理(48) 続SDRの準備、RFフロントエンド部組み立て、振幅特性” の続きを読む

手習ひデジタル信号処理(47) 新シリーズSDRの準備はスピーカアンプ回路の組み立てから

HT82V739
Joseph Halfmoon

前回で工学社『「Armマイコン」プログラムで学ぶデジタル信号処理』を読み終わりました(読んでも直ぐに忘却力を発揮する年寄りです。)「その先」ということでCQ出版社『Armマイコンでつくるダイレクト・サンプリングSDR』を読み始めようという魂胆です。同じ三上先生の御本、そしてNucleo-F446ボードで実験できるもの。

“手習ひデジタル信号処理(47) 新シリーズSDRの準備はスピーカアンプ回路の組み立てから” の続きを読む

手習ひデジタル信号処理(46) FFTによるFIRフィルタ、外からみたら結果は同じ

BodeGain
Joseph Halfmoon

今回はFFT使ったFIRフィルタです。以前に「普通に時間領域」でFIRフィルタしていたもの。今回は、入力信号もフィルタ係数もFFTをかけて周波数領域で乗算してから、逆FFTで時間領域の信号に戻すのだ、と。無限の長さの入出力信号を小分けにするためには重複保持法使うんだとか。しかしオンラインコンパイラの件気になるのデス。

“手習ひデジタル信号処理(46) FFTによるFIRフィルタ、外からみたら結果は同じ” の続きを読む