%FFT变换,获得采样数据基本信息,时域图,频域图

%这里的向量都用行向量,假设被测变量是速度,单位为m/s

clear;

close all;

load data.txt              %通过仪器测量的原始数据,存储为data.txt中,附件中有一个模版(该信号极不规则)

A=data;                                        %将测量数据赋给A,此时A为N×2的数组

x=A(:,1);                                     %将A中的第一列赋值给x,形成时间序列

x=x';                                           %将列向量变成行向量

y=A(:,2);                                     %将A中的第二列赋值给y,形成被测量序列

y=y';                                           %将列向量变成行向量

%显示数据基本信息

fprintf('\n数据基本信息:\n')

fprintf('        采样点数 = %7.0f \n',length(x))                         %输出采样数据个数

fprintf('        采样时间 = %7.3f s\n',max(x)-min(x))                    %输出采样耗时

fprintf('        采样频率 = %7.1f Hz\n',length(x)/(max(x)-min(x)))   %输出采样频率

fprintf('        最小速度 = %7.3f m/s\n',min(y))                         %输出本次采样被测量最小值

fprintf('        平均速度 = %7.3f m/s\n',mean(y))                      %输出本次采样被测量平均值

fprintf('        速度中值 = %7.3f m/s\n',median(y))                   %输出本次采样被测量中值

fprintf('        最大速度 = %7.3f m/s\n',max(y))                          %输出本次采样被测量最大值

fprintf('        标准方差 = %7.3f \n',std(y))                               %输出本次采样数据标准差

fprintf('       协 方 差 = %7.3f \n',cov(y))                                %输出本次采样数据协方差

fprintf('     自相关系数 = %7.3f \n\n',corrcoef(y))                       %输出本次采样数据自相关系数

%显示原始数据曲线图(时域)

subplot(2,1,1);

plot(x,y)                                                                                %显示原始数据曲线图

axis([min(x) max(x) 1.1*floor(min(y)) 1.1*ceil(max(y))])             %优化坐标,可有可无

xlabel('时间 (s)');

ylabel('被测变量y');

title('原始信号(时域)');

grid on;

%傅立叶变换

y=y-mean(y);                                               %消去直流分量,使频谱更能体现有效信息

Fs=2000;                %得到原始数据data.txt时,仪器的采样频率。就是length(x)/(max(x)-

min(x));

N=10000;                                                 %data.txt中的被测量个数,即采样个数。其实就是length(y);

z=fft(y);

%频谱分析

f=(0:N-1)*Fs/N;

Mag=2*abs(z)/N;                                        %幅值,单位同被测变量y

Pyy=Mag.^2;          %能量;对实数系列X,有 X.*X=X.*conj(X)=abs(X).^2=X.^2,故这里有很多表达方式

%显示频谱图(频域)

subplot(2,1,2)

plot(f(1:N/2),Pyy(1:N/2),'r')                         %显示频谱图

%                 |

%             将这里的Pyy改成Mag就是 幅值-频率图了

axis([min(f(1:N/2)) max(f(1:N/2)) 1.1*floor(min(Pyy(1:N/2))) 1.1*ceil(max(Pyy(1:N/2)))])

xlabel('频率 (Hz)')

ylabel('能量')

title('频谱图(频域)')

grid on;

%返回最大能量对应的频率和周期值

[a b]=max(Pyy(1:N/2));

fprintf('\n傅立叶变换结果:\n')

fprintf('           FFT_f = %1.3f Hz\n',f(b))             %输出最大值对应的频率

fprintf('           FFT_T = %1.3f s\n',1/f(b))          %输出最大值对应的周期

