频谱泄露

fft在分析频谱分析的时候,会有下面四个方面的误差:

(1)频谱混叠: 奈奎斯特定理已被众所周知了,所以几乎所有人的都知道为了不让频谱混叠,理论上采样频谱大于等于信号的最高频率。那和时域上联系起来的关系是什么呢?

采样周期的倒数是频谱分辨率,最高频率的倒数是采样周期。

设定采样点数为N,采样频率fs,最高频率fh,故频谱分辨率f=fs/N,而fs>=2fh,所以可以看出最高频率与频谱分辨率是相互矛盾的,提高频谱分辨率f的同时,在N确定的情况下必定会导致最高频率fh的减小;同样的,提高最高频率fh的同时必会引起f的增大,即分辨率变大。


(2)栅栏效应:由于dft是只取k=0,1,2,.......N-1,只能取到离散值,如果频谱之间相隔较大的话也许会将一些中间的信息丢失掉,而用fft计算dft是不可避免的,解决的办法就是增加采样点数N。这样频谱间隔变小,丢失信息的概率减小。

另外,增加0可以更细致观察频域上的信号,但不会增加频谱分辨率。

这里有补零对分辨率的影响


(3)频谱泄露:是由加窗函数引起的,同样是计算量的问题(用fft用dft必需要加窗函数),时域上的相乘,频域上卷积,引起信号的频谱失真,只有在很少的情况下,频谱泄露是不会发生的,大部分情况都会引起泄露。如x(n)=cos(2π/N),(n=0,1,2,3.....N-1,)  N点的fft则不会发生泄露,但2N,或N+1,N+2等均会引起失真,而引起失真可以从表达式上可以看出  X(K)=卷积以后的频谱在2π/N*k的      取样值,所以如果是2N的dft,为2π/2N*K,相当于N点dft结果各个值中间再取样了一个值,而2π/(N+2)*k,就与N点fft完全不一样了。解决办法,可以扩大窗函数的宽度(时域上的宽了,频域上就窄了,(时域频域有相对性),也就是泄露的能量就小了),或者不要加矩形的窗函数,可以加缓变的窗函数,也可以让泄露的能量变下。

因为泄露会照成频谱的扩大,所以也可能会造成频谱混叠的现象,而泄露引起的后果就是降低频谱分辨率。


频谱泄露会令主谱线旁边有很多旁瓣,这就会造成谱线间的干扰,更严重就是旁瓣的能量强到分不清是旁瓣还是信号本身的,这就是所谓的谱间干扰

所谓频谱泄露,就是信号频谱中各谱线之间相互影响,使测量结果偏离实际值,同时在谱线两侧其他频率点上出现一些幅值较小的假谱,导致频谱泄露的原因是采样频率和信号频率的不同步,造成周期采样信号的相位在始端和终端不连续。

  设X(t)为实际信号,T0为信号周期,f0=1/T0为信号频率,Ts为采样周期,fs=1/Ts为采样频率,L是截取的周期数,N是采样点 数,L、N均为正整数,X(t)经过长度为LT0的时间窗后得到离散序列X(n),必须满足采样频率和信号频率同步,即同步采样的要求: LT0/Ts=Nfs/f0。

  当信号X(t)的频率f0是fs/N的整数倍时,这说明在处理长度NT内有信号的K个整周期。这时由X(t)构成的以NT为周期的周期性信号是连续 的。当信号X(t)的频率f0不是fs/N的整数倍时,则在NT的处理长度内,就不是恰好为信号周期的整数倍,有X(t)以NT为周期进行周期延拓所得到 的周期性信号就出现了不连续点,造成了频谱分量从其正常频谱扩展开来,就这样形成了频谱泄露现象。

  在对信号做FFT分析时,如果采样频率固定不变,由于被采样信号自身频率的微小变化以及干扰因素的影响,就会使数据窗记录的不是整数个周期。从时域来 说,这种情况在信号的周期延拓时就会导致其边界点不连续,使信号附加了高频分量;从频域来说,由于FFT算法只是对有限长度的信号进行变换,有限长度信号 在时域相当于无限长信号和矩形窗的乘积,也就是将这个无限长信号截短,对应频域的傅里叶变换是实际信号傅里叶变换与矩形窗傅里叶变换的卷积。

  当信号被截短后的频谱不同于它以前的频谱。例如,对于频率为fs的正弦序列,它的频谱应该只是在fs处有离散谱。但是,在对它的频谱做了截短后,结果 使信号的频谱不只是在fs处有离散谱,而是在以fs为中心的频带范围内都有谱线出现,它们可以理解为是从fs频率上泄露出去的,这种现象就是频谱泄露。泄 露现象对功率谱估计及正弦分量的检测均带来有害的影响,因为弱信号的主瓣很容易被强信号泄露到邻近的副瓣所淹没及畸变,从而造成谱的模糊与失真。通过 LABVIEW信号处理实验室可以看到当边界点不连续时出现的频谱泄露的情况如下图1所示:

  

