Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

イコライズ、畳み込み、およびサイクリック プレフィックス追加

この例では、周波数領域のイコライズを紹介し、循環畳み込みを線形畳み込みに変換する方法を示します。線形チャネル モデルについて考慮する場合、受信信号は送信信号とチャネル インパルス応答の畳み込みになります。周波数領域において、受信信号 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) の長さまでゼロでパディングしなければなりません。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.

u1h の循環畳み込みと線形畳み込みを比較します。関数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 処理においては、信号をゼロでパディングするのではなく、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(yc1,"x")
hold on;
stem(yl2,"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.

参考

関数

関連するトピック

外部の Web サイト