离散信号频谱matlab代码,离散信号MATLAB频谱分析程序相关推荐

  1. n阶自相关matlab代码,随机信号及其自相关函数和功率谱密度的MATLAB实现.doc

    随机信号及其自相关函数和功率谱密度的MATLAB实现 引言: 现代信号分析中,对于常见的具有各态历经的平稳随机信号,不可能用清楚的数学关系式来描述,但可以利用给定的N个样本数据估计一个平稳随机信号的功 ...

  2. cca matlab代码,CCA的matlab小实验

    最近在看CCA,为了证明CCA的性能,自己写了一个matlab代码 有关CCA的网页   http://www.cnblogs.com/jerrylead/archive/2011/06/20/208 ...

  3. bsm公式的matlab代码_1000份MATLAB源代码,拿走不谢!

    前阵子写了一个HaoTdms工具,在给德国同事介绍完这个工具之后,同事表示太牛*了,同时想知道如何用MATLAB解析tdms文件. 这个问题让我有些意外,我说,其实这些代码,在MATLAB官网File ...

  4. 用matlab代码实现QDA,matlab数据库

    matlab--yeast数据库--qda方法示例_计算机软件及应用_IT/计算机_专业资料.matlab 编程. QDA 方法.load yeasttotaldata; datalabel = te ...

  5. 积分电路matlab代码实现,基于Matlab空心线圈积分电路设计+文献综述

    基于Matlab空心线圈积分电路设计+文献综述 时间:2017-05-06 11:03来源:毕业论文 利用在 Simulink 环境下搭建电路模型的方法进行仿真,在加入运放失调电压等干扰信号的条件下, ...

  6. matlab 代码风格,10 Matlab 函数与代码风格

    函数 函数,本质上是一种可复用的代码.现实生活中,有大量的工作都是重复的,变化的只是其中一小部分. 举个例子,假如要你计算 " 1+2+3+4+5+6+7+8+9+10 ",最简单 ...

  7. bp神经网络matlab代码_基于Matlab的BP神经网络识别26个英文字母

    一.设计思想 字符识别在现代日常生活的应用越来越广泛,比如车辆牌照自动识别系统,手写识别系统,办公自动化等等.本文采用BP网络对26个英文字母进行识别.首先将待识别的26个字母中的每一个字母都通过长和 ...

  8. matlab代码怎么清除,matlab个人学习笔记:数据清理

    所用的书是Matlab data analysis.学习的结果跟大家分享一下.其中所用的数据都可以在matlab中直接加载. 分析数据的第一部是数据清理.首先可以将数据放在图上,看数据是否存在某些特征 ...

  9. 图像复原 matlab代码,图像复原的Matlab实现(源代码)

    附录:源代码: 1.高斯噪声的添加以及滤波处理 I= imread('E: \lena.bmp','bmp'); J=imnoise(I,'gaussian',0,0.01); figure; sub ...

最新文章

  1. VS2017 性能优化方法
  2. kalilinux安装qt_Kali Linux安装搜狗输入法(只需5步)
  3. linux/centos/集群安装ntp时间同步,自身实验成功
  4. Docker的安装和使用及dockerfile简单使用
  5. python线程任务run_Python线程类| 带有示例的run()方法
  6. 1052. 爱生气的书店老板
  7. 专攻国内实体瘤CAR-T细胞疗法,南京卡提医学获数千万元A轮融资...
  8. 一个有趣的.net程序死锁问题
  9. 20191130每日一句
  10. 征信报告HTML文件修改,征信记录竟然可以修改!
  11. usb扫描枪驱动下载 wince_常用扫描枪驱动
  12. IC Compiler指南——布图规划(一)
  13. 智能电视无法进入服务器,三星智能电视无法连接到服务器怎么办
  14. 【Cucumber】【问题集锦】
  15. 轻办公之Windows下的可道云
  16. shiro学习系列:shiro自定义filter过滤器
  17. 核心显卡和独立显卡的区别
  18. 【ACWing】587. 吃蛋糕
  19. AnnaAraslanova/FBNet 程序分析
  20. 想要空手夺白刃?看看用户裂变的四板斧

热门文章

  1. OpenShift 4 - 部署运行 MinIO 对象存储
  2. Microsoft Blazor——快速开发与SQL Forms开源平台Platz.SqlForms
  3. 什么使软件程序员成为专业人士?
  4. git checkout 远程分支_git的远程分支是干啥的,和本地的有什么区别?
  5. c程序在solaris与linux的不同,在Solaris上编译应用程序时,在Linux上使用Valgrind也会有所帮助吗?...
  6. mysql5性能比较_MySQL 5.7&MySQL 8.0 性能对比
  7. 青岛计算机学校分数线,青岛计算机应用与维修专业职业学校收费标准,物联网应用技术中专学校分数线...
  8. linux中fopen和open的区别,Linux下open与fopen的区别
  9. python setup.py build_打包Python项目为rpm时遇到python setup.py build报错的问题
  10. numpy 矩阵求逆_numpy 矩阵运算