Project_OKI’s diary

エンジニアの勉強ブログ

RCローパスフィルタとCRハイパスフィルタのカットオフ周波数などの自動計算

RCローパスフィルタとCRハイパスフィルタのカットオフ周波数などの自動計算

この記事では、RCローパスフィルタ及びCRハイパスフィルタの下記計算を行う。

 入力:

 ・抵抗R[Ω]

 ・コンデンサC[uF]

 ・周波数[Hz]

 ・入力電圧[V]

 出力:

 ・カットオフ周波数[Hz] (-3dB(1/√2=0.707倍)になる周波数)

 ・ゲイン[倍] (設定した周波数のゲイン)

 ・出力電圧[V]

 

また、それぞれの計算方法について記載する。

 

1. RCローパスフィルタとCRハイパスフィルタの自動計算

・RCローパスフィルタ

・CRハイパスフィルタ

 

入力

・抵抗R[Ω]入力

コンデンサC[uf]入力

・周波数f[Hz]入力

・Vin[V]入力

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

RC(ローパスフィルタ)回路計算結果

・RCローパスフィルタのカットオフ周波数 [Hz]

・RCローパスフィルタのゲイン [倍]

・RCローパスフィルタの出力電圧[V]

 

CR(ハイパスフィルタ)回路計算結果

・CRハイパスフィルタのカットオフ周波数 [Hz]

・CRハイパスフィルタのゲイン [倍]

・CRハイパスフィルタ出力電圧[V]

 

2. RCローパスフィルタの計算式

※抵抗R[Ω]、コンデンサ[f]、円周率π、とする。

 (1) カットオフ周波数[Hz]の算出

  ・カットオフ周波数 =  1 / (2*π*R*C)

 (2) ゲイン[倍]の算出

  ・ゲイン = 1 / √(1+(2πf*R*C)^2)

 (3) 出力電圧[V]の算出

  ・出力電圧 = 入力電圧 * ゲイン

 

3. CRハイパスフィルタの計算式

※抵抗R[Ω]、コンデンサ[f]、円周率π、とする。

 (1) カットオフ周波数[Hz]の算出

  ・カットオフ周波数 =  1 / (2*π*R*C)

 (2) ゲイン[倍]の算出

  ・ゲイン = 2πf*R*C / √(1+(2πf*R*C)^2)

 (3) 出力電圧[V]の算出

  ・出力電圧 = 入力電圧 * ゲイン

 

参考:CRハイパスフィルタの『伝達関数』や『周波数特性』について

 

 

4. 計算プログラム

<!DOCTYPE html>
<!--
概要:反転増幅回路の計算ホームページ
・CR回路及びRC回路の画像を表示
・抵抗、コンデンサ、周波数、入力電圧の記入欄を用意
・記入した抵抗、コンデンサから周波数特性を算出
・記入した抵抗、コンデンサ、周波数からゲインを算出
・ゲインと入力電圧から、出力電圧を算出
-->
<html lang="ja" dir="ltr">

<head>
	<meta charset="utf-8">
	<title>CR回路計算ページ</title>
	<script type="text/javascript" src="js/calc.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> 
</head>


