ใƒ—ใƒญใ‚ฐใƒฉใƒ ใงใƒ•ใ‚ฃใƒซใ‚ฟ๏ผˆๅนณๆป‘ๅŒ–ใ€ใƒŽใ‚คใ‚บ้™คๅŽป๏ผ‰ใฎ้…ใ‚Œใ‚’็„กใใ™ – imo Lab.
PR

ใƒ—ใƒญใ‚ฐใƒฉใƒ ใงใƒ•ใ‚ฃใƒซใ‚ฟ๏ผˆๅนณๆป‘ๅŒ–ใ€ใƒŽใ‚คใ‚บ้™คๅŽป๏ผ‰ใฎ้…ใ‚Œใ‚’็„กใใ™

่จ˜ไบ‹ๅ†…ใซๅบƒๅ‘ŠใŒๅซใพใ‚Œใฆใ„ใพใ™ใ€‚

ใ€€ใƒ—ใƒญใ‚ฐใƒฉใƒ ใง็ฐกๅ˜ใชๅนณๆป‘ใƒ•ใ‚ฃใƒซใ‚ฟ๏ผˆใƒญใƒผใƒ‘ใ‚นใƒ•ใ‚ฃใƒซใ‚ฟ๏ผ‰ใ‚’้€šใ—ใฆใ€่จˆๆธฌๅ€คใฎๅนณๆป‘ๅŒ–ใ€ใ‚นใƒ ใƒผใ‚ธใƒณใ‚ฐใ€ใƒŽใ‚คใ‚บ้™คๅŽปใชใฉใ‚’ใ‚ˆใ่กŒใ†ใฎใงใ™ใŒใ€ใƒžใ‚คใ‚ณใƒณใชใฉใง่จˆๆธฌๅ€คใ‚’ใƒชใ‚ขใƒซใ‚ฟใ‚คใƒ ๅ‡ฆ็†ใ™ใ‚‹ๅ ดๅˆใซใฏใฉใ†ใ—ใฆใ‚‚้…ใ‚ŒใชใฉใŒใ€็™บ็”Ÿใ—ใฆใ—ใพใ„ใพใ™ใ€‚

ใ€€ไปŠๅ›žใฏใ‚ใพใ‚Š้…ใ‚ŒใŒๅ‡บใชใ„ใ‚ˆใ†ใซใ€ใƒ•ใ‚ฃใƒซใ‚ฟใ‚’ๅฐ‘ใ—ๆ”น้€ ใ—ใฆ่ฉฆใ—ใฆใฟใพใ—ใŸใ€‚

ใ‚นใƒใƒณใ‚ตใƒผใƒชใƒณใ‚ฏ

ใƒญใƒผใƒ‘ใ‚นใƒ•ใ‚ฃใƒซใ‚ฟ๏ผˆใƒ—ใƒญใ‚ฐใƒฉใƒ ๏ผ‰ใง้…ใ‚Œใฎ็ขบ่ช

ใ€€ใ‚ตใƒณใƒ—ใƒซ๏ผˆ่จˆๆธฌๅ€ค๏ผ‰ใซใพใšใฏๆ™ฎ้€š๏ผŸใฎใƒญใƒผใƒ‘ใ‚นใƒ•ใ‚ฃใƒซใ‚ฟใ‚’้€šใ—ใฆEXCELใงใ‚ทใƒŸใƒฅใƒฌใƒผใ‚ทใƒงใƒณ๏ผˆใ‚ฐใƒฉใƒ•ๅŒ–๏ผ‰ใ—ใฆใฟใพใ™ใ€‚

  LPF = (1 - k) * lastLPF + k * raw;
  lastLPF = LPF;

  //lastLPF๏ผšๅ‰ๅ›žใฎLPFๅ€ค
  //raw ๏ผšไปŠๅ›žใฎ่จˆๆธฌๅ€ค

ใ€€ใƒ•ใ‚ฃใƒซใ‚ฟใ‚’่จ€่ชž้ขจใซๆ›ธใใจใ“ใ‚“ใชๆ„Ÿใ˜ใงใ—ใ‚‡ใ†ใ‹ใ€‚ใ€Œๅ‰ๅ›žใฎ่ฃœๆญฃๅ€คใ€ใจใ€ŒไปŠๅ›žใฎ่จˆๆธฌๅ€คใ€ใ‚’้‡ใฟไป˜ใ‘ๅนณๅ‡ใ—ใฆใ„ใ‚‹ๆ„Ÿใ˜ใงใ™ใ€‚ใ€Œ๏ฝ‹ใ€ใฏๅฎšๆ•ฐใ€‚๏ผˆ0 โ‰ฆ k โ‰ฆ 1๏ผ‰

