%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频谱分析程序(转)相关推荐

  1. 离散信号频谱matlab代码,离散信号MATLAB频谱分析程序

    %FFT变换,获得采样数据基本信息,时域图,频域图 %这里的向量都用行向量,假设被测变量是速度,单位为m/s clear; close all; load data.txt               ...

  2. matlab相关性分析频谱_基于Matlab的相关频谱分析程序教程

    基于Matlab的相关频谱分析程序教程 Matlab 信号处理工具箱 谱估计专题 频谱分析 Spectral estimation(谱估计)的目标是基于一个有限的数据集合描述一个信号的功率(在频率上的 ...

  3. matlab多元回归程序,多元回归程序MATLAB程序

    <多元回归程序MATLAB程序>由会员分享,可在线阅读,更多相关<多元回归程序MATLAB程序(45页珍藏版)>请在人人文库网上搜索. 1.程序MATLAB多元回归程序matl ...

  4. 无源定位之时差估计的精确时差估计算法(ETDE)及MATLAB实现程序

    精确时差估计算法(ETDE)及MATLAB实现程序 算法原理 算法总结 性能分析 实验结果 算法原理 假设两接收站分别接收的带噪信号为 {x(kT)=s(kT)+ε1(kT)y(kT)=s(kT−D) ...

  5. matlab潮流程序,IEEE33节点matlab潮流程序.doc

    IEEE33节点matlab潮流程序 Bus [1,0,0 ; 2,100, 60; 3,90,40; 4,120,80; 5,60,30; 6,60,20; 7, 200, 100 ; 8,200, ...

  6. matlab有意思程序,matlab有意思的小程序

    10个C++趣味小程序,很有意思的.VIP专享文档 VIP专享文档是百度文库认... 现在很多人使用微信的时间已经非常长了,他们注册的微信号往上可能已经是5年前的事情了,正是由于不少使用者在这个过程当 ...

  7. matlab程序里nbus=x的意思,MATLAB潮流程序(IEEE14 直角坐标 牛拉法)

    MATLAB潮流程序(IEEE14 直角坐标牛拉法)clear baseMVA=100; %功率基值 %%读Data1中数据 load Data1.txt Bus=Data1(:,1); %节点号 V ...

  8. 怎样在matlab q-q图上读出斜率,Q分解法潮流计算matlab小程序

    <Q分解法潮流计算matlab小程序>由会员分享,可在线阅读,更多相关<Q分解法潮流计算matlab小程序(18页珍藏版)>请在人人文库网上搜索. 1.Q分解法潮流计算matl ...

  9. matlab期权风险评估算法,使用 MATLAB 应用程序根据期权价格估算风险中性密度 (risk-neutral density, RND)...

    我们为什么选择 MATLAB 我们决定创建 MATLAB 应用程序估算 RND,因为我们希望研究成果得到广泛应用,而不是仅限于在量化经济学领域或是熟悉 MATLAB 编程的和金融研究人员使用. 我们发 ...

最新文章

  1. Java学习总结:23
  2. 管理“我的右上角” : 介绍菜单栏图标软件 Bartender
  3. linux根文件系统创建过程
  4. Linux应用服务导致系统负载过高问题排查
  5. 华为诺亚CV方向19篇论文入选ICCV 2019
  6. tnt_esri.dat Arcgis8.1安装license
  7. TotalFinder for Mac(Finder增强工具)v1.14.1
  8. 最全的Discuz! x2去除forum.php尾巴的方法
  9. 基于单片机的无线病房呼叫系统设计
  10. 一分钟解决Chrome浏览器主页被hao123、360和2345篡改简单有效方法
  11. Arch-008ArchLinux安装steam
  12. Spring Boot微服务API网关
  13. 基于babylon3D模型研究3D骨骼动画(1)
  14. 《动手学深度学习》(PyTorch版)代码注释 - 12 【House_price_prediction】
  15. Excel制作图表(二)--- 燃尽图
  16. MYSQL 基础篇(补)
  17. css文本行高是哪个属性_css属性行高line-height的用法详解
  18. DOS命令导出文件夹内所有文件的名称和全路径
  19. 干货!我被面试官绝地反杀了,附详细答案
  20. 交换机与路由器的基本工作原理

热门文章

  1. 关于Apache/Tomcat/JBOSS/Neginx/lighttpd/Jetty等一些常见服务器的区别比较和理解
  2. 学术英语视听说2听力原文_学术英语视听说(2教师手册第2版新世纪大学英语系列教材)...
  3. 从太平洋保险DCOS实践看传统企业的魅力变革
  4. Android 语音遥控器的整体分析-HAL层的AudioFlinger
  5. 介绍一款|用于多组学整合和网络可视化分析的在线平台
  6. 文件安全类产品深度剖析
  7. 写一个情人节表白页面
  8. 永磁同步电机矢量控制一更
  9. [4G5G专题-29]:物理层-内部架构、功能协议与主要接口概述
  10. 工具推荐:数据分析少不了这些可视化工具