예전에 구간평균법(moving average)에 대해 이야기를 한 적이 있습니다.
대부분의 프로세서들은 ADC를 수행할때, 사용자의 설정에 따라 수 샘플링 시간동안의 평균을 현재의 ADC값으로 표현하도록 되어있을텐데요.
자이로나 가속도센서 등등의 센서를 사용할 때 누구나 노이즈때문에 고생을 하게 됩니다. 사실 저는 필터에 대해 잘 모르지만, 구간평균법은 간단히 구현하기에 참 편리하고 좋더군요.
이걸 예전부터 MATLAB에서 함수로 구현해서 사용하고 있었는데요. 

비록 허덥한 프로그램이지만, 오늘은 그걸 한번 포스팅할까 합니다.



먼저 함수의 형식은 원데이터를 받고, 평균을 취할 구간의 길이를 정해서 그 구간을 평균해서 현재의 값이라고 생각을 하게 됩니다.

즉, 현재의 값은 정해진 구간(n) 만큼 이전의 데이터부터 지금까지의 데이터의 평균이라고 생각하는 거지요.






위에 제가 만든 함수가 있습니다. (죄송합니다. 대충만들어서 좀....ㅠㅠ) 일단, 2번행과 9번행은 MATLAB에서 함수(funciton)를 만드는 것이고[관련글], 4번행은 만약 평균을 취할 길이를 5개 샘플로 보았다면, 원데이터의 처음부터 5번구간까지는 그대로 두라는 의미입니다.

그리고, 5번행의 for문은 주어진 구간의 길이부터 원데이터끝까지 돌면서, 6번행에서는 간단히 MATLAB이 제공하는 평균을 구한는 함수 mean를 사용한 것입니다. 

제가 원하는 출력이 행렬이 완성되어서 나오것이어서, 6번행과 같이 표현되어있습니다.



음... 더욱 아름답게 만들 수도 있었겠지만, 뭐 당장 사용하기엔 불편함이 없어 그냥 저대로 쓰고 있습니다...ㅠㅠ


http://pinkwink.kr/trackback/321 관련글 쓰기
  • 박재완 2010/06/14 19:41

    헉 .. 검색의 끝은 항상 pinkwink님으로 끝나는군요 ㄷㄷ
    moving average 검색하다가 결국엔 또 pinkwink님의 블로그에 이르렀네요
    파워 블로거 심니다 'ㅁ'

    잘보고 가겠습니다 ^^

    • PinkWink 2010/06/14 22:10

      ㅋㅋ 저의 마수를 벗어날 수 없습니다..ㅎㅎ
      오늘도 주문을 외우는 중입니다.
      아르헨티나전에서 1:0 승리에 주문을 몹시 거는 중이지요.

  • psnow 2010/06/17 08:00

    mean 함수가 있었군요.
    이런. 완전 망각하고 있었네요.
    저번에 본 자료들로 제가 각색(?)하여 포스팅을 하려는데,
    이런저런 이유로 계속 미루게 되네요..
    끙;
    그럼 좋은 하루보내세요~ ^^

    • PinkWink 2010/06/17 13:36

      네.. mean함수를 몰라도 충분히 만들 수 있지요...
      간혹 MATLAB이나 VC++ 같은 프로그램 사용자들끼리의 대화에서 누가 함수를 많이 아는가로 프로그래밍 실력을 가늠할려는 경우를 보게 될때가 있는데... 그건 참 슬퍼요.
      뭐 물론 함수를 많이 아는게 나쁜건 아니지만... 목적하는 프로그래밍을 하는데 있어서 지장은 크게 없더군요.^^

  • 2010/06/22 20:31

    비밀댓글입니다

    • PinkWink 2010/06/23 01:27

      function의 사용법은 http://pinkwink.kr/279 에 있습니다.

  • aeroman 2010/07/09 15:17

    앗 오랜만에 방문을 하였습니다.
    어쩜 센서 신호 처리 할때 가장 많이 사용될지도 모르는 (간단하기때문에 ^^) 무빙 에버리지 를 엠파일로 구현하셨군요. 아 핑윙님과는 언제 오프에서 한번 뵙고 싶은데.. 쿼드로터 때문에 너무 바빠서 일전에 창원 출장은 교수님과 센서 담당 석사과정만 갔었습니다. 그날 저도 내려갔으면 한번 뵈었을텐데요.. 조만간 한번 뵐수 있는 기회가 오길 희망해봅니다 ^^

    • PinkWink 2010/07/09 16:03

      아.. 그날... 홍교수님께서도 내려오셨던거군요.. ㅎㅎ
      그날 만남은 이루어지지 않았습니다....^^
      퀴드로터 진도가 잘 이루어지는 모양입니다.
      (헉.. 갑자기 너무 부럽습니다....ㅠㅠ)

  • 2010/07/09 17:09

    비밀댓글입니다

    • PinkWink 2010/07/09 17:17

      제가 막혀서 아무 진전없이 그저 멈춘 곳이 기체의 6개 상태중에서 위치를 어떻게 측정하는가 인데요..ㅠㅠ
      호버링테스트라면 그걸 해결하신 모양입니다..
      (갑자기 너무 부러워집니다... ㅠㅠ)
      그리고 점검이라니요.. 그저 제가 견학하는 것이겠지요..^^

  • aeroman 2010/07/09 17:30

    아.. 그런건 아니구요.. 위치는 실외로 돌려서 GPS를 써야겠지요.. 그전에 그냥 못움직이게 막아놓고 막무가내로 일단 한번 해본다는 말씀이었습니다. 상태에서 위치는 각축의 선가속도를 두번 적분한것이 되겠지만.. 아무래도 오차가 심하게 나겠지요.. 그래서 일단 고도는 초음파를 쓸거구요.. 선형모션은 그냥 제한을 두고 실험한다는 얘기였습니다 ^^

    • PinkWink 2010/07/09 17:35

      아아.. 그렇군요.. 그냥 제한을 두어도 어떻게 제한을 두는가에 따라 역학적인 영향을 클수도 있으니 그 부분도 고민을 많이 하셨겠습니다. 테스트하시면 실험실 홈페이지에라도 올려주셔서 링크주시면 겸허한 마음으로 감탄할 준비가 완료되었습니다. ^^

1 ... 18 19 20 21 22 23 24 25 26 ... 59