增加数据长度——提高频率分辨率

news2024/12/28 2:17:12

由于运算方式和存储容量的限制,计算机只能处理离散且有限长的数据,故“不得不”将无限长的采样序列在时域截断,再进行后续处理。由数据在时域截断引起失真。

分析余弦序列 x ( n ) = cos ⁡ ( ω 0 n ) x(n) = \cos(\omega_0 n) x(n)=cos(ω0n)在时域截断前后频谱的变化规律。

对于无限长的余弦序列,其频谱为:

X ( e j ω ) = π ∑ k = − ∞ ∞ [ δ ( ω + ω 0 + 2 k π ) + δ ( ω − ω 0 + 2 k π ) ] X(e^{j\omega}) = \pi \sum_{k=-\infty}^{\infty} \left[ \delta(\omega + \omega_0 + 2k\pi) + \delta(\omega - \omega_0 + 2k\pi) \right] X(e)=πk=[δ(ω+ω0+2)+δ(ωω0+2)]

现用矩形窗对余弦序列进行时域截断,得到 x N ( n ) = cos ⁡ ( ω 0 n ) R N ( n ) x_N(n) = \cos(\omega_0 n) R_N(n) xN(n)=cos(ω0n)RN(n) R N ( n ) R_N(n) RN(n) N N N点矩形窗函数。根据频域卷积定理可知,时域相乘对应频域的卷积运算,即:

X N ( e j ω ) = 1 2 π X ( e j ω ) ∗ W N ( e j ω ) X_N(e^{j\omega}) = \frac{1}{2\pi} X(e^{j\omega}) * W_N(e^{j\omega}) XN(e)=2π1X(e)WN(e)

根据例 3.2 的结论可知,N 点矩形序列的 DTFT 结果为:

W N ( e j ω ) = 1 − e − j ω N 1 − e − j ω = e − j ω N − 1 2 sin ⁡ ( ω N / 2 ) sin ⁡ ( ω / 2 ) W_N(e^{j\omega}) = \frac{1 - e^{-j\omega N}}{1 - e^{-j\omega}} = e^{-j\omega \frac{N-1}{2}} \frac{\sin(\omega N / 2)}{\sin(\omega / 2)} WN(e)=1e1eN=e2N1sin(ω/2)sin(ωN/2)

余弦信号的频谱为冲激函数串,在此仅考虑 [ − π , π ] [-π, π] [π,π]区间正频率的 DTFT 结果,可得:

X N ( e j ω ) = 1 2 W N ( e j ( ω − ω 0 ) ) = 1 2 1 − e − j ( ω − ω 0 ) N 1 − e − j ( ω − ω 0 ) X_N(e^{j\omega}) = \frac{1}{2} W_N(e^{j(\omega - \omega_0)}) = \frac{1}{2} \frac{1 - e^{-j(\omega - \omega_0) N}}{1 - e^{-j(\omega - \omega_0)}} XN(e)=21WN(ej(ωω0))=211ej(ωω0)1ej(ωω0)N

余弦函数的连续傅里叶变换式冲激对。

在这里插入图片描述
频率分辨率指能区分的最小频率间隔。

示例

两个具有接近频率的复指数信号,频率分别为 F 1 = 10 F_1 = 10 F1=10Hz 和 F 2 = 12 F_2 = 12 F2=12Hz,采样间隔为 T = 0.02 T = 0.02 T=0.02秒。考虑不同数据长度 L = 10 , 15 , 30 , 100 L = 10, 15, 30, 100 L=10,15,30,100,并进行零填充到 512 点。

在这里插入图片描述

N = 10 N = 10 N=10

