アナログ回路(18)-コイル(RL回路)

前回、MOSFETを使用して、コレクタ接地回路を作成してみました。MOSFETを使用したコレクタ接地回路に関しては、下記のページを参照してください。

アナログ回路(17)-MOSFET(ソース接地回路とドレイン接地回路)

今回は、RL回路を作成して使用して、コイルの動作をみていこうと思います。また、RL回路を式で表して、コイルの値や抵抗の値を変えてみてなぜそのような動作をするのか考えてみたいと思います。

使用する環境は下記のとおりです。

  • Windows10
  • LTspice XVII

下記のようなCR回路を構築しました。抵抗は 1Ω、コイルは 25μH です。

電源は下記のような設定になっています。

  • PULSE
  • Vinitial[V]:0
  • Von[V]:5
  • Trise[s]:1n
  • Tfall[s]:1n
  • Ton[s]:125u
  • Tperiod[s]:250u

シミュレーション結果は下記のようになります。

概ね125u秒後には、コイルに流れる電流は 5Aとなっており、コイルにエネルギーが蓄えられた状態になっていると思います。それでは、抵抗を 5Ω、コイルは 25μHにしてみます。シミュレーション結果は下記のようになります。

アナログ回路(17)-MOSFET(ソース接地回路とドレイン接地回路)

前回、MOSFETについてご紹介させていただきました。FETの特徴として下記のようなものが挙げられます。

  • ゲート・ソース間にかける電圧によってドレイン・ソースの間に流れる電流を制御する電圧制御素子ある。
  • ゲート・ソース間の抵抗が非常に高い,そのため入力インピーダンスの高い回路を設計できる。
  • ドレイン電流はある一定値以上流れない。

このMOSFETを使用して回路を構築してみたいと思います。下記のページを参照してください。

アナログ回路(16)-MOSFET

以前、トランジスタですが下記の3つの接地方式を紹介させていただきました。下記のページを参照してください。

  • エミッタ接地
  • コレクタ接地
  • ベース接地

アナログ回路(15)-トランジスタ(エミッター接地回路とコレクタ接地回路)

MOSFETも下記のようにこれらに類似した接地方式を構築できます。

エミッタ接地ソース接地
コレクタ接地ドレイン接地
ベース接地ゲート接地

トランジスタ同様、ソース接地とドレイン接地は使用する機会も多いと思いますので、これらの回路を見ていきたいと思います。使用する環境は下記のとおりです。

  • Windows10
  • LTspice XVII

まずは、ソース接地回路からです。前回下記のような回路を作成してみました。下記のページを参照してください。

アナログ回路(16)-MOSFET

本日はドレイン接地回路を作成してみたいと思います。

アナログ回路(16)-MOSFET

前回、バイポーラトランジスタについてご紹介させていただきました。バイポーラトランジスタを利用して電流を増幅することで、消費電流が大きいLEDを点灯させました。また、”エミッタ接地”、”コレクタ接地”、”ベース接地”のような接地方法があり、調べてみました。下記のページを参照してください。

本日は、MOSFETについて見ていきたと思います。MOSFETは、”Metal Oxide Semiconductor Field Effect Transistor”の略です。FETもトランジスタの一種でありますが、”バイポーラトランジスタ”のことをトランジスタと呼ぶことが多いです。FETの特徴として下記のようなものが挙げられます。

  • ゲート・ソース間にかける電圧によってドレイン・ソースの間に流れる電流を制御する電圧制御素子ある。
  • ゲート・ソース間の抵抗が非常に高い,そのため入力インピーダンスの高い回路を設計できる。
  • ドレイン電流はある一定値以上流れない。

MOSFETはスイッチング素子としてよく使われます。それでは、このMOSFETを使用して回路を構築してみたいと思います。

使用する環境は下記のとおりです。

  • Windows10
  • LTspice XVII

それでは、LTspiceを使用して、回路図を作成して、回路を作成したらシミュレーションを行いたいと思います。下記のような回路を構築しました。電源はドレイン側はDC5Vです。ゲート側は1msec間隔、Duty50%、電圧5Vのパルスになります。FETは”RUR040N02″を使用しました。

それでは、シミュレーション結果とデータシートを見ながらMOSFETにつてい理解を深めていきたいと思います。

アナログ回路(15)-トランジスタ(エミッター接地回路とコレクタ接地回路)

以前、トランジスタについてご紹介いたしました。LEDの消費電流が大きい場合、必ずしも電力元の流せる電流が足りているとは限りません。例えば、マイコンにIOピンをHiにして消費電流が大きいLEDを点灯させようとしても、電流が足りないと思います。そこでトランジスタを使用しました。トランジスタを利用して電流を増幅することで、消費電流が大きいLEDを点灯させました。下記のページを参照してください。

アナログ回路(8)-トランジスタ

