マイクロコントローラの主な機能は、周辺機器を制御し、特定の通信とデータ処理を実現することです。マイクロコントローラはアルゴリズムの実装や複雑な計算の実行には向いていませんが、特定の状況では数学的演算が必然的に使用されます。 たとえば、マイクロコントローラがデータを収集しているとき、データにランダム エラーが発生します。ランダム エラーはランダムな干渉によって発生します。その特徴は、同じ量を同じ条件で測定すると、その大きさと符号が不規則に変化し、予測できないが、複数の測定結果は統計法則に従うことです。 ランダム干渉によって発生するエラーを克服するために、ハードウェアでフィルタリング技術を使用し、ソフトウェア アルゴリズムを使用してソフトウェアでデジタル フィルタリングを実装することができます。フィルタリング アルゴリズムは、多くの場合、システム測定および制御アルゴリズムの重要な部分であり、強力なリアルタイム パフォーマンスを備えています。
デジタル フィルタリング アルゴリズムを使用してランダム干渉エラーを克服すると、次のような利点があります。
制限フィルタアルゴリズムこの操作では、隣接する 2 つのサンプルを減算して増分を取得し、増分の絶対値を 2 つのサンプル間で許容される最大差 A と比較します。 A のサイズは、測定対象物の特定の状況によって異なります。最大許容差以下の場合、現在のサンプリングは有効です。それ以外の場合は、最後のサンプリング値がこのデータのサンプルとして取得されます。 アルゴリズムのプログラムコードは次のとおりです。
例: 制限フィルタ方式は、主に温度や物体の位置など、ゆっくり変化するデータを処理する際に使用されます。使用時には適切なドアリミットAを選択することが重要です。これは通常、経験的データから、また必要に応じて実験から得ることができます。
メジアンフィルタアルゴリズム操作プロセスは、特定のパラメータをN回連続してサンプリングし(Nは通常奇数)、Nサンプルの値を小さいものから大きいものに並べ、中央の値を今回のサンプリング値とします。全体のプロセスは、実際にはシーケンスソートプロセスです。 アルゴリズムのプログラムコードは次のとおりです。
注: 偶発的な要因による変動や、サンプラーの不安定性による脈動干渉を除去するには、中央値フィルタリングの方が適しています。測定値がゆっくり変化する場合は、メディアンフィルタ法の方が効果的ですが、データが急速に変化する場合は、この方法は適していません。
算術平均フィルタリングアルゴリズムこのアルゴリズムの基本原理は非常に単純で、N 個の連続したサンプリング値を取得し、算術平均を実行することです。 アルゴリズムのプログラムコードは次のとおりです。
説明: 算術平均フィルタリング アルゴリズムは、ランダム干渉のある信号をフィルタリングするのに適しています。この信号の特徴は、平均値を持ち、信号が特定の値を中心に変動することです。 信号の平均平滑化の度合いは、N の値によって完全に決まります。 N が大きい場合、滑らかさは高くなりますが、感度は低くなります。N が小さい場合、滑らかさは低くなりますが、感度は高くなります。平均値の計算を容易にするために、N は通常 4、8、16、32 などの 2 の整数乗であり、プログラム内で除算の代わりにシフト演算を使用できます。
加重平均フィルタリングアルゴリズム前述の「算術平均フィルタリングアルゴリズム」は、滑らかさと感度の間に矛盾があるからです。滑らかさと感度の関係を調整するために、加重平均フィルタリングを使用できます。 その原理は、N 個の連続するサンプリング値に異なる重み係数を掛けて累積することです。重み係数は通常、最初は小さく、その後大きくなります。これにより、後続のサンプリングの影響が強調され、システムがパラメータの変化傾向を理解しやすくなります。 各重み係数は 1 未満の小数であり、合計が 1 になるという終了条件が満たされます。加重演算後の累積合計が有効なサンプリング値となります。加重平均デジタルフィルタリングの数学的モデルは次のとおりです。 ここで、D は N 個のサンプリング値の加重平均、XN-i は Ni 番目のサンプリング値、N はサンプリング回数、Ci は加重係数です。重み係数 Ci は、平均値におけるさまざまなサンプリング値の割合を反映します。 一般的に、サンプリング時間が遅いほど、取得される割合が大きくなり、平均値における新しいサンプルの割合が増加する可能性があります。 加重平均フィルタリング方式では、信号の一部を強調表示し、信号の別の部分に抵抗することで、サンプリング値の変化の感度を向上させることができます。 サンプルプログラムコードは次のとおりです。
スライディング平均フィルタアルゴリズム上記の紹介とさまざまな平均フィルタリング アルゴリズムには共通点が 1 つあります。つまり、各有効なサンプリング値を連続して複数回サンプリングする必要があるということです。サンプリング速度が遅い場合、リアルタイム システムを保証できません。 ここで紹介するスライディング平均フィルタリング アルゴリズムは、一度だけサンプリングし、そのサンプリング値を過去の複数のサンプリング値と平均化し、得られた有効なサンプリング値を使用できます。 平均を計算するために N 個のサンプル値を取得する場合、ストレージ領域に N 個のデータ一時ストレージ領域を開く必要があります。 収集された新しいデータはそれぞれ一時記憶領域に保存され、同時に最も古いデータが削除されるため、保存される N 個のデータは常に最新の更新データになります。このデータ保存方法は、リングキュー構造を使用することで簡単に実装できます。 プログラムコードは次のとおりです。
ローパスフィルタリング通常のハードウェア RC ローパス フィルタの微分方程式は差分方程式として表現され、ソフトウェア アルゴリズムを使用してハードウェア フィルタの機能をシミュレートできます。導出後、ローパス フィルタ アルゴリズムは次のようになります。
上記の式から、このフィルタリングの出力値は主に前のフィルタリングの出力値に依存することがわかります(前のサンプリング値ではないことに注意してください。これは加重平均フィルタリングとは本質的に異なります)。このサンプリング値のフィルタリング出力への寄与は比較的小さいですが、ある程度の補正効果があります。このアルゴリズムは、大きな慣性を持つ特定のローパスフィルタの機能をシミュレートします。フィルタリング アルゴリズムのカットオフ周波数は、次の式を使用して計算できます。
これは、ターゲットパラメータが非常にゆっくり変化する物理量である場合に効果的です。一方、サンプリング周波数の 1/2 を超えるドライ信号をフィルタリングすることはできません。この例では、サンプリング周波数は 2Hz なので、1Hz を超えるドライ信号をフィルタリングするには他の方法を使用する必要があります。 ローパス フィルタ アルゴリズムは加重平均フィルタに似ていますが、加重係数は a と 1-a の 2 つだけです。計算の便宜上、a は整数として扱われ、1-a は 256-a に置き換えられ、計算結果の最下位バイトは破棄されます。項目は a と 1-a の 2 つしかないため、両方とも即値の形式でプログラムにプログラムされ、別のテーブルは必要ありません。 サンプリング値は単位バイト(8ビットA/D)です。計算の精度を確保するために、フィルターの出力値は整数用に 1 バイト、小数用に 1 バイトの 2 バイトで表されます。そうしないと、仮数が毎回破棄されるため、出力が変化しない可能性があります。 Yn-1 が 30H (整数) と 31H (10 進数) の 2 つの単位に格納され、Yn が 32H (整数) と 33H (10 進数) の 2 つの単位に格納されているとします。 |
>>: ついに誰かが畳み込みニューラルネットワーク(CNN)を明確にした。
来週ナスダックに上場する予定の自動運転車スタートアップ企業、オーロラは、自動運転システムのテストとト...
[[412540]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...
マイクロソフトのCEOサティア・ナデラ氏は1月17日(現地時間)の火曜日、人工知能に関して世界中でコ...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
インターネットから収集したコンテンツさまざまな性質のトランザクション ネットワークや社会的つながりを...
Mengniu、Jiaoxia、Qingfeng、Oshiman、Wufangzhai、Santon...
結核は古代の呼吸器感染症として人類の歴史を通じて存在し、何億人もの命を奪い、「白ペスト」として知られ...
ウォール・ストリート・ジャーナル紙は、事情に詳しい関係者の話として、OpenAIは同社を800億~9...
オフィスから作業場、製品に至るまで、製造業はテクノロジーで溢れており、コネクテッドエコノミーの導入に...
ロボットは産業の魂です。 [[386663]]しかし、私たちの身近な国である日本が、20年もの間、世...
Reddit のユーザーが通勤に関するステータスを投稿しました。通勤途中に、曲がり角を待つ厄介な交...