Interpretation von N in DFT als Anzahl der Punkte vs. Anzahl der Intervalle

Nov 22 2020

Unter "N" ist DFT die Anzahl der Datenpunkte in einer gegebenen Sequenz oder mit anderen Worten die Länge der Sequenz zu verstehen. Wir haben kürzlich hier Diskussionen über die Indizierung in DFT (aus einem alten Artikel) und die alte Frage von jemandem geführt. Wie messe ich die Zeitdauer einer diskreten Sequenz endlicher Länge? . Eine der beliebtesten symbolischen Versionen von DFT ist

$$ X(j)=\sum_{k=0}^{N-1} x(k) \exp \left(-i 2 \pi\left(\frac{j}{N}\right) k\right) $$

Angenommen, jemand gibt uns die Sequenz bestehend aus N = 11 Punkten, ohne uns die Gesamtzeit oder die Abtastrate mitzuteilen. Wenn wir in MATLAB DFT darauf anwenden, beträgt die Ausgabe 11 Punkte

Notationsprobleme beginnen, wenn wir das Zeitintervall bestimmen möchten$\Delta$t und der Frequenzschritt $\frac{1}{N\Delta t}$ wenn der $\Delta$t wird offenbart.

a) Wenn wir die Abtastfrequenz bestimmen möchten, werden (N-1) Punkte in 1 Sekunde gesammelt. Der letzte Punkt gehört zum nächsten Zyklus . Die korrekte Abtastrate beträgt 10 Hz, nicht 11.

b) Die Frequenzauflösung wird angezeigt $\frac{1}{N\Delta t}$. Um den richtigen Frequenzschritt zu erhalten, müssen wir setzen$\frac{1}{10(0.1)}$ NICHT $\frac{1}{11(0.1)}$.

Daher ist die Frequenzauflösung, wenn wir akzeptieren, dass N = 11, $$\frac{1}{(N-1)\Delta t}$$ aber niemand zeigt diese Formel.

Es scheint, dass wir N auf zwei Arten verwenden

  1. N als Länge der Sequenz
  2. N, wenn wir den Frequenzschritt bestimmen müssen, bei dem es tatsächlich eins weniger als N ist, um das richtige Ergebnis zu erhalten.

Ein angesehener Kollege sagt, dass N als Anzahl der Intervalle und nicht als Anzahl der Punkte interpretiert werden sollte. Dies widerspricht der Definition von N als Anzahl der Punkte in der Sequenz. Leider kann ich keine Referenz finden, die besagt, dass N die Anzahl der Intervalle ist.

Wie können wir dies konsistent machen?

Vielen Dank.

Antworten

1 Fat32 Nov 22 2020 at 23:47

Nein Nein nein nein nein! Sie haben hier ein Missverständnis!

FREQUENCY RESOLUTION ist nicht dasselbe wie DFT BIN FREQUENCY SPACING.

Sie brauchen keine ausführliche Analyse, um das zu sehen. In der folgenden Grafik habe ich die 7-Punkt-DFT einer 7-Punkt-Sequenz x [n] dargestellt. Da DFT periodisch ist, habe ich zweieinhalb Perioden davon aufgezeichnet.

Da die Grafik für sich selbst spricht, ist der Abstand zwischen jedem DFT-Sample (auch bekannt als DFT-Bins) gegeben durch:

$$ \Delta_\omega = \frac{2\pi}{N} \tag{1}$$

Wo $N = 7$ ist die Anzahl der Proben in DFT $X[k]$.

Das ist es. Dieser Wert ist der zeitdiskrete Frequenzabstand (Bogenmaß pro Probe) zwischen den einzelnen DFT-Proben. Von verschiedenen Internet-Communities fälschlicherweise als DFT-Frequenzauflösung bezeichnet .

Der zeitkontinuierliche (analoge) Abstand zwischen den Proben in Hertz wird nach der gleichen Formel und der Tatsache berechnet, dass die Proben $X[0]$ und $X[7]$ (Dies ist die erste Probe der nächsten Periode in Cyan) sind durch getrennt $F_s$ Hz auseinander (eine Folge des Abtastvorgangs):

$$ \Delta_f = \frac{F_s}{N} \tag{2}$$

Schreiben Sie Gleichung 2 in Bezug auf die Periode $T_s = 1/F_s$ du kriegst :

$$ \Delta_f = \frac{1}{N \cdot T_s} = \frac{1}{ \Delta t} \tag{3}$$

Und dies ist die Formel, die Sie fälschlicherweise als "Frequenzauflösung" bezeichnen. Nein, ist es nicht. Es ist nur der DFT-Bin-Frequenzabstand in Hertz. Und dieser Wert$\Delta t$geht es NICHT um die Dauer der Sequenz, sondern nur um eine Folge der dortigen Algebra; ja die dauer von$N$ Proben ist auch $(N-1)\cdot T_s$;; daher sind sie ähnliche Mengen. Aus diesem Grund kann die Dauer der Sequenz verwendet werden, um eine Verknüpfung zum Frequenzabstand des DFT-Bin zu erhalten.