图1 信号边界点不连续时

  接下来举例说明以上的情况。假设连续信号X(t)的周期为T,现在对它进行采样,采样时间为t,采样N个点,那么T=N*t,因为f(t)的频率 f0=2*pi/T,同时又有T=N*t、fs=2*pi/t,则有f0=2*pi/N*t=fs/N。接着我们假设对一个周期采样N=32个点,则有 f0=fs/N;当对一个周期采样N1=64个点,那么N1=2*N,有f0=fs/N=fs/N1/2,即f0=2*fs/N1;同理当 N2=128,f0=4*fs/N2…

  也就是说如果采样的不是整数倍的信号周期,那么这32个点、64个点、128个点....就不是在一个整周期内采到的,那么上面的等式也就不成立了, 因此也就发生了频谱泄露。如果原始信号的频谱成份与FFT中的谱线完全一致,这种情况下采样数据的长度为信号周期的整数倍,频谱中只有主瓣,没有出现旁瓣 的原因是旁瓣正处在窗函数主瓣两侧采样频率间隔处的零分量点。如果时间序列的长度不是周期的整数倍,窗函数的连续频谱将偏离主瓣的中心,频率偏移量对应着 信号频率和FFT频率分辨率的差异,这个偏移导致了频谱中出现旁瓣,所以窗函数的旁瓣特性直接影响着各频谱分量向相邻频谱的泄露宽度。下图2是信号边界连 续时的频谱图,可以看到此时频谱未发生泄露。

  

图2 信号边界点连续时

  因此,综上所述,当采样同步时,窗口宽度等于整数个信号周期,矩形框的过零点与离散频点正好对齐,没有泄露。采样不同步时,窗口宽度不是整数个信号周期,谐波频谱分布不再是一条谱线而是在整个频域内分布,频谱之间相互干扰,出现频谱泄露。

  由以上分析可以看出,采样不同步是造成频谱泄露的根本原因,减少采样的同步误差是抑制频谱泄露的根本措施。

  三、消除频谱泄露的处理方法

  01选择合适的窗函数

  为减少频谱能量泄露,可采用不同的截取函数对信号进行截断,截断函数称为窗函数。 泄露与窗函数频谱的两侧旁瓣有关,如果两侧旁瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱,为此,在时间域中可采用不同的窗函数 来截断信号,应用在谐波测量中的窗函数很多,不同的窗函数对谐波测量的影响各不相同,即使同一个窗函数,参数选择不一样,影响也不一样,以下是6种常用的 窗函数及特性:

  

  矩形窗汉宁窗(Hanning)

  

  汉明窗(Hamming) 布莱克曼窗(Blackman)

  

  Bartlett窗(三角窗) 凯泽窗(Kaiser)

  选择合适的窗函数对于减少频谱能量泄露非常有效,以下是窗函数的选择建议:

  如果在测试中可以保证不会有泄露的发生,则不需要用任何的窗函数;

  如果测试信号有多个频率分量,频谱表现的十分复杂,且测试的目的更多关注频率点而非能量的大小。在这种情况下,需要选择一个主瓣够窄的窗函数,汉宁窗是一个很好的选择;

  如果测试的目的更多的关注某周期信号频率点的能量值,那么其幅度的准确性则更加的重要,可以选择一个主瓣稍宽的窗;

  如果检测两个频率相近幅度不同的信号,用布莱克曼窗;

  如想要灵活的通过窗函数的形状来控制频谱波纹或阻带衰减指标,则选择凯泽窗;

  如果被测信号是随机或者未知的,选择汉宁窗。

  02加长傅里叶时间窗长度

  傅里叶时间窗长度就是参与傅里叶变换的数据点数,参与变换的数据点数越多,频谱泄露越小。对于快速傅里叶变换FFT,要求数据点数必须为2的N次幂,而对于普通离散傅里叶变换DFT则无此限制。

  以下是不同采样次数和窗宽对应的频谱泄露,从对比图上可以看出,当采样次数N和窗宽L同时增大时,频谱泄漏减小。

  

不同采样次数和窗宽对应的频谱泄露

  03利用频率同步装置减少频谱泄露

  利用硬件装置实现频率同步的装置很多,其中下图3所示的是利用数字式锁相器(DPLL)实现频率同步的框图。图中带通滤波器用来滤除噪声干扰,数字式 相位比较器把取自系统电压信号的相位和频率与锁相环输出的同步反馈信号进行相位比较。当失步时,数字式相位比较器输出与两者相位差和频率差有关的电压,经 滤波后控制并改变压控振荡器的频率,直到输入的频率和反馈信号的频率同步为止。一旦锁定,便将跟踪输入信号频率变化,保持两者的频率同步,输出的同步信号 去控制对信号的采样和加窗函数。

  

