이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

rcosdesign

올림 코사인 FIR 펄스 성형 필터 설계

설명

예제

b = rcosdesign(beta,span,sps)beta로 지정된 롤오프 인자를 갖는 제곱근 올림 코사인 FIR 필터에 대응되는 계수 b를 반환합니다. 이 필터는 span개 심볼로 잘립니다. 각 심볼 주기에는 sps개 샘플이 포함됩니다. 필터의 차수 sps*span은 짝수여야 합니다. 필터 에너지는 1입니다.

예제

b = rcosdesign(beta,span,sps,shape)shape'sqrt'로 설정하는 경우 제곱근 올림 코사인 필터를 반환하고, shape'normal'로 설정하는 경우 정규 올림 코사인 FIR 필터를 반환합니다.

예제

모두 축소

롤오프 인자를 0.25로 지정합니다. 필터를 6개 심볼로 자르고 각 심볼을 4개 샘플로 나타냅니다. 'sqrt'shape 파라미터의 디폴트 값인지 확인합니다.

h = rcosdesign(0.25,6,4);
mx = max(abs(h-rcosdesign(0.25,6,4,'sqrt')))
mx = 0
fvtool(h,'Analysis','impulse')

정규 올림 코사인 필터와 제곱근 코사인 필터를 비교합니다. 이상적인(무한 길이) 정규 올림 코사인 펄스 성형 필터는 종속 연결 내 두 개의 이상적인 제곱근 올림 코사인 필터와 동일합니다. 따라서, FIR 정규 필터의 임펄스 응답은 제곱근 필터 자체를 컨벌루션한 결과의 임펄스 응답과 유사해야 합니다.

롤오프를 0.25로 지정하여 정규 올림 코사인 필터를 생성합니다. 이 필터가 심볼당 3개의 샘플로 구성된, 4개 심볼을 포함하도록 지정합니다.

rf = 0.25;
span = 4;
sps = 3;

h1 = rcosdesign(rf,span,sps,'normal');
fvtool(h1,'impulse')

정규 필터는 sps의 정수 배가 되는 지점에 영점교차를 가집니다. 이런 식으로 이 필터는 심볼간 간섭을 0으로 만드는 나이퀴스트 판별법을 충족합니다. 하지만 제곱근 필터는 이를 충족하지 않습니다.

h2 = rcosdesign(rf,span,sps,'sqrt');
fvtool(h2,'impulse')

제곱근 필터를 그 자체와 컨벌루션합니다. 길이가 h1이 되도록 최댓값을 벗어나는 임펄스 응답을 자릅니다. 최댓값을 사용하여 응답을 정규화합니다. 그런 다음, 컨벌루션된 제곱근 필터를 정규 필터와 비교합니다.

h3 = conv(h2,h2);
p2 = ceil(length(h3)/2);
m2 = ceil(p2-length(h1)/2);
M2 = floor(p2+length(h1)/2);
ct = h3(m2:M2);

stem([h1/max(abs(h1));ct/max(abs(ct))]','filled')
xlabel('Samples')
ylabel('Normalized amplitude')
legend('h1','h2 * h2')

컨벌루션된 응답은 길이가 유한하기 때문에 정규 필터와 일치하지 않습니다. 응답들이 서로 더 근접하도록 만들고 나이퀴스트 판별법을 더 잘 준수하도록 span을 늘리십시오.

이 예제에서는 제곱근 올림 코사인 필터에 신호를 통과시키는 방법을 보여줍니다.

필터 파라미터를 지정합니다.

rolloff = 0.25;     % Rolloff factor
span = 6;           % Filter span in symbols
sps = 4;            % Samples per symbol

제곱근 올림 코사인 필터 계수를 생성합니다.

b = rcosdesign(rolloff, span, sps);

양극성 데이터로 구성된 벡터를 생성합니다.

d = 2*randi([0 1], 100, 1) - 1;

펄스 성형을 위해 데이터를 업샘플링하고 필터를 적용합니다.

x = upfirdn(d, b, sps);

잡음을 추가합니다.

r = x + randn(size(x))*0.01;

정합 필터링(Matched Filtering)을 위해 수신된 신호에 필터를 적용하고 다운샘플링합니다.

y = upfirdn(r, b, 1, sps);

이 예제에서는 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/No를 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,'g.');
hold on
scatterplot(rxFilt(1:5000),1,0,'kx',hScatter)
title('Received Signal, Before and After Filtering')
legend('Before Filtering','After Filtering')
axis([-3 3 -3 3]) % Set axis ranges
hold off

입력 인수

모두 축소

롤오프 인자로, 1보다 크지 않은 음이 아닌 실수형 스칼라로 지정됩니다. 롤오프 인자는 필터의 초과 대역폭을 결정합니다. 롤오프가 0이면 벽돌담 필터(Brick-Wall Filter)이고 단위 롤오프는 순수 올림 코사인 필터에 해당됩니다.

데이터형: double | single

심볼 수로, 양의 정수 스칼라로 지정됩니다.

데이터형: double | single

심볼당 샘플 수(오버샘플링 인자)로, 양의 정수 스칼라로 지정됩니다.

데이터형: double | single

올림 코사인 윈도우의 형태로, 'normal' 또는 'sqrt'로 지정됩니다.

출력 인수

모두 축소

올림 코사인 필터 계수로, 행 벡터로 반환됩니다.

데이터형: double | single

  • Communications Toolbox™의 라이선스가 있으면 스트리밍 동작을 갖는 멀티레이트 올림 코사인 필터를 적용할 수 있습니다. 이렇게 하려면 System object™ 필터 comm.RaisedCosineTransmitFiltercomm.RaisedCosineReceiveFilter를 사용해야 합니다.

참고 문헌

[1] Tranter, William H., K. Sam Shanmugan, Theodore S. Rappaport, and Kurt L. Kosbar. Principles of Communication Systems Simulation with Wireless Applications. Upper Saddle River, NJ: Prentice Hall, 2004.

확장 기능

참고 항목

R2013b에 개발됨