2 OverLordGoldDragon Nov 22 2020 at 22:57

Der Schlüssel ist zu verstehen, was die DFT sagt und was wir suchen . Stellen Sie sich einen Kosinus vor, in dem wir uns ändern$f \text[Hz]$, $N$, und $t$ und beobachten Sie die Auswirkungen auf die DFT:

  • [1] : DFT "sieht" 1 Zyklus im "Analyserahmen" (dh was wir ihm zuführen), also ungleich Null bei$k=1$, wie erwartet.
  • [1] bis [2]: Wir verdoppeln unsere Zeitdauer, ohne uns zu ändern$f$ oder $N$;; DFT sieht dies als zwei Zyklen, die sich über den Analyserahmen erstrecken$k=2$.
  • [1] bis [3]: Wir verdoppeln die physikalische Frequenz, ohne uns zu ändern$N$ oder $t$;; DFT sieht dies als zwei Zyklen, die sich über den Rahmen erstrecken.
  • [1] bis [4]: Wir verdoppeln die Anzahl der Proben ,$N$, ohne Veränderung $f$ oder $t$;; DFT sieht dies als noch 1 Zyklus, der den Rahmen überspannt; bin Standort ,$k$bleibt unverändert, aber die (nicht normalisierte) Korrelationsstärke verdoppelt sich (hier nicht relevant).
  • [4] bis [5]: Jetzt verdoppeln wir auch die Dauer und ergeben zwei Zyklen im Analyserahmen.

Sie sollten ein Muster sehen. Versuchen Sie, ohne weiter zu lesen, eine Beziehung zwischen herzustellen$k$, $N$, $t$, und $f$. Hinweis: Einheiten .


Hier ist der Deal: DFT hat keine Ahnung, was Hz oder physikalische Frequenz ist . Alles, was es weiß, sind Proben und Zyklen , die sich über den Analyserahmen erstrecken. In [1] ist die "DFT-Frequenz"

$$ f_{\text{DFT}} = \frac{k}{N} = \frac{1 \text{ cycle}}{10 \text{ samples}} = .1 \left[ \frac{\text{cycles}}{\text{samples}} \right] $$

[2] = [3] = 2 Zyklen / 10 Proben, [4] = 1 Zyklus / 20 Proben, [5] = 2 Zyklen / 20 Proben. Nehmen wir nun das, was wir über die physikalische Frequenz wissen .$f_p$und DFT-Frequenz und beziehen sie. In [2] sagt DFT$k=2$, aber wir wissen $f_p = 1$. Es könnte auch sein (in keinem [1] - [5] gezeigt)$f_p=2$ und $k=1$. Wie konvertiere ich?

Die verbindende Beziehung ist:

\begin{align} f_p \left[ \frac{\text{cycles}}{\text{second}} \right] & = \left( f_{\text{DFT}} \left[ \frac{\text{cycles}}{\text{samples}} \right] \right) \cdot \left( f_s \left[ \frac{\text{samples}}{\text{second}} \right] \right) \end{align}

Also für [2] :

$$ f_{\text{DFT}} \cdot f_s = \left( \frac{2 \text{ cycles}}{10 \text{ samples}} \right) \cdot \left( \frac{10 \text{ samples}}{2 \text{ seconds}} \right) = 1 \left[ \frac{\text{cycles}}{\text{second}} \right] = 1\ \text{Hz} = f_p $$


Aber wie zu bestimmen $f_s$?

Nach einer einfachen Definition ist es der Kehrwert der Abtastperiode. $\Delta t$, alles oben konsistent zu machen. Man muss sich jedoch fragen, ob "Abtastfrequenz" als "Anzahl der Abtastungen / Gesamtdauer" und "Gesamtdauer" von definiert ist

$$ [0, .1, .2, .3, .4, .5, .6, .7, .8, .9]\ \text{sec} $$

ist klar $0.9\ \text{sec}$ist es dann nicht $f_s$ tatsächlich $.9 / 10 = 0.9\ \text{Hz}$? Nein ; Die Dauer beträgt tatsächlich 1 Sek. Hier ist der Grund:$0.9\ \text{sec}$Hier ist eigentlich die Dauer von etwas ganz anderem. Nämlich "Wie lange dauert das Signal?" kann zwei Dinge fragen:

  1. Für wie lange haben wir Probenahme?
  2. Wie viel Zeit an Informationen enthält unser Signal?

Die Antwort auf erstere ist $0.9\ \text{sec}$, aber zu letzterem ist $1\ \text{sec}$. Ehemals berechnet über$(N-1)\Delta t$, letztere über $N \Delta $und wenn wir für # 2 auf 0,9 bestehen, sagen wir, dass eine Stichprobe keine zeitrepräsentativen Informationen enthält , was impliziert, dass alle Signale eine Dauer von Null haben .

Ich verdeutliche dies hier anhand von Beispielen . Kurz gesagt, das Endziel ist die Beschreibung von Informationen , nicht des Prozesses , mit dem sie erhalten werden.


Was ist also die Frequenzauflösung (eher DFT-Bin-Abstand)?${}^{1}$?

