当前位置: 首页 > news >正文

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

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

相关文章:

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

1.概 述 在许多实际信号分析处理中信号经FFT变换后得到的频谱谱线值几乎都为0,介绍这是如何形成的,又该如何去解决。 2.案例分析 读入一组实验数据文件(文件名为qldata.mat),作出该组数据的频谱图。程序清单如下: clear; clc; close all;…...

jmeter发送webserver请求和上传请求

有时候在项目中会遇到webserver接口和上传接口的请求,大致参考如下 一、发送webserver请求 先获取登录接口的token,再使用cookie管理器进行关联获取商品(webserver接口),注意参数一般是写在消息体数据中,消息体有点像HTML格式 执…...

如何看centos 有没有安装x11

在CentOS系统中,可以通过检查是否存在X11相关的包来判断是否安装了X11。你可以使用yum工具来查询是否安装了xorg-x11-server-Xorg包,这通常是X11服务器的包名。 打开终端,输入以下命令: yum list installed | grep xorg-x11-ser…...

超详细的前后端实战项目(Spring系列加上vue3)前后端篇(四)(一步步实现+源码)

兄弟们,继昨天的代码之后,继续完成最后的用户模块开发, 昨天已经完成了关于用户的信息编辑页面这些,今天再完善一下, 从后端这边开始吧,做一个拦截器,对用户做身份校验, 拦截器 这…...

决策树|随机森林 GBDT XGBoost|集成学习

文章目录 1 决策树模型1.1 决策树模型简介1.2 决策树模型核心问题1.2.1 分类划分标准1.2.1.1 信息增益1.2.1.2 增益率1.2.1.3 基尼系数 1.2.2 停止生长策略1.2.3 剪枝策略 1.3 决策树 - python代码1.3.1 结果解读1.3.2 决策树可视化1.3.3 CV - 留一法 2 集成学习2.1 Boosting2.…...

【C语言实现TCP通信】

要在C语言中实现TCP通信,您可以遵循以下步骤: 创建Socket:使用socket()函数创建套接字,指定协议族为AF_INET(IPv4)或AF_INET6(IPv6),类型为SOCK_STREAM表示使用TCP协议。…...

黑马点评-短信登录

