DFTのNをポイント数と間隔数として解釈する
「N」はDFTであり、特定のシーケンス内のデータポイントの数、つまりシーケンスの長さであると理解されています。最近、ここでDFTでのインデックス作成(古い論文から)と誰かの古い質問について議論しました。有限長の離散シーケンスの持続時間を測定するにはどうすればよいですか?。DFTの人気のあるシンボリックバージョンの1つは
$$ X(j)=\sum_{k=0}^{N-1} x(k) \exp \left(-i 2 \pi\left(\frac{j}{N}\right) k\right) $$
誰かが、合計時間やサンプリングレートを教えずに、N = 11ポイントで構成されるシーケンスを与えたとします。MATLABでDFTを適用すると、出力は11ポイントになります。

時間間隔を決定したいときに表記上の問題が始まります$\Delta$tと周波数ステップ $\frac{1}{N\Delta t}$ いつ $\Delta$tが明らかになります。
a)サンプリング頻度を決定したい場合、それは1秒で収集された(N-1)ポイントです。最後のポイントは次のサイクルに属します。正しいサンプリングレートは11ではなく10Hzです。
b)周波数分解能は次のように示されます $\frac{1}{N\Delta t}$。正しい周波数ステップを取得するには、$\frac{1}{10(0.1)}$ ない $\frac{1}{11(0.1)}$。
したがって、周波数分解能は、N = 11を受け入れると、 $$\frac{1}{(N-1)\Delta t}$$ しかし、誰もこの公式を示していません。
Nを2つの方法で使用しているようです
- シーケンスの長さとしてのN
- 正しい結果を得るために実際にはNより1小さい周波数ステップを決定する必要がある場合はN。
尊敬されている同僚は、Nはポイントの数ではなく間隔の数として解釈されるべきであると言います。これは、シーケンス内のポイントの数としてNを定義することと矛盾します。残念ながら、Nが区間の数であるという参照は見つかりません。
どうすればこれを一貫させることができますか?
ありがとう。
回答
いやいやいやいや!ここで誤解があります!
周波数分解能は、DFTビン周波数間隔と同じではありません。
それを確認するために、入念な分析は必要ありません。次のグラフでは、7点シーケンスx [n]の7点DFTをプロットしています。DFTは周期的であるため、2周期半をプロットしました。
グラフィックがそれ自体を物語っているように、各DFTサンプル(別名DFTビン)間の間隔は次の式で与えられます。
$$ \Delta_\omega = \frac{2\pi}{N} \tag{1}$$
どこ $N = 7$ DFTのサンプル数です $X[k]$。
それでおしまい。この値は、各DFTサンプル間の離散時間周波数(サンプルあたりのラジアン)間隔です。さまざまなインターネットコミュニティによって、誤ってDFT周波数分解能と呼ばれています。
ヘルツ単位のサンプル間の連続時間(アナログ)間隔は、同じ式を使用して計算され、サンプルが $X[0]$ そして $X[7]$ (シアンでプロットされた次の期間の最初のサンプルです)は、 $F_s$ Hz間隔(サンプリング操作の結果):
$$ \Delta_f = \frac{F_s}{N} \tag{2}$$
周期の観点から式2を書く $T_s = 1/F_s$ あなたが得る:
$$ \Delta_f = \frac{1}{N \cdot T_s} = \frac{1}{ \Delta t} \tag{3}$$
そして、これはあなたが誤って「周波数分解能」と呼んでいる式です。いいえ、ちがいます。これは、ヘルツ単位のDFTビンの周波数間隔です。そしてその価値$\Delta t$シーケンスの長さではなく、代数の結果です。はいの期間$N$ サンプルも $(N-1)\cdot T_s$; したがって、それらは同様の量です。そのため、シーケンスの期間を使用して、DFTビンの周波数間隔へのショートカットを取得できます。

重要なのは、DFTが何を言っているのか、私たちが何を求めているのかを理解することです。変化するコサインを考えてみましょう$f \text[Hz]$、 $N$、および $t$ DFTへの影響を観察します。

