信号的频域分析

  • 一、时域加窗
    • 频谱泄露
      • 产生频谱泄露的原因是什么?
      • 如何抑制这一现象?
  • 二、频率分辨率
    • 频率分辨率如何计算?
    • 怎样提高频率分辨率?
  • 三、频域采样
    • 栅栏效应
    • 如何缓解栅栏效应?
  • 四、MATLAB代码
  • 参考文献

一、时域加窗

现实生活中的信号大部分是连续的,通过对连续的信号进行采样得到散时间信号,但是计算机所能处理的数据都是有限长的,因而我们可以对原始序列做加窗处理使其成为有限长序列。
以矩形窗为例,其时域表达式为:
式(1)中,N=M+1N=M+1N=M+1,为矩形窗的长度。

对无限长序列进行加窗处理,就是对序列在时域上乘以一个窗函数。
由卷积定理可以得到,时域的相乘等于频域的卷积。

设仿真信号的时域表达式为:
x(t)=A0∗cos(2πf0t)+A1∗cos(2πf1t)x(t)=A_{0}*cos(2πf_{0}t)+A_{1}*cos(2πf_{1}t) x(t)=A0​∗cos(2πf0​t)+A1​∗cos(2πf1​t)
x(t)x(t)x(t)做傅里叶变换(FT)的频域表达式为:
X(jΩ)=A0πδ(Ω+Ω0)+A0πδ(Ω−Ω0)+A1πδ(Ω+Ω0)+A1πδ(Ω−Ω0)X(jΩ)=A_{0}πδ(Ω+Ω_{0})+A_{0}πδ(Ω-Ω_{0})+A_{1}πδ(Ω+Ω_{0})+A_{1}πδ(Ω-Ω_{0})X(jΩ)=A0​πδ(Ω+Ω0​)+A0​πδ(Ω−Ω0​)+A1​πδ(Ω+Ω0​)+A1​πδ(Ω−Ω0​)
连续信号x(t)x(t)x(t)的波形及频谱如图1所示。


连续信号x(t)x(t)x(t)经过采样后,得到的离散时间的表达式为:
x[n]=x(t)∣t=nTsx[n]=x(t)|_{t=nT_{s}} x[n]=x(t)∣t=nTs​​
离散序列x[n]x[n]x[n]做离散时间傅里叶变换(DTFT)的频域表达式为:
X(ejw)=1Ts∑k=−∞∞X(jwTs−jk2πTs)X(e^{jw})=\frac{1}{T_{s}}\sum_{k=-∞}^{∞}X(j\frac{w}{T_{s}}-jk\frac{2π}{T_{s}})X(ejw)=Ts​1​k=−∞∑∞​X(jTs​w​−jkTs​2π​)
离散序列x[n]x[n]x[n]的波形及频谱如图2所示。

矩形窗函数w[n]w[n]w[n]做离散时间傅里叶变换(DTFT)的频域表达式为:
W(ejw)=e−jw(N−1)/2∗sin(wN/2)sin(w/2)W(e^{jw})=e^{-jw(N-1)/2} *\frac{sin(wN/2)}{sin(w/2)}W(ejw)=e−jw(N−1)/2∗sin(w/2)sin(wN/2)​

矩形窗函数w[n]w[n]w[n]的波形及频谱如图3所示。

离散序列x[n]x[n]x[n]与窗函数w[n]w[n]w[n]的卷积为:
V(ejw)=12π∫−ππX(ejθ)W(ej(w−θ))dθ=A02W(ej(w+w0))+A02W(ej(w−w0))+A12W(ej(w+w0))+A12W(ej(w−w0))V(e^{jw})=\frac{1}{2π}\int_{-π}^{π}X(e^{jθ})W(e^{j(w-θ)})dθ=\frac{A_{0}}{2}W(e^{j(w+w_{0})})+\frac{A_{0}}{2}W(e^{j(w-w_{0})})+\frac{A_{1}}{2}W(e^{j(w+w_{0})})+\frac{A_{1}}{2}W(e^{j(w-w_{0})})V(ejw)=2π1​∫−ππ​X(ejθ)W(ej(w−θ))dθ=2A0​​W(ej(w+w0​))+2A0​​W(ej(w−w0​))+2A1​​W(ej(w+w0​))+2A1​​W(ej(w−w0​))
截断后的离散序列v[n]v[n]v[n]的波形及频谱如图4所示。

频谱泄露


信号的频率成分包括1MHz和1.05MHz,1MHz对应的幅值为1,但是1.05MHz的幅值减小了,且在其他频率点上都有不小的幅值。这就是出现了频谱泄露的现象。

产生频谱泄露的原因是什么?