DFT 使用 N = 10 N = 10 N=10并进行零填充到 512 点。未分辨: F 2 − F 1 = 2 F_2 - F_1 = 2 F2F1=2Hz < 1 / ( N T ) = 5 < 1/(NT) = 5 <1/(NT)=5Hz。

  • N = 10 N = 10 N=10: 数据长度为 10。

  • 零填充到 512 点: 将数据长度扩展到 512 点。

  • 未分辨: 两个频率 F 1 F_1 F1 F 2 F_2 F2之间的差值为 2 Hz,小于频率分辨率 1 / ( N T ) 1/(NT) 1/(NT),即 5 Hz。因此,这两个频率在 DFT 中无法分辨。
    ### N = 15 N = 15 N=15
    DFT 使用 N = 15 N = 15 N=15并进行零填充到 512 点。未分辨: F 2 − F 1 = 2 F_2 - F_1 = 2 F2F1=2Hz < 1 / ( N T ) ≈ 3.3 < 1/(NT) \approx 3.3 <1/(NT)3.3Hz。

  • N = 15 N = 15 N=15: 数据长度为 15。

  • 零填充到 512 点: 将数据长度扩展到 512 点。

  • 未分辨: 两个频率 F 1 F_1 F1 F 2 F_2 F2之间的差值为 2 Hz,小于频率分辨率 1 / ( N T ) 1/(NT) 1/(NT),即约 3.3 Hz。因此,这两个频率在 DFT 中无法分辨。

N = 30 N = 30 N=30

DFT 使用 N = 30 N = 30 N=30并进行零填充到 512 点。分辨: F 2 − F 1 = 2 F_2 - F_1 = 2 F2F1=2Hz > 1 / ( N T ) ≈ 1.7 > 1/(NT) \approx 1.7 >1/(NT)1.7Hz。

  • N = 30 N = 30 N=30: 数据长度为 30。
  • 零填充到 512 点: 将数据长度扩展到 512 点。
  • 分辨: 两个频率 F 1 F_1 F1 F 2 F_2 F2之间的差值为 2 Hz,大于频率分辨率 1 / ( N T ) 1/(NT) 1/(NT),即约 1.7 Hz。因此,这两个频率在 DFT 中可以分辨。

N = 100 N = 100 N=100

DFT 使用 N = 100 N = 100 N=100并进行零填充到 512 点。分辨: F 2 − F 1 = 2 F_2 - F_1 = 2 F2F1=2Hz > 1 / ( N T ) = 0.5 > 1/(NT) = 0.5 >1/(NT)=0.5Hz。

  • N = 100 N = 100 N=100: 数据长度为 100。
  • 零填充到 512 点: 将数据长度扩展到 512 点。
  • 分辨: 两个频率 F 1 F_1 F1 F 2 F_2 F2之间的差值为 2 Hz,大于频率分辨率 1 / ( N T ) 1/(NT) 1/(NT),即 0.5 Hz。因此,这两个频率在 DFT 中可以分辨。
% 参数设置
F1 = 10; % 第一个频率 (Hz)
F2 = 12; % 第二个频率 (Hz)
T = 0.02; % 采样间隔 (秒)
Fs = 1/T; % 采样频率 (Hz)
signal_length = [10, 15, 30, 100]; % 不同的数据长度
N = 512; % 512点

% 生成时间向量
t = 0:T:(signal_length(end)*T - T);

% 生成信号
signal = exp(1i*2*pi*F1*t) + exp(1i*2*pi*F2*t);

