なぜDFTは変換された信号が周期的であると仮定するのですか?


10

多くの信号処理の本では、DFTは変換された信号が周期的であると想定していると主張されています(これが、たとえばスペクトル漏れが発生する理由です)。

ここで、DFTの定義を見ると、そのような仮定はありません。ただし、離散時間フーリエ変換(DTFT)に関するWikipediaの記事では、

入力データシーケンスが周期の場合、Eq.2は離散フーリエ変換(DFT)に計算的に削減できます。Nx[n]N

  • では、この仮定はDTFTに由来するのでしょうか?
  • 実際、DFTを計算するとき、実際には信号が周期的であるという前提でDTFT 計算していますか?

x [n]のDFT X [k]は、周期信号xp [n]の離散フーリエ級数(DFS)の最初の周期であり、その最初の周期はx [n]として取得されるため
Fat32

1
これに対する反対の答えを書かなければならないようです。DFTは、変換された信号が周期的である変換された信号に基底関数のセットを適合させるため、変換された信号が周期的であると想定します。
robert bristow-johnson、2015

1
DFTはDFSの単純化された表現であり、周期的な仮定が本質的に存在します。
lxg 2016年

回答:


12

すでに良い答えはいくつかありますが、デジタル信号処理の多くの側面を理解するにはこのトピックが非常に重要であると考えるので、私はさらに別の説明を追加したいと思います。

まず第一に、DFTは変換される信号の周期性を「想定」しないことを理解することが重要です。DFTは単に長さ有限信号に適用され、対応するDFT係数は次のように定義されます。N

(1)X[k]=n=0N1x[n]ej2πnk/N,k=0,1,,N1

(1)から、区間[ 0 N 1 ]サンプルのみが考慮されることは明らかであるため、周期性は想定されていません。一方、係数X [ k ]は、信号x [ n ]の周期的な継続のフーリエ係数として解釈できます。これは逆変換から見ることができますx[n][0,N1]X[k]x[n]

(2)x[n]=k=0N1X[k]ej2πnk/N

これは区間[ 0 N 1 ]正しく計算しますが、(2)の右側は周期Nで周期的であるため、この区間外での周期的継続も計算します。このプロパティはDFTの定義に固有​​ですが、通常は[ 0 N 1 ]の間隔のみに関心があるため、気にする必要はありません。x[n][0N1]N[0N1]

x [ n ]の DTFTを考慮するバツ[]

(3)バツω=Σ=バツ[]ejω

(3)と(1)を比較すると、が区間[ 0 N 1 ]の有限列である場合、DFT係数X [ k ]はDTFT X ω )のサンプルであることがわかります。:バツ[][0N1]バツ[k]バツω

(4)バツ[k]=バツ2πk/N

したがって、DFTの1つの使用法(確かに唯一ではない)は、DTFTのサンプルを計算することです。ただし、これは、分析する信号の長さ有限である場合にのみ機能します。通常、この有限長の信号は、より長い信号をウィンドウ処理することによって作成されます。そして、スペクトル漏れを引き起こすのはこのウィンドウイングです。

最後の発言、メモとしてその周期継続DTFT の有限のシーケンスX [ N ]のDFT係数で表すことができるX [ N ]バツ[]バツ[]バツ[]

Xω=2π

(5)バツ[]=Σk=バツ[kN]
(6)バツω=2πNΣk=バツ[k]δω2πk/N

EDIT:事実Xω 上記は、以下のようにDTFT変換対を示すことが可能です。最初に、離散時間インパルスコムのDTFTはディラックコムであることに注意してください。バツ[]X~(ω)

(7)k=δ[nkN]2πNk=δ(ω2πk/N)

シーケンスの畳み込みのように書くことができるX [ N ]インパルス櫛で:x~[n]x[n]

(8)x~[n]=x[n]k=δ[nkN]

DTFT領域における乗算に畳み込み対応するので、DTFT X [ N ]の乗算によって与えられるX ω くし型関数を有します:X~(ω)x~[n]X(ω)

(9)X~(ω)=X(ω)2πNk=δ(ω2πk/N)=2πNk=X(2πk/N)δ(ω2πk/N)

結合4こと結果を確立6 (9)(4)(6)


