一、定义

        栅栏效应是指离散傅里叶变换(DFT)计算的频谱被限制在基频的整数倍处,只能在相应的离散点处看到输出,而丢失了其他频率成分的信息的现象。(就好像透过一道栅栏看风景,只能看到透过栅栏缝隙的景色一样~)

(参考:栅栏效应 (数字信号处理术语))

二、产生原因

栅栏效应的本质就是频率分辨率不够,导致部分频率信息丢失,而丢失的这些频率信息很有可能就是重要的或具有重要特征的成分,所以可能会对信号处理的结果产生很大的影响。

(参考:信号降低栅栏效应)

(参考:栅栏效应)

三、如何解决栅栏效应?

1. 增加频域抽样点数 N(即 FFT 点数);

2. 时域信号延拓,增加数据点数。

感性上理解:周期延拓相当于 ”加强“ 了信号,所以 FFT 结果会得到优化。

注意:时域补零,相当于频域上内插,内插的效果只是让谱线更平滑,但不能增加频率分辨率!频域分辨率 F=fs/N=1/(N*Ts)=1/T,也就是说,频率分辨率为信号累积时间 T 的倒数,所以补零并不改变频率分辨率!

(参考:傅里叶变换学习笔记(二)——栅栏效应、频谱泄漏与加窗)

(参考:FFT造成的频谱混叠,栅栏效应,频谱泄露,谱间干扰)

(参考:信号降低栅栏效应)

(参考:补零与离散傅里叶变换的分辨率)

四、举个栗子~

现对一个由两个单频信号相加得到的合成信号进行频域分析,单频信号的频率分别为 6Hz 和 5Hz,时域的采样频率为 100Hz,下面是求 FFT 的 Matlab 代码:

        频率分辨率 F = fs / N,其中fs 为采样频率,N 为 FFT 点数。也就是说,DFT 的频率分辨率不仅与采样频率有关,也与 FFT点数有关!

(参考:补零与离散傅里叶变换的分辨率)

%% 栅栏效应
clear; clc; close all; warning off;%% 参数设置
fs = 100;  % 采样频率(满足奈奎斯特采样定理:要大于信号最大频率的两倍!!!)
L = 10;  % 时间长度
t = 0 : 1/fs : L;  % 时间坐标%% 生成信号
f1 = 6;  % 信号1频率
f2 = 5;  % 信号2频率
s1 = 10 * sin(2 * pi * f1 * t);
s2 = 10 * sin(2 * pi * f2 * t);
s = s1 + s2;  % 合成信号%% FFT
numfft = 128;  % FFT点数
s_fft = fft(s, numfft);
p = pow2db(abs(s_fft(1:numfft/2)) .^ 2);  % 功率(只取正频部分)
f = (0 : numfft/2-1) / numfft * fs;  % 频率(只取正频部分)
magnitude = abs(s_fft(1:numfft/2)) ./ numfft;  % 幅度谱
phase = angle(s_fft(1:numfft/2));  % 相位谱%% 作图
figure(1);
subplot(3, 1, 1);
plot(f, p, 'linewidth', 1.5); axis('tight'); title([num2str(numfft), '点傅里叶变换']);
subplot(3, 1, 2);
plot(f, magnitude, 'linewidth', 1.5); axis('tight'); title('幅度谱');
subplot(3, 1, 3);
plot(f, phase, 'linewidth', 1.5); axis('tight'); title('相位谱');

(1)128 点 FFT 的运行结果

(2)256 点 FFT 的运行结果

(3)512 点 FFT 的运行结果

(4)64 点 FFT 的运行结果

(5)32 点 FFT 的运行结果

(6)16 点 FFT 的运行结果

从上图可以看出,FFT 点数越高,频率分辨率越高,就越能分辨出不同的频率成分能量尖峰,5Hz 和 6Hz 的两个信号频率只相差 1Hz,对于 64 点的傅里叶变换,频率分辨率为 F=fs/N=100/64≈1.56,显然,这样的频率分辨率不足以分辨出这两种不同的频率成分~

(参考:FFT中的栅栏效应)

