ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

ダウンサンプリング — エイリアシング

この例では、信号のダウンサンプリングに際してエイリアシングを回避する方法を示します。離散時間信号の基底域スペクトルのサポートが幅 ラジアンの区間に限定されない場合、 によるダウンサンプリングはエイリアシングをもたらします。エイリアシングは、オーバーラップしている信号のスペクトルの複製が加算されて一緒になることで生じる歪みです。信号の基底域スペクトルのサポートが ラジアンを超えるに従い、エイリアシングはより著しくなります。2 によるダウンサンプリングを行った信号のエイリアシングを示します。信号の基底域スペクトルのサポートは、その幅において ラジアンを超過します。

基底域スペクトルのサポートが幅 ラジアンの信号を作成します。fir2 を使用して信号を設計します。信号のスペクトルをプロットします。

F = [0 0.2500 0.5000 0.7500 1.0000];
A = [1.00 0.6667 0.3333 0 0];
Order = 511;
B1 = fir2(Order,F,A);
[Hx,W] = freqz(B1,1,8192,'whole');
Hx = [Hx(4098:end) ; Hx(1:4097)];
omega = -pi+(2*pi/8192):(2*pi)/8192:pi;

plot(omega,abs(Hx))
xlim([-pi pi])
grid
title('Magnitude Spectrum')
xlabel('Radians/Sample')
ylabel('Magnitude')

信号の基底域スペクトルのサポートが を超えているのがわかります。

2 の係数で信号をダウンサンプリングして、ダウンサンプリングした信号のスペクトルを元の信号のスペクトルとともにプロットします。

y = downsample(B1,2,0);
[Hy,W] = freqz(y,1,8192,'whole');
Hy = [Hy(4098:end) ; Hy(1:4097)];

hold on
plot(omega,abs(Hy),'r','linewidth',2)
legend('Original Signal','Downsampled Signal')
text(-2.5,0.35,'\downarrow aliasing','HorizontalAlignment','center')
text(2.5,0.35,'aliasing \downarrow','HorizontalAlignment','center')
hold off

スペクトルの振幅のスケーリングに加えて、オーバーラップしているスペクトルの複製の重ね合わせによって、元のスペクトルの歪みが において生じています。

信号の基底域スペクトルのサポートを に増やして、信号に対して 2 によるダウンサンプリングを行います。元のスペクトルをダウンサンプリングした信号のスペクトルと共にプロットします。

F = [0 0.2500 0.5000 0.7500 7/8 1.0000];
A = [1.00 0.7143 0.4286 0.1429 0 0];
Order = 511;
B2 = fir2(Order,F,A);

[Hx,W] = freqz(B2,1,8192,'whole');
Hx = [Hx(4098:end) ; Hx(1:4097)];
omega = -pi+(2*pi/8192):(2*pi)/8192:pi;

plot(omega,abs(Hx))
xlim([-pi pi])

y = downsample(B2,2,0);
[Hy,W] = freqz(y,1,8192,'whole');
Hy = [Hy(4098:end) ; Hy(1:4097)];

hold on
plot(omega,abs(Hy),'r','linewidth',2)
grid
legend('Original Signal','Downsampled Signal')
xlabel('Radians/Sample')
ylabel('Magnitude')
hold off

スペクトルの幅を増やした結果、ダウンサンプリングした信号のスペクトルにおいてエイリアシングがより顕著になります。より多くの信号エネルギーが の外側にあるためです。

最後に、基底域スペクトルのサポートを に制限した信号を作成します。2 の係数で信号をダウンサンプリングして、元の信号とダウンサンプリングした信号のスペクトルをプロットします。ダウンサンプリングした信号はフル バンドですが、スペクトルの形状は維持されています。スペクトルの複製がオーバーラップしていないためです。エイリアシングはありません。

F = [0 0.250 0.500 0.7500 1];
A = [1.0000 0.5000 0 0 0];
Order = 511;
B3 = fir2(Order,F,A);
[Hx,W] = freqz(B3,1,8192,'whole');
Hx = [Hx(4098:end) ; Hx(1:4097)];
omega = -pi+(2*pi/8192):(2*pi)/8192:pi;

plot(omega,abs(Hx))
xlim([-pi pi])

y = downsample(B3,2,0);
[Hy,W] = freqz(y,1,8192,'whole');
Hy = [Hy(4098:end) ; Hy(1:4097)];

plot(omega,abs(Hx))
hold on
plot(omega,abs(Hy),'r','linewidth',2)
grid
legend('Original Signal','Downsampled Signal')
xlabel('Radians/Sample')
ylabel('Magnitude')
hold off

前図で、スペクトルの形状が維持されていることがわかります。ダウンサンプリングした信号のスペクトルは、元の信号のスペクトルを引き伸ばして縮尺を変更したバージョンですが、エイリアシングはありません。

参考

| |