由于计算机只能处理有限长的数据,所以需要对采集的信号进行截断,相当于对原始信号做了加窗处理。对信号加窗就是对信号在时域上乘以一个窗函数,时域的乘积对应频域的卷积,而窗函数的频域包括主瓣和旁瓣,旁瓣造成了信号频谱的泄漏。频域泄漏不可避免,只能减小。

如何抑制这一现象?

可以取更长的数据点,与原始数据越接近越好,但缺点就是运算量加大;
可以选择窗谱的旁瓣能量较小的窗函数。
典型的窗函数中,矩形窗的频率分辨率最高,旁瓣泄露最大。

二、频率分辨率

频率分辨率如何计算?

为了便于理解什么是频率分辨率,可以将频率分辨率划分为两种类型,一种是波形频率分辨率(Waveform Frequency Resolution,简记为波形分辨率),也称为视觉频率分辨率,另一种则为FFT频率分辨率(简记为FFT分辨率)。

波形分辨率:在频谱图中,两个频率可以被分辨率的最小间隔,与原始信号的时间长度有关。
△Rw=1T△R_{w}=\frac{1}{T} △Rw​=T1​
其中,TTT为原始数据的时长。

FFT分辨率:在频谱图中的数据点数,跟信号做FFT计算时的点数有关。
△Rfft=FsNfft△R_{fft}=\frac{F_{s}}{N_{fft}} △Rfft​=Nfft​Fs​​
其中,FsF_{s}Fs​为采样频率,NfftN_{fft}Nfft​为信号做FFT计算时的点数。

怎样提高频率分辨率?

例如,有一个复合信号的时域表达式为x(t)=cos(2πf1t)+cos(2πf2t)x(t)=cos(2πf_{1}t)+cos(2πf_{2}t)x(t)=cos(2πf1​t)+cos(2πf2​t)
其中f1=1MHzf_{1}=1MHzf1​=1MHz,f2=1.05MHzf_{2}=1.05MHzf2​=1.05MHz。x(t)x(t)x(t)的波形及频谱如图6所示。

由上图中的频谱可以发现,在1MHz附近两个频率出现混叠,无法有效区分1MHz和1.05MHz,说明频率分辨率不够。

对时域数据进行补零,能否改变频率分辨率呢?例如在原始数据点后面再补充6000个数值为0的点,对信号本身数据没有影响,只是增加了参与FFT计算的数据点数,得到信号的波形及频谱如图7所示。

通过对原始数据进行补零操作,在频谱图中的数据点更密集了。但是仍然无法区分1MHz和1.05MHz,由此证明信号的波形频率分辨率与参与FFT计算的数据点数NfftN_{fft}Nfft​无关,只与原始数据的时长TTT有关。在时域上补零等价于频域上进行插值,由此增加了频率的点数,使得频谱曲线变得更光滑,即增加了FFT频率分辨率。

为了有效区分1MHz和1.05MHz,必须延长原始数据的时长以提高波形分辨率。以相同的采样频率对原始信号进行采样,采集7000个数据点。得到信号的波形及频谱如图8所示。

有图8可见,1MHz和1.05MHz可以被区分开,但是也出现了频谱泄露现象。此时信号的波形分辨率为:△Rw=170us≈14KHz△R_{w}=\frac{1}{70us}≈14KHz△Rw​=70us1​≈14KHz,小于1MHz和1.05MHz之间的距离50KHz50KHz50KHz。

为了减小频谱泄露,对原始信号取更长的数据点,采集8000个数据点。得到信号的波形及频谱如图9所示。

由图9可知,1MHz和1.05MHz对应的幅值均为1,且可以有效的区分开,此时信号的FFT分辨率为:△Rfft=Fs8000=12.5KHz△R_{fft}=\frac{F_{s}}{8000}=12.5KHz△Rfft​=8000Fs​​=12.5KHz,刚好是1MHz和1.05MHz的公约数,即1MHz=12.5KHz×801MHz=12.5KHz×801MHz=12.5KHz×80,1.05MHz=12.5KHz×841.05MHz=12.5KHz×841.05MHz=12.5KHz×84。
所以取合适长度的数据点可以减轻频谱泄露。

三、频域采样

周期序列的DFS的系数X(k)X(k)X(k)与x(n)x(n)x(n)的一个周期的ZZZ变换在单位圆的NNN个均匀点上的抽样值相等,这就是频域采样。

