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

【Matlab】快速傅里叶变换fft代码(单边谱)

单边谱,横纵坐标还原代码
参考链接

主代码

function main()
clc
clear
close all
%%
%仿真时间
dt=0.01;
t_end=10;
time=dt:dt:t_end;%注意,length(time)会对fft结果的精度有影响
%对应振幅,频率:10、5、2Hz
Z=20*sin(2*pi*20*time)+10*sin(2*pi*10*time)+5*sin(2*pi*5*time)+2*sin(2*pi*2*time);
figure(1)
plot(time,Z,'b-')
xlabel('时间/s')
ylabel('振幅')
%% fft变换
%注意,length(time)会对fft结果的精度有影响
[f,Y_amp]=fastf(Z,dt);
%fft结果
figure(101)
plot(f,Y_amp)
xlabel('频率/Hz')
ylabel('振幅')
%fft结果,双对数坐标
figure(102)
loglog(f,Y_amp)
xlabel('频率/Hz')
ylabel('振幅')

fastf.m
只和需要被fft的时间序列Z(编号乘以dt是对应的时间)与间隔时间dt有关

function [f,Y_amp]=fastf(Z,dt)
%fft变换,单边谱,恢复频率轴和幅度
% https://blog.csdn.net/weixin_43215105/article/details/127932757?spm=1001.2014.3001.5506
%% fft
fs=1/dt;%采样频率
f_fft=fft(Z);%fft变换,matlab直接fft变换的结果的横轴、纵轴均不正确,需要变换处理
%% 单边谱,恢复频率轴和幅度
N=length(f_fft);%fft之后的序列长度if mod(N, 2) ~= 0N=N-1;%如果向量长度为奇数去末尾数
endY=f_fft(1:N/2);%单边谱是双边谱的一般
Y=2*Y;
Y_amp=abs(Y)/N;%恢复振幅df=fs/N;%频率分辨率
f=(1:N/2)*df;

时间序列Z如下图所示:
在这里插入图片描述Z(向量)内元素的编号乘以dt即该元素对应的时刻

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 猫头虎分享疑难杂Bug:error: subprocess-exited-with-error 解决方案
  • docker 建木 发版 (详细教程)
  • Open Interpreter - 开放解释器
  • 无人机工程师技术高级证书详解
  • Python爬虫基础:爬取网页内容解析标题
  • 8.2 grafana上导入模板看图并讲解告警
  • 【论文笔记】4D Millimeter-Wave Radar in Autonomous Driving: A Survey
  • JavaSE面试篇章——一文干破Java集合
  • (二)测试工具
  • 数字孪生赋能智慧城市大脑智建设方案(可编辑65页PPT)
  • 简单了解下Spring中的各种Aware接口实现依赖注入
  • 【单片机毕业设计选题24099】-室内空气质量检测及净化系统
  • 学习笔记第十七天
  • 15.75.【C语言】表达式求值
  • Dubbo源码深度解析(中)
  • java 多线程基础, 我觉得还是有必要看看的
  • JavaScript HTML DOM
  • jQuery(一)
  • Logstash 参考指南(目录)
  • sublime配置文件
  • ubuntu 下nginx安装 并支持https协议
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 解决iview多表头动态更改列元素发生的错误
  • 事件委托的小应用
  •  一套莫尔斯电报听写、翻译系统
  • - 转 Ext2.0 form使用实例
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • 如何正确理解,内页权重高于首页?
  • ​secrets --- 生成管理密码的安全随机数​
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • ${ }的特别功能
  • (2)MFC+openGL单文档框架glFrame
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (C)一些题4
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)springboot教学评价 毕业设计 641310
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • (强烈推荐)移动端音视频从零到上手(下)
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)jdk与jre的区别
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET Core 发展历程和版本迭代
  • .NET Framework 4.6.2改进了WPF和安全性
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .net 程序发生了一个不可捕获的异常
  • .NET业务框架的构建
  • .sh 的运行
  • @Controller和@RestController的区别?