直接举一个例子。
假设有一个包含N个样本的信号,表示x[n],其中n=0,1,2,...,N−1。
信号的DFT表示X[k],其中k=0,1,2,...,N−1,对应信号在不同频率上的分量,DFT的计算公式如下:
X[k]=∑Nn=0x[n]⋅e−j(2π/N)⋅k⋅n
其中对于索引k,k=0对应着频率为0的直流分量,k=1对应着第一个正频率分量。。。所以说,如果计算X[0]的值不为0,说明信号中含有直流分量。
DFT得到的频谱是复数,幅值谱就是为:
|X[k]|=√Re(X[k])2+Im(X[k])2
为了将频谱归一化到0到1之间,可以使用如下公式:
Normalized|X[k]|=|X[k]|max(|X[0]|,|X[1]|,...,|X[N−1]|)
例如现在信号为x为[1,2,3,2],N = 4。
- 计算DFT
X[0]=1+2+3+2=8X[1]=−2X[2]=−2X[3]=2
- 计算幅值谱
|X[0]|=8|X[1]|=2|X[2]|=2|X[3]|=2
- 归一化频谱
Normalized|X[0]|=8max(8,2,2,2,2)=1Normalized|X[1]|=2/8=0.25Normalized|X[2]|=0.25Normalized|X[3]|=0.25
可见,信号的直流分量在分母中做了最大的贡献(数值为8),分母大,使得归一化频谱变小。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2021-07-27 AcWing 368. 银河