图3 频率同步数字锁相装置框图

  此种采用锁相环技术实现硬件同步采样的方法尽管可以在一定程度上减小频谱泄露,但其加大了硬件复杂度。

  04利用采样频率自适应软件算法来减少频谱泄露

  对于实际的电力信号,其频率的变化一般是比较缓慢的,相邻的几个周波的频率变化很小,在对其进行频谱分析时,针对电力信号这个特点,采用软件采样频率 自适应算法。首先以基波频率50HZ为采样基点,然后通过软件算法得到信号的实际频率,用实际频率自动的调整采样时间,可以减小同步误差,提高精度。

  对于实际电力信号,软件采样频率自适应算法如下:

  (1)设定采样间隔为Ts=78.125us(采样频率fs=12.8kHz),采样2×512+256点;

  (2)根据采样序列和采样间隔,利用改进的过零修正法计算信号的实际频率f0;

  (3)由实际频率f0调整新的采样时间间隔,可使新的采样时间窗是T0=1/f0的整数倍,并采样2×512+256点;

  (4)利用过采样法进行FFT运算得到64点(N=512而只计算64点)结果,输出基波以及各次谐波数据;

  (5)将2×512+256点采样序列和新的采样间隔作为参数,返回第(2)步。

  本算法主要有以下特点:

  (1)在第2步中采用数字滤波过零修正法。仅仅采用一般的过零线性化来计算采样频率所得到f0的误差还是较大的,由于干扰或者某些因素影响,有时甚至 会出现错误。为了解决这个问题,对采样序列进行数字滤波,一般来说基频信号最强,受其他谐波泄露的影响也最小,通过数字滤波器除基频以上的频率成分,保证 基波附近频率通过,并采用16位A/D转换芯片,可明显降低频率计算误差。

  (2)在第3步中通过软件实现对采样时间间隔(采样频率)的调整,在实际应用中,采用DSP芯片对采样时间的确定可以精确到0.01us,有很好的精度保证。

  (3)第4步中利用过采样法进行FFT运算,可以减小混叠误差,或降低对混叠滤波器的 要求。如果进行FFT运算的序列不是充分的,其fs/2以上的频率成分就会折叠到0~fc段内。对于电力信号,要求分析的最高为64次的谐 波,fc=3.2kHz,则fs~fc,2fs~3fc,3fs~5fc,4fs~7fc段频谱会折叠到0~fc段内引起折叠误差。并且在fs/2附近折 叠误差最大;但当fc一定时,提高fs会减小误差,因此,在进行信号分析时,可用过采样方法减小混叠误差。



  • 21
    点赞
  • 151
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在MATLAB中,可以使用模拟仿真的方法来研究栅栏效应。具体而言,可以编写一个简单的模型,模拟车辆在高速公路上行驶的过程,并观察车辆之间的交互作用以及是否会出现栅栏效应。下面是一个简单的MATLAB代码示例,用于模拟车辆行驶的过程: ``` % 模拟车辆行驶过程 n = 100; % 车辆数量 v_max = 120 / 3.6; % 最大速度,单位为 m/s d_min = 2; % 安全距离,单位为米 delta_t = 1; % 仿真时间间隔,单位为秒 t = 0:delta_t:100; % 仿真时间 x = zeros(n, length(t)); % 车辆位置矩阵 v = zeros(n, length(t)); % 车辆速度矩阵 % 初始化车辆位置和速度 x(:, 1) = linspace(0, 1000, n)'; v(:, 1) = v_max * rand(n, 1); % 开始模拟车辆行驶过程 for i = 2:length(t) % 计算车辆之间的距离 d = diff(x(:, i-1)); d(end+1) = d(1); % 计算车辆之间的相对速度 dv = diff(v(:, i-1)); dv(end+1) = dv(1); % 计算车辆加速度 a = zeros(n, 1); for j = 1:n if d(j) > 0 a(j) = v_max - v(j, i-1); else a(j) = min(-dv(j), v_max - v(j, i-1)); end % 判断是否需要减速 if d(j) < d_min a(j) = -0.5 * (v(j, i-1))^2 / (d_min - d(j)); end end % 更新车辆位置和速度 x(:, i) = x(:, i-1) + v(:, i-1) * delta_t + 0.5 * a * delta_t^2; v(:, i) = v(:, i-1) + a * delta_t; end % 绘制车辆位置-时间图 figure; plot(t, x); xlabel('Time (s)'); ylabel('Position (m)'); title('Vehicle Position'); ``` 在上述代码中,我们通过计算车辆之间的距离、相对速度和加速度等参数,模拟车辆行驶过程,并观察车辆之间的交互作用,从而研究栅栏效应的发生情况。需要注意的是,这只是一个简单的模型,实际情况可能更加复杂,需要考虑更多的因素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值