本日は、もう少しトランジスタについて考えてみたいと思います。トランジスタですが下記の3つの接地方式があります。

  • エミッタ接地
  • コレクタ接地
  • ベース接地

エミッタ接地

エミッタを入出力の共通端子としてGNDにする方式です。電圧、電流の増幅率が大きく、汎用的に使用されています。

コレクタ接地

コレクタを入出力の共有端子としてGNDにする方式です。入力インピーダンスが高く、出力インピーダンスが低いので、インピーダンス変換に使われています。出力信号が入力信号の変化に追従するので、エミッタフォロワーとも呼ばれています。これは、以前下記のページで紹介した”電圧フォロワー回路”と類似した動作をします。

アナログ回路(10)-オペアンプ(電圧フォロア回路-バッファ回路)

ベース接地

ベースを入出力の共通端子としてGNDにする方式です。入力インピーダンスが低く、出力インピーダンスが高いです。少々扱いづらい回路ではありますが、高周波特性が良いので、高周波増幅の目的で使用されます。

これらの接地方式の特徴を下記の表にまとめてみました。

エミッタ接地コレクタ接地ベース接地
電圧増幅率1
電流増幅率1未満
入力インピーダンス
出力インピーダンス
入出力の位相関係反転非反転非反転

エミッタ接地とコレクタ接地は使用する機会も多いと思いますので、これらの回路を見ていきたいと思います。まずは、エミッタ接地回路からです。以前、下記のような回路を紹介致しました。

このような使い方であれば問題ないですが、使い方によってはこの回路図には問題が発生します。

アナログ回路(14)-オペアンプ(両入力端子-プラス電圧印可増幅回路)

前回、反転増幅回路、非反転増幅回路、差動増幅回路(減算回路)等をLTspiceを使用してシミュレーションをすることで理解を深めてきました。これらに関しては下記のページでご紹介しています。

反転増幅回路、非反転増幅回路に関して

アナログ回路(9)-オペアンプ(反転増幅回路・非反転増幅回路)

差動増幅回路(減算回路)、加算回路に関して

アナログ回路(11)-オペアンプ(加算回路、減算回路-差動増幅回路)

反転増幅回路、非反転増幅回路はよく入力の片側をGNDにして使用しているものをよく拝見します。上記のページで紹介しているサンプル回路もそうです。反転増幅回路の場合は、プラス入力端子側をGNDに、非反転増幅の場合は、マイナス入力端子側をGNDに接続しています。それでは、両入力端子にプラス電圧を印可した場合はどうなるのか気になります。両入力端子にプラス電圧を印可したものとして差動増幅回路があります。これはこれで、便利な回路であるのですが、いろいろな回路図を見ると反転増幅回路や非反転増幅回路で似たような回路で両入力端子にプラス電圧を印可した回路を見かけたりします。そこで今回は、反転増幅回路や非反転増幅回路で似たような回路で両入力端子にプラス電圧を印可した回路がどのような動作をするのか考えたいと思います。

使用する環境は下記のとおりです。

  • Windows10
  • LTspice XVII

それでは、早速、LTspiceを使用して、回路図を作成して、回路を作成したらシミュレーションを行いたいと思います。

アナログ回路(13)-オペアンプ(定電流回路)

前回は、微分回路と積分回路を構築しました。前回の内容に関しては下記のリンクを参照してください。

アナログ回路(12)-オペアンプ(微分回路、積分回路)

今回までに、抵抗を使用したLEDの点灯回路やトランジスタを使用したLEDの点灯回路を作成しました。前回までの内容に関しては下記のリンクを参照してください。

アナログ回路(2)-LED

アナログ回路(8)-トランジスタ

これらの回路は、LEDが発熱すると、LEDのVFが下がり、流れる電流が変わってしまいます。そこで、今回は、定電流回路を構築したいと思います。

使用する環境は下記のとおりです。

  • Windows10
  • LTspice XVII

それでは、LTspiceを使用して、回路図を作成して、回路を作成したらシミュレーションを行いたいと思います。

アナログ回路(12)-オペアンプ(微分回路、積分回路)

前回は、加算回路、減算回路(差動増幅回路)を構築しました。前回の内容に関しては下記のリンクを参照してください。

アナログ回路(11)-オペアンプ(加算回路、減算回路-差動増幅回路)

今回は、微分回路、積分回路を構築したいと思います。

使用する環境は下記のとおりです。

  • Windows10
  • LTspice XVII

それでは、LTspiceを使用して、回路図を作成して、回路を作成したらシミュレーションを行いたいと思います。

まずは、オペアンプを使用せずに微分回路と積分回路を作成してみます。まずは、微分回路です。

次に積分回路です。

このようにオペアンプを使用しなくても、微分回路と積分回路は構築できます。では、なぜオペアンプを使用するのでしょうか?

