주요 콘텐츠

이퀄라이제이션, 컨벌루션, 순환 전치 추가

이 예제에서는 주파수 영역 이퀄라이제이션을 소개하고 원형 컨벌루션을 선형 컨벌루션으로 변환하는 방법을 보여줍니다. 선형 채널 모델을 고려할 때 수신 신호는 송신 신호와 채널 임펄스 응답의 컨벌루션입니다. 주파수 영역에서 수신 신호 Y(f)는 송신 신호 U(f)와 채널 임펄스 응답 H(f)의 컨벌루션입니다.

Y(f)=H(f)U(f)

OFDM 수신기는 주파수 영역 이퀄라이제이션을 사용하여 원래 송신 신호를 복구하므로 다음과 같습니다.

U(f)=Y(f)H(f)

FFT 처리를 수행하면 uh의 원형 컨벌루션이 생성됩니다. uh의 원형 컨벌루션이 선형 컨벌루션과 동일하려면 이산 푸리에 변환(DFT)을 수행하기 전에 uh에 최소 (length(u) + length(h) - 1) 길이만큼 0을 채워야 합니다. DFT 곱에 역을 취한 다음에는 처음 N + L - 1개 요소만 유지합니다. 이 프로세스를 보여주는 예제는 선형 컨벌루션과 원형 컨벌루션 항목을 참조하십시오.

짧은 입력 신호 u1과 채널 임펄스 응답 h를 정의합니다. 입력 신호는 채널 임펄스 응답보다 길어야 합니다. 신호의 줄기 플롯을 표시합니다.

u1 = 1:8;
h = [0.4 1 0.4]; 

figure
subplot(2,1,1)
stem(u1);
axis([0 10 0 10])
title("Input signal")
subplot(2,1,2)
stem(h,'^');
axis([0 10 0 2])
title("Channel impulse response")

Figure contains 2 axes objects. Axes object 1 with title Input signal contains an object of type stem. Axes object 2 with title Channel impulse response contains an object of type stem.

hu1의 원형 컨벌루션과 선형 컨벌루션을 비교합니다. 각각 conv 함수와 cconv 함수를 사용하여 선형 컨벌루션과 원형 컨벌루션을 수행합니다. 이상적이지 않은 채널 때문에 발생한 번짐 효과로 인해 선형 컨벌루션과 원형 컨벌루션은 일부 점에서 각기 다른 결과를 생성합니다. 순환 전치(CP)를 사용하면 알 수 없는 전파 지연이 있는 이상적이지 않은 채널에서도 OFDM을 효과적으로 사용할 수 있습니다.

N = length(u1);
yl1 = conv(u1,h);
yc1 = cconv(u1,h,N);
figure;
stem(yl1,"x")
hold on;
stem(yc1,"o")
title(["Convolution Results, N=",int2str(N)])
legend ("Linear","Circular","Location","northwest")

Figure contains an axes object. The axes object with title Convolution Results, N= 8 contains 2 objects of type stem. These objects represent Linear, Circular.

순환 전치(CP) 추가하기

OFDM 처리의 경우, 원형 컨벌루션을 채우기 위해서는 신호에 0 채우기를 사용하는 대신 CP를 추가해야 합니다. 심볼의 마지막 샘플을 반복하는 CP를 추가하면 다음 작업이 가능해집니다.

  • 주파수 선택적 다중 경로 채널의 선형 컨벌루션을 원형 컨벌루션으로 모델링

  • FFT를 사용하여 컨벌루션 계산

  • 채널 추정, 이퀄라이제이션, 동기화를 위한 간단한 주파수 영역 처리

  • 반복된 샘플을 순방향 오류 정정 방식에 사용

L = length(h);      % Length of channel
N = length(u1);     % Length of input signal
ucp = u1(N-L+1:N);  % Use last samples of input signal as the CP
u2 = [ucp u1];      % Prepend the CP to the input signal
yl2 = conv(u2,h);   % Convolution of input+CP and channel
yl2 = yl2(L+1:end); % Remove CP to compare signals

figure;
stem(yl2,"x")
hold on;
stem(yc1,"o")
title("Convolution Results with Cyclic Prefix")
legend ("Linear","Circular","Location","northwest")

Figure contains an axes object. The axes object with title Convolution Results with Cyclic Prefix contains 2 objects of type stem. These objects represent Linear, Circular.

선형 컨벌루션 시퀀스와 원형 컨벌루션 시퀀스를 비교합니다.

if max(yc1 - yl2(1:N)) < 1e-8
    disp("Linear and circular convolution sequences match.")
else
    disp("Received symbols do not match transmitted symbols.")
end
Linear and circular convolution sequences match.

참고 항목

함수

도움말 항목

외부 웹사이트