%% 
% 计算DFT并绘制
figure;
for L = signal_length
    % 选择前N个点
    signal_N = signal(1:L);
    
    % 计算DFT
    X = fft(signal_N,N);
    
    % 计算频率轴
    f = Fs*(0:N-1)/N;
    
    % 绘制DFT
    subplot(2, 2, vec2ind((signal_length == L)'));
    plot(f, abs(X));
    xlim([0,50])
    grid on
    title(['N = ', num2str(L)]);
    xlabel('Frequency (Hz)');
    ylabel('Magnitude');
end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2257514.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

天喻InteKEY加密软件卸载

1 概述 有些小伙伴向我求助&#xff0c;说他们的电脑上被迫安装了天喻InteKEY加密软件&#xff0c;现在所有的office文档、代码等文件都会自动加密&#xff0c;传给别人&#xff0c;都是乱码&#xff0c;无法打开。 如下图所示&#xff1a; 请求我能不能帮他们把这些加密的文…

【报错】新建springboot项目时缺少resource

1.问题描述 在新建springboot项目时缺少resources,刚刚新建时的目录刚好就是去掉涂鸦的resources后的目录 2.解决方法 步骤如下&#xff1a;【文件】--【项目结构】--【模块】--【源】--在main文件夹右击选择新建文件夹并命名为resources--在test文件夹右击选择新建文件夹并命名…

【PlantUML系列】流程图(四)

目录 目录 一、基础用法 1.1 开始和结束 1.2 操作步骤 1.3 条件判断 1.4 并行处理 1.5 循环 1.6 分区 1.7 泳道 一、基础用法 1.1 开始和结束 开始一般使用start关键字&#xff1b;结束一般使用stop/end关键字。基础用法包括&#xff1a; start ... stopstart ...…

计算机网络:传输层、应用层、网络安全、视频/音频/无线网络、下一代因特网

目录 &#xff08;五&#xff09;传输层 1&#xff0e;传输层寻址与端口 2&#xff0e;无连接服务与面向连接服务 3. 传输连接的建立与释放 4. UDP 的优点 5. UDP 和 TCP 报文段报头格式 6. TCP 的流量控制 7&#xff0e;TCP 的拥塞控制 8. TCP 传送连接的管理 &#…

【cpp/c++ summary 语法总结】细节(作为参数时) 数组退化

在C语言中&#xff0c;参数传递通常是通过值传递&#xff08;pass by value&#xff09;的方式进行的&#xff0c;这意味着当调用函数时&#xff0c;实际参数的值会被复制到对应的形参中。因此&#xff0c;函数内部操作的是这些值的副本&#xff0c;而不是原始变量本身。这种方…

Python生成对抗神经网络GAN预测股票及LSTMs、ARIMA对比分析ETF金融时间序列可视化

全文链接&#xff1a;https://tecdat.cn/?p38528 本文聚焦于利用生成对抗网络&#xff08;GANs&#xff09;进行金融时间序列的概率预测。介绍了一种新颖的基于经济学驱动的生成器损失函数&#xff0c;使 GANs 更适用于分类任务并置于监督学习环境中&#xff0c;能给出价格回…

常用环境部署(二十四)——Docker部署开源物联网平台Thingsboard

1、Docker和Docker-compose安装 参考网址如下&#xff1a; CENTOS8.0安装DOCKER&DOCKER-COMPOSE以及常见报错解决_centos8安装docker-compose-CSDN博客 2、 Thingsboard安装 &#xff08;1&#xff09;在/home目录下创建docker-compose.yml文件 vim /home/docker-com…

Mind 爱好者周刊 第6期 | 关于假设检验的贝叶斯因子(含R包)、高阶冥想期间的神经现象学、大脑中广泛的 β 网络、视觉和听觉审美具有不同的神经机制……

所有的研究由我的独断和偏见选出&#xff0c;单位仅标注第一单位/通讯单位&#xff1b;本篇为 12.3~12.10 期间我感兴趣的研究摘要&#xff1b;取名创意来自「科技爱好者周刊」 注&#xff1a;相比前几期以认知神经研究为主&#xff0c;本期收录了很多有趣的行为实验&#xff0…

太速科技-488-基于3U VPX的ZYNQ XC7Z100 计算主控板

基于3U VPX的ZYNQ XC7Z100 计算主控板 一、板卡概述 本板卡基于3U VPX结构 使用FPGA XC7Z100 FFG 9000 芯片。产品类似计算机主控板&#xff0c;包含以太网、USB、HDMI、EMMC\M.2存储接口。同时又有自定义的IO扩展&#xff0c;包括高速PCIe、RapidIO&#xff0c;普通LV…

【Devops】Python运维自动化之集合Set

集合Set 集合&#xff0c;简称集。由任意个元素构成的集体。高级语言都实现了这个非常重要的数据结构类型。 Python中&#xff0c;它是可变的、无序的、不重复的元素的集合。 hash表 Python中的集合&#xff08;set&#xff09;是基于哈希表&#xff08;Hash Table&#xff…

x64dbg 安装使用教程

x64dbg的安装与配置 x64dbg官网地址&#xff1a;https://x64dbg.com/#start x64dbg界面介绍 1.反汇编窗口 这个位置显示的是需要分析的程序的反汇编代码。在第一个区域的最左侧例如“7712EAA3”这一列就是内存地址区域&#xff0c;接着“E8 07”就是汇编指令的opcode&#xff…

CH343等第3代USB串口芯片常见问题解答

一、概述 CH343、CH9101、CH9102等系列芯片&#xff0c;是沁恒推出的第三代USB转单串口产品&#xff0c;基于经典版CH340系列芯片进行技术革新&#xff0c;实现USB转高速异步串口&#xff0c;波特率支持最高6Mbps。芯片内部高度集成&#xff0c;外围精简&#xff0c;均提供VIO…

npm安装-详细教程

npm安装教程 第一章 Vue学习入门之 Node.js 的使用 文章目录 npm安装教程 [TOC] 前言一、npm是什么&#xff1f;二、安装、配置环境变量 1.下载并安装NodeJS2.npm配置 前言 随着时代的不断发展&#xff0c;前端学习这门技术也越来越重要&#xff0c;很多人都开启了学习前端…

【Web】2024“国城杯”网络安全挑战大赛题解

目录 Ez_Gallery 法一&#xff1a;shell盲注 法二&#xff1a;反弹shell 法三&#xff1a;响应钩子回显 Easy Jelly 法一&#xff1a;无回显XXE 法二&#xff1a;Jexl表达式RCE signal 法一&#xff1a;SSRF 法二&#xff1a;filterchain RCE Ez_Gallery 用这个bp验证…

【模型对比】ChatGPT vs Kimi vs 文心一言那个更好用?数据详细解析,找出最适合你的AI辅助工具!

在这个人工智能迅猛发展的时代&#xff0c;AI聊天助手已经深入我们的工作与生活。你是否曾在选择使用ChatGPT、Kimi或是百度的文心一言时感到一头雾水&#xff1f;每款AI都有其独特的魅力与优势&#xff0c;那么&#xff0c;究竟哪一款AI聊天助手最适合你呢&#xff1f;本文将带…

Visual Studio Community安装WebForm创建和数据连接

目录 一、安装Visual Studio Community 1.下载Visual Studio Community 2.双击安装 3.配置 二、项目创建 1.创建新项目 2.配置新项目 3.创建web窗体 4.代码分部 5.文件打开问题 三、数据库访问 1.自己先装一个sql server 2.创建实体数据模型 3.创建连接 4.修改更…

第二篇:脚手架搭建 — React 和 Express 的搭建

目录 1 React搭建2 Express搭建总结 第一篇我们介绍了开发环境的搭建过程&#xff0c;介绍了vscode、git、nodejs和mongodb的安装过程。有了基础的开发环境就需要搭建我们的前后端脚手架了。 1 React搭建 前端我们选用React框架解决界面的渲染和用户交互的问题&#xff0c;Rea…

对深度学习中的LayerNorm层重用问题的深入剖析

深度学习中的归一化技术是提升模型性能和训练稳定性的重要利器。在众多归一化方法中&#xff0c;LayerNorm (层归一化)以其独特的优势在自然语言处理等领域得到广泛应用。然而&#xff0c;在实际开发中&#xff0c;一个常见的误区是尝试重用LayerNorm层&#xff0c;这不仅会影响…

互联网、物联网的相关标准

互联网的相关标准 网络通信协议&#xff1a; HTTP&#xff08;Hypertext Transfer Protocol&#xff09;&#xff1a;用于在网络中传输文本、图像、音频和视频等数据的协议。它基于请求-响应模型&#xff0c;客户端发送请求给服务器&#xff0c;服务器返回响应。HTTPS&a…

PageHelper自定义Count查询及其优化

PageHelper自定义Count查询及其优化 文章目录 PageHelper自定义Count查询及其优化一&#xff1a;背景1.1、解决方法 二&#xff1a;利用反射判断请求参数是否有模糊查询2.1、分页不执行count2.2、思路2.3、代码示例 三&#xff1a;自定义COUNT查询SQL(只适用于单表)3.1、局限性…