โ–ผๅผใ‚’ๅฑ•้–‹ใ—ใฆ็บใ‚็›ดใ™ใจโ–ผ

  LPF += k * (raw - lastLPF);

ใ€€ใ“ใฎใ‚ˆใ†ใช้€Ÿๅบฆใ‹ใ‚‰็ฉๅˆ†ใ—ใฆใ‚‹ใฃใฝใ„ๅผ๏ผŸใซใชใ‚Šใพใ™ใ€‚ใงใ™ใฎใงใ€Œ๏ฝ‹ใ€๏ผˆๆ™‚้–“๏ผ‰ใฎๅ€คใ‚’ๅฐใ•ใใ™ใ‚Œใฐใ™ใ‚‹ใปใฉ้…ใใชใ‚‹ใƒปใƒป๏ผˆใ‚คใƒกใƒผใ‚ธใงใ™ใƒปใƒปใ€‚๏ผ‰

EXCELใง็ฐกๅ˜ใซใ‚ทใƒŸใƒฅใƒฌใƒผใ‚ทใƒงใƒณ

ใ€€ใงใฏใ“ใฎๅผใจEXCELใ‚’ไฝฟใฃใฆใƒ•ใ‚ฃใƒซใ‚ฟใƒผใฎ็ฐกๅ˜ใชใ‚ทใƒŸใƒฅใƒฌใƒผใ‚ทใƒงใƒณใ‚’ใ—ใฆใฟใพใ™ใ€‚

โ–ฒใ‚ทใƒŸใƒฅใƒฌใƒผใ‚ทใƒงใƒณ็ตๆžœใ€‚ๅ…ฅๅŠ›ๅ€คใ‚’ 1๏ผˆ๏ผ‹้ฉๅฝ“ใชใƒŽใ‚คใ‚บ๏ผ‰ ใ€ใ‚ตใƒณใƒ—ใƒชใƒณใ‚ฐๅ‘จๆœŸ 0.01s๏ผˆ100Hz๏ผ‰ใ€ใงใ‚ทใƒŸใƒฅใƒฌใƒผใ‚ทใƒงใƒณใ—ใฆใพใ™ใ€‚ๅŽๆŸใ‚’ๆ—ฉใใ™ใ‚‹ใจๅนณๆป‘ๅŒ–ใ—ใใ‚Œใฆใพใ›ใ‚“๏ผˆๆ™‚ๅฎšๆ•ฐ0.1s๏ผ‰ใŒใ€ใใ‚Œใ„ใซๅนณๆป‘ๅŒ–ใ—ใ‚ˆใ†ใจใ™ใ‚‹ใจ็ซ‹ใกไธŠใŒใ‚ŠใŒ้…ใ‚Œใพใ™๏ผˆๆ™‚ๅฎšๆ•ฐ1.0s๏ผ‰ใ€‚

ใ€€ใ“ใ“ใ‹ใ‚‰ไธ€ๆ‰‹้–“ๅŠ ใˆใฆใ€ใ“ใฎ้…ใ‚Œใ‚’ๅฐ‘ใ—ใงใ‚‚่ปฝๆธ›ใ—ใฆใฟใŸใ„ใจๆ€ใ„ใพใ™ใ€‚

ใƒ—ใƒญใ‚ฐใƒฉใƒ ๏ผˆใƒญใƒผใƒ‘ใ‚นใƒ•ใ‚ฃใƒซใ‚ฟ๏ผ‰ใ‚’็ฐกๅ˜ใซ่งฃ่ชฌ

ใ€€ๅฐ‘ใ—ๆจช้“ใซใใ‚Œใพใ™ใŒๅ…ˆใปใฉใฎใƒ—ใƒญใ‚ฐใƒฉใƒ ใฎๅ…ƒๅผใ‚’็ฐกๅ˜ใซ่งฃ่ชฌใงใ™ใ€‚็ตๆžœใฎใฟใง่‰ฏใ„ๆ–นใฏใ“ใฎ้ …ใฏ้ฃ›ใฐใ—ใฆไธ‹ใ•ใ„ใ€‚

ใ€€ใพใšใ€ใƒญใƒผใƒ‘ใ‚นใƒ•ใ‚ฃใƒซใ‚ฟใฎไผ้”้–ขๆ•ฐใ‚’ๅพŒ้€€ๅทฎๅˆ†ๆ–นๅผใ‚’็”จใ„ใฆ้›ขๆ•ฃๅŒ–๏ผˆใƒ—ใƒญใ‚ฐใƒฉใƒ ๅŒ–๏ผ‰ใ€ๆ•ด็†ใ™ใ‚‹ใจ

\begin{align} y_{\lbrack{n}\rbrack} = \frac{T_i}{T+T_i}y_{\lbrack{n-1}\rbrack}+\frac{T}{T+T_i}x_{\lbrack{n}\rbrack} \end{align}