Es ist definiert als Abstand zwischen DFT-Bins, $df$;; Die Antwort hängt von den Einheiten der Wahl ab. Für Hertz gilt nach alledem

$$ df_p = \frac{1}{N \Delta t} \tag{1} $$

was bedeutet, für [2] ,$k=1$ entspricht $f_p = 0.5\ \text{Hz}$, $k=2$ entspricht $f_p = 1\ \text{Hz}$, und so weiter. Alternativ, wenn Sie darauf bestehen, die Dauer über zu definieren$(N-1)$, dann wird es per sein $(N-1)$in Hertz, aber nicht in DFT-Frequenzen ; Letzteres ist eindeutig :

$$ k=1 \rightarrow \frac{1\ \text{cycle}}{N\ \text{samples}} = \frac{1}{N} \left[ \frac{\text{cycles}}{\text{sample}} \right] $$

Sie können wieder zwischen DFT-Frequenzauflösung und physikalischer Auflösung konvertieren . nehmen [2] ,$\text{Duration} / N = 2 \text{ sec} / 10 = .2 \text{ sec}$, also ist der Behälterabstand

$$ df_p = \frac{1}{N \Delta t} = .5\ \text{Hz} $$

Der Abstand kann sich ändern, aber durch Neudefinition $\Delta t$ anstatt sich zu ändern $N$ zu $(N - 1)$ im $(1)$. Angenommen, wir sagen$\text{Duration} = 1.8\ \text{sec}$;; dann,$\Delta t = 0.18\ \text{sec}$, und

$$ df_p = \frac{1}{N \Delta t} = 0.\bar{5}\ \text{Hz} $$

Also in [2] ,$k=1$ entspricht $0.56\ \text{Hz}$, und $k=2$ entspricht $1.1\ \text{Hz}$Dies stimmt mit dem Abschluss von 2 Zyklen in 1,8 Sekunden = 1,1 Hz überein.


Ihr konkretes Beispiel :$N=11$, $\Delta t = 0.1\ \text{sec}$::

$$ df_p = \frac{1}{N \Delta t} = \frac{1}{11 \cdot 0.1\ \text{sec}} = 0.909\ \text{Hz} $$

Damit $k=1$ entspricht $0.909\ \text{Hz}$, nicht auf 1 Hz, da Sie eine Probe aus dem nächsten Zyklus in den Analyserahmen aufgenommen haben.


1: HINWEIS :$df$ist der DFT-Bin-Abstand , nicht die "Frequenzauflösung". DFT hat eine perfekte Frequenzauflösung und keine zeitliche Auflösung. Wenn Sie es jedoch als Unterscheidung von zeitkontinuierlichen Frequenzen definieren, sind die Auflösung und der Bin-Abstand umgekehrt (geringerer Abstand -> mehr Bins -> detailliertere Auflösung). Dies ist ein eigenes Thema, daher werde ich es vermeiden, es im Detail zu klären. Sie können gerne ein neues q öffnen.

1 MarcusMüller Nov 22 2020 at 22:33

Sie sollten wirklich die Vorstellung loslassen, dass ein diskretes Signal eine Folge von Perioden ist. Es ist nicht. Es ist eine Folge von Zahlen - nicht mehr und nicht weniger.

Notationsprobleme beginnen, wenn wir das Zeitintervall bestimmen möchten $\Delta t$

genau. Da das keine Eigenschaft eines diskreten Signals ist.

a) Wenn wir die Abtastfrequenz bestimmen möchten, werden (N-1) Punkte in 1 Sekunde gesammelt

Das klingt falsch. Um den ersten Punkt zu sammeln, mussten Sie bereits zuvor ein Signal haben. Wenn das Signal "plötzlich" der Wert wäre, den Ihr Sample beschreibt, wäre Ihr Signal nicht bandbegrenzt, und daher hat das Abtasten keinen Sinn, und die Samples haben keine Bedeutung, da sich das zeitkontinuierliche Signal zwischen ihnen willkürlich ändern könnte.

Alles in allem also das gleiche, an das ich geschrieben habe. Wie messe ich die Zeitdauer einer diskreten Sequenz endlicher Länge? und zu OverLords Fragen steht:

Versuchen Sie nicht mehr, die Eigenschaft "Dauer" einer Folge von Zahlen zuzuweisen. Es ist nur eine Folge von Zahlen. Sobald Sie den Begriff dieser Zahlen hinzufügen, die ein zeitkontinuierliches Signal darstellen, müssen Sie berücksichtigen, dass dies bandbegrenzt sein muss und daher keine endliche Dauer haben kann. Im Kontext der DFT als Werkzeug zum "Messen" von etwas über der Frequenz stimmt die DFT-Spektrumschätzung nur dann mit der zeitkontinuierlichen Fourier-Transformation für die beobachtete Bandbreite überein, wenn das Signal zu den Abtastzeitpunkten periodisch eine DFT-Länge aufweist. Und dann steht außer Frage: Der Rahmen ist$N\Delta t$ lang, und jede andere Länge wird nicht funktionieren.