MATLAB实现希尔伯特变换以及FFT补零分析

news2024/11/18 13:57:39

南京信息工程大学  实验(实习)报告

实验(实习)名称  数字信号处理  实验(实习)日期            得分            指导老师                 

学院 电信院 专业 电子信息工程 年级 2020   班次              姓名                  学号 20208327     

1.实验目的

  1. 掌握利用MATLAB求信号的希尔伯特变换;
  2. 掌握利用MATLAB进行信号的FFT运算,对其进行频谱分析;
  3. 掌握利用MATLAB对信号进行补零分析。

2.实验内容

(1)为一正弦信号,长度为25,求其希尔伯特变换;

(2)是两个正弦信号及其白噪声的叠加,试用FFT对其做频谱分析,并对其补零分析2N、3N长度的FFT效果。

  1. 实验步骤和实验结果

(1)为一正弦信号,长度为25,求其希尔伯特变换;

clc;clear;
ts = 0.001;
N = 300; 
f = 50;
k = 0:N-1;
t = k*ts;
y =  sin (2* pi *f*t);
yh = hilbert(y);     
yi =  imag (yh);       
figure
subplot (211)
plot (t, y)
title ( '原sin信号' )
subplot (212)
plot (t, yi)
title ( 'Hilbert变换后信号' )
ylim ([-1,1])

(2)是两个正弦信号及其白噪声的叠加,试用FFT对其做频谱分析,并对其补零分析2N、3N长度的FFT效果。

clear;clc;
fs=200;                            
f1=30; f2=60;                   
N=300;                            
n=1:N;                            
t=(n-1)/fs;                        
x=sin(2*pi*f1*t)+sin(2*pi*f2*t)+randn(1,N);  
 
X1=fft(x); 
freq1=(0:N/2)*fs/N;               
X1_abs=abs(X1(1:N/2+1))*2/N;       
 
L=2*N;                            
X2=fft(x,L);                       
freq2=(0:L/2)*fs/L;                
X2_abs=abs(X2(1:L/2+1))*2/N;  

L1=3*N;                            
X3=fft(x,L1);                       
freq3=(0:L1/2)*fs/L1;                
X3_abs=abs(X3(1:L1/2+1))*2/N; 

subplot (411); plot(t,x); 
title('原始信号')
subplot(412); plot(freq1,X1_abs); 
ylim([0 1.5]);
title('补零前FFT谱图')
subplot(413); plot(freq2,X2_abs);
ylim([0 1.5]);
title('补2N零后FFT谱图')
subplot(414); plot(freq3,X3_abs);
ylim([0 1.5]);
title('补3N零后FFT谱图')

 

4.实验小结

(1)本节实验课学习了如何用MATLAB进行信号的希尔伯特变换,对信号做FFT运算、并对其进行频谱分析,以及如何进行补零分析。

(2)正弦信号进行希尔伯特变换后即为余弦信号,但因为只采了25个点的数据,所以转换后的信号波形失真较严重,多采一些点后波形明显有改观,如图1所示。

clear;clc;
fs=200;                            
f1=30; f2=60;                   
N=300;                            
n=1:N;                            
t=(n-1)/fs;                        
x=sin(2*pi*f1*t)+sin(2*pi*f2*t)+randn(1,N);  
 
X1=fft(x); 
freq1=(0:N/2)*fs/N;               
X1_abs=abs(X1(1:N/2+1))*2/N;       
 
L=2*N;                            
X2=fft(x,L);                       
freq2=(0:L/2)*fs/L;                
X2_abs=abs(X2(1:L/2+1))*2/N;  

L1=3*N;                            
X3=fft(x,L1);                       
freq3=(0:L1/2)*fs/L1;                
X3_abs=abs(X3(1:L1/2+1))*2/N; 

subplot (411); plot(t,x); 
title('原始信号')
subplot(412); plot(freq1,X1_abs); 
ylim([0 1.5]);
title('补零前FFT谱图')
subplot(413); plot(freq2,X2_abs);
ylim([0 1.5]);
title('补2N零后FFT谱图')
subplot(414); plot(freq3,X3_abs);
ylim([0 1.5]);
title('补3N零后FFT谱图')

图1

 

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

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

相关文章

从vue2到vue3,生命周期函数有何变化之详解

vue2与vue3生命周期的对比: Vue2--------------Vue3 beforeCreate—————–>setup() created————————>setup() beforeMount—————–>onBeforeMount mounted—————-------> onMounted beforeUpdate -————–> onBeforeUpdate u…

正则表达式入门级别详细教程

文章目录常用正则表表达式01、火车车次02、手机机身码(IMEI)03、必须带端口号的网址(或ip)04、网址(URL)05、统一社会信用代码06、迅雷/ed2k/磁力链接07、子网掩码(不包含 0.0.0.0)08、Linux/windows文件路径09、股票代码(A股)10、大于等于0, 小于等于150, 支持小数位出现5, 如…

手把手教你编写Python抢购脚本

想买苹果手机,但总是抢不到,所以想试着能不能写个脚本代码。 第一步:把想要抢购的商品加进购物车,注意:脚本是对购物车内全部商品进行下单操作,所以不够买的商品最好先从购物车内删除。 第二步&#xff1a…

网络安全这玩意儿真不建议一般人学...