私が@ hotpaw2のより最近の回答を持っているのと同じ理由でこの回答を下向きにした。このステートメントでは:「(1)から、区間[ 0 N 1 ]サンプルのみが考慮されることは明らかであるため、周期性は想定されていません。」x[n][0,N1]結論は前提から続くものではありません。
robert bristow-johnson、2015

4
@ robertbristow-johnson:そうです。私与える個の連続サンプルを、と私はあなたにDFTを与えます。[ 0 N 1 ]の範囲外にある信号については、その存在さえも想定する必要はありません。これはその文で私が主張する唯一のものであり、それは明らかに本当です。DFTを計算するために、区間[ 0 N 1 ]の値以外は何も知る必要はありません。あなたが私の声明をどのように誤解したり、誤って読んだりできるかわかりません。それが定式化の問題であるなら、私は私の文を明確にして喜んでいるでしょうが、内容的にはそれは実際には些細なことです。N[0,N1][0,N1]
Matt L.

4
以下の他の答えと私のスレッドで私の答えを読んでください。それが何についてではありませんあなたがについて仮定の外0 N N - 1。それは、変換(我々は少し擬人化することが許可されている場合)については、「前提とし」何のことだX [ N ]の外0 N N - 1。整数の量だけ他のドメインをシフトする1つのドメインで操作を呼び出すときに、変換が何を想定するかを見つけることができます。x[n]0nN1x[n]0nN1
robert bristow-johnson、2015

@MattL。(9)が読むべきの代わり=2π
=2πNk=X[k]δ(ω2πk/N)
=2πNk=X(2πk/N)δ(ω2πk/N)
jomegaA

@jomegaA:どちらの場合もありません。私の答えの最後の文で述べたように、最終結果(6)、(4)と(9)を組み合わせることから結論ので、コースのれるが、(9)でDTFT X ω から導出されます。そして、スケーリング係数に関する2 π / N、それは間違いなくそこにする必要があります。ωfを使用する式を混同しないでください。これらは異なるスケーリング係数を持っています。X[k]=X(2πk/N)X(ω)2π/Nωf
マットL.

8

これは、時間領域信号の定義に基づいています。

x[n]=k=0N1X[k]e2πinkN

定義により、x[n]=x[n+N]ことがわかります。
一方、DFTは信号のN個のサンプルを完全に再構築します。
したがって、それは定期的な継続を前提としていると結論付けることができます。

Another point of view would be looking at the DFT as a Finite Discrete Fourier Series (It actually is, Have a look at Discrete Fourier Series - DFS), which of course points that the signal is periodic (Finite summation of signals with period T is a signal which has a period T).


2
I don't see how it comes from the definition.
user10839

1
@user10839: Just evaluate x[n+N] and you'll see that it equals x[n]. As pointed out in the answer, the DFT is just a Fourier series of the time domain signal. The finite length of the time domain signal is considered the fundamental period.
Matt L.

@user10839, Just plug it into the equation. The exponent can be defined with the Cosine and Sine functions, which as can be seen have period of nkN.
Royi

1
DFT isn't the DFS. This is pedantic, but DFT gives you the Fourier series coefficients. It's important to note that DFT is just like any other linear transforms. It's a matrix multiplication. The matrix is orthonormal, which makes it nice. It can also be shown that the output equal coefficients of the corresponding Fourier series expansion of the data, but the Fourier transform is not the Fourier series (type mismatch :p).
thang

@thang, I have no idea what you mean. The DFT is the DFS. They are the same. It is easy to see that. Pay attention, this is the Discrete Fourier Series and not the Fourier Series (With integrals). Have a look here en.wikipedia.org/wiki/Discrete_Fourier_series and see it is DFT.
Royi

5

It's an un-necessary (and often false) assumption. The DFT is just a basis transform of a finite vector.

The basis vectors of the DFT just happen to be snippets of infinitely extensible periodic functions. But there is nothing inherently periodic about the DFT input or results unless you extend the basis vectors outside the DFT aperture. Many forms of signal analysis do not require any extension or assumptions outside the sampled window or finite data vector.

