カテゴリー「技術フィルタ」の39件の記事

2016年5月10日

4回移動平均フィルタでも波形がなまります

4回移動平均フィルタでも波形がなまります

Photo_2

どうもピーク値が小さいようなので

移動平均フィルタを外してみました。

元々の信号をサンプリングした波形(緑色)が

階段状のガタガタの波形でした。

■リンク: 「モーションおやじ」のノウハウ

プライムモーション社

リアルタイムWindows 40軸超高速マシンコントローラ

| | コメント (0)

2014年7月11日

入力信号を3回一致で取り込むクロック同期式ディジタルフィルタのVHDLコード

入力信号を3回一致で取り込むクロック同期式ディジタルフィルタのVHDLコード

3time_sampling_filter

RTL Viewerでみた回路。

クリックで拡大。

右から、2つ目の紫の部分、D形フリップフロップの出力が3回一致式ディジタルフィルタ出力。

一番右は、フィルタ出力信号の立下りをとらえるためのおまけ。

-- Falling Edge Detector with 3-stage filter

PROCESS (xres,din,clk)
BEGIN
  IF (xres = '0') THEN
   q1 <= '0';
   q2 <= '0';
   q3 <= '0';
   q4 <= '0';
   q5 <= '0';
  ELSIF (clk'event AND clk = '1') THEN
   q1 <= din ;
   q2 <= q1;
   q3 <= q2;
   q5 <= q4;
     IF (q1='0' AND q2='0' AND q3='0') THEN
    q4 <= '0';
   ELSIF  (q1='1' AND q2='1' AND q3='1') THEN
    q4 <= '1';
   END IF;
  END IF;
END PROCESS;

fall_edge <= ((NOT q4 ) AND q5);

まだ、シミュレーションできていない。

確認は、これから。

■リンク: 「モーションおやじ」のノウハウ

プライムモーション社

リアルタイムWindows 40軸超高速マシンコントローラ

| | コメント (2)

2013年12月10日

オペアンプを使ったアクティブローパスフィルタの基礎実験

オペアンプを使ったアクティブローパスフィルタの基礎実験

Dscf0037

10倍の周波数で40dB落ちるはずが、落ちていないのはなぜ?

お客様の新しい機械装置の実験で使います。

いろいろ勉強して、

お客様の機械がより良くなるようにベストを尽くしています。

■リンク: 「高性能制御を簡単に、みんなに!」  

超簡単WindowsリアルタイムIO制御 プライムモーション社

リアルタイムWindows 40軸超高速マシンコントローラ

WindowsパソコンにLANでつながるPLC機能付き モーションコントローラ

RTEXとパルス列16軸 スタンドアロン マシンコントローラ

| | コメント (0)

2013年3月23日

観測信号に高精度低ノイズオペアンプAD8512ARMZをプリアンプとして入れたら

観測信号に高精度低ノイズオペアンプAD8512ARMZをプリアンプとして入れたら

どうなるか実験してみた。

昨日の続きの実験。

信号源のインピーダンスが5kΩと高いので、

オペアンプをADコンバータと信号源の間に入れたら、

ノイズが下がると考えて、やってみました。

U38ad8512

結果は、変わりませんでした。

次の策を考えます。

■リンク: 「高性能制御を簡単に、みんなに!」  

簡単 お手軽 低コスト Windows リアルタイムIO制御環境 【MOSBench EY(モスベンチ いいわい)】

MOSBench EY(リアルタイムWindows入門)

リアルタイムWindows 超簡単、超高速コントローラ

リアルタイムWindows 40軸超高速マシンコントローラ

三菱PLC、オムロンPLC、キーエンスPLC、WindowsPCにLANでつながる 省配線サーボ「Realtime Express(RTEX)」とパルス列の16軸モーションコントローラ

RTEXとパルス列16軸 スタンドアロン マシンコントローラ

| | コメント (0)

2013年3月22日

AD変換データのノイズ

AD変換データのノイズ

±1mVくらい載っている。

Ad_data_130322

減らしたいが、

フィルタを入れると遅れ時間が発生する。

ノイズ源を見つけて、根本的な対策をしたい。

■リンク: 「高性能制御を簡単に、みんなに!」  

簡単 お手軽 低コスト Windows リアルタイムIO制御環境 【MOSBench EY(モスベンチ いいわい)】

MOSBench EY(リアルタイムWindows入門)

リアルタイムWindows 超簡単、超高速コントローラ

リアルタイムWindows 40軸超高速マシンコントローラ

三菱PLC、オムロンPLC、キーエンスPLC、WindowsPCにLANでつながる 省配線サーボ「Realtime Express(RTEX)」とパルス列の16軸モーションコントローラ

RTEXとパルス列16軸 スタンドアロン マシンコントローラ

| | コメント (0)

2011年12月13日

ノイズが多いので60Hz除去フィルタを入れたけれどあまり改善しなかった

ノイズが多いので60Hz除去用のフィルタを入れたけれどあまり改善しなかった。

1msサンプリングデータにノイズが多いので、60Hzの電源ノイズだと勝手に判断して、60Hz除去用のフィルタを入れた。

しかし、芳しくない。

もしかしてと考えて、元データをグラフ化したら、このとおり。

Ssi

約6ms毎にデータを取得して、積分しているようだ。

上の波形を見ると、12回のデータを足して、平均を取れば、直流分がゼロになりそうだと思える。

エクセル上でその処理をしてみた。

Ssi_12

プラスマイナスに交互に振れるときは、ゼロ近辺になる。

しかし、片方の符号のデータが連続して、値が大きくなる時もある。

このデータは、もともと、ノイズが大きいようだ。

■Link: 「高性能制御を簡単に、みんなに!」  

リアルタイムWindows 超簡単、超高速コントローラ

リアルタイムWindows 40軸超高速マシンコントローラ

三菱PLC、オムロンPLC、キーエンスPLC、WindowsPCにLANでつながる 省配線サーボ「Realtime Express」とパルス列の16軸モーションコントローラ

RTEXとパルス列16軸 スタンドアロン マシンコントローラ

| | コメント (0)

2011年1月 8日

固定小数点演算に関するこの検索フレーズは気に入った!

固定小数点演算に関するこの検索フレーズは気に入った!

『固定小数点 演算 書籍 -教えて -質問 -アドバイス -相談』

正直でいいね。

「モーションおやじ」のブログに来てくれた。

お薦めは、

瀬谷 啓介著(当時、日本テキサスインスツルメンツ社員)

「DSPプログラミング入門―ディジタル信号処理のキーデバイス」

日刊工業新聞社

です。

古本しかないようだけど、

・絵が多い

・信号処理とは関係ない経歴の方が「DSPワークショップ講師」という基礎を教える立場で書いているので、本当の入門書になっている

という点でお薦め。

難しいアルゴリズムの例を期待している人には薦めない。

TIのDSPアーキテクチャに沿った説明になっているので、宣伝が多いかんじがするが、1996年発行の啓蒙書なので、その部分は読み流してください。

本の写真は、

http://robotcontroller.cocolog-nifty.com/blog/2008/01/post_2512.html

それより、

日本テキサスインスツルメンツやルネサスエレクトロニクスのセミナーに出席して、講師の人にわかるまで質問する、よい本を紹介してもらう、というのが早いかな!

■Link: 「高性能制御を簡単に、みんなに!」  

プライムモーション社(みんなで手軽にWindowsリアルタイムIO制御)

プライムモーション(Windowsで手軽にリアルタイムIO制御)

プライムモーション社(RTEXとパルスの16軸マルチタスクコントローラ)

プライムモーション(RTEXとパルス列のマルチプロセスコントローラ)

| | コメント (0)

2009年5月11日

17段移動平均フィルタのゲイン特性

昨日の続きで、17段移動平均フィルタ。

17段移動平均フィルタのゲイン特性を計算する。横軸は周波数[Hz]。1msサンプリングとしている。

縦軸は比率。他の移動平均と比較するために直流でのゲインを1に正規化している。

_17_20

以下は、横軸を拡大。

_17_20_

17回移動平均では、1000[Hz]/17=58.8[Hz]でゲインがゼロになる。

20回移動平均では、1000[Hz]/20=50[Hz]でゲインがゼロになる。

詳しく知りたい方は以下の記事参照。

周波数が異なる場合についての考察:

http://robotcontroller.cocolog-nifty.com/blog/2008/11/post-671a.html

ゲイン特性計算式のまとめ:

http://robotcontroller.cocolog-nifty.com/blog/2008/11/post-7dee.html

Link:

プライムモーション社(Windowsで手軽にリアルタイムIO制御)

プライムモーション(Windowsで手軽にリアルタイムIO制御)

| | コメント (0)

2009年5月10日

60Hzを除去する1msサンプリング17段移動平均フィルタ

ひさびさに技術の話。

とあるテーマで、センサのアナログ信号を16ビットADカードでパソコンに取り込むことになった。

当然、WindowsリアルタイムIO制御「MOS Bench(モスベンチ)」でサポートされているCONTEC社16bitADカード「AD16-16U(PCI)EV」を使う。

Ad_2 

パラメータ設定で該当チャンネルを許可すれば、勝手に1msサンプリングをしてくれる。(上の画像の「アナログ入力チャネルの有効(1)無効(0)」の部分)

パラメータ設定で入力範囲を-10Vから+10Vの指定をすれば、16bitデータを[V]に変換してくれる。(上の画像の「アナログ入力チャネルの入力レンジの下限値-10.00、および、アナログ入力チャネルの入力レンジの上限値10.00」の部分)

また、パラメータ設定で移動平均回数を指定すれば、勝手に移動平均をしてくれて、平均後のデータを下図の画面表示しながら、ロギングデータファイルに12万行保存できる。 

1stage 

以下は、20回移動平均後の出力。この波形は、ロギングデータのcsvファイルをエクセルに読み込んで、編集したもの。

20

200ms間に12個の波がある。200ms/12=16.7ms。この逆数は、60Hz。ACラインのノイズが入っている。約2.5mVp-p。

1ms、すなわち1000Hzサンプリングなので、1000Hz/60Hz=16.7で、17回の移動平均をしてみる。

ちなみに、1000Hz/17=58.8Hz。

例によって、「MOS Bench」のパラメータ設定画面で、移動平均回数を17回に設定する。(下の画像の「アナログ入力チャネルのフィルタ段数」の部分)

17_2

以下は、17回移動平均後の出力。

ノイズの振幅は約1mVp-p。3LSBにわたって動いている。前述の波形に対して、1/2.5のノイズになった。

目標とする仕様から判断すれば、これで十分。

しかし、200ms間に5個の波がある。200ms/5=40ms。この逆数は、25Hz。

Photo

Link:

プライムモーション社(Windowsで手軽にリアルタイムIO制御)

プライムモーション(Windowsで手軽にリアルタイムIO制御)

| | コメント (0)

2008年12月 3日

一次IIIRローパスフィルタの簡単実装まとめ

インパルス不変法で一次IIRローパスフィルタを設計して、

 y(nT) = x(nT) +  e^(-T/τ)*y{(n-1)T}

   (式8)

のフィルタ計算式を得た。

詳細の導出については、以下の記事を参照。

http://robotcontroller.cocolog-nifty.com/blog/2008/11/iir-8a20.html

このブロック図は、以下となる。

1stiir_const1

これを置き換えると、

1stiir_const2_2

となる。係数1-Aを右シフト演算で置き換えると

1stiir_const4_2   

となる。

この右シフト回数nと、時定数τ、最終値の関係を表に示す。この表では、サンプリング周期T=1msとしている。

Motion_oyaji_time_constant

例えば、右シフト回数が4回、したがって、1/2^4=1/16=1-Aのとき、時定数τは約15.5msとなる。

この係数のときのインパルス応答は、0に漸近しないで、15に落ち着いてしまうことに注意したい。これは1/16の整数演算で、15が桁落ちで後段に伝搬しないことによる。詳細は、以下の記事を参照されたい。

http://robotcontroller.cocolog-nifty.com/blog/2008/11/iir-ad59.html

また、右シフト回数が4回、1/16演算をすると、フィルタ出力の最終値が分母の値16になることにも注意したい。

上記表のエクセルはこちら

「motion_oyaji_time_constant_table.xls」をダウンロード

次に、サンプリング周期Tを変えたら、どのような時定数τが得られるか表に示す。

Motion_oyaji_time_constant_vart

右シフト回数n=4にて、サンプリング周期T=2msならば、時定数τ=31msになる。

エクセルのデータはこちら

「motion_oyaji_time_constant_table_varT.xls」をダウンロード

この表の時定数で満足できないときは、以下の計算ブロック図を試してみてほしい。つまり、B=1/8(右シフト3回)、C=1/16(右シフト4回)とすれば、中間の時定数が得られる。、

1stiir_const3_2

Link: 

「モーションおやじ」のプライムモーション社(みんなで手軽にWindowsリアルタイムIO制御)

プライムモーション(Windowsで手軽にリアルタイムIO制御)

| | コメント (0) | トラックバック (0)

より以前の記事一覧