これは、電圧フォロア回路の時と同じです。オペアンプを使用しない微分回路の場合、R3の値を変更すると波形が変わります。カーブが緩やかになっています。

オペアンプを使用しない積分回路の場合、R4の値を変更すると波形が変わります。出力電圧が高くなっています。

そこで、オペアンプを使用して回路を分離してしまいます。微分回路の場合は、下記のようになります。

アナログ回路(11)-オペアンプ(加算回路、減算回路-差動増幅回路)

前回は、電圧フォロア回路(バッファ回路)を構築したいと思います。前回の内容に関しては下記のリンクを参照してください。

アナログ回路(10)-オペアンプ(電圧フォロア回路-バッファ回路)

今回は、加算回路、減算回路(差動増幅回路)を構築したいと思います。

使用する環境は下記のとおりです。

  • Windows10
  • LTspice XVII

それでは、LTspiceを使用して、回路図を作成して、回路を作成したらシミュレーションを行いたいと思います。

まずは、加算回路です。

下記のシミュレーション結果のように、このアンプからの出力は約 -2.0Vになります。

SDR(2)-RTL-SDRを使ってFM放送受信

前回は、「GRC」をインストールして実際に使用してみました。具体的には、cos波を出力してみました。前回の内容は下記より参照できます。

SDR(1)-GRCを使ってみる

今回は、「GRC」を使用して、FM放送を受信してみようと思います。使用するSDRデバイスは、「RTL-SDR」になります。下記のような流れで進めていきたいと思います。

  • 「RTL-SDR」のドライバをインストール
  • 「SDR#」を使用して、FM放送の受信
  • 「GRC」を使用してFM放送の受信

「GRC」でFM放送を受信してみる前に、「RTL-SDR」が「SDR#(受信した無線電波を処理してくれるソフトウェア)」を使用して動作するかどうか確認してみようと思います。

まずは、「RTL-SDR」のドライバのインストールからです。

「RTL-SDR」のドライバをインストールするときには、「zadig」というソフトウェアを使用します。「Windows10」に対応したドライバがないようなので、このようなソフトウェアが用意されているですかね?「SDR#」のパッケージに含まれていますので、まずは下記のサイトよりダウロードします。

https://airspy.com/download/

参考にですが、下記のサイトより直接「zadig」をダウンロードすることも可能です。

https://zadig.akeo.ie/

「SDR#」をダウロードしたら解凍します。その中の「install-rtlsdr.bat」を実行します。すると、「zadig.exe」が同じフォルダにダウンロードされます。「zadig」がダウンロードできたので、まずは、「RTL-SDR」をPCに接続します。私の場合最初は認識せずに、「Bulk-In, Interface (Interface 0)」と「Bulk-In, Interface (Interface 1)」が表示されていました。ここで私は間違って、ドライバの更新をしてしまい、「サウンド、ビデオ、およびゲームコントローラ」の「REALTEK 2832U Device」として認識してしまいました。この状態で、「SDR#」を試してみましたが、動作はしませんでした。そこでダウンロードした「zadig.exe」を実行して、ドライバを変更しました。「zadig.exe」を実行して、メニューの「Options」→「List All Devices」を選択します。

すると、下記のように「Bulk-In, Interface (Interface 0)」を選択できるようになります。「Bulk-In, Interface (Interface 0)」を選択したら「Replace Driver」を選択して、ドライバを変更します。

変更が完了したので、デバイスマネージャで確認すると、ユニバーサルシリアルバスデバイスに「Bulk-In, Interface」として認識されています。これでドライバの設定は完了です。

ダウンロードして解凍したSDR#フォルダの中にある「SDRSharp.exe」を実行します。すると、「SDR#」が起動します。

歯車マークを選択すると、デバイスの選択画面が右側に表示されました。現在、「AIRSPY」と選択されているので、これを、「RTL-SDR USB(Original)」に変更します。

もう一度歯車マークを選択すると、下記のようにRTL-SDR Controller画面が表示されます。ここで、RF Gainなどを設定できます。

あとは、Radioより「WFM」を選択して、中央に表示されている周波数をFM放送の周波数に設定します。

再生ボタン「▶」を押すと受信を開始します。FM放送が受信できました。これで、「RTL-SDR」の動作確認ができたので、次は「GRC」を使用してFM放送を受信してみたいと思います。「GRC」を起動して下記のようにボックスを配置して接続しました。

配置したボックスは、「RTL-SDR Source」「LowPass Filter」「WBFM Receive」「Audio Sink」「QT GUI Time Sink」「 QT GUI Range」になります。「RTL-SDR Source」は、ライブラリ→(no module specified)→Source→RTL-SDR Sourceをドラッグ&ドロップするか、ダブルクリックすることで、追加できます。まだ試していませんが、osmocom Sourceでも問題ないと思います。ここで、選局しています。「Low Pass Filter」は、ライブラリ→Core→Filters→Low Pass Filterをドラッグ&ドロップするか、ダブルクリックすることで、追加できます。ここで、高周波成分を除去しています。「WBFM Receive」は、ライブラリ→Core→Modulators→WBFM Receiveをドラッグ&ドロップするか、ダブルクリックすることで、追加できます。ここで、復調しています。

