手習ひデジタル信号処理(65) Scilab、FIRフィルタの係数求めるついでに周波数特性

filtMagPlot
Joseph Halfmoon

前回はFIRローパスフィルタの係数を求め、求めた係数を使って「単位」インパルス入力信号をフィルタして時間応答を求め、さらにそれをFFTして周波数特性のプロットをいたしました。まどろっこしいデス。フイルタ係数を求めるときに「ついでに」周波数特性のプロットも見て、それからOKしたいです。知らんけど。今回は微妙な改善? “手習ひデジタル信号処理(65) Scilab、FIRフィルタの係数求めるついでに周波数特性” の続きを読む

手習ひデジタル信号処理(64) Scilab、FIRフィルタの係数求めてフィルタしてみるの回

ImpluseResponse
Joseph Halfmoon

前回は差分方程式をループで回すという「原始的」な方法で1次のIIRフィルタの時間応答を計算してみました。今回はScilabのネイティブ機能を使って、100次のFIRフィルタの応答を「1撃」で計算してみたいと思います。100次のフィルタの係数の計算もScilabに「お任せ」。中身はよくわからないけれど楽ちん。いいのか?
“手習ひデジタル信号処理(64) Scilab、FIRフィルタの係数求めてフィルタしてみるの回” の続きを読む

手習ひデジタル信号処理(63) Scilab、差分方程式を直接計算、1次IIRフィルタ

outputFFTplot
Joseph Halfmoon

前回前々回とScilab上で伝達関数から周波数応答を求めるのを練習していました。しかし、そういえば、ということで考えてみると差分方程式が与えられているのであれば、差分方程式から直接、時間応答が求まるのを練習してないじゃん、と。今回はそこんトコロを練習してみます。

“手習ひデジタル信号処理(63) Scilab、差分方程式を直接計算、1次IIRフィルタ” の続きを読む

手習ひデジタル信号処理(62) Scilab、伝達関数H(z)から位相プロット、Fs対応版

phasePlotLog
Joseph Halfmoon

正規化周波数表示はカッコいいけど実際の周波数でないと実感がわかないなどとブーたれて、前回は伝達関数からゲインプロットを実周波数で表示する関数を作ってみました。今回は、位相プロットで実周波数表示を行う関数を作ってみたいと思います。素人が良く理解しないまま試行錯誤しているのだけれども大丈夫か?自分。 “手習ひデジタル信号処理(62) Scilab、伝達関数H(z)から位相プロット、Fs対応版” の続きを読む

手習ひデジタル信号処理(61) Scilab、伝達関数H(z)からゲイン線図、Fs対応版

gainPlot
Joseph Halfmoon

前回は暫定版ですがFFT表示用の関数を作って多少お楽に。今回は以前から忸怩たる思い?をしてきた伝達関数からゲイン線図をプロットする方法を「改良」したいと思います。いつも正規化周波数に対するプロット。カッコイイお作法ではあるものの、具体的な周波数が入らないとイメージがわかない年寄です。実サンプリング周波数を与えたいです。

“手習ひデジタル信号処理(61) Scilab、伝達関数H(z)からゲイン線図、Fs対応版” の続きを読む

手習ひデジタル信号処理(60) Scilab、FFT表示用関数「とりあえず版」追加

FFT0_mag
Joseph Halfmoon

前回入力信号を生成する関数群を作成してみました。前々回に時間領域で離散時間っぽいプロットはできるようになってます。今回は、周波数領域でプロットする関数です。Scilabには部品となる関数は用意されているのですが、これ使えばいい的なものはないみたいっす。目標はAnalog Dicovery2の周波数プロット画面ですが。

“手習ひデジタル信号処理(60) Scilab、FFT表示用関数「とりあえず版」追加” の続きを読む

手習ひデジタル信号処理(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++で動作確認” の続きを読む