对快速傅里叶变换的补零,以及频域补零的理解
在对二维信号进行快速傅里叶变换(2D FFT)之前进行补零,可以用来增加频率分辨率或避免频谱混叠。
一、二维傅里叶变换前补零
在对二维信号进行快速傅里叶变换(2D FFT)之前进行补零,可以用来增加频率分辨率或避免频谱混叠。以下是对二维信号进行补零的步骤:
1.准备二维信号
假设你有一个二维信号矩阵 x ( m , n ) x(m,n) x(m,n),其大小为 M × N M×N M×N.
2. 选择补零后的尺寸
决定补零后的矩阵尺寸 P ∗ Q P*Q P∗Q,其中 P P P 和 Q Q Q 通常大于或等于 M M M和 N N N。如果希望信号在每个维度上都增加一倍的分辨率,通常选择 P = 2 M P=2M P=2M 和 Q = 2 N Q=2N Q=2N;或者,你可以根据实际需求选择其他尺寸。
3.创建补零矩阵
创建一个大小为
P
∗
Q
P*Q
P∗Q的矩阵,并用零值填充整个矩阵。
X
′
(
p
,
q
)
=
[
0
0
…
0
0
0
…
0
⋮
⋮
⋱
⋮
0
0
…
0
]
X'(p,q)=\begin{bmatrix}0&0&\dots&0\\0&0&\dots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\dots&0\end{bmatrix}
X′(p,q)=
00⋮000⋮0……⋱…00⋮0
4. 将原始信号嵌入补零矩阵中
创建一个大小为
P
×
Q
P×Q
P×Q 放置到
X
′
(
p
,
q
)
X'(p,q)
X′(p,q)的左上角,保持矩阵的原始中心未改变。例如,假设原始矩阵为 4×4 大小,补零后的矩阵为 8×8 大小,那么操作如下。
X
′
(
p
,
q
)
=
[
x
(
1
,
1
)
x
(
1
,
2
)
x
(
1
,
3
)
x
(
1
,
4
)
0
0
0
0
x
(
2
,
1
)
x
(
2
,
2
)
x
(
2
,
3
)
x
(
2
,
4
)
0
0
0
0
x
(
3
,
1
)
x
(
3
,
2
)
x
(
3
,
3
)
x
(
3
,
4
)
0
0
0
0
x
(
4
,
1
)
x
(
4
,
2
)
x
(
4
,
3
)
x
(
4
,
4
)
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
]
X'(p,q)=\begin{bmatrix}x(1,1)&x(1,2)&x(1,3)&x(1,4)&0&0&0&0\\x(2,1)&x(2,2)&x(2,3)&x(2,4)&0&0&0&0\\x(3,1)&x(3,2)&x(3,3)&x(3,4)&0&0&0&0\\x(4,1)&x(4,2)&x(4,3)&x(4,4)&0&0&0&0\\0&0&0&0&0&0&0&0\\0&0&0&0&0&0&0&0\\0&0&0&0&0&0&0&0\\0&0&0&0&0&0&0&0\end{bmatrix}
X′(p,q)=
x(1,1)x(2,1)x(3,1)x(4,1)0000x(1,2)x(2,2)x(3,2)x(4,2)0000x(1,3)x(2,3)x(3,3)x(4,3)0000x(1,4)x(2,4)x(3,4)x(4,4)000000000000000000000000000000000000
5. 执行二维快速傅里叶变换
通过补零,你扩展了信号的时域采样点,从而在频域上增加了分辨率,并可能避免混叠现象。需要注意的是,补零并不会引入新的频率成分,只是增加了频率域的分辨率。
二、为什么将原始信号嵌入补零矩阵中时,不是在上下左右补零?
2.1 频域效果不同
在时域中均匀地在信号的四周补零(上下左右各一半)可以使得补零后的频域信号保留原始信号的对称性,这对一些应用(如图像处理、滤波)来说更为重要。如果只是简单地在右边和下边补零,频域信号可能会产生一定的偏移。
2.2 中心对称性
当你希望保持频域信号的中心对称性时,通常需要在时域信号的上下左右均匀补零,这样做可以更好地保留频谱的对称性,使零频率分量仍然保持在频谱中心位置。特别是在图像处理和一些精细的频率分析中,这种方法非常重要。
2.3实际应用的需求
在一些应用场景中,如信号的插值或提高频率分辨率,补零主要是为了扩展信号的长度,避免频谱混叠或提高频域分辨率。在这些情况下,信号本身的中心位置并不是特别关键,所以选择在右边和下边补零更为方便和有效。
2.4 一维补零的结果
前面补零,后面补零的幅值是一样的,相位是有偏移性(主要性状没变)
三、频域补零怎么理解
频域补零(Zero-padding in the frequency domain)是指在频域信号的频谱上的高频部分添加零值,以扩展频谱的长度。这一操作通常用于时域信号的插值、提高频率分辨率或避免频谱混叠。我们实际上是在控制时域信号的长度和分辨率。
3.1 为什么要在频域补零?
3.1.1 提高时域分辨率:
在频域补零后,对应的时域信号将会增加采样点数,即信号的时域分辨率提高。时域信号将被插值,变得更加平滑。由于增加的零值不会引入新的频率成分,时域信号的本质频率特征保持不变,只是变得更详细、更细腻。
3.1.2避免频谱混叠:
在一些信号处理的应用中(例如重建信号或分析频率细节),通过频域补零可以防止高频成分之间的混叠现象。添加的零值使得频谱在逆傅里叶变换回时域后,频谱之间的过渡更为平滑,减少了可能的混叠。
3.1.3 信号插值
补零操作也可以视为对信号的一种插值方法。在对频谱补零后,对应的时域信号在一定程度上被插值,增加了采样点的数量,从而更精确地描述了信号。
3.2 频域补零的效果
通过频域补零,时域信号的细节得到了增强,信号的采样点数增加,从而信号的表示变得更为精确。同时,补零不会引入新的频率成分,因此信号的频率特征保持不变,但分辨率提高了。
四、如果同时在高频和低频补零会怎么样
4.1 时域平移与频域特性
4.1.1 时域信号的平移
如果你在频域的低频部分补零(即在零频率附近的频谱成分上补零),这相当于在时域信号中引入了一种特定的平移。这是因为频域中的低频成分对应的是信号的全局或整体特征(如直流分量),因此对低频部分的修改会导致时域信号整体上的变化或平移。
4.1.2 高频补零的影响:
在频域的高频部分补零通常用于增加时域信号的长度,提高其分辨率,而不会对信号的整体形态产生大的改变。
4.2 同时补零的影响
4.2.1 增加信号长度
当你同时在高频和低频部分补零时,会对时域信号的长度产生更显著的影响。信号的时间跨度可能会增加,但信号的形态可能会发生一定变化,特别是如果补零的量在低频部分较多的话。
4.2.2 信号失真:
在低频部分补零可能导致信号的失真,因为你在频域中移除了信号的一些关键成分。这些成分通常对应信号的全局特性或低频结构。如果你在这里补零,可能会导致信号的整体结构、形态甚至频率特性发生改变。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)