「Audio Sink」「QT GUI Time Sink」「QT GUI Range」に関しては、前回設定したので下記のサイトを参考にしてください。

SDR(1)-GRCを使ってみる

「RTL-SDR Source」ブロックで設定したパラメータは下記の通りです。その他はデフォルト値です。

  • Device Arguments = rtl=0
  • Sample Rate(sps) = samp_rate*50
  • Ch0:Frequency(Hz) = vairiable_qtgui_range_0 ※QT GUI RangeのID
  • Ch0:Gain Mode = Automatic

この「Device Arguments」に悩まされました。デバイスを引数で設定する必要があるようです。「Low Pass Filter」ブロックで設定したパラメータは下記の通りです。その他はデフォルト値です。

  • Decimation = 5
  • Sample Rate = sample_rate*50
  • Cutoff Freq = 150e3
  • Transition Width = 50e3

「WBFM Receive」ブロックで設定したパラメータは下記の通りです。その他はデフォルト値です。

  • Quadrature Rate = samp_rate*10
  • Audio Decimation = 10

「Audio Sink」ブロックはデフォルト値のままです。

「QT GUI Time Sink」ブロックで設定したパラメータは下記の通りです。その他はデフォルト値です。

  • Type = Float

「QT GUI Range」ブロックで設定したパラメータは下記の通りです。その他はデフォルト値です。

  • Default Value = 80e6
  • Stop = 100e6
  • Step = 1e5

これで、作成は完了したので、実行します。FM放送を受信することができました。

2023年1月28日 | カテゴリー : SDR | タグ : , , , | 投稿者 : prog

SDR(1)-GRCを使ってみる

SDRは、Software Defined Radioの略です。要するにソフトウェア無線です。従来はアナログ回路で構成されていた無線機器をソフトウェアによるディジタル信号処理に置き換えたものになります。SDRはディジタル信号処理を行うDSP(Degital Signal Proccessing)を利用した無線機器です。ハードウェアを変更することなく変調方式などのパラメータを変更することができます。

GRCは、GNU Radio Companionの略です。GRCは、ブロックを配置して繋いでいくことでプログラムを構築します。SDRの信号処理方法として、GNU Radioというオープンソースのソフトウェアが提供されていますが、プログラミングをしなくても操作ができるようにしたものが、GRCになります。今回、このGRCを使ってみようと思います。

まずは、インストールからです。GRCは、Windowsでは、動作しないと思っていたので、Ubuntuを用意してインストールしましたが、よくよく調べましたら、Windowsでもインストール可能でした。Ubuntuでのインストールは、下記のコマンドを実行することで、インストールできます。

sudo apt-get install gnuradio

それでは、cos波を生成して、音として出力してみたいと思います。下記のようにブロックを配置して、作成しました。

Single Sourceは、ライブラリ→Core→Waveform Generators→Singnal Sourceをドラッグ&ドロップするか、ダブルクリックすることで、追加できます。ここで、cos波を生成しています。

Audio Sinkは、ライブラリ→Core→Audio→Audio Sinkをドラッグ&ドロップするか、ダブルクリックすることで、追加できます。ここで、音声出力を生成しています。

QT GUI Time Sinkは、ライブラリ→Core→Instrumentation→QT→QT GUI Time Sinkをドラッグ&ドロップするか、ダブルクリックすることで、追加できます。ここで、画面出力を生成しています。

QT GUI Rangeは、ライブラリ→Core→GUI Widgets→QT GUI Rangeドラッグ&ドロップするか、ダブルクリックすることで、追加できます。ここでcos波の周波数を操作するスライダを生成しています。

SingleSourceのOutput TypeとQT GUI Time SinkのTypeはfloatにしています。Audio Sinkの入力タイプがfloatのためです。SingleSourceのFrequencyには、QT GUI Time SinkのID(今回は、variable_qtgui_range_0)を入力します。それ以外は、デフォルト値です。

これで、作成は完了したので、実行します。実行するとスピーカからの音と共に、cos波の波形が画面に出力されます。

先程、記載したように、Windowsでも動作ました。Windowsの場合は、下記サイトからインストーラがダウンロードできるので、ダウンロードしたファイルを実行することでインストールできます。

http://www.gcndevelopment.com/gnuradio/index.htm

同様にcos波を発生して音声として出力する仕組み作成しましたが、問題なく動作しました。

2023年1月21日 | カテゴリー : SDR | タグ : , | 投稿者 : prog