频域采样定理:
当N≥LN≥LN≥L,即DFT计算的频域采样点数大于等于信号的长度时,频域采样不会造成时域混叠。
有限长序列x(n)x(n)x(n)的ZZZ变换为:
X(Z)=∑n=0N−1x(n)Z−n=∑n=0N−1[1N∑k=0N−1X(k)WN−kn]Z−n=1−Z−NN∑k=0N−1X(k)1−WN−kZ−1X(Z)=\sum_{n=0}^{N-1}x(n)Z^{-n}=\sum_{n=0}^{N-1}[\frac{1}{N}\sum_{k=0}^{N-1}X(k)W_{N}^{-kn}]Z^{-n}=\frac{1-Z^{-N}}{N}\sum_{k=0}^{N-1}\frac{X(k)}{1-W_{N}^{-k}Z^{-1}} X(Z)=n=0∑N−1​x(n)Z−n=n=0∑N−1​[N1​k=0∑N−1​X(k)WN−kn​]Z−n=N1−Z−N​k=0∑N−1​1−WN−k​Z−1X(k)​
其中,WN−kn=ej2πknNW_{N}^{-kn}=e^{j\frac{2πkn}{N}}WN−kn​=ejN2πkn​,WN−k=ej2πkNW_{N}^{-k}=e^{j\frac{2πk}{N}}WN−k​=ejN2πk​。

栅栏效应

在进行DFT计算时需要对信号的频域进行采样,由于采样间隔为△w=2πN△w=\frac{2π}{N}△w=N2π​,得到的频谱图都是由一根根离散的谱线组成,就像透过栅栏观看外景。

如何缓解栅栏效应?

增加频域采样点数N(不改变时域数据的情况下,在时域数据末端添加一些零值点,使得谱线更密),可缩小谱线间距,减轻栅栏效应。

四、MATLAB代码

%% 1000个数据点的波形及频谱
clc;
clear;
close all;Fs = 100e6;             % 采样频率
f1 = 1e6;f2 = 1.05e6;   % 信号的频率
T = 1/Fs;               % 采样周期
L0 = 1000;              % 信号长度
L = 1000;               % 数据长度
t0 = (0:L0-1)*T;        % 信号时间序列
t = (0:L-1)*T;          % 数据时间序列
x = cos(2*pi*f1*t0)+cos(2*pi*f2*t0);  % 原始信号% FFT
[f1,A1] = PinPu(x,Fs);
figure(1)
subplot(1,2,1);plot(t*1e6,x);
xlabel('t/us');title('时域');
subplot(1,2,2);plot(f1,A1);
xlabel('f/Hz');title('频域');xlim([0 2e6]);
%% 出现了频谱泄露现象
clc;
clear;
close all;Fs = 100e6;             % 采样频率
f1 = 1e6;f2 = 1.05e6;   % 信号的频率
T = 1/Fs;               % 采样周期
L0 = 7000;              % 信号长度
L = 7000;               % 数据长度
t0 = (0:L0-1)*T;        % 信号时间序列
t = (0:L-1)*T;          % 数据时间序列
x = cos(2*pi*f1*t0)+cos(2*pi*f2*t0);  % 原始信号
% FFT
[f1,A1] = PinPu(x,Fs);
figure(1)
subplot(1,2,1);plot(t*1e6,x);
xlabel('t/us');title('时域');
subplot(1,2,2);plot(f1,A1);
xlabel('f/Hz');title('频域');xlim([0 2e6]);
%% 8000个数据点的波形及频谱,提升了频率分辨率。
clc;
clear;
close all;Fs = 100e6;             % 采样频率
f1 = 1e6;f2 = 1.05e6;   % 信号的频率
T = 1/Fs;               % 采样周期
L0 = 8000;              % 信号长度
L = 8000;               % 数据长度
t0 = (0:L0-1)*T;        % 信号时间序列
t = (0:L-1)*T;          % 数据时间序列
x = cos(2*pi*f1*t0)+cos(2*pi*f2*t0);  % 原始信号
% FFT
[f1,A1] = PinPu(x,Fs);
figure(1)
subplot(1,2,1);plot(t*1e6,x);
xlabel('t/us');title('时域');
subplot(1,2,2);plot(f1,A1);
xlabel('f/Hz');title('频域');xlim([0 2e6]);

参考文献

[1] 数字信号处理
[2] 傅里叶变换的波形分辨率与频率分辨率
[3] 补零、频谱泄露、栅栏效应的关系?

