【频域分析及处理】5. 补零对FFT输出结果的影响

【 1. 补零的原由 】

  • FFT运算点数M > 采样点数N 时,fft(xn,M) 函数对信号 xn 进行尾补零操作即在该信号尾部添加多个值为0的数据点以使信号总点数N增至FFT运算所需点数M。

【 2. 补零的影响 】

  • 补1次零相当于在原始频谱图中每两个频率之间插入1个频率值,补2次零相当于在原始频谱图中每两个频率之间插入2个频率值,并且原始频率值的位置及其幅值保持不变。因此, 补零会使频谱图中的频率点的数量增加,从而使得频谱图更加的光滑连续,但是补零不能对频谱图中的 频率分辨率、频率值以及幅值有所改善
  • 在补零操作中,所补的零值点的数量所占分析信号比例越大,分析结果中的幅度越小。
  • 补零的好处:
    ① 使数据N为2的整次幂,便于使用 FFT。
    ② 补零后,其实是对DFT结果做了插值,克服“栅栏"效应,使谱外观平滑化。我把“栅栏"效应形象理解为,就像站在栅栏旁边透过栅栏看外面风景,栅栏会挡住比较多风景,此时就可能漏掉较大频域分量,但是补零以后,相当于你站远了,风景就看的越来越清楚了。
    ③ 由于对时域数据的截短必然造成频谱泄露,因此在频谱中可能出现难以辨认的谱峰,补零在一定程度上能消除这种现象。
  • 头补零和尾补零对分别 FFT 输出结果的影响
    对信号进行头补零或尾补零再得到的幅频响应相等,相频响应不同。如下代码及结果所示:
%% [预处理]
clc;   %清除命令窗口
clear; %清除工作空间的变量和函数
clf;   %清除当前图形

%% [采样参数]
fs=6400;   %采样频率 (Hz)  
ts=1/fs;   %采样周期 (s)
N=120;      %采样点数 ()
n=0:N-1;   %采样点索引
t=n*ts;    %采样时间轴

%% [被采信号] 
fa=100;           %信号a的频率
fb=900;           %信号b的频率
xn=2.5+sin(2*pi*fa*t)+3*sin(2*pi*fb*t); %被采信号=信号a+信号b

%% [头补零]
xntou=[zeros(1,8) xn];

M=128;           %FFT运算点数
X=fft(xntou,M);   %FFT输出值
X=[X(1)/N,X(2:M)*2/N]; %幅度轴
X=fftshift(X); %频域搬移
k=-M/2:M/2-1;  %频率点索引
f=fs*k/M;      %频率轴

subplot(2,2,1);
stem(f,abs(X));  %序列图
xlabel('频率');  %横轴坐标
ylabel('幅度');  %纵轴坐标
title({'头补零-幅频响应'});
grid;            %显示表格线

subplot(2,2,2);
stem(f,  angle(X)*180/pi);   %绘制相频响应曲线,注意这将弧度转换成了角度
xlabel('频率');  %横轴坐标
ylabel('相位');  %纵轴坐标
title({'头补零-相频响应'});
grid;            %显示表格线


%% [尾补零]
xnwei=[xn zeros(1,8)];

M=128;           %FFT运算点数
X=fft(xnwei,M);   %FFT输出值
X=[X(1)/N,X(2:M)*2/N]; %幅度轴
X=fftshift(X); %频域搬移
k=-M/2:M/2-1;  %频率点索引
f=fs*k/M;      %频率轴

subplot(2,2,3);
stem(f,abs(X));  %序列图
xlabel('频率');  %横轴坐标
ylabel('幅度');  %纵轴坐标
title({'尾补零-幅频响应'});
grid;            %显示表格线

subplot(2,2,4);
stem(f,  angle(X)*180/pi);   %绘制相频响应曲线,注意这将弧度转换成了角度
xlabel('频率');  %横轴坐标
ylabel('相位');  %纵轴坐标
title({'尾补零-相频响应'});
grid;            %显示表格线

在这里插入图片描述

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MR_Promethus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值