【MATLAB】去除趋势项(解决频谱图大部分为零的问题)

news2024/9/20 5:39:06

1.概 述

在许多实际信号分析处理中信号经FFT变换后得到的频谱谱线值几乎都为0,介绍这是如何形成的,又该如何去解决。

2.案例分析

读入一组实验数据文件(文件名为qldata.mat),作出该组数据的频谱图。程序清单如下:

clear; clc; close all;
load qldata.mat                  % 读入数据
sig=y;N=length(sig);             % 数据长度
time=(0:N-1)/fs;                 % 时间刻度
% 第一部分
% 作图
subplot 211; plot(time,sig,'k'); ylim([0 15]);
title('有趋势项的数据')
xlabel('时间/s'); ylabel('幅值');
subplot 212; Hutu_FFT(sig, fs)
title('有趋势项的数据频谱')
xlabel('频率/Hz'); ylabel('幅值');
set(gcf,'color','w');

运行程序得到 qldata.mat文件数据的波形图和频谱图,如图所示。

从图来看,谱图中什么都没有,似乎都为0,这怎么解释呢?如果把该频谱图中的低频部分放大,在0频率(直流)处有一个很大的分量,而其他频率分量都很小,所以在0频率处有一个峰值,然后就衰减下来。我们再仔细观察一下图的波形图,在该波形中有一个明显的趋势项,正因为该趋势项的存在而使得谱分析中有很大的直流分量。

3.解决方法

为了得到较好的谱分析,对于任意一组数据序列都应先消除直流分量和趋势项。趋势项又分为线性趋势项和多项式趋势项,这里主要讨论消除线性趋势项,介绍消除多项式趋势项。在MATLAB中有mean函数求出直流分量,由detrend函数消除线性趋势项

mean函数的调用格式如下:xm =mean(x)

其中:x是一个含有直流分量的一维序列;xm是该序列的直流分量。要消除直流分量可写为其中:xd是消除直流分量后的数据序列。

detrend 函数调用格式如下:xd= detrend(x)

其中:x是一个含有趋势项的一维序列;xd是消除趋势项后的数据序列。

利用 detrend 函数消除了 qldata.mat文件数据中的趋势项,并做FFT谱分析,得到消除趋势项后数据的频谱。程序pr225第二部分就是按这样的思路编写的,程序清单如下:

% 第二部分
% 作图
x=detrend(y);                    % 消除趋势项
figure
subplot 211; plot(time,x,'k'); ylim([-5 5]);
title('消除趋势项后的数据')
xlabel('时间/s'); ylabel('幅值');
subplot 212; Hutu_FFT(x, fs)
title('消除趋势项后的数据频谱')
xlabel('频率/Hz'); ylabel('幅值');
set(gcf,'color','w');

运行程序第二部分后得图所示波形图和频谱图从图中可看到,已没有很大的直流分量,频谱图能正常显示出来。

获取代码请关注MATLAB科研小白的个人公众号(即文章下方二维码),并回复去除趋势项本公众号致力于解决找代码难,写代码怵。各位有什么急需的代码,欢迎后台留言~不定时更新科研技巧类推文,可以一起探讨科研,写作,文献,代码等诸多学术问题,我们一起进步。

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

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

相关文章

(四)手把手教你内网穿透,实现外网主机访问内网服务器

背景:书接上回, 服务器的使用-CSDN博客 课题组成员都有自己的账号,且能通过内网访问服务器,进行远程连接了。我们知道内网中的主机可以访问公网的主机,反之不可以访问。那么如果课题组成员在家不在内网区域内&#x…

重生之 SpringBoot3 入门保姆级学习(07、整合 Redis 案例)

重生之 SpringBoot3 入门保姆级学习&#xff08;07、整合 Redis 案例&#xff09; 导入 Maven 依赖并刷新 Maven <dependencies><!--springboot3 Web 依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring…

nginx流量监控:goAccess安装与使用

关于goAccess GoAccess 是一款实时、快速的日志分析工具&#xff0c;专门设计用于分析Web服务器日志&#xff0c;特别是Nginx日志。 安装 &#xff08;1&#xff09;准备相关依赖 # Missing development libraries for ncursesw # centOS yum install -y ncurses-devel # U…

动态规划-似包非包问题

组合总和 Ⅳ&#xff08;377&#xff09; 题目描述&#xff1a; 状态表示&#xff1a; 我们看到这题发现有一个限制条件就是目标整数target并且此时数组中的数字是可以重复选择的&#xff0c;这时候不难联想到前面学习的完全背包问题&#xff0c;这题好像符合完全背包问题的…

【开源】加油站管理系统 JAVA+Vue.js+SpringBoot+MySQL

目录 一、项目介绍 论坛模块 加油站模块 汽油模块 二、项目截图 三、核心代码 一、项目介绍 Vue.jsSpringBoot前后端分离新手入门项目《加油站管理系统》&#xff0c;包括论坛模块、加油站模块、汽油模块、加油模块和部门角色菜单模块&#xff0c;项目编号T003。 【开源…

nuxt2:自定义指令 / v-xxx / directives / 理解 / 使用方法 / DEMO

一、理解自定义指令 在 vue 中提供了一些对于页面和数据更为方便的输出&#xff0c;这些操作就叫做指令&#xff0c;以 v-xxx 表示&#xff0c;比如 html 页面中的属性 <div v-xxx ></div>。自定义指令很大程度提高了开发效率&#xff0c;提高了工程化水平&#x…

【读书】读书笔记——理科生的视角:底层逻辑+数学之美