【频域分析】频谱泄露、频率分辨率、栅栏效应相关推荐

  1. 分析时域窗长度和FFT计算点数对频率分辨率和栅栏效应的影响

    目录 频率分辨率 栅栏效应 频谱泄漏 实验结果: 窗长度改变: 改变fft计算点数 分析: 代码: 频率分辨率 频率分辨率是指将两个相邻谱峰分开的能力.在实际应用中是指分辨两个不同频率信号的最小间隔. ...

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

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

  3. FFT频谱分析(补零、频谱泄露、栅栏效应、加窗、细化、频谱混叠、插值),Matlab、C语言代码

    文章目录 引言 Matlab FFT函数 频谱混叠 栅栏效应 细化技术 什么是细化技术? 细化FFT技术的应用: Zoom-FFT算法介绍及MATLAB实现 Zoom-FFT根本没有实现"细 ...

  4. 频谱泄露栅栏效应及其解决方法

    DFT中时域补零,频域对于单周期的FFT会更加细致,因为本来的DTFT就是对补零的部分取零的,补零反而能使DFT的采样更精细,何乐而不为呢?当然,补零对周期信号的DFT是一定存在影响的,毕竟周期变了. ...

  5. 栅栏效应、频谱泄露、细化技术

    fft在分析频谱分析的时候,会有下面四个方面的误差: (1)频谱混叠 奈奎斯特定理已被众所周知了,所以几乎所有人的都知道为了不让频谱混叠,理论上采样频谱大于等于信号的最高频率.那和时域上联系起来的关系 ...

  6. 栅栏效应,频谱泄露,旁瓣效应

    http://139791733.blog.163.com/blog/static/1786396420112715530734/ 栅栏效应: 对采样信号的频谱,为提高计算效率,通常采用FFT算法进行 ...

  7. FFT造成的频谱混叠,栅栏效应,频谱泄露,谱间干扰

    fft在分析频谱分析的时候,会有下面四个方面的误差: (1)频谱混叠: 奈奎斯特定理已被众所周知了,所以几乎所有人的都知道为了不让频谱混叠,理论上采样频谱大于 等于信号的最高频率.那和时域上联系起来的 ...

  8. fft谱分析中的栅栏效应和频谱泄露

    栅栏效应: 对采样信号的频谱,为提高计算效率,通常采用FFT算法进行计算,设数据点数为:            N = T/dt = T.fs 则计算得到的离散频率点为:            Xs( ...

  9. 利用dft对连续信号进行频谱分析_利用DFT对连续时间信号进行近似频谱分析过程中,减小栅栏效应的常用方法是_______;通过_______的方法可以提高频率分辨率。()...

    利用DFT对连续时间信号进行近似频谱分析过程中,减小栅栏效应的常用方法是_______;通过_______的方法可以提高频率分辨率.() 答:减小采样间隔:提高采样点数 川乌既祛风湿,又能: 答:散寒 ...

  10. 图解DFT频谱分析及产生的问题(频谱混叠,频谱泄露,栅栏效应)

    具体步骤 频域和时域对应关系 频谱混叠 频谱泄露 栅栏效应 混叠现象 频谱泄露 栅栏效应 结合matlab对应分析 PDF版本笔记 参考南京信息工程大学的<数字信号处理>,仅作学习总结

最新文章

  1. Springboot + redis + 注解 + 拦截器来实现接口幂等性校验
  2. 高等数学:第六章 定积分的应用(1)定积分的应用 平面图形的面积 立体体积
  3. linux安装tf-gpu注意事项
  4. [转]关于父亲的故事
  5. 使用java程序对新浪微博的内容进行语义分析
  6. idea 线程内存_Java线程池系列之-Java线程池底层源码分析系列(二)
  7. 【渝粤教育】国家开放大学2018年秋季 0716-22T工程建设法规 参考试题
  8. React- jsx的使用可以渲染html标签 或React组件
  9. 52linux crond入门53crond时间规则54应用实例
  10. php模板怎么导入服务器_php项目怎么放到服务器
  11. 从0-1背包问题到动态规划
  12. Linux 操作系统(I)
  13. netty 5.0 源码分析(1)-----ButeBuf
  14. EasyUI:导出datagrid数据到桌面
  15. MapStruct使用指南
  16. 用python在大麦网抢票_大麦网抢票工具系列(一)
  17. matlab爆炸建模,7.2.5萨墓基尔加丹M螺旋爆炸技能建模分析
  18. 【vlan间通信的小玩法】在三层交换机上做ospf
  19. 会计专硕(MPACC)毕业论文该选如何选题?
  20. 神经网络训练会释放60多万磅二氧化碳?MIT的方法让它降到1/1300

热门文章

  1. 项目管理十大知识领域(五)--- 项目质量管理(过程、输入、工具和技术、输出)
  2. JAVA进制转换,十进制转换为八进制
  3. 计算机c 逻辑符号,c语言基本符号
  4. linux下mysql将表导出_linux下mysql导出数据表命令
  5. 树莓派python实现二维码识别——ZBar
  6. pc端和移动端抓包工具
  7. ArcGis软件出图时修改色带上的刻度并导出色带
  8. Ubuntu下安装ssh与配置
  9. 【CISCO】链路聚合基础命令详解。
  10. 大华海康NVR录像JAVA下载及WEB播放