Override public Result sendCode(String phone) { // 1.检验手机号 if (RegexUtils.isPhoneInvalid(phone)) { // 这里抛出异常和return fail有什么区别吗?———> 有区别,抛出异常会被全局异常处理器捕获,返回fail不会 throw ne…...

CentOS7 部署单机版 elasticsearch

一、环境准备 1、准备一台系统为CentOS7的服务器 [rootlocalhost ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) 2、创建新用户,用于elasticsearch服务 # elastic不允许使用root账号启动服务 [rootlocalhost ~]# useradd elastic [rootlo…...

Mujoco仿真【xml文件的学习 4】

在学习Mujoco仿真的过程中,mujoco的版本要选择合适。先前我将mujoco的版本升级到了mujoco-3.1.4,在运行act的仿真代码时遇到了问题,撰写了博客: Aloha机械臂的mujoco仿真问题记录-CSDN博客 下面在进行mujoco仿真时,统…...

vue数据持久化仓库

本文章是一篇记录实用性vue数据持久化仓的使用! 首先在src中创建store文件夹,并创建一个根据本页面相关的名称, 在终端导入:npm i pinia 和 npm i pinia-plugin-persistedstate 接下来引入代码: import { defineSt…...

OrangePi AIpro评测 - 基础操作篇

0. 环境 ●OrangePi AIpro ●win10笔记本 ●路由器 准备下win10电脑、路由器,这些板卡通常是在网络正常的环境下才方便测试。 还要准备OrangePi AIpro的官方资料: http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-suppo…...

不含一阶导数项的线性二阶微分方程的通解

假设这里有一个线性二阶微分等式,形式如下: (1) 其中是连续的,是在实闭区间是连续的,如果有人倾向于推广,在相对假弱的假设下,这个结果能够被发现。如果是下列其次线性方程的任意两个线性无关的…...

Redis篇 String

String概念和set,get扩充 一. String类型的基本介绍二. String中set,get方法扩充 一. String类型的基本介绍 redis中所有的key都是字符串类型的,但是value的类型差异很大. redis中的字符串,直接就是二进制方式存储的,可以存储整数,二进制数据 文本数据,Json,xml还有音频等. 二.…...

【vue-2】v-on、v-show、v-if及按键修饰符

目录 1、v-on事件 2、按键修饰符 3、显示和隐藏v-show 4、条件渲染v-if 1、v-on事件 创建button按钮有以下两种方式&#xff1a; <button v-on:click"edit">修改</button> <button click"edit">修改</button> 完整示例代码…...

华为交换机基础实验----VLAN基础

交换机篇实验&#xff1a; 给交换机创建VLAN 1.单个VLAN的创建 [S]vlan 10 查看的方法&#xff1a;dis vlan 2.批量创建vlan的方法 Vlan b 20 30 40 连续创建三个vlan&#xff0c;分别为vlan20 vlan30和vlan40 [SONY-S1-vlan10]vlan b 20 30 40 3.批量创建连续的vlan&#xf…...

Vue3学习使用axios和qs进行POST请求和响应处理

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、前言1.准备工作2.发送POST请求3.处理响应数据4.总结 一、前言 在前端开发中&#xff0c;经常需要与后端进行数据交互&#xff0c;其中包括发送POST请求并处理响…...

张大哥笔记:赚钱高手养成计划---如何将一份时间产生N份收入?

我们常说的赚钱的四种境界有哪些&#xff1f; 1.靠体力挣钱 2.靠技能挣钱 3.靠知识挣钱 4.靠平台钱生钱 所以对应的收入的模式就会是下面4种模式&#xff1a; 1.一份时间卖1次 2.一份时间卖N次 3.一份时间溢价卖N次 4.购买他人时间为自己所用 时间对于每个人都是相同的…...

excel里如何将数据分组转置?

这个表格怎样转换为下表&#xff1f;按照国家来分组&#xff0c;把不同年份对应的不同序列值进行转置&#xff1f;&#xff1f; 这演示用数据透视表就完成这个数据转换。 1.创建数据透视表 选中数据中任意单元格&#xff0c;点击插入选项卡&#xff0c;数据透视表&#xff0c;…...

WHAT - 前端安全性测试和常见攻击手段

目录 一、安全性测试二、前端安全性测试三、跨站脚本&#xff08;XSS&#xff09;攻击1. 介绍2. 三大类型反射型 XSS&#xff08;Reflected XSS&#xff09;存储型 XSS&#xff08;Stored XSS&#xff09;DOM 型 XSS&#xff08;DOM-based XSS&#xff09; 3. xss 盲打4. xss 水…...

重量and体积,不要在傻傻的花冤枉钱寄快递了!

寄快递时有没有遇到过明明不重却被按体积收费的情况&#xff1f;别急&#xff0c;今天就来给大家揭秘快递收费的奥秘&#xff01; 实际重量和体积重量&#xff01; 首先&#xff0c;我们要明白两个概念&#xff1a;实际重量和体积重量。实际重量就是你看到的物品重量&#xf…...

SEO标题优化与内容营销的关系是什么

SEO标题优化与内容营销的关系&#xff1a;深度解析与实践指南 在数字营销的世界里&#xff0c;SEO标题优化与内容营销之间的关系日益紧密&#xff0c;两者共同塑造了网站的可见性和用户参与度。究竟SEO标题优化与内容营销的关系是什么呢&#xff1f;本文将深入解析这一关系&am…...

代码写不动了?传统程序员不转型AI工程化提示词专家,将被AI助手彻底平替

2026年开年&#xff0c;全球科技圈的裁员潮撕开了行业变革的残酷真相&#xff1a;甲骨文一天内裁掉3万名员工&#xff0c;其中绝大多数是从事基础编码、数据库维护的传统程序员。取代他们的&#xff0c;正是曾经被视为“辅助工具”的AI助手。值得关注的是&#xff0c;在这场行业…...

OpenClaw飞书机器人配置:Phi-3-mini-128k-instruct对话式任务触发

OpenClaw飞书机器人配置&#xff1a;Phi-3-mini-128k-instruct对话式任务触发 1. 为什么选择飞书OpenClawPhi-3的组合&#xff1f; 去年团队规模扩张到15人时&#xff0c;我突然发现每天要花2小时处理各种琐碎请求&#xff1a;"下周会议材料准备好了吗&#xff1f;"…...

工资条生成器:财务人员的高效办公利器

在企业财务管理工作中&#xff0c;工资条的制作与发放是一项既繁琐又重要的任务。 传统的手工制作方式不仅耗时耗力&#xff0c;还容易出现数据错误和格式不统一的问题。 工资条生成器的出现&#xff0c;为财务人员带来了全新的解决方案。 这款软件专门针对财务工作场景设计…...

拆解Clonezilla镜像:除了partclone,你还需要知道的底层原理与工具链

拆解Clonezilla镜像&#xff1a;从分卷压缩到文件系统的技术全景解析 当我们需要从Clonezilla备份中提取单个文件时&#xff0c;传统方法往往要求完整恢复整个镜像——这种"全有或全无"的方式在存储资源有限的情况下显得尤为笨重。本文将带您深入Clonezilla镜像的底层…...

orientation误差表示

目录1 Orientation误差&#xff08;最常见方法&#xff09;误差旋转Python实现2 Orientation RMSE3 位置 姿态一起计算&#xff08;SE(3)&#xff09;4 Python实现&#xff08;SE3误差&#xff09;5 机器人领域常见指标6 实践建议&#xff08;很重要&#xff09;总结orientati…...

PowerToys Image Resizer:三步解决全场景图片批量处理难题

PowerToys Image Resizer&#xff1a;三步解决全场景图片批量处理难题 【免费下载链接】PowerToys Microsoft PowerToys is a collection of utilities that supercharge productivity and customization on Windows 项目地址: https://gitcode.com/GitHub_Trending/po/Power…...

别再用手机思维做TV App了!Android TV开发必知的模拟器操作与UI焦点设计实战

别再用手机思维做TV App了&#xff01;Android TV开发必知的模拟器操作与UI焦点设计实战 第一次在65英寸大屏上看到自己开发的TV应用时&#xff0c;那种震撼感至今难忘——直到用户用遥控器操作了五分钟还没找到核心功能按钮。这个尴尬经历让我深刻意识到&#xff1a;TV开发不是…...

新手零门槛入门:在快马平台轻松学会为openclaw切换不同的ai模型

今天想和大家分享一个特别适合AI编程新手的实践项目——在InsCode(快马)平台上为openclaw切换不同的AI模型。作为一个刚接触AI辅助开发的小白&#xff0c;我最初看到"更换模型"这种操作时总觉得很复杂&#xff0c;但实际体验后发现这个平台把整个过程简化得像搭积木一…...

Axure RP界面语言模块本地化适配指南:从环境配置到效能优化

Axure RP界面语言模块本地化适配指南&#xff1a;从环境配置到效能优化 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 在全球化…...