当前位置: 首页 > 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…...

TrafficMonitor插件完整指南:让Windows任务栏变身全能监控中心

TrafficMonitor插件完整指南&#xff1a;让Windows任务栏变身全能监控中心 【免费下载链接】TrafficMonitorPlugins 用于TrafficMonitor的插件 项目地址: https://gitcode.com/gh_mirrors/tr/TrafficMonitorPlugins 还在为繁琐的系统监控工具而烦恼吗&#xff1f;每次需…...

AI编程助手的真实效能:20-30%增效背后的工程逻辑与落地框架

1. 这不是泼冷水&#xff0c;而是把被营销话术遮住的显微镜递给你 “AI coding agent will boost your productivity 10x”——这句话过去两年在技术社区、招聘JD、内部OKR甚至投资人尽调材料里反复刷屏&#xff0c;像一句不容置疑的技术咒语。我本人从2023年Q4开始&#xff0c…...

AI调用BurpSuite实现可审计漏洞检测闭环

1. 这不是“AI安全工具”的营销话术&#xff0c;而是一套可落地的漏洞发现流水线最近帮一家做金融SaaS的客户做渗透测试流程优化&#xff0c;他们原来的方案是&#xff1a;每周安排2名中级渗透工程师&#xff0c;用BurpSuite手动跑一遍核心业务流&#xff0c;再人工翻看Proxy历…...

洛雪音乐音源完全指南:免费解锁全网高品质音乐

洛雪音乐音源完全指南&#xff1a;免费解锁全网高品质音乐 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 还在为音乐平台会员费发愁吗&#xff1f;想要免费畅听全网音乐吗&#xff1f;洛雪音乐音…...

5步终极指南:如何永久免费使用Cursor Pro AI编程助手

5步终极指南&#xff1a;如何永久免费使用Cursor Pro AI编程助手 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your tria…...

传统锯床与特斯克天弓系列PC-36带锯床:八大维度对比,差距在哪?

传统锯床与特斯克天弓系列PC-36带锯床&#xff1a;八大维度对比&#xff0c;差距在哪&#xff1f;不是所有数控带锯机&#xff0c;都叫天弓特斯克天弓系列PC-36带锯床在带锯床选型中&#xff0c;购置价格之外&#xff0c;综合使用成本&#xff08;锯条消耗、废品损失、维保成本…...

X-TRACK开源GPS自行车码表深度解析:从嵌入式架构到离线地图的完全实战指南

X-TRACK开源GPS自行车码表深度解析&#xff1a;从嵌入式架构到离线地图的完全实战指南 【免费下载链接】X-TRACK A GPS bicycle speedometer that supports offline maps and track recording 项目地址: https://gitcode.com/gh_mirrors/xt/X-TRACK X-TRACK是一款基于A…...

Claude处理1000+页合同文档的7步标准化流程:从乱码识别到条款抽取全链路实操

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Claude处理1000页合同文档的7步标准化流程总览 面对动辄上千页的复杂商业合同&#xff08;如并购协议、跨境服务主协议、多层分包合同包&#xff09;&#xff0c;人工审阅极易遗漏关键条款、时效性差且难以复现…...

免费开源AMD Ryzen调试工具终极指南:从零掌握SMUDebugTool完整使用教程

免费开源AMD Ryzen调试工具终极指南&#xff1a;从零掌握SMUDebugTool完整使用教程 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目…...

C166架构中idaata变量存储类别变更的解析与优化

1. 问题现象与背景解析最近在Keil C166开发环境中遇到了一个有趣的编译警告&#xff0c;代码看起来非常简单&#xff1a;void main(void) {int i;int j;int idata asdf; // 触发警告的变量声明i 100;j 1000;asdf i j; }编译时会出现如下警告&#xff1a;*** WARNING 189 I…...