clc;clear;

filename='TestAcceleration.xlsx';      % Excel数据文件名称

sheet=1;    % 数据读写工作表worksheet编号

ReadRange='A4:B40003';    % 读取时域信号数据范围

WriteRange='E4';     % 写入幅频特性数据起始位置

Num=xlsread(filename,sheet,ReadRange);

[m n]=size(Num);    % 获取数据维数,主要是获取数据行数

time=Num(:,1);

Acceleration=Num(:,2);    % 要进行FFT运算的数据所在列数

plot(time(1:6000),Acceleration(1:6000))

xlabel('时间 [s]');

ylabel('加速度 [m/s2]');

title('加速度时域波形');

Fs=4e4;    % 采样频率

NFFT=4096;    % 每个分块数据个数

N_Frame=floor(2*m/NFFT-1);   % 根据数据长度计算的分块数目,分块间按50%重叠率

temp_Amplitude_Acceleration=zeros(N_Frame,NFFT);  % 每一行用来存储每个分块FFT变换后的幅值

w_hann=hann(NFFT,'periodic');   % 汉宁窗,是长度为NFFT的列向量

for i=1:N_Frame

temp=Acceleration((i-1)*(NFFT/2)+1:(i+1)*(NFFT/2)).*w_hann;

fft_Acceleration=fft(temp,NFFT);   % 对每一分块进行加窗FFT变换

temp_Amplitude_Acceleration(i,:)=(abs(fft_Acceleration))/(NFFT/2)*2;  % 幅值转换,包括汉宁窗幅值恢复系数2

temp_Amplitude_Acceleration(i,1)=temp_Amplitude_Acceleration(i,1)/2;  % 直流分量

end

F=([1:NFFT]-1)*Fs/NFFT;

avg_Amplitude_Acceleration=mean(temp_Amplitude_Acceleration);  % 将所有分块相同频率对应的幅值进行平均

plot(F(1:NFFT/2+1),avg_Amplitude_Acceleration(1:NFFT/2+1));   %显示换算后的FFT模值结果,因FFT结果具有对称性,只显示一半

xlabel('频率 [Hz]');

ylabel('加速度 [m/s2]');

title('幅度-频率曲线图');

data=[F;avg_Amplitude_Acceleration];   % 组成幅频特性数据矩阵,第一行为频率,第二行为幅值

data=data';   % 转置

xlswrite(filename,data,sheet,WriteRange);    % 写出幅频特性数据到指定位置

k=find(F>400);

plot(F(1:k),avg_Amplitude_Acceleration(1:k));   %显示400Hz之前的幅频特性

xlabel('频率 [Hz]');

ylabel('加速度 [m/s2]');

title('幅度-频率曲线图');