前言 作为一名5年网安工程师老菜鸟来说,我实在想不通,开发岗位那么多,为什么要来学网安? 在这里怕是要给准备入坑的同学泼盆冷水了,网络安全这东西真不建议一般人学... 基础确实很简单,是个人稍微认点真都能懂&…

20221205英语学习

今日新词: abort v.中止, 流产, 放弃, 堕胎 motor adj.有引擎的, 由发动机推动的, 机动车的, 汽车的 flag n.旗, 标志旗, 菖蒲, 旗帜(指某国家或组织及其信仰和价值观) August n.八月 division n.(主要)部门&…

数据可视化之疫情可视化

一 前言 新型冠状病毒肺炎(COVID-19,简称“新冠肺炎”)疫情肆虐全球多个国家,2020年3月11日,世界卫生组织 (WHO) 正式宣布将新冠肺炎列为全球性大流行病。 在全球抗击新型冠状病毒疫情的过程中,产生了前所…

网络管理——直接网络管理规范

逻辑环 逻辑环机制 每个逻辑节点都有一个逻辑地址,且每个节点有一个后继节点,从而建立一个逻辑环。后继节点定义为:按照NM 地址段节点地址大小排列,小地址节点→大地址节点依次传递网络管理报文;最大地址节点→最小地…

【IoT】产品经理:如何了解行业需求、痛点和发展机会?

需求、痛点、发展机会是跟你所处行业的密切相关的,只有融入这个行业,才能更好地理解需求和痛点。 1、避免一叶障目 你需要做到避免只见树木不见森林,避免自己局限于细节而忽视了全局。 我们对部分的理解再深刻,也无法得到对整体的…

年薪90万男子嫌无聊起诉公司?用任务软件飞项充实工作吧!

每天正常上下班,毫无工作压力,这样的神仙工作是不是你期望的?但最近有个奇葩的新闻引起了网友的热议。就是这样的工作,但“身在福中不知福”的男子米尔斯,却将公司给起诉了,理由是“太无聊”。据报道&#…

SpringCloud框架(二):整合Eureka作为注册中心、Feign进行远程调用、Ribbon实现负载均衡,底层源码解读

环境搭建 生产和消费 RestTemplate,底层源码解读SpringCloud环境搭建:生产和消费 RestTemplate整合Eureka和Feign引入Eureka服务注解中心替代RestTemplate?通过openFegin进行调用当一个请求多次落到一个服务上,其他服务如何平衡这…

【Python项目】毕业设计必备——Python实现一个GUI版本的学生信息管理系统 | 附源码

前言 halo,包子们上午好 很多学计算机的小伙伴应该都知道,毕业设计是一个头疼的东西 今天的话小编这边给大家准备好了一个Python版本的毕业设计课题——学生管理系统 说实话操作起来还是有那么一点点的难度的,但是大家不用担心 作为一个宠粉…

SSM框架学习记录-Spring_day02

1.IOC/DI配置管理第三方bean 之前都是基于自己写的类,如果有需求去管理第三方Jar包中的类,该如何管理? 案例:数据源对象管理 使用Spring的IOC容器来管理Druid连接池对象 思路分析 要使用第三方的技术,需要在pom.xml添加依赖 在配置文件中将…

CloudKit教程之如何从 CloudKit 获取图像资源到 SwiftUI 应用程序

最近,我研究了 CloudKit API 文档,并尝试将数据库和资产集成到我的应用程序中。这是我的一些发现,希望对您有所帮助…… 想要从 iCloud 公共数据库获取图像资产到他们的 SwiftUI 应用程序的 Apple 开发人员而写的。 将 Sign in with Apple 集成到 CloudKit 新建 Xcode 项…

CSRF漏洞利用与防御

今天继续给大家介绍渗透测试相关知识,本文主要内容是CSRF漏洞利用与防御。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授权设…

Spring更简单的存储和读取Bean

⭐️前言⭐️ 在上一篇文章【Spring的创建与使用】中,我们已经了解了Spring中bean对象的基本的创建和使用方法,这篇文章通过注解的方法,使得存储和读取对象更加简单。 🍉博客主页: 🍁【如风暖阳】&#x1…

[附源码]计算机毕业设计JAVA疫情背景下社区公共卫生服务系统

[附源码]计算机毕业设计JAVA疫情背景下社区公共卫生服务系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&#xff1a…

分布式事务最终一致性的方案

最终一致性的方案 知识储备 分布式系统中不可避免存在分布式事务带来的一致性问题。为了解决这个问题,需要熟悉业界相关的理论: ACID CAP BASE 2PC 3PC TCC 对于一致性的处理,分为强一致和最终一致性。强一致,对系统的吞吐…

cox回归RCS阈值效应函数cut.tab1.3发布

写在前面的话,本次只发布了cox回归RCS阈值函数,请看清楚再购买,觉得贵的可以等一等,这个函数最终会放在ggrcs包上面,免费供大家使用,急用的可以先看看。 接下来聊聊cox回归RCS阈值函数是干什么用的&#xf…

[附源码]Python计算机毕业设计SSM江西婺源旅游文化推广系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Python入门 函数 基础入门篇

一、什么是函数 函数是最基本的一种代码抽象的方式,是组织好的可重复使用的,用来实现单一或相关联功能的代码段。 函数是对做相似的事情或相似的动作进行封装,它能提高应用的模块性和代码的重复利用率。我们要封装好一个函数,首…