Matlab fftshift学习笔记
- 格式:docx
- 大小:473.48 KB
- 文档页数:4
Matlabfftshift学习笔记
1. 实信号情况
对于一个时域有限长度(长度为N)离散实信号x(n),假设以fs为采样率对其进行采样,然后对采样信号做DFT,得到的频谱X(k)在fs/2处发生混叠。
由DFT的隐周期性可知,DFT 默认时域信号是一个周期为N的离散周期信号x(n),而x(n)只是x(n)的一个主值区间;DFT 后,得到的频谱实际上也是一个离散周期信号,只有满足奈圭斯特采样定理时,频谱才不会发生混叠,从频谱中截取一个周期,就是MATLAB中FFT的结果。
由于频谱是周期的,所
以FFT输出结果的前半部分对应的频率区间是[0,f s
2
],后半部分对应的频率区间可以理解为
[f s 2,f s],也可以理解为 −f s
2
,0。
而对于一个实信号,对其做FFT得到的频谱是关于零频对称的,即频谱包含正频和负频。
不妨假设实信号为:
x t=0.5sin2π⋅10t+2sin2π⋅40t
上面的信号包含四个频点:±10Hz,±40Hz,且频点对应的能量不相同。
以fs=100Hz的采样率对该信号进行采样,可以得到不混叠的离散信号x n,直接对其做FFT,得到如下所示频谱:
FFT输出频谱对应的频率范围是[0,f s],由于DFT运算的隐周期性,位于-10Hz和-40Hz处的频点分别被搬移至(-10+100=90)Hz和(-40+1000=60)Hz处。
而通常我们对 −f s
2,f s
2
内的信号频谱更感兴趣,fftshift的作用就是将[f s
2
,f s]处的频谱搬移
到 −f s
2
,0,如下图所示:
2. 复信号情况
2.1 一般复信号
x t=0.5exp j2π10t+2exp j2π40t+0.5exp−j2π10t
为了满足奈圭斯特采样定律,采样率fs需要大于最高频率的两倍,即80Hz,不妨取fs=100Hz,直接对其进行FFT,得到的信号频谱如下图所示:
显然,位于-10Hz处的频点被搬移至90Hz处了,对其进行fftshift后,得到的结果如下图所示:
2. 线性调频(LFM)信号
假设有线性调频信号:
s t=rect t
T
exp jπKt2
首先分析采样率为多大时即可满足不发生混叠的条件。
由采样定理可知,不发生混叠时的采样率必须大于信号最高频率的2倍,LFM信号的最高频率为KT/2, 所以采样率应满足
fs≥T⋅K=Bandwidtℎ
即对线性调频信号进行采样时,采样率大于信号带宽即可。
由驻定相位原理可得,LFM信号的频谱可以近似表示为:
S f≈1
K
f
exp −jπ
f2
exp±j
π
显然这也是一个线性调频信号。
通常,在matlab中生成LFM信号时,信号时间范围为[-T/2,T/2],即:
t = ((0:N-1)-N/2)/N*1.2*T; % 时间轴
st = exp(1i*pi*K*t.^2).*((abs(t)<=T/2)); % 生成信号
那么信号的实部和虚部的示意图如下图所示,其中信号的零频点对应零时刻:
然而FFT认为信号起始时间为信号的零时刻,也就是fft(st)中,fft认为st是如下图所示的:
这两种情况对应的幅频特性曲线是完全相同的,都如下图所示:
这是因为幅频特性曲线只与频率有关,而与时间无关,两种情况下,信号的频率分布是完全相同的,只是时间有所差异。
而相频特性曲线则有所不同,如下图所示:
所以,在绘制线性调频信号频谱时,应该先对信号做一下fftshift,如下图所示:。