Languages

CommunityCategory: XMODEL임의의 주기파형을 생성하는 가변주파수 발진기 모델링하는 법
SA Support Team Staff asked 5 years ago

RF 시스템 모델링을 하는데, 외부입력에 따라 주파수가 변하는 sine 파형 발진기를 모델링하고 싶습니다. 일반적으로 임의의 주기파형을 생성하는 가변주파수 발진기를 XMODEL의 primitive들을 활용해 모델링할 수 있나요?

1 Answers
Best Answer
SA Support Team Staff answered 5 years ago

예. 'integ_mod' primitive를 활용하면 임의의 주기파형을 생성하는 가변주파수 발진기를 간단하게 모델링할 수 있습니다. 이 'integ_mod' primitive는, 그 파라메터들이 모두 기본값을 가질때 입력신호의 시간적분의 modulo 1 연산결과를 출력합니다. 이 primitive에 대한 보다 상세한 설명은 XMODEL Reference Manual을 참고하세요.

'integ_mod' primitive가 유용한 이유는, 입력신호가 원하는 주파수 값을 가질때, 0에서 1까지의 구간을 반복하는 해당 주파수로 주기신호를 생성하기 때문입니다. 이제 이 신호를 0에서 1까지의 구간에서 원하는 주기파형을 표현하는 수학함수의 입력으로 쓰면, 원하는 주파수에서 발진하는 임의의 주기파형을 생성할 수 있게 됩니다.

예를 들어, 삼각파형을 생성하는 가변주파수 발진기의 모델을 아래와 같습니다. 삼각파형을 표현하기 위해, 그 파형을 (0, 0), (0.5, 1), (1, 0)의 세개의 점을 연결하는 piecewise linear 함수로 표현하는 'pwl_func' primitive를 사용하였습니다.

그리고 입력신호 'freq'가 10M 값을 가질때의 시뮬레이션 파형은 아래와 같습니다. 'integ_mod' primitive의 출력인 'base' 신호는 설명한대로 0에서 1까지의 구간을 주기적으로 반복하는 신호이고, 이를 위에 설명한 'pwl_func' primitive의 입력으로 사용하면, 10MHz의 주파수에서 원하는 삼각파형을 주기적으로 생성할 수 있습니다.

sine파형을 생성하는 가변주파수 발진기 모델도 비슷하게 만들수 있습니다. 아래 예제에서는 scalesin_func primitive를 사용해서 주기 1을 가진 sine 함수인 sin(2πx)을 표현했습니다.

이 모델의 입력신호 'freq'가 10M 값을 가질때의 시뮬레이션 파형은 아래와 같습니다.