본문 바로가기
programming language/MATLAB

MATLAB, OCTAVE Root Raised Cosine Filter Coefficient

by 남성 2013. 11. 3.

통신 시뮬레이션을 하면서 Root Raised Cosine Filter 는 많이들 사용하실 텐데요.

 

아래 포스팅에서 소개했다시피, Root Raised Cosine Filter Coefficient 는 Communications System Toolbox 의 rcosine() 함수를 통해서 구할 수가 있었습니다.

 

2011/03/02 - [programming language/MATLAB] - [디지털 통신] Raised Cosine Filter

2011/03/09 - [programming language/MATLAB] - [디지털 통신] EYE PATTERN


그런데 최근에 사용해보니 다음과 같이 향후에는 없어질 함수이니 fdesign.pulseshaping 을 사용하라고 나오더군요.

 

MATLAB 을 사용할 수 없는 환경에서는 OCTAVE 를 사용할 때, communications package 는 있지만 rcosfir, rcosflt 와 같은 함수들은 아직 제공되지 않더군요.

 

http://octave.sourceforge.net/communications/overview.html

 

Root Raised Cosine Filter Coefficient 수식을 보고 작성하는 방법도 있겠지만, 이런 코드들은 대부분 인터넷을 찾아보면 나오기 마련이라

 

찾아보니 아래 주소에 있더군요. 

http://www.mathworks.com/matlabcentral/fileexchange/14809-m-qam-modulation-and-demodulation

 

위 주소에서 다음 그림과 같이 QAM.zip 파일을 다운로드 한 후에 압축을 해제 합니다. 파일 이름에서도 알 수 있겠지만, QAM 변복조 함수들이 포함되어 있더군요.

 

 

몇가지 함수 중에 my_rrc.m 함수가 Root Raised Cosine Filter Coefficient 를 생성하는 함수 입니다.

 

함수 원형이 다음과 같으니 네 개의 변수를 넣는다는건 아실테고~ 위에서 설명드린 rcosine() 함수와 비슷하더군요.

 

function f = my_rrc(fd, fs, beta, delay)

% MY_RRC Produces the impulse response of a root raised cosine filter

% F = MY_RRC(Fd, Fs, BETA, DELAY) is the impulse response of a root

% raised cosine FIR filter with rolloff factor BETA and delay DELAY. 


fd 는 원 신호의 sample rate, fs 는 oversample rate, beta 는 Root Raised Cosine Filter 의 rolloff factor, delay 는 말 그대로 filter 의 delay 심볼 수 입니다.

 

제가 테스트 해보니

 

Sqrt_r_filter= rcosine(1e6, 8e6, 'sqrt', 0.2, 3);

Sqrt_r_filter_2=my_rrc(1e6,8e6,0.2,3);

D=Sqrt_r_filter_2(:)-Sqrt_r_filter(:)

plot(D)

 

차이가 10-16 대로 동일한 계수가 나오더군요.

 

간단하게 Root Raised Cosine Filter 를 roll off 에 따라 그려봤습니다.

 

Sqrt_r_filterAll=[];

legCell={};

 

n=1;

for r=0.2:.2:.9

Sqrt_r_filterAll(:,n)=my_rrc(1e6,8e6,r,3);

legCell{n}=num2str(r);

n=n+1;

end

 

figure,

plot(Sqrt_r_filterAll), grid on

legend(legCell)

OCTAVE 에서도 확인해보니 정상적으로 Root Raised Cosine Filter Coefficient 가 나오더군요. 




댓글0