- [1]:DFTは「分析フレーム」(つまり、フィードするもの)で1サイクルを「認識」するため、$k=1$、 予想通り。
- [1]から[2]:変更せずに期間を2倍にします$f$ または $N$; DFTは、これを分析フレームにまたがる2つのサイクルと見なします。$k=2$。
- [1]から[3]:変更せずに物理周波数を2倍にします$N$ または $t$; DFTは、これをフレームにまたがる2サイクルと見なします。
- [1]から[4]:サンプル数を2倍にします。$N$、変更せずに $f$ または $t$; DFTは、これをフレームにまたがる1サイクルと見なします。ビンの場所、$k$、は変更されませんが、(正規化されていない)相関強度は2倍になります(ここでは関係ありません)。
- [4]から[5]:期間も2倍になり、分析フレームで2サイクルが生成されます。
パターンが表示されているはずです。さらに読むことなく、間の関係を確立しようとします$k$、 $N$、 $t$、および $f$。ヒント:単位。
これが取引です。DFTはHz、つまり物理周波数が何であるかを知りません。わかっているのは、分析フレームにまたがるサンプルとサイクルだけです。[1] 、"DFT周波数"であります
$$ f_{\text{DFT}} = \frac{k}{N} = \frac{1 \text{ cycle}}{10 \text{ samples}} = .1 \left[ \frac{\text{cycles}}{\text{samples}} \right] $$
[2] = [3] = 2サイクル/ 10サンプル、[4] = 1サイクル/ 20サンプル、[5] = 2サイクル/ 10サンプル。それでは、物理的な周波数について私たちが知っていることを取り上げましょう。$f_p$およびDFT周波数、およびそれらを関連付けます。で[2]、DFT氏は述べています$k=2$、しかし私たちは知っています $f_p = 1$。([1]-[5]には表示されていません)$f_p=2$ そして $k=1$。変換する方法は?
統一関係は次のとおりです。
\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}
したがって、[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 $$
しかし、決定する方法 $f_s$?
簡単な定義では、それはサンプリング期間の逆数です。 $\Delta t$、上記のすべてを一貫性のあるものにします。ただし、「サンプリング頻度」が「サンプル数/合計期間」、および「合計期間」として定義されているかどうかを確認する必要があります。
$$ [0, .1, .2, .3, .4, .5, .6, .7, .8, .9]\ \text{sec} $$
明らかに $0.9\ \text{sec}$、ではありません $f_s$ 実際に $.9 / 10 = 0.9\ \text{Hz}$?いいえ; 継続時間は実際には1秒です。理由は次のとおりです。$0.9\ \text{sec}$これは実際には完全に他の何かの期間です。つまり、「信号の持続時間はどれくらいですか?」2つのことを尋ねることができます:
- どのくらい我々がサンプリングされていますか?
- 信号にはどのくらいの時間の情報が含まれていますか?
前者への答えは $0.9\ \text{sec}$、しかし後者には $1\ \text{sec}$。以前の計算方法$(N-1)\Delta t$、後者経由 $N \Delta $、そして#2で0.9を主張する場合、1つのサンプルが時間を表す情報を保持していないことを意味します。これは、すべての信号の持続時間がゼロであることを意味します。
ここで例を挙げてこれを明確にします。一言で言えば、最終目標は情報の説明であり、情報を取得するために使用されるプロセスの説明ではありません。
それで、周波数分解能は何ですか(むしろDFTビン間隔)${}^{1}$?
これは、DFTビン間の間隔として定義されます。 $df$; 答えは選択した単位によって異なります。ヘルツの場合、上記のすべてに従って、
$$ df_p = \frac{1}{N \Delta t} \tag{1} $$
意味、[2]の場合、$k=1$ に対応 $f_p = 0.5\ \text{Hz}$、 $k=2$ に対応 $f_p = 1\ \text{Hz}$、 等々。または、を介して期間を定義することを主張する場合$(N-1)$、それからそれはあたりになります $(N-1)$ヘルツではありますが、DFT周波数ではありません。後者は明白です:
$$ k=1 \rightarrow \frac{1\ \text{cycle}}{N\ \text{samples}} = \frac{1}{N} \left[ \frac{\text{cycles}}{\text{sample}} \right] $$
DFT周波数分解能と物理的分解能の間で再び変換できます。[2]を取る、$\text{Duration} / N = 2 \text{ sec} / 10 = .2 \text{ sec}$、したがって、ビンの間隔は
$$ df_p = \frac{1}{N \Delta t} = .5\ \text{Hz} $$
間隔は変更できますが、それは再定義によるものです $\Delta t$ 変更するのではなく $N$ に $(N - 1)$ に $(1)$。私たちが言うとしましょう$\text{Duration} = 1.8\ \text{sec}$; その後、$\Delta t = 0.18\ \text{sec}$、および
$$ df_p = \frac{1}{N \Delta t} = 0.\bar{5}\ \text{Hz} $$
したがって、[2]では、$k=1$ に対応 $0.56\ \text{Hz}$、および $k=2$ に対応 $1.1\ \text{Hz}$、1.8秒= 1.1Hzで2サイクルを完了することに同意します。
あなたの具体例:$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} $$
そう $k=1$ に対応 $0.909\ \text{Hz}$、1Hzではなく、次のサイクルのサンプルを分析フレームに含めたためです。
1:注:注:$df$あるDFTビン間隔ではなく、「周波数分解能」。DFTには完全な周波数分解能があり、時間分解能はありません。しかし、それを連続時間周波数の識別として定義すると、解像度とビン間隔は反比例します(間隔が小さい->ビンが多い->解像度が細かい)。これはそれ自体のトピックなので、詳細を明確にすることは避け、新しいqを自由に開いてください。
離散信号が一連の周期であるという概念を実際に手放す必要があります。そうではありません。それは一連の数字です–それ以上でもそれ以下でもありません。
時間間隔を決定したいときに表記上の問題が始まります $\Delta t$
丁度。それは離散信号の特性ではないので。
a)サンプリング頻度を決定したい場合は、1秒で収集された(N-1)ポイントです。
それは間違っているように聞こえます。最初のポイントを集めるために、あなたはすでに前に合図を持っていなければなりませんでした。信号がサンプルの値である「突然」の場合、信号は帯域制限されないため、サンプリングしても意味がありません。また、連続時間信号はサンプル間で任意に変化する可能性があるため、サンプルには意味がありません。
それで、全体として、私が書いたのと同じです。有限長の離散シーケンスの持続時間を測定するにはどうすればよいですか?そしてOverLordの質問は次のとおりです。
プロパティ「duration」を一連の数値に割り当てようとするのをやめます。それは単なる数字のシーケンスです。時間連続信号を表すこれらの数値の概念を追加するとすぐに、これを帯域制限する必要があることを考慮する必要があります。したがって、期間を制限することはできません。周波数を超えて何かを「測定」するツールとしてのDFTのコンテキストでは、信号がサンプリングの瞬間に周期的なDFT長である場合、DFTスペクトル推定は観測された帯域幅の連続時間フーリエ変換とのみ一致します。そして、疑問の余地はありません。フレームは$N\Delta t$ 長く、他の長さは機能しません。