<body>
	<p>CR回路、RC回路の計算ページです</p>
	<p>抵抗値R[Ω],コンデンサC[uf],周波数f[Hz],入力電圧[V]を入力してください。</p>

	<!--増幅回路の入力フォーム  -->
	<p> 抵抗R[Ω]入力 <input type="text" size="15" id="res" value="0"></p>
	<p> コンデンサC[uf]入力 <input type="text" size="15" id="con" value="0"></p>
	<p> 周波数f[Hz]入力 <input type="text" size="15" id="freq" value="0"></p>
	<p> Vin[V]入力<input type="text" size="15" id="vin" value="0"></p>

	<p>-----------------------------------------------</p>
	<p>RC(ローパスフィルタ)回路計算結果</p>
	<p> RCローパスフィルタのカットオフ周波数 <input type="text" size="15" id="lowfilterfreq" value=0> [Hz]
	</p>
	<p> RCローパスフィルタのゲイン <input type="text" size="15" id="lowfiltergain" value=0> [倍]
	</p>
	<p> RCローパスフィルタの出力電圧<input type="text" id="lowfilterVout" size="15" value=0>[V]</p>

	<p>CR(ハイパスフィルタ)回路計算結果</p>
	<p> CRハイパスフィルタのカットオフ周波数 <input type="text" id="highfilterfreq" size="15" value=0>[Hz]
	</p>
	<p> CRハイパスフィルタのゲイン <input type="text" id="highfiltergain" size="15" value=0>[倍]
	</p>
	<p> CRハイパスフィルタ出力電圧<input type="text" id="highfilterVout" size="15" value=0>[V]</p>
	<br>

	<script>
 	///ページ読み込み完了後、javascriptを実行
	window.onload = function () {
		///定数宣言
		const GAIN = 20;
		/// 変数宣言
		let omeg;		//<ω = 2πfc
		let omegrc;		//<omegrc = ω*R*C
		let lcutoff_freq;	//<カットオフ周波数用変数		
		let lgain;		//<ゲイン
		let lvout;		//<出力電圧Vout用[V]変数
		
		///数値が変更した時関数を実行
		$("#res").change(Calc_RCcircuit);
		$("#con").change(Calc_RCcircuit);
		$("#freq").change(Calc_RCcircuit);
		$("#vin").change(Calc_RCcircuit);
		
		///関数の作成
/**	************************************************************** */
/**
 *	カットオフ周波数/関数
 *	@param	num		: 数値
 *	@return			: 2倍の値
 */
/**	************************************************************** */
		function Calc_RCcircuit() {
			console.log("Calc");
			 //R,C,,freq,Vinの値を取得
			 lres_value = $("#res").val();	//<R(抵抗値)の取得
			 lcon_value = $("#con").val();  //<C[uf]の値取得
			 lfreq_value = $("#freq").val();//<f(周波数)[Hz]の値取得
			 lvin_value = $("#vin").val();	//<V(入力電圧)[V]の取得
			 
			 //計算用変数の計算
			 omeg = 2*Math.PI*lfreq_value;	//<ω = 2πf
			 ///omegrc = ω*R*Cの計算結果
			 omegrc = omeg * lres_value*lcon_value/1000000
			 
			///RCローパスフィルタ回路計算
			///カットオフ周波数  = 1/(2*π*R*C)
			lcutoff_freq = 1/(2*Math.PI*lres_value*lcon_value/1000000);
			
			///ゲイン = 1/√(1+(2πf*R*C)^2)
			lgain = 1/Math.sqrt(1+(omegrc)**2);
	
			///出力電圧 = 入力電圧 * ゲイン
			lvout = lvin_value * lgain;
			
			//計算結果の表示			
			$("#lowfilterfreq").val( lcutoff_freq ); //<カットオフ周波数を表示
			$("#lowfiltergain").val(lgain);	//<ゲインを表示
			$("#lowfilterVout").val(lvout);	//<出力電圧を表示
			
			///CRハイパスフィルタ回路
			///ゲイン = ωRC/(√1+(ωCR)-2)
			lgain = omegrc/Math.sqrt(1+(omegrc)**2);
			
			///出力電圧 = 入力電圧 * ゲイン
			lvout = lvin_value * lgain;
			
			///計算結果の表示
			///カットオフ周波数  = 1/(2*PI*R*C) (RCローパスと同じ)
			$("#highfilterfreq").val( lcutoff_freq );//<カットオフ周波数を表示
			$("#highfiltergain").val( lgain );//<ゲインを表示
			$("#highfilterVout").val(lvout);//<出力電圧を表示		
		}
	}
	</script>
</body>

</html>

 

 

 HTMLの基本の参考:

 ・HTML の基本 - ウェブ開発を学ぶ | MDN

HTMLのidとは?使い方やclassとの違いについても解説 | 侍エンジニアブログ

【HTML】id属性とは? 使い方と特徴を解説 | ZeroPlus Media

 ・HTML Living Standardリファレンス

 javascript参考

 ・Document: querySelector() メソッド - Web API | MDN

 

関連記事

過去の記事: