0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenModelicaによるアナログフィルタ(CRローパス)

Posted at

アナログ回路におけるCRローパスフィルタ

<利用事例>
1.スイッチ入力のチャタリング防止: 機械式スイッチの接点バウンスによるノイズを除去し、クリーンな信号を得る.

2.マイコンのリセット回路: 電源投入時や外部からのリセット信号のノイズを除去し、安定したリセット動作を確保する.

3.電源用ノイズフィルタ: 電源ラインの高周波ノイズを除去し、クリーンな電源を供給する.

4.オーディオ処理: 音声信号の高周波ノイズを除去し、音質を向上させる。特にバターワース型フィルタは、通過帯域の応答が平坦で適度に急峻なロールオフ特性を持つため、オーディオアプリケーションに適している.

5.センサーのアナログフロントエンド: センサーからの出力信号に含まれる高周波ノイズを除去し、信号品質を向上させることができる.

6.方形波から正弦波の抽出: 高調波をフィルタリングして方形波から基本周波数の正弦波を抽出する.

7.アナログ-デジタル変換前の信号処理: ADC入力前に高周波成分を除去し、エイリアシングを防止する.

8.カスケード接続による高次フィルタ: 複数のCRローパスフィルタをカスケード接続することで、より急峻な遮断特性を持つ高次フィルタを実現できる.

OpenModelicaを用いて簡単なCRフィルタの挙動をシミュレーション

抵抗RとコンデンサCの接続を間違えないように注意する.
(RC回路と混同しない)

CRフィルタモデル.JPG

CRフィルタによる出力電圧の挙動を確認

青色:パルス入力電圧
赤色:RCフィルタ後の出力電圧

CRフィルタ電圧.JPG

CR_filter.mo
model CR_filter
  Modelica.Electrical.Analog.Basic.Ground ground annotation(
    Placement(visible = true, transformation(origin = {0, -40}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
  Modelica.Electrical.Analog.Sources.PulseVoltage pulseVoltage(V = 5, period = 2, width = 50)  annotation(
    Placement(visible = true, transformation(origin = {-62, 2}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
  Modelica.Electrical.Analog.Sensors.VoltageSensor voltageSensor annotation(
    Placement(visible = true, transformation(origin = {34, 32}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
  Modelica.Electrical.Analog.Basic.Resistor resistor(R = 10000) annotation(
    Placement(visible = true, transformation(origin = {0, 4}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
  Modelica.Electrical.Analog.Basic.Capacitor capacitor(C = 10e-6) annotation(
    Placement(visible = true, transformation(origin = {-34, 42}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
equation
  connect(pulseVoltage.n, ground.p) annotation(
    Line(points = {{-62, -8}, {-62, -24}, {0, -24}, {0, -30}}, color = {0, 0, 255}));
  connect(voltageSensor.n, ground.p) annotation(
    Line(points = {{34, 22}, {34, -24}, {0, -24}, {0, -30}}, color = {0, 0, 255}));
  connect(resistor.n, ground.p) annotation(
    Line(points = {{0, -6}, {0, -30}}, color = {0, 0, 255}));
  connect(pulseVoltage.p, capacitor.p) annotation(
    Line(points = {{-62, 12}, {-62, 12}, {-62, 42}, {-44, 42}, {-44, 42}}, color = {0, 0, 255}));
  connect(capacitor.n, resistor.p) annotation(
    Line(points = {{-24, 42}, {0, 42}, {0, 14}, {0, 14}, {0, 14}}, color = {0, 0, 255}));
  connect(voltageSensor.p, capacitor.n) annotation(
    Line(points = {{34, 42}, {-24, 42}, {-24, 42}, {-24, 42}}, color = {0, 0, 255}));
  annotation(
    uses(Modelica(version = "3.2.3")));
end CR_filter;
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?