Gnuradio

gnuradio 시뮬레이션 - fft example 1

망고토마토 2023. 2. 23. 09:13
반응형

공부했던 내용을 쉽게 확인하기 위해서 Gnuradio을 이용할 수 있다. 

다음 내용은 https://wirelesspi.com/ 내용을 공부하면서 정리한 것이다. 

 

들어가기 앞서 gnuradio에서 사용되는 모듈의 입 출력과 역할에 대해서 정리하였다. 

-Throttle : Throttle flow of samples such that the average rate does not exceed the specific rate (in samples per second).

-stream to vector : Convert a stream of items into a stream of vectors containing Num Items. 

            Num items - Number of consecutive input items to concatenate into one output vector.

            Vec Length - Length of the input vector. The output vector is of length Vec Length * Num item

-float to compex : One or two floats in, complex out.

-qt gui time sink : A graphical sink to display multiple signals in time. QT-based graphical sink takes sets of float or            complex streams and plots them in the time domain. 

-FFT : This block takes in a vector of floats or complex values and calculates the FFT. 

       ※ 각 모듈의 입출력 형태를 float(실수)와 complex 중 한개 선택해야 하며, 모듈 연결시 입출력 형태가 맞지 않으면 모듈 사이에 빨간색으로 선이 그어진다. 

 

gnuradio의 블록 표현 방식은 위와 같은 특징을 가진다.

 

1.  FFT에 입력되는 신호가 실수인 경우

생성한 신호와 FFT 블록의 결과를 표시한 것이다.

※ 내가 참고한 자료에서 FFT 결과를 QT GUI Time sink로 표현하는 것을 보고 의문점이 들었었다. 왜 주파수영역에서 표현한 결과를 GUI Time sink(시간영역의 결과를 표현하는 모듈인데.. ) 로 표현하였을까? GUI Time sink는 입력된 데이터를 계산하는 것이 아니라 그냥 나열하여 보여준다. 그래서 FFT 블록이 출력한 결과를 그대로 나열하여 보여주기 위해 QT GUI Time sink를 사용하였다. FFT 계산과 그래프로 출력하는 것을 동시해 하는 모듈로는 QT GUI Frequency sink가 있다.   

 

cosine 파형의 FFT 결과

 

sine 파형의 FFT 결과

 

2. FFT에 입력되는 신호가 복소수인 경우

 

주파수가 2Hz인 cosine 복소수 신호
주파수가 2Hz인 sine 복소수 신호

 

주파수가 -2Hz인 cosine 복소수 신호

반응형