有关DFT的条理不清晰理解
本来今年暑假前就写好了,但写的md文件直接上传博客园一直不能正常显示公式,今天刚好解决就上传了一下,解决方法准备附在另外一篇博客
寄发现点进随笔还得刷新一下才能正常显示
以下内容是在对DFT以及其他变换有基础理解的基础上阐述,因此基本的符号解释和原理不再赘述
1. DFT、DTFT和DFS
首先是公式
\(DFS: \widetilde{X}[k]=\sum_{n=0}^{N-1} \widetilde{x}[n]e^{-j\frac{2\pi}{N}kn}\)
\(DTFT: X(e^{jw})=\sum_{n=0}^{N-1} x[n]e^{-jwn}\)
\(DFT: X[k]=\sum_{n=0}^{N-1}{x}[n]e^{-j\frac{2\pi}{N}kn}= X(e^{jw})\mid_{w=\frac{2\pi}{N}k}\)
其次是关系
-
DFT和DTFT
假设对离散时间序列\(x[n]\)做DTFT后的结果是\(X(e^{jw})\),DFT相当于对\(X(e^{jw})\)在\([0,2\pi]\)的范围上以\(\frac{2\pi}{N}\)的间隔采样\(N\)个点得到\(X[k]\),即DFT是对离散信号进行傅里叶变换后频域采样的结果
继续对上述DFT的结果\(X[k]\)进行IDFT得到\(y[n]\),其和原序列\(x[n]\)的关系是,\(y[n]\)为\(x[n]\)以采样点数\(N\)为周期进行周期延拓后截取主值(\(0\le n\le N-1\))的结果,因此如果希望IDFT能够不失真的得到原序列,需要DFT点数不小于原序列长度(假设长度\(M\)),即\(N \ge M\)
-
DFT和DFS
假设离散时间序列\(x[n]\)的长度为\(N\),\(\widetilde{x}[n]\)为\(x[n]\)以\(N\)为周期进行周期延拓,对\(\widetilde{x}[n]\)进行DFS后得到\(\widetilde X[k]\),截取主值(\(0\le k\le N-1\))后即为\(x[n]\)进行DFT的结果
2. 连续信号谱和连续信号采样谱的关系(为什么有T or 1/T)
先说结论
- 连续信号的频谱可以通过对连续信号采样,并进行 DFT 再对幅度乘以 \(T\)(采样周期) 的近似方法得到。
- 连续信号的时域采样信号可以通过对其频谱函数进行采样,并进行 IDFT 再对幅度乘以\(\frac{1}{T}\)的近 似方法得到。
推导过程和理解
-
假设一段连续信号(非周期)\(x_a(t)\), 持续时间为\(T_p\), 其最高频率为\(f_c\), \(\Omega\)为模拟角频率
\(x_a(t) FT: X_a(j\Omega)=\int_{-\infty}^{+\infty} x_a(t)e^{-j\Omega t}dt=\int_{-\infty}^{+\infty} x_a(t)e^{-j2\pi ft}dt\)
-
)对\(x_a(t)\)以\(f_s=\frac{1}{T}\ge 2f_c\)的频率进行采样,\(\omega=\Omega T\)为数字角频率,得到\(x[n]=x_a(nT)\),在持续时间\(T_p\)内共采\(N\)点,此时积分间隔\(dt=T\),且\(t=nT\)
(这部分不确定能不能这么理解)\(x_a(nT) FT: X[j\Omega]=\sum_{n=0}^{N-1} x_a(nT)e^{-j\Omega nT}T=\sum_{n=0}^{N-1} x[n]e^{-j2\pi fnT}T\)
-
对\(X[j\Omega]\)在区间\([0,f_s]\)上等间隔采样\(N\)点,\(F=\frac{f_s}{N}=\frac{1}{NT}=\frac{1}{T_p}\)
\(X[jkF]=\sum_{n=0}^{N-1} x[n]e^{-j2\pi kFnT}T=\sum_{n=0}^{N-1} x[n]e^{-j\frac{2\pi}{N} kn}T=T\bullet DFT(x[n])\)
\(T\)倍的形成可以理解成,时域采样相当于原连续信号和冲击序列相乘得到,相当于时域卷积,而冲击序列的傅里叶变换结果乘上了\(\frac{1}{T}\)的系数,因此需要对DFT结果再乘上\(T\)来抵消
3. 频谱泄露
主要现象
对连续信号进行采样后截断后进行DFT后,频谱中出现了原本信号中不存在的频率分量
比如用相同的频率采样,但截断不同的点数\(N\)后做FFT的结果,上图是非整数周期,下图是整数周期
对此我的理解是,原离散序列和对离散序列进行DFT后再进行IDFT的关系是,后者是原序列以频域采样点数\(N\)为周期周期延拓后截取主值(此处假定离散序列的长度和DFT点数相同)
那么如果离散序列包含非整数周期,进行周期延拓后就会导致拼接不上(最简单的正弦信号采样成离散序列,只取1.5个周期,之后周期延拓显然拼接不上),从而产生时域上的突变,频域带宽增大,最终表现为频域上有效频点向周围“泄露”
4.栅栏效应
DFT是在频域以点的形式进行采样,就行从N个栏栅缝里去观察频域信号,其余看不见的地方显然会丢失信息,导致有点频率无法分辨,常见的方法是补0
首先是两种分辨率定义
\(\Delta R_w=\frac{1}{T_p} \\\Delta R_{fft}=\frac{F_S}{N_{fft}}\)
前一个是波形分辨率,\(T_p=\frac{N}{F_S}\)表示时域采样的时长,\(N\)为采样长度,后者是FFT分辨率
-
时域采样信号补零相当于频域插值,能让FFT结果更加光滑、采样频点更加密集,但无法改变波形分辨率,该丢失的频点还是丢失
-
增加时域采样时长\(T_p\),也就是增加原序列长度,可以分辨率增大,即\(\Delta R_w\)减小,从而分辨出两个相近的频点
-
增加频域采样点数\(N_{fft}\),增大FFT分辨率,可以增大波形分辨率