โ–ฒใ“ใฎใ‚ˆใ†ใซใชใ‚‹ใ‚ˆใ†ใงใ™ใ€‚yใฏใƒ•ใ‚ฃใƒซใ‚ฟๅพŒใ€๏ฝ˜ใฏ่จˆๆธฌๅ€คใ€Tใฏใ‚ตใƒณใƒ—ใƒชใƒณใ‚ฐๅ‘จๆœŸใ€Tiใฏๆ™‚ๅฎšๆ•ฐใ€‚

โ–ผใ“ใ“ใง่จˆๆธฌๅ€คxใฎไฟ‚ๆ•ฐใ‚’kใจใ—ใฆ

\begin{align} \frac{T}{T+T_i}=k \end{align}

โ–ผyใฎไฟ‚ๆ•ฐใ‚’ๅค‰ๅฝขใ™ใ‚‹ใจ

\begin{align} \frac{T_i}{T+T_i}=1-\frac{T}{T+T_i}=1-k \end{align}

ใ“ใฎใ‚ˆใ†ใซใชใ‚Šใ€ๅ…ƒใฎๅผใ‚’

\begin{align} y_{\lbrack{n}\rbrack} = \left(1-k\right)y_{\lbrack{n-1}\rbrack}+kx_{\lbrack{n}\rbrack} \end{align}

ใจๅค‰ๅฝขใ—ใฆใ„ใ‚‹ใ ใ‘ใงใ™ใ€‚ใ“ใ‚ŒใŒๅ…ˆใปใฉใฎ่จ€่ชžๅผใจๅŒๆง˜ใงใ™ใ€‚

ใ‚นใƒใƒณใ‚ตใƒผใƒชใƒณใ‚ฏ

ใƒ•ใ‚ฃใƒซใ‚ฟใ‚’ๅฐ‘ใ—ๆ”น้€ 

ใ€€ใงใฏใƒ•ใ‚ฃใƒซใ‚ฟใƒผใ‚’ๆ”น้€ ใ—ใฆใ€้…ใ‚Œใ‚’ๅฐ‘ใ—ใงใ‚‚็„กใใ—ใฆใฟใŸใ„ใจๆ€ใ„ใพใ™ใ€‚ๆ–นๆณ•ใจใ—ใฆใฏใ€้šๆ™‚ใ€ใ€Œๆธฌๅฎšๅ€คใ€ใจใ€Œ่ฃœๆญฃๅ€คใ€ใ‚’ๆฏ”่ผƒใ—ใ€ๅทฎใŒๅคงใใ„ใ‚ˆใ†ใงใ‚ใ‚Œใฐใ€ๅฎšๆ•ฐใ€Œkใ€๏ผˆ้€Ÿๅบฆ๏ผ‰ใ‚’ๅค‰ๆ›ดใ™ใ‚‹ใจใ„ใฃใŸๅ‡ฆ็†ใ‚’ๅŠ ใˆใฆใฟใพใ™ใ€‚

ใ€€โ–ผ่จ€่ชž้ขจใซ่จ˜่ฟฐใ™ใ‚‹ใจโ–ผ

  if (abs(raw - LPF) > 0.33) {
    k = 0.0909;
  }
  else {
    k = 0.0099;
  }
  LPF += k * (raw - LPF);

ใ€€ใ€ŒไปŠๅ›žใฎๆธฌๅฎšๅ€คใ€ใจใ€Œๅ‰ๅ›žใฎ่ฃœๆญฃๅ€คใ€ใฎๅทฎๅˆ†ใŒๅคงใใ„ใ‚ˆใ†ใงใ‚ใ‚Œใฐใ€ๅฎšๆ•ฐใ€Œkใ€ใฎๅ€ค๏ผˆๆ™‚ๅฎšๆ•ฐ 0.1s/1.0s ๏ผ‰ใ‚’ๅค‰ใˆใพใ™ใ€‚ๅทฎๅˆ†ใฎๅˆคๅฎšๅ€คใฏ้ฉๅฝ“ใงใ™ใ€‚่ชคๅทฎใฎๅˆ†ๆ•ฃใชใฉใ‚’ใฟใฆ้ฉๅฎœ่ชฟๆ•ดใŒๅฟ…่ฆใ‹ใจๆ€ใ„ใพใ™ใ€‚

ใ€€ใ“ใฎ่€ƒใˆๆ–นใงๅ…ˆใปใฉใฎๅŒๆง˜ใฎใ‚ฐใƒฉใƒ•๏ผˆ่จˆๆธฌๅ€ค๏ผ‰ใซใ€ใƒ•ใ‚ฃใƒซใ‚ฟใ‚’้€šใ—ใฆใฟใพใ™ใ€‚

