このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
ダウンサンプリング — 信号位相
この例では、downsample
を使用して、信号の "位相" を求める方法を示します。信号を M でダウンサンプリングすると M 個の固有の位相が生じます。たとえば、ある離散時間信号 x (x(0) x(1) x(2) x(3) ...) を考えるとき、"x" の "M" 個の位相は x(nM + k) です。ここで k = 0,1, ..., M-1 です。
M 個の信号は x の "ポリフェーズ" 成分と呼ばれます。
ホワイト ノイズ ベクトルを作成して、3 によるダウンサンプリングに関連付けられた 3 つのポリフェーズ成分を求めます。
再現性のある結果が得られるように、乱数発生器を既定の設定にリセットします。ホワイト ノイズ ランダム ベクトルを生成して、3 によるダウンサンプリングに関連付けられた 3 つのポリフェーズ成分を求めます。
rng default
x = randn(36,1);
x0 = downsample(x,3,0);
x1 = downsample(x,3,1);
x2 = downsample(x,3,2);
ポリフェーズ成分は元の信号の 1/3 の長さをもちます。
upsample
を使用して、ポリフェーズ成分の 3 によるアップサンプリングを行います。
y0 = upsample(x0,3,0); y1 = upsample(x1,3,1); y2 = upsample(x2,3,2);
結果をプロットします。
subplot(4,1,1) stem(x,'Marker','none') title('Original Signal') ylim([-4 4]) subplot(4,1,2) stem(y0,'Marker','none') ylabel('Phase 0') ylim([-4 4]) subplot(4,1,3) stem(y1,'Marker','none') ylabel('Phase 1') ylim([-4 4]) subplot(4,1,4) stem(y2,'Marker','none') ylabel('Phase 2') ylim([-4 4])
アップサンプリングしたポリフェーズ成分の和を求めると元の信号が得られます。
離散時間正弦波を作成して、2 によるダウンサンプリングに関係する 2 つのポリフェーズ成分を求めます。
ラジアン/サンプルの角周波数で離散時間正弦波を作成します。正弦波に 2 の DC オフセットを加算してポリフェーズ成分の可視化に役立てます。正弦波を 2 によるダウンサンプリングして、偶数と奇数のポリフェーズ成分を求めます。
n = 0:127; x = 2+cos(pi/4*n); x0 = downsample(x,2,0); x1 = downsample(x,2,1);
2 つのポリフェーズ成分をアップサンプリングします。
y0 = upsample(x0,2,0); y1 = upsample(x1,2,1);
比較のため、アップサンプリングしたポリフェーズ成分を元の信号とともにプロットします。
subplot(3,1,1) stem(x,'Marker','none') ylim([0.5 3.5]) title('Original Signal') subplot(3,1,2) stem(y0,'Marker','none') ylim([0.5 3.5]) ylabel('Phase 0') subplot(3,1,3) stem(y1,'Marker','none') ylim([0.5 3.5]) ylabel('Phase 1')
アップサンプリングした 2 つのポリフェーズ成分 (位相 0 と位相 1) の和を求めると元の正弦波が得られます。