2012-06-14 3 views
4

나는 사다리꼴 파를 생성하는 c 함수를 작성하고 있습니다. 어느 누구도 사다리꼴 파를 생성하는 수학 방정식을 알고 있습니까? y = A * sin (B * x)와 매우 유사한 개념은 x의 다른 값에 대해 사인파를 생성합니다.사다리꼴 파동 방정식에 대한 방정식

+3

나는 이것을 삼각형 웨이브를 클리핑하여 보았다. – jedwards

+2

사다리꼴 파의 수학 공식은 f (x) = 0, if (0

답변

2

이 기능의이 종류를 나타내는의 "순수한"수학적 방법을 원하는 경우이를 사용하여 헤비 사이드 스텝 기능을 http://en.wikipedia.org/wiki/Heaviside_step_function

를 사용하여 포함 사다리꼴 파의 단일 펄스를 전송하는 방법입니다. "조각으로"기능을 구축하고, x = 펄스의 시작 부분에 "활성화"되는 헤비 사이드로 첫 번째 조각을 곱하십시오. 다음 피스의 경우, 마지막 함수를 빼고, 새로운 피스 수학 함수를 추가하고, 적절한 heaviside 함수 등을 곱하십시오.

H(n) := (x >= n)?1:0; 
y := H(0)*(x) + H(1)*(-x + 1) + H(2)*(-(-x + 1) + (3-x)); 

그러나, 코드 단순성과 효율성, 사용 if 문 경우 수 있습니다 : 그것은이 같은 뭔가를 (당신이 그것을 얻을하지 않는 경우, 위키 피 디아 기사를 통해 이동) 끝나야합니다. 일정한 단위 속도를 가진 45도 사다리꼴 파를 생각해보십시오. 당신이 모듈 (%)와 "장파"뿐 아니라 하나의 펄스, 일을 원하는 경우에 당신은 시간 변수가 필요하지 않은 경우

float trapezoidalWave(float x, float t) { 

    float y; 

    if (x <= t + 1) { 
     // 45 degree ascending line 
     y = x - t; 
    } else if (x <= t + 2) { 
     // horizontal line 
     y = 1; 
    } else if (x <= t + 3) { 
     // 45 degree descending line 
     y = t + 3 - x; 
    } else { 
     y = 0; 
    } 

    return y;   

} 

, 그냥 거기 0

2

으로 교체 방정식 대신 제한 사항을 사용할 수 있습니다.

a/pi(arcsin(sin((pi/m)x+l))+arccos(cos((pi/m)x+l)))-a/2+c 
  • a
  • c 수직 전이

플러스이 직접 삼각 함수를 인 수평 전이를 인 기간

  • l 진폭
  • m이다, 비록 그것이 더 길 수 있고, 조금 더 com 일 수 있었지만 plicated.

  • 관련 문제