离散时间傅里叶变换(DTFT)
设离散序列x(n)的采样周期是Ts, 那么x(n) 可表示为x(nTs)δ(t−nTs),整个信号可看做采样而得的xs(t);求这个东西的傅里叶变换就是:
F[xs(t)]=∫∑x(nTs)δ(t−nTs)exp(−jΩt)dt=∑[x(nTs)∫δ(t−nTs)exp(−jΩt)dt]=∑[x(nTs)exp(−jΩnTs)]=∑[x[n]exp(−jnω)]ω=ΩTs=Ωfs
在离散域时,一般把ω 叫做数字角频率,在不涉及到和模拟相关的转换时,一般把采样周期都认为是1,方便操作
前文说过,模拟信号的采样,对应于频域是信号的周期延拓,并且,我们通常认为原信号是带限的,否则因为出现混叠,我们做离散的变换分析也没有意义
观察 DTFT的表达式,可以发现:
- DTFT一定是周期的,且2π一定是DTFT的周期(数字角频率计)
- DTFT仍然是连续的
离散傅里叶变换 (DFT)
DTFT得到的结果是在频率域上仍然是连续的,这个不能用于实际应用。但DTFT表明了 离散序列的频域基本情况。
一般,计算机中的序列长度都是有限的,假设某序列x(n)长度为N,时域描述为xs(t),采样间隔为Ts, 其DTFT为:
x(jω)=N−1∑0x(n)exp(−jnω)
现在我们对其周期化,令周期为NTs 则周期化的信号为:
˜xsN(t)=xs(t)∗∑δ(t−nTs)
当站在离散域角度看上面这个公式,相当于对序列 x(n) 按照 N进行周期延拓。在连续时间域上,其傅里叶变换相当于两者变换的乘积,即:
F(˜xsN(t))=F(xs(t))F(∑δ(t−nTN))]=x(jω)[K∑δ(w−nwN)]=K∑x(jnwN)δ(w−nwN)(1)
其中:
TN=NTswN=2πTNTs=2πN
即,序列周期化后,等价于在频域上对其采样,采样间隔是2πN
前文说过,DTFT一定是周期化且2π一定是其周期, 考察(1)在[−π,π]区间内,刚好采了N个点,自此,我们可以引入DFT了.
因为x(jw)=x(j(w+2π)) 则:
x(jnwN)=x(jn2πN)x(j(n+N)(wN))=x(j(nwN+NwN))=x(j(nwN+2π))=x(jnwN)
因此频域的序列也是以N为周期的,我们考虑(1)其在一个周期内的展开结果
N−1∑k=0x(jkwN)δ(w−kwN)x(jkwN)=N−1∑n=0x(n)exp(−jnkwN)=N−1∑n=0x(n)exp(−jnk2πN)
忽略δ(w−kwN), 我们把上式称作序列的DFT,正式定义如下:
X[k]=N−1∑n=0x[n]exp(−jkn2πN)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库