matlab fft没有误差,matlab仿真FFT结果幅值比实际的略有降低?相关推荐

  1. 画幅值matlab,好用的画包络谱和幅值谱matlab函数

    使用范例: x=@(t) (1+0.5*cos(9*pi*t)).*cos(200*pi*t+2*cos(10*pi*t))+sin(pi*t).*sin(30*pi*t); t=0:0.01:9.9 ...

  2. 基于STM32F407实现快速傅里叶变化(FFT),计算指定频率的幅值

    本人的课题是关于EIT采集系统,简单的说就是往人体注入特定频率的恒流源,再采集电压信号,通过分析电阻抗分布进行成像.采集的电压信号是需要进行FFT处理,只保留注入频率的信号成分.本文主要介绍如何在ST ...

  3. matlab浮点运算的误差,MATLAB的eps,浮点数相对精度

    MATLAB的eps函数,官方帮助文档是这么描述的:Floating-point relateive accuracy,也就是浮点数的相对精度. 大家都知道,在数学中,实数有无穷多个,数值可以无限大, ...

  4. 用matlab求残余误差,matlab在测量误差分析中的应用

    matlab在测量误差分析中的应用 MATLAB在测量误差分析中的应用 在技术测量中,按照误差的特点与性质,误差可分为:系统误差,粗大误差和随机误差.在假定不含有系统误差的情况下,可借助MATLAB对 ...

  5. matlab fsolve函数 误差,matlab关于fsolve函数的运用出现的问题

    在网上查找了很多相同问题的答案,但是都没有合适的方法解决我的问题,求大神们指点 K1=442.3926125;K2=45483.17187;K3=0.000253321;K4=22987873.07; ...

  6. 【51单片机快速入门指南】仿真实例:幅值可调、频率可调的函数发生器(方波、三角波、正弦波)(1~10kHz)

    目录 效果 设计思路 STC89C52 Windows 10 20H2 Proteus 8 Frofessional v8.9 SP2 Keil uVision V5.29.0.0 PK51 Prof ...

  7. hht时频谱 matlab 乱序_MATLAB信号频谱分析FFT详解

    做OFDM通信少不了频谱分析,基带信号DA后的频谱,以及基带数字上变频后的DA信号都要频谱分析.我觉得其实做任何工程都是这样,先规定实施方案,然后仿真成功,再实际开发,不过也可以一边开发,一边仿真,开 ...

  8. FFT变换频谱图中幅值的设置方法

    按照上篇博文所画出来的频谱图中,原信号的每个频率是准确地找出来了,但是各个频率点所对应的的幅值可不是原信号中真正的幅值,因为在进行DFT(FFT)变换的时候,已经把幅值改变了,要想让频谱图的纵坐标显示 ...

  9. matlab频谱图幅值意义,时域波形傅里叶分析之后,频率-幅值波形图意义 – MATLAB中文论坛...

    %对单一的5元的样本纸币进行傅里叶分析,画出频率-幅值图(频谱图) %处理顺序: %第一步:冠字码信号时间序列 %第二步:数据预处理(数据平滑滤波),此处没有用到数据压缩,因为快速傅里叶变换涉及到采样 ...

  10. 有源电力滤波器matlab仿真, 并联型apf仿真fft分析 谐波电流检测ipiq法

    有源电力滤波器matlab仿真, 并联型apf仿真fft分析 谐波电流检测ipiq法 跟踪电流控制(传统滞环控制 空间电压矢量滞环控制) 总谐波畸变率降至3%以下 ID:695064569089802 ...

最新文章

  1. Restful API的设计思路
  2. 请求体的方式传参_Angularjs中$http以post请求通过消息体传递参数的实现方法
  3. 3399 cpu绑核
  4. win10下处理“xxx不是内部或外部命令,也不是可运行的程序或批处理文件”
  5. dplyr和data.table让你的数据分析事半功倍
  6. 设计模式(面向对象)设计的七大原则
  7. 美团内推:java高级开发(一面+二面+三面),面试58题实拍!
  8. 大智慧 软件 开发语言_智慧工厂培训软件开发流程篇
  9. 关于C++条件编译的细节
  10. PHP实现程序单例执行
  11. Vulkan Nvidia 驱动 VK_ERROR_LAYER_NOT_PRESENT
  12. github电脑壁纸_这可能是2020年最好的电脑壁纸软件推荐文章!
  13. CAD软件绘图如何提高效率 (下)
  14. 年度盘点:20+主流数据库重大更新及技术要点回顾
  15. Source Insight等宽字体及对齐设置方式
  16. C++ 多态(2): 纯虚函数, 抽象类和接口类
  17. 可可直播电视---开通论坛
  18. UE4 材质笔记之墙面(纹理混合+顶点颜色应用)
  19. html学习基础(一)
  20. matlab频域滤波处理,手动滤波,图像去网格背景:频域中手动选择目标区域进行滤波,滤掉噪声,灵活地达到理想的效果。

热门文章

  1. 【php】基础学习4
  2. 关于跳转 + 传递消息,
  3. Lucene4:创建一个简单查询
  4. [jQuery] 按比例缩小图片
  5. kafka中zookeeper的作用
  6. 7-1 xbmc学习笔记
  7. Flutter入门一——W7环境下使用VSCode配置Flutter开发环境(脱离Android Studio安装)...
  8. 【Java基本功】很多人经常忽视的Java基础知识点
  9. ASP.NET vNext MVC 6 电商网站开发实战
  10. 数据结构 http://www.cnblogs.com/sun-haiyu/p/7704654.html