[Teledyne LeCroy] ‘가우신안 펄스가 여러개 존재하는 펄스 열 생성하기(python)’​​​​​​​주제의 포스팅

  • 2025-01-12
  • 조회수54
 
[Teledyne LeCroy] ‘가우신안 펄스가 여러개 존재하는 펄스 열 생성하기(python)’주제의 포스팅



가우신안 펄스가 여러 개 존재하는 펄스 열 생성하기(python)

AWG를 가지고 위와 같은 파형을 생성해서 테스트를 하고 싶은데, 파형을 생성할 수 있는 데이터를 공유해달라는  요청을 받았습니다. 유사한 파형을 오실로스코프에서 포착한 적이 있다면, 파형을 공유하여 AWG에서 파형을 생성할 수 있었을 텐데, 그렇지 못했습니다. AWG에서 파형을 편집하기에는 모양이 제법 복잡해 보입니다. 파이썬과 같은 툴을 이용하여 데이터를 생성하고, 그 데이터를 불러들이는 방법으로 파형을 생성해 공유하는 방법을 택했습니다,

파형 생성을 위한 아이디어

먼저 숫자로 되어 있는 수평축 도메인에서 펄스가 존재하는 부분 1500 번째의 하나만 생각해보면, 일반 가우시안 모양의 펄스입니다. 그리고, 특정 위치로 이동하여 비교해보면 펄스 폭과 위치 그리고 크기에 차이가 있어 보인다는 점을 착안합니다.

가우시안 함수의 수학적 표현



그림 1. 정규화된 가우스 함수 그래프, 평균값과 표준편차에 따른 펄스의 위치와 펄스. (그림 소스 : https://ko.wikipedia.org/wiki/가우스_함수 )

가우시안 펄스를 수학적으로 표현하면 아래와 같습니다. 위치는 평균, 펄스폭은 표준 편차, 크기는 A라고 표현된 값입니다. 이 식을 함수로 표현하고 파이썬을 이용하여 파형을 제작할 수 있을 것으로 보입니다.



코딩

펄스를 생성해야 하는 위치와 크기 폭을 정의하는 리스트를 각각 생성했습니다. 펄스의 위치는 대략적인 위치로 임의로 설정했습니다.



위의 아이디어를 가지고, 먼저 크기가 0인 2000개의 배열을 생성하고, 가우시안 펄스를 생성할 수 있도록 함수를 작성했습니다.



위에서 만들어 놓은 위치, 크기, 폭을 인자로 하여 generate_gaussian_peak(x,magnitude,width) 를 호출하여 2000개의 배열 인자에 대해서 함수를 수행합니다.
후에, 그래프를 그리고 필요에 따라 이미지를 저장하거나, 파형 샘플을 csv 파일로 생성했습니다. 대부분의 AFG 또는 AWG에서 CSV 파일의 데이터를 이용하여 파형을 그릴 수 있기때문에 쉽에 응용하여 파형을 생성할 수 있습니다.



                        그림 1. 완성된 코드를 실행하여 얻은 파형데이터의 이미지




​​​​​​​