728x90
- convolution을 클래스로 만들어서 구현한다.. 라는 주제로 mfc를 활용하여 진행하였다.
핵심 코드 | ||
Convolution.h |
Convolution 클래스의 헤더파일 부분이다. 변수로 Yn을 두었으며, Xn,Hn을 인자로 받는 Convolution함수를 구현하였다. |
|
Convolution. cpp |
Convolution 클래스의 cpp파일이다. Xn,Hn을 인자로 받아 Yn에 컨볼루션된 값을 집어넣었다. | |
이벤트 처리기를 통한 컨볼루션 버튼을 눌렀을때의 코드이다다. 컨볼루션 했을 때 다른 그래프를 넘어가는 부분이 발생하여 규격에 맞게 Yn을 비율을 맞춰주는 부분을 추가하였다. 위의 그림처럼 만들어준셈. |
||
왼쪽은 OnDraw 함수에서의 구현이다. Xn을 첫째줄, Hn을 둘째줄, Yn을 셋째줄에 나오도록 설정하였다. |
실행결과 | |
신호발생 구현 | Xn = impulse Hn = impulse |
Xn = impulse Hn = sin1Hz | Xn = sin10Hz Hn = impulse |
Xn = sin1Hz Hn = sinc | Xn = cos1Hz Hn = sin10Hz |
정리 |
임펄스 함수를 입력값으로 넣어주면 Hn의 함수가 그대로 Yn으로 나오기 때문에 Hn을 알 수 있다. 이는 Xn과 Hn이 바뀌어도 같은 값이 나타난다. 서로 다른주파수의 sin,cos끼리 컨볼루션을 할 경우 컨볼루션 결과가 각 헤르츠 성분이 실려서 나오는 것을 확인할 수 있다. |
728x90
'C++ > 신호처리 프로젝트 mfc.ver' 카테고리의 다른 글
05_mfc를 이용한 Fourier Transform (0) | 2021.11.16 |
---|---|
04_mfc를 활용한 Fourier Series (0) | 2021.11.09 |
03_mfc를 활용한 correlation (4) | 2021.11.09 |
01_mfc를 이용한 신호의 파형출력 (0) | 2021.11.09 |