1&#xff0c;底层逻辑1&#xff08;看清这个世界的底牌&#xff09; 刘润 著 0&#xff09;什么是底层逻辑&#xff1f; 底层逻辑是&#xff1a;事物之间共同点、变化背后不变的东西事&#xff1b;看清事物的本质&#xff0c;才能在复杂变化中从根本上解决问题。 1&#x…

基于51单片机的智能灯光控制系统

一.硬件方案 智能灯光控制系统由单片机最小系统、人体感应模块、关照强度模块、灯光控制模块、电源模块和灯泡组成。本文以STC89C52单片机为核心&#xff0c;通过利用光照度和红外人体感应相结合主动与被动的探测方法&#xff0c;现了室内无人或者关照充足时灯光自动光灯&…

PyCharm面板ctrl+鼠标滚轮放大缩小代码

1.【File】➡【Settings】 2.点击【Keymap】&#xff0c;在右边搜索框中搜incre&#xff0c;双击出现的【Increase Font Size】 3.在弹出的提示框中选择【Add Mouse Shortcut】 4.弹出下面的提示框后&#xff0c;键盘按住【ctrl】&#xff0c;并且上滑鼠标滚轮。然后点击【O…

第十七讲:结构体

第十七讲&#xff1a;结构体 1.初始结构体1.1结构体声明1.2结构体变量的创建和初始化1.2.1结构体变量的创建1.2.2结构体变量的初始化1.2.2.1普通初始化1.2.2.2结构体数组1.2.2.3结构体指针 1.3typedef定义结构体1.4结构体的自引用1.5结构体的特殊声明 2.结构体内存对齐2.1对齐规…

【C++初阶】—— 类和对象 (上)

&#x1f4dd;个人主页&#x1f339;&#xff1a;EterNity_TiMe_ ⏩收录专栏⏪&#xff1a;C “ 登神长阶 ” &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 类和对象 1. 初步认识C2. 类的引入3. 类的定义声明和定义全部放在类体中声明和定义分开存放 4.…

用队列实现栈 用栈实现队列 设计循环队列

用队列实现栈 思路 栈的特点&#xff1a;后进先出 队列的特点&#xff1a;先进先出 使用两个队列实现栈&#xff1a; 我们可以使用两个队列&#xff0c;一个队列为&#xff1a;空队列&#xff0c;一个队列为&#xff1a;非空队列 当我们要出队列时&#xff1a; 将 size - …

束测后台实操文档1-PVE、PBS

合肥先进光源束测系统后台基础架构初步设计报告 合肥先进光源束测系统后台搭建进展2024.4.29 关于后台基础架构&#xff0c;写了上面两篇文档&#xff0c;只是框架的印象&#xff0c;没涉及到具体的实操&#xff0c;后面针对具体的搭建慢慢的完善操作的细节&#xff0c;从今年…

灌装线在线粒子浮游菌监测系统安装调试

近日&#xff0c;北京中邦兴业成功完成了某企业灌装线多个点位的洁净环境在线粒子浮游菌监测系统的施工并完成了前期的调试工作。 【项目现场】 北京中邦兴业技术工程师根据客户现场实际情况&#xff0c;进行了粒子、浮游菌的点位布置&#xff0c;此系统能够实时监测生产线上的…

Docker安装MySQL的详细教程

1. 拉取MySQL镜像 拉取MySQL镜像。您可以指定版本号&#xff0c;例如5.7或8.0&#xff0c;如果不指定&#xff0c;默认会拉取最新稳定版。 docker pull mysql:5.7或者&#xff0c;使用最新版本&#xff1a; docker pull mysql:latest2. 运行MySQL容器 拉取镜像完成后&#…

本特利135813-01在PLC系统中的应用与功能分析

本特利135813-01在PLC系统中的应用与功能分析 一、引言 在工业自动化和机械设备监测领域&#xff0c;高精度、高可靠性的传感器对于确保设备的稳定运行和故障预防具有至关重要的作用。本特利&#xff08;Bently Nevada&#xff09;作为振动监测领域的佼佼者&#xff0c;其1358…

Pytorch深度学习实践笔记10(b站刘二大人)

&#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;pytorch深度学习 &#x1f380;CSDN主页 发狂的小花 &#x1f304;人生秘诀&#xff1a;学习的本质就是极致重复! 《PyTorch深度学习实践》完结合集_哔哩哔哩_bilibi…

基于SVm和随机森林算法模型的中国黄金价格预测分析与研究

摘要 本研究基于回归模型&#xff0c;运用支持向量机&#xff08;SVM&#xff09;、决策树和随机森林算法&#xff0c;对中国黄金价格进行预测分析。通过历史黄金价格数据的分析和特征工程&#xff0c;建立了相应的预测模型&#xff0c;并利用SVM、决策树和随机森林算法进行训…

装机必备——WinRAR安装教程

装机必备——WinRAR安装教程 软件下载 软件名称&#xff1a;WinRAR 软件语言&#xff1a;简体中文 软件大小&#xff1a;3.38M 系统要求&#xff1a;Windows7或更高&#xff0c; 32/64位操作系统 硬件要求&#xff1a;CPU2GHz &#xff0c;RAM4G或更高 下载通道①迅雷云盘丨下…

2024甘肃省三支一扶报名流程详细图解

预计报名时间&#xff1a;2024年5月27日9:00至5月31日18&#xff1a;00 2024甘肃省三支一扶报名流程 登录甘肃人力人力资源考试中心&#xff0c;选择网上报名 进入账户登录&#xff0c;首次登录同学请先注册账号。 注册账号&#xff0c;认真填写&#xff0c;仔细核对信息。…