{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# ARMマイコンでつくるダイレクト・サンプリングSDRを試す\n",
"トラ技2021/01から2021/05で連載されていた「ARMマイコンでつくるダイレクト・サンプリングSDR」(以下ARM-SDRと略す)を実際につくって試しみます。\n",
"\n",
"記事を参考に作ったARM-SDRです。\n",
"\n",
"\n",
"\n",
"## トラ技2021/01のおさらい\n",
"\n",
"ブレッドボードの配線をトラ技2021/01の図3から引用します。\n",
"\n",
"\n",
"\n",
"### NUCLIEO-F446REのアプリ\n",
"NUCLIEO-F446REのアプリは、mbedのサイトで公開されています。「SDR」で検索すると「SDR_AM_Rx_CIC_FIR」のプロジェクトが見つかりました。\n",
"\n",
"富山の放送局に合わせてmain.cppのF_C_配列を以下のように修正しました。\n",
"```C++\n",
"// 各放送局の搬送波の周波数,単位: Hz\n",
"const float F_C_[] = { 648.0e3f, // NHK 第1\n",
" 738.0e3f, // 北日本放送\n",
" 954.0e3f, // TBS ラジオ\n",
" 1035.0e3f, // NHK 第2 \n",
" 1134.0e3f, // 文化放送\n",
" 1242.0e3f, // ニッポン放送\n",
" 1422.0e3f}; // ラジオ日本\n",
"```\n",
"\n",
"### ARMでダイレクト・サンプリングができた理由\n",
"コラム1にも書いてありますが、NUCLIEO-F446REに搭載されているSTM32F446REは、フラッシュ・メモリのプログラムをノーウェイトでアクセスできることが大きいです。他のCPUで試す場合には、CPUクロックの他にフラッシュ・メモリのアクセス時間にも注意必要です。\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## RFフロントエンドについて\n",
"ここでの目的は、コラム2にあるAM受信機用アンプとバンドパスフィルタの総合周波数特性を求めることです。\n",
"\n",
"RFフロントエンドの回路をトラ技2021/01の図2から引用します(ハイパス・フィルター、バンドパス・フィルターの値は筆者が付記))。\n",
"\n",
"\n",
"\n",
"コラム2では、周波数特性を以下のように求めたそうです。\n",
"- OPアンプの周波数1MHzのオープン・ループ・ゲインが30dB, ゲインの減衰率が20dB/dec\n",
"- バンドパスフィルタの周波数特性は、4端子回路のF行列の縦続接続の関係を使用\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"OPアンプの増幅は、R1=1kΩ、R3=4.7kΩの非反転増幅とすると、\n",
"$$\n",
"G = \\frac{V_{out}}{V_{in}} = \\frac{R_1 + R_3}{R_1} = 5.7倍 \\simeq 15dB\n",
"$$\n",
"\n",
"NJU77701のデータシートの利得/位相 対 周波数 特性例を引用します。\n",
"この図から20dB/decの減衰率が求まります。\n",
"\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 4端子行列(F行列)\n",
"できるだけ覚えることを少なくして、特性を求めることを考えてみましょう。\n",
"\n",
"抵抗R、コンデンサーC、コイルLのインピーダンスは、$ Z_R = R, Z_C = \\frac{1}{sC}, Z_L = sL $となります。\n",
"\n",
"以下のような$ Z_1, Z_2 $の直列と並列のインピーダンスの回路について考えます(トラ技2013/8月号付録p26から引用)。\n",
"\n",
"\n",
"\n",
"この場合のF行列は、直列、並列のインピーダンスを表す2つのマトリックスの積で表すことができます。\n",
"\n",
"$$\n",
"\\begin{bmatrix}\n",
" V_1 \\\\\n",
" i_1\n",
"\\end{bmatrix} = \n",
"\\underbrace{\n",
" \\begin{bmatrix}\n",
" 1 & Z_i \\\\\n",
" 0 & 1\n",
" \\end{bmatrix}\n",
"}_{直列インピーダンス}\n",
"\\underbrace{\n",
" \\begin{bmatrix}\n",
" 1 & 0 \\\\\n",
" 1/Z_2 & 1\n",
" \\end{bmatrix}\n",
"}_{並列インピーダンス}\n",
"\\begin{bmatrix}\n",
" V_2 \\\\\n",
" i_2\n",
"\\end{bmatrix}\n",
"$$\n",
"\n",
"出力端子を開放したとき、$i_2 = 0 $なので、これからゲインGは、以下のようになります。\n",
"\n",
"$$\n",
"\\begin{bmatrix}\n",
" V_1 \\\\\n",
" i_1\n",
"\\end{bmatrix} = \n",
"\\begin{bmatrix}\n",
" 1 + Z_1/Z_2 & Z_1 \\\\\n",
" 1/Z_2 & 1\n",
"\\end{bmatrix}\n",
"\\begin{bmatrix}\n",
" V_2 \\\\\n",
" 0\n",
"\\end{bmatrix}\n",
"$$\n",
"\n",
"$$\n",
" G = \\frac{V_2}{V_1} = \\frac{Z_2}{Z_1 + Z_2}\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 4端子の特性\n",
"MATLAB互換のライブラリPython-Controlを使って4端子の伝達関数を求め、特性曲線を出力してみましょう。\n",
"\n",
"最初にPython-Controlをインストールします。\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"!pip -q install control"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"次に、$ Z_1, Z_2 $にバンドパス・フィルターの左のローパス・フィルター(LPF)の特性を計算します。\n",
"\n",
"$$\n",
"Z_1 = R + sL\n",
"$$\n",
"$$\n",
"Z_2 = \\frac{1}{sC}\n",
"$$\n",
"から$ G_L $は、次のようになります。\n",
"$$\n",
"G_L = \\frac{1}{LC s^2 + RC s + 1}\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
" 1\n",
"-----------------------------\n",
"7.26e-15 s^2 + 8.91e-08 s + 1\n",
"\n"
]
}
],
"source": [
"from control import matlab\n",
"\n",
"R = 270.0\n",
"L = 22.0e-6\n",
"C = 330.0e-12\n",
"# tfの引数のnumrator, denominatorは、sの次元の高い順に指定係数を配列で指定する\n",
"GL = matlab.tf([1], [L*C, R*C, 1])\n",
"print(GL)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"