Any "leakage" artifacts can also be assumed to be from a convolution of the default rectangular window with a signal that is not periodic or is of unknown periodicity or stationarity. This makes much more sense when analyzing overlapped FFT windows, where any assumption of periodicity outside of any one DFT or FFT window can be inconsistent with the data in other windows.

Periodicity may make the math relating the DFT to the DTFT more tractable. But any relationship to the DTFT may or may not be necessary when actually using an FFT for signal processing (depending on exactly which Fourier transform properties are needed for further analysis of the processing method).


down arrowed for the same reason i down-arrowed your more recent answer about this.
robert bristow-johnson

5

Ok, my answer will be somewhat different than the other answers. my answer accepts the premise of the question rather than denies the premise of the question.

the reason that the DFT "assumes" the input signal (the signal to be transformed, what i assume the OP means by "transformed signal") is periodic is because the DFT fits a collection of basis functions to that input signal, all of which are periodic.

consider a different set of basis functions:

gk(u)uk0k<N

and given N input samples:

x[n]0n<N

we can fit a linear sum of these basis functions gk(n) to the input sequence

x[n]=k=0N1X[k]gk(n)=k=0N1X[k]nk

with judicious selection of the coefficients X[k]. calculating all X[k] requires solving N linear equations with N unknowns. you can use Gaussian elimination to do it.

with the N correct values for X[k] for 0kN1, we can make sure that the sum of these power functions (which is an (N1)th-order polynomial) will evaluate exactly to x[n] for each n such that 0nN1.

now what if you use that summation to go beyond the interval of 0nN1? you can evaluate it for any n. you will notice that the behavior of that function will be that of an (N1)th-order polynomial because that is what it is. for n large enough, only the highest power with a non-zero coefficient will set the trend for the extrapolated x[n].

so now, with the DFT we are fitting a different set of basis functions to our input sequence:

gk(u)1Ne+j2πku/N0k<N

x[n]=k=0N1X[k]gk(n)=1Nk=0N1X[k]e+j2πnk/N

and the coefficients, X[k], can be solved for and are:

X[k]=n=0N1x[n] ej2πnk/N

the placement of that 1N is a matter of convention. i am putting it where most of the literature puts the 1N factor. it could be removed from the x[n] equation and put in the X[k] equation, instead. or "half" of it (1N) could be placed with both equations. it's just a matter of convention.

but here we are fitting a set of basis functions that are all periodic with period N to the original x[n]. so even if x[n] came from a longer sequence was not periodic, the DFT is considering that x[n] is the sum of a bunch of basis functions each that are periodic with period N. if you add up a bunch of periodic functions, all with the same period, the sum must also be periodic with the same period.


for a little more polemic, where i dispute the notion that the DFT does not necessarily periodically extend the data passed to it, please look at this previous answer from me. i would rather not repeat it here.
robert bristow-johnson

1

DFT is discrete. DTFT is continuous. We can get DFT from DTFT by sampling it with the pulse train of the right period, which is actually equal to multiplying it with the pulse train. Multiplication in the transform domain is equal to convolution in discrete-time domain, this implies periodicity of signal.


DTFT is continuous? How come?
jojek

2
The result of the DTFT is continous (in frequency).
Deve

Indeed - thus you should state it clearly to avoid any misunderstanding and supply adequate equations.
jojek

@jojek Thats true, I also think this answer could be improved by some equations
Deve

1
Ill add more details very soon.
学習者

0

Only DFT is practical in discrete digital world because of periodic assumption on both domains. (If you call it like that.) Because non periodic signal on one domain cause continuous signal on the other and you can only store discrete signal in digital memory. So you need to assume the signals are periodic on both domains to make it discrete on both domains.

When you calculate DTFT you get continuous signal in frequency domain as the output.
I don't think you will use the same procedure when you calculate DFT in practical. When you actually calculated both DTFT and DFT you will understand that both transform calculation are different stories.


0

Since the signal is periodic, the time shifted signal doesn't change the absolute magnitude of the frequency domain.

X[k]=k=0N1x[n]e2πinkN

e2πiDkNX[k]=k=0N1x[nD]e2πinkNe2πiDkN

By the way, there is nothing stopping you from taking the FFT of a non-periodic signal, but there it little practical use if none of the transformations work.

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.