Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

RRC 필터를 사용하여 보간 및 데시메이션하기

이 예제에서는 rcosdesign 함수로 설계된 제곱근 올림 코사인 필터를 사용하여 신호를 보간하고 데시메이션하는 방법을 보여줍니다. 이 예제를 수행하려면 Communications Toolbox™가 필요합니다.

제곱근 올림 코사인 필터 파라미터를 정의합니다. 신호 성상도 파라미터를 정의합니다.

rolloff = 0.25; % Filter rolloff
span = 6;       % Filter span
sps = 4;        % Samples per symbol
M = 4;          % Size of the signal constellation
k = log2(M);    % Number of bits per symbol

rcosdesign 함수를 사용하여 제곱근 올림 코사인 필터의 계수를 생성합니다.

rrcFilter = rcosdesign(rolloff,span,sps);

randi 함수를 사용하여 10000개의 데이터 심볼을 생성합니다.

data = randi([0 M-1],10000,1);

데이터 심볼에 PSK 변조를 적용합니다. 성상도 크기가 4이므로 변조 유형은 QPSK입니다.

modData = pskmod(data,M,pi/4);

upfirdn 함수를 사용하여 입력 데이터를 업샘플링하고 필터를 적용합니다.

txSig = upfirdn(modData,rrcFilter,sps);

Eb/N0을 SNR로 변환한 후 신호를 AWGN 채널에 통과시킵니다.

EbNo = 7;
snr = EbNo + 10*log10(k) - 10*log10(sps);
rxSig = awgn(txSig,snr,'measured');

수신된 신호에 필터를 적용하고 다운샘플링합니다. 필터 지연을 고려하여 신호의 일부를 제거합니다.

rxFilt = upfirdn(rxSig,rrcFilter,1,sps);
rxFilt = rxFilt(span+1:end-span);

처음 5000개의 심볼을 사용하여 변조 데이터의 산점도 플롯을 만듭니다.

hScatter = scatterplot(sqrt(sps)* ...
    rxSig(1:sps*5000), ...
    sps,0);
hold on
scatterplot(rxFilt(1:5000),1,0,'bx',hScatter)
title('Received Signal, Before and After Filtering')
legend('Before Filtering','After Filtering')
axis([-3 3 -3 3]) % Set axis ranges
hold off

Figure Scatter Plot contains an axes object. The axes object with title Received Signal, Before and After Filtering, xlabel In-Phase, ylabel Quadrature contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent Before Filtering, After Filtering.

참고 항목

|