【20211217】【信号处理】从 Matlab 仿真角度理解栅栏效应相关推荐

  1. FFT运算的加深理解——栅栏效应、补零、物理分辨率、计算分辨率

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FFT运算的加深理解--栅栏效应.补零.物理分辨率.计算分辨率 栅栏效应和计算分辨率 物理分辨率 总结 栅栏效应和计算分辨率 栅栏效应 ...

  2. matlab抽样仿真混叠图,数字信号处理及MATLAB仿真__前言

    前言 历史背景 像许多电子工程课程一样,数字信号处理(Digital Signal Processing,DSP)最初是一门研究生课程,近30年来,其逐渐向本科课程渗透,成为电子与计算机工程的本科课程 ...

  3. 借matlab仿真说明栅栏效应

    借matlab仿真说明栅栏效应 1.栅栏效应的原因 由于数字采样的不连续性,无论是时域采样还是频域采样,都像透过栅栏观察,采样的点就是只能看到栅栏缝隙的部分,其余信号部分视为0. 2.栅栏效应的后果 ...

  4. matlab 经典pid,经典-先进PID控制及其MATLAB仿真(刘金锟)-315页.pdf

    免积分版,学习交流用,如需要请购买正版! 先进 PID 控制及其 MATLAB 仿真 刘金琨 著 电 子 工 业 出 版 社 内 容 简 介 本书从 MATLAB 仿真角度系统地介绍了 PID 控制的 ...

  5. rbf神经网络自适应控制matlab仿真,机械系统RBF神经网络控制:设计、分析及Matlab仿真(英文)...

    机械系统RBF神经网络控制:设计.分析及Matlab仿真(英文) 作者:刘金琨 著 出版时间:2013年 内容简介 <机械系统RBF神经网络控制:设计.分析及Matlab仿真(英文)>从M ...

  6. 先进控制技术+matlab仿真,先进 PID 控制及其 MATLAB 仿真(教材+相关程序) 刘金琨 著 电 子 工 业 出 版 社...

    先进 PID 控制及其 MATLAB 仿真(教材+相关程序) 刘金琨 著 电 子 工 业 出 版 社 2016-08-22 1 0 0 暂无评分 其他 1 积分下载 如何获取积分? 先进 PID 控制 ...

  7. 栅栏现象怎么用matlab写,栅栏效应barrier effect ,频谱泄漏leakage,旁瓣效应sidelobe...

    转自 http://www.cnblogs.com/huaping-audio/archive/2009/11/25/1610277.html 栅栏效应: 对采样信号的频谱,为提高计算效率,通常采用F ...

  8. 【20211214】【信号处理】从Matlab仿真的角度理解频谱混叠和奈奎斯特采样定理

    一.混叠 定义:在信号处理领域中,混叠是指采样信号还原成连续信号时产生彼此交叠而出现信号失真的现象. 危害:信号发生混叠时,无法从采样信号中还原原始信号. 混叠可能发生在时域,叫做时域混叠:也可能发生 ...

  9. matlab仿真卫星导航接收机信号干扰,卫星导航软件接收机多采样率信号处理技术...

    卫星导航软件接收机是当代卫星导航接收机领域发展的方向,其基本思想是:将A/D和D/A尽可能靠近RF端,在数字化的通用硬件平台上,用软件尽可能多地实现对卫星导航信号的处理.软件接收机具有灵活性.标准化. ...

最新文章

  1. linux bash基础
  2. js导入导出总结与实践
  3. 求复变函数的 Taylor 展式与 Laurent 展式[华中师范大学2010年复变函数复试试题]...
  4. matlab中特殊符号如希腊字符
  5. uart怎么判断帧错误_UART通讯总线工作原理的理解--龚玉山
  6. cpu使用率_单片机里面的CPU使用率是什么鬼?
  7. 数组之间的比较应当用Arrays.equals()
  8. 经验分享帖 汇承HC-12无线模块的简单使用说明
  9. 怎么提供电子邮件副本_停止提供您的电话号码和电子邮件
  10. 计算机数学基础⑤(Graphs)
  11. 深信服下一代防火墙(NGAF)学习笔记
  12. (十二)Linux设置定时任务及开机自启动
  13. (转载)你好,C++(6)2.3 C++兵器谱
  14. 数字模拟电路课程设计multisim仿真源文件和设计原理
  15. python一边接收数据,一边对数据进行实时处理导致数据丢失
  16. 英语学习打卡-美国语文1-4
  17. 使用self.__dict__.update()的好处
  18. #Sora#openstack基础库stevedore试用总结
  19. 宽带网速测试皮肤软件,【问题求助】这个网速测量皮肤测量的网速不准哪大神知道原因?...
  20. 【Energy Reports期刊发表】 2022年能源与环境工程国际会议(CFEEE 2022)

热门文章

  1. 考拉海购offer入手,分享一波面经(网易内推技术岗)。
  2. pairwise or pointwise?
  3. 图像处理领域公认的重要英文期刊(SCI收录)(转载)
  4. Windows API一日一练(50)SuspendThread和ResumeThread函数
  5. 最伤心的图片----你会掉泪吗?(转)
  6. 赛盛EMC培训笔记(1)
  7. 02-scrapy项目的创建基本使用
  8. golang的Once研究
  9. stata处理wind数据——处理日期
  10. contentEditable属性