zwłaszcza, że jest to pytanie o konwencję, nie wzmocnię absurdalnej konwencji MATLAB i odpowiem tylko właściwą i właściwą konwencją lub konwencjami. tzn. indeksowanie MATLAB-a dla DFT nie jest poprawne i właściwe, ale jestem dość agnostyczny co do tego, która z trzech powszechnych konwencji skalowania.
ponadto nie ograniczam ani 0 ≤ k < N , mogą to być dowolne liczby całkowite, ponieważ jestem dość fascynujący fundamentalnym znaczeniem dyskretnej transformaty Fouriera: DFT i dyskretna seria Fouriera są jednym i podobnie. DFT odwzorowuje okresową sekwencję x [ n ] z okresem N na inną okresową sekwencję X [ k ] również z okresem N, a iDFT odwzorowuje ją z powrotem.0≤n<N0≤k<Nx[n]NX[k]N
więc
X [ k + N ] = X [ k ]
x[n+N]=x[n]∀ n∈Z
X[k+N]=X[k]∀ k∈Z
również splot kołowy w „dziedzinie czasu” ( ) lub „dziedzinie częstotliwości” ( X [ k ] ) jest zdefiniowany zgodnie ze wszystkimi konwencjami:x[n]X[k]
W [ k ] ⊛ X [ k ] ≜ N - 1 ∑ i =
h[n]⊛x[n]≜∑i=0N−1h[i]x[n−i]=∑i=0N−1x[i]h[n−i]
W[k]⊛X[k]≜∑i=0N−1W[i]X[k−i]=∑i=0N−1X[i]W[k−i]
więc jedyną przewagą jednej konwencji nad drugą (przy założeniu, że obie konwencje są ważne) może być prostota wyrażania niektórych twierdzeń.
najczęstsza konwencja skalowania dla DFT:
DFT{x[n]}iDFT{X[k]}≜X[k]≜∑n=0N−1x[n]e−j2πkn/N≜x[n]=1N∑k=0N−1X[k]e+j2πkn/N
has the advantage of simplicity regarding circular convolution in the "time domain"
DFT{h[n]⊛x[n]}=H[k]⋅X[k]
but there is a scaling factor you have to worry about if you're convolving in the "frequency domain":
iDFT{W[k]⊛X[k]}=1N⋅w[n]⋅x[n]
Parseval's theorem has a scaling factor to worry about too.
∑n=0N−1∣∣x[n]∣∣2=1N∑k=0N−1∣∣X[k]∣∣2
and the Duality theorem:
DFT{X[n]}=N⋅x[−k]
iDFT{x[k]}=1N⋅X[−n]
the other common scaling convention for the DFT:
iDFT{X[k]}DFT{x[n]}≜x[n]≜∑k=0N−1X[k]e+j2πkn/N≜X[k]=1N∑n=0N−1x[n]e−j2πkn/N
has the advantage of being a tiny bit closer, conceptually, to the Fourier series, where ejωkn≜ej(2πk/N)n are the Fourier basis functions and X[k] are the Fourier coefficients. so if you're looking at raw time-domain data, x[n], and see a sinusoid with k cycles in the buffer of N samples and with (zero-to-peak) amplitude A, that would mean that ∣∣X[k]∣∣=∣∣X[−k]∣∣=∣∣X[N−k]∣∣=A2.
it also has more simplicity regarding circular convolution in the frequency domain
iDFT{W[k]⊛X[k]}=w[n]⋅x[n]
but there is a scaling factor you have to worry about if you're convolving in the time domain:
DFT{h[n]⊛x[n]}=1N⋅H[k]⋅X[k]
Parseval's theorem has a scaling factor to worry about too.
1N∑n=0N−1∣∣x[n]∣∣2=∑k=0N−1∣∣X[k]∣∣2
and the Duality theorem:
DFT{X[n]}=1N⋅x[−k]
iDFT{x[k]}=N⋅X[−n]
the unitary scaling convention for the DFT is identical in scaling with its inverse and preserves energy across the transform or inverse transform:
DFT{x[n]}iDFT{X[k]}≜X[k]≜1N−−√∑n=0N−1x[n]e−j2πkn/N≜x[n]=1N−−√∑k=0N−1X[k]e+j2πkn/N
convolution in either time domain or frequency domain has the same scaling factor to worry about:
DFT{h[n]⊛x[n]}=1N−−√⋅H[k]⋅X[k]
iDFT{W[k]⊛X[k]}=1N−−√⋅w[n]⋅x[n]
but Parseval's theorem has no scaling factor to worry about.
∑n=0N−1∣∣x[n]∣∣2=∑k=0N−1∣∣X[k]∣∣2
nor does the Duality theorem:
DFT{X[n]}=x[−k]
iDFT{x[k]}=X[−n]