ダウンサンプラーのZ変換


12

で、この論文またはマルチレートフィルタリング、著者は以下の数学的関係を確立します。ましょうyDそのようなダウンサンプラの出力であります

yD[n]=x[Mn]

ここで、Mはダウンサンプリング係数です。つまり、元の信号のM番目のサンプルごとに保持します。その後、著者は次のことを述べます。

...のz変換yD[n]によって与えられます。

YD[z]=1M∑k=0M−1X[z1/MWk]

ここで、WkあるM -ポイント離散フーリエ変換カーネル、すなわち変換 e(−j2πk)/M。

前者の表現から後者の表現にどのように移行できますか?このような移行を可能にするDFTとZ変換の関係は何ですか?

回答:


9

この派生は扱いにくいものです。前に提案されたアプローチには欠陥があります。最初にこれを説明しましょう。正しい解決策を示します。

我々は、関連したいダウンサンプリング信号の-transformを、Y D(Z )= Z { X [ M 、N ] }に、Zのオリジナル信号の-transform X (Z )= Z { X [ N ] }。ZYD(z)=Z{x[Mn]}ZX(z)=Z{x[n]}

間違ったやり方

ダウンサンプリングされた信号の式を変換の式に単純に差し込むことを考えることができます。Z

YD(z)=∑n=−∞+∞x[Mn]z−n

変数変化は明らかです:n′=Mn

YD(z)=∑n′∈MZx[n′]z−n′/M

しかし、新しい合計インデックスにもかかわらず、ことを理解することが重要でありまだから実行- ∞に∞、合計は今の数字の整数Mの1以上出ています。言い換えると、n′−∞∞

、n′∈MZ={...,−2M,−M,0,M,2M,...}

-transformの定義にはZ

。n∈{...,−2,−1,0,1,2,...}

これはもはや変換ではないため、次のように書くことはできません。Z

YD(z)=X(z1/M)

正しい方法

最初に「ヘルパー」インパルス列信号を次のように定義します。tM[n]

tM[n]=∑k=−∞+∞δ[n−kM]={1:n∈MZ0:n∉MZ

この関数は、すべてのMサンプルのうち1つでであり、他のすべてでゼロです。1M

同様に、パルス列関数は次のように記述できます。

tM[n]=1M∑k=0M−1ej2πkn/M

Proof: We need to consider separately the cases n∈MZ and n∉MZ:

tM[n]=1M∑k=0M−1ej2πkn/M={1M∑k=0M−11:n∈MZ1M1−ej2πkn1−ej2πkn/M:n∉MZ={1MM:n∈MZ1M1−11−ej2πkn/M:n∉MZ={1:n∈MZ0:n∉MZ
n∉MZ

Z

YD(z)=∑n=−∞+∞x[Mn]z−n

We apply the substitution n′=Mn, keeping in mind that this makes the summation run only over integer multiples of M:

YD(z)=∑n′∈MZx[n′]z−n′/M

We can now use the above impulse train function to safely rewrite this as a summation over all n∈Z:

YD(z)=∑n=−∞+∞tM[n]x[n]z−n/M

Using the above formulation for the impulse train function as a finite sum of exponentials, we get:

YD(z)=∑n=−∞+∞(1M∑k=0M−1ej2πkn/M)x[n]z−n/M=1M∑k=0M−1∑n=−∞+∞ej2πkn/Mx[n]z−n/M=1M∑k=0M−1∑n=−∞+∞x[n](e−j2πk/Mz1/M)−n

The summation on the right is a summation over all integers, and is therefore a valid Z-transform in terms of z′=e−j2πk/Mz1/M. Therefore, we can write:

YD(z)=1M∑k=0M−1X(e−j2πk/Mz1/M)

This is the formula for the Z-transform of a downsampler.


1
Very nice. While reading my earlier answer above I also noticed the same flaw that you did.
— Jason R

5

I've not seen this notation before. However, it does seem to make sense. The M-downsampler is defined by the equation:

yD[n]=x[Mn]

Its z transform is defined by the equation:

YD(z)=∑n=−∞∞yD[n]z−n=∑n=−∞∞x[Mn]z−n

Apply a change of variable, letting n′=Mn. The ranges of the summation are unaffected by the change of variable since they extend to infinity.

YD(z)=∑n′=−∞∞x[n′]z−n′/M

This looks similar to the z transform of x[n] itself. Recall that it is defined as:

X(z)=∑n=−∞∞x[n]z−n

By inspection, we can therefore conclude the following relationship between the z transforms of x[n] and yD[n]:

YD(z)=X(z1/M)

Therefore, the z transform of the downsampler output is closely related to the z transform of the input signal, which is to be expected. In the frequency domain, this results in an M-fold stretching of the signal's frequency content.

But how do you go from the above equation to the one you referenced in the paper? It gives a definition of YD(z) in terms of z only, while the expression we derived is a function of z1/M. So for a particular value of z that you would like to evaluate YD(z) at, you would first calculate z1/M (i.e. take the M-th root of z) and then substitute that into X(z). However, all nonzero z∈C have M distinct M-th roots:

{rp, rpej2πM, rpej2π2M, … , rpej2π(M−1)M}

={rp, rpW, rpW2, … , rpWM−1}

where Wk is the DFT kernel value ej2πk/M referenced in your question, and rp is what I define to be the principal M-th root of the complex value z:

rp=|z|Mej∠zM

That is, z's principal M-th root rp is obtained by converting z to polar form, taking the M-th root of z's magnitude (which is a real number), and dividing z's angle by M. The resulting values express rp in polar form.

Why go to all of this trouble? Because, as I noted before, the mapping from YD(z)'s domain to the domain of X(z1/M) is not one-to-one. I'll now begin some handwaving. For any particular value of z that you would like to evaluate YD(z) for, there are M corresponding points in X(z1/M) that you could map to. Therefore, each of those M points in X(z1/M) contribute to the corresponding value of YD(z). You then end up with a sum like that shown in the paper:

YD(z)=1M∑k=0M−1X(rp(z)Wk)

where rp(z) refers to the principal M-th root calculation I showed earlier. In reality, you could pick any of z's M-th roots as the principal one; I picked this definition because it's the most straightforward. If you were to properly and rigorously derive this relationship, I believe the factor of 1M comes in because of a derivative of z1/M.

In mathematician-speak, I believe this would be referred to as a composition of functions; YD(z)=f(g(z)), where f(z)=X(z) and g(z)=z1/M. In order to unroll the function composition and write YD(z) as a function of z only, you would chop the domain of YD(z) into chunks that are one-to-one, invert the function over those intervals, and then sum the results with appropriate scaling factors. I've used this technique before to calculate the probability distribution function of a function of a random variable given the original random variable's pdf (e.g. to derive the pdf of X given X's pdf), but the name of the technique escapes me.


Very nice answer.
— Spacey

Thanks. Any licensed mathematician would cringe at my attempt at a description (I'm obviously an engineer). I don't think it's very clear, but perhaps someone else can suggest a cleaner explanation, or maybe I'll think of a better way to say it.
— Jason R

I understand the first half, but things get fuzzy towards the end for me.
— Spacey

I should rewrite the second half when I get a chance. It's really just a standard technique for deriving an expression for the composition of two functions. I need to recall the details of how to do it.
— Jason R
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.