โ–ผใƒ•ใ‚ฃใƒซใ‚ฟ๏ผˆๆ”น๏ผ‰ๅพŒใ‚ฐใƒฉใƒ•โ–ผ

่ตคใƒฉใ‚คใƒณใŒไธ€ๆ‰‹้–“ๅŠ ใˆใŸใƒ•ใ‚ฃใƒซใ‚ฟใ‚’้€šใ—ใŸใ‚‚ใฎใงใ™ใ€‚

ใ€€็ซ‹ใกไธŠใŒใ‚Šใงๅฐ‘ใ—ใ‚ฌใ‚ฟใƒ„ใ‚ญใŒๅ‡บใฆใ—ใพใฃใฆใพใ™ใŒใ€้…ใ‚Œใฏใ ใ„ใถ่งฃๆถˆใ—ใฆใ„ใ‚‹ใฎใงใฏใชใ„ใ‹ใจๆ€ใ„ใพใ™ใ€‚ใชใ‚‹ในใๅนณๆป‘ๅŒ–ใ—ใŸใ„ใ‘ใฉใ‚ใพใ‚Š้…ใ‚Œใ‚‹ใฎใฏๅ›ฐใ‚‹ใจใ„ใ†ใ“ใจใใซไฝฟใˆใ‚‹ใ‹ใ‚‚ใƒปใƒปใƒปใ€‚

ใ€€ใ“ใ“ใงใฏๆธฌๅฎšๅ€คใจ่ฃœๆญฃๅ€คใฎๅทฎๅˆ†ใงๅ˜็ด”ใซๅฎšๆ•ฐใ€Œkใฎๅ€คใ€ใ‚’ๅˆ‡ใ‚Šๆ›ฟใˆใฆใ‚‹ใ ใ‘ใงใ™ใŒใ€ๅฎšๆ•ฐใ€Œkใ€ใ‚’ใ€Œๅทฎๅˆ†ใ€ใฎ้–ขๆ•ฐใง็ฝฎใ„ใŸใ‚‰ใ€ใ‚‚ใ†ๅฐ‘ใ—็ซ‹ใกไธŠใŒใ‚Šใ‚‚ๆป‘ใ‚‰ใ‹ใซใชใ‚‹ใ‹ใ‚‚ใ—ใ‚Œใพใ›ใ‚“ใ€‚

ใ€€ใพใŸไปŠๅ›žใฏใ€้ฉๅฝ“ใซไฝœใฃใŸใ‚ตใƒณใƒ—ใƒซใƒ‡ใƒผใ‚ฟใ‚’EXCELไธŠใง่จˆ็ฎ—ใ—ใฆ่ฉฆใ—ใฆใฟใŸใ ใ‘ใงใ™ใ€‚ๅฎŸ้š›่ฉฆใ—ใŸใ‚ใ‘ใงใฏใชใ„ใฎใงใ“ใ“ใพใงใ†ใพใใ„ใใ‹ใฉใ†ใ‹ใ‚ใ‹ใ‚Šใพใ›ใ‚“ใŒใ€ใใฎใ†ใกๆฉŸไผš๏ผˆๅฟ…่ฆใชใจใ๏ผ‰ใŒใ‚ใฃใŸใ‚‰่ฉฆใ—ใฆใฟใŸใ„ใจๆ€ใ„ใพใ™ใ€‚

โ–ผๅ‚่€ƒใ‚ตใ‚คใƒˆโ–ผ

Qiita-ๆœ€ใ‚‚็ฐกๅ˜ใชใ€Œไธ€ๆฌกใฎใƒญใƒผใƒ‘ใ‚นใƒ•ใ‚ฃใƒซใ‚ฟใ€ใ‚’ไฝœใ‚‹ๆ–นๆณ•

ใƒญใƒผใƒ‘ใ‚นใƒ•ใ‚ฃใƒซใ‚ฟใ‚’้›ขๆ•ฃ็ณปใซ็›ดใ—ใฆใƒ—ใƒญใ‚ฐใƒฉใƒ ๅŒ–ใ™ใ‚‹ๆ–นๆณ•ใ‚’่งฃ่ชฌใ™ใ‚‹

ใ‚ณใƒกใƒณใƒˆ

  1. ๅŒฟๅ ใ‚ˆใ‚Š:

    FFTโ†’้–พๅ€คโ†’Ifft ไฝฟใ†ใจใ„ใ‘ใกใ‚ƒใ†ใจๆ€ใ„ใพใ™ใ€‚

ใ‚ฟใ‚คใƒˆใƒซใจURLใ‚’ใ‚ณใƒ”ใƒผใ—ใพใ—ใŸ