%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. 第一届中国三维视觉大会China3DV论文展示
  2. 何为Web App,何为Hybird App
  3. LeetCode 375. Guess Number Higher or Lower II
  4. 多线程:Vector是线程安全的吗
  5. Python学习之共享引用
  6. 输出java_java基础----Java的格式化输出
  7. BZOJ-2761-不重复数字
  8. day 96 关于分页的使用
  9. 谈Elasticsearch下分布式存储的数据分布
  10. Oracle的Endgame,或被Amazon收购或自生自灭?
  11. DMA流程简介--CPU/内存/网卡之间的交互
  12. 特斯拉最廉价车型——基础版Model 3将取消网售
  13. java特殊字符转义html_java转义html特殊字符
  14. 使用Storyboard 创建ViewController
  15. ElasticSearch全文搜索引擎之Aggregation聚合查询(结合Kibana)
  16. Poj(1274),二分图匹配
  17. 破解无线网络密码-BT3如何使用3
  18. triplets 、triplet Loss和 hard triplets
  19. container_of()宏
  20. ts定义数组类型_ts中类型

热门文章

  1. 路科验证MCDF_svlab3笔记
  2. Elasticsearch8.2扩容挪数据master出现异常
  3. 优思学院|浅谈六西格玛培训
  4. MySQL由于找不到msvcp140.dll无法继续执行代码
  5. python cnn 实例_学习python的算法-Faster RCNN算法复现
  6. 微信小游戏帧同步demo(minigame-lockstep-demo)学习笔记
  7. PGS,史上最大的超级玛丽来了
  8. 抖音短视频编辑工具EffectCreator 6.4.0中文版
  9. DaVinci:色轮
  10. 【FXCG】人民币中间价报6.3401,下调58点