matlab fft没有误差,matlab仿真FFT结果幅值比实际的略有降低?
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结果幅值比实际的略有降低?相关推荐
- 画幅值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 ...
- 基于STM32F407实现快速傅里叶变化(FFT),计算指定频率的幅值
本人的课题是关于EIT采集系统,简单的说就是往人体注入特定频率的恒流源,再采集电压信号,通过分析电阻抗分布进行成像.采集的电压信号是需要进行FFT处理,只保留注入频率的信号成分.本文主要介绍如何在ST ...
- matlab浮点运算的误差,MATLAB的eps,浮点数相对精度
MATLAB的eps函数,官方帮助文档是这么描述的:Floating-point relateive accuracy,也就是浮点数的相对精度. 大家都知道,在数学中,实数有无穷多个,数值可以无限大, ...
- 用matlab求残余误差,matlab在测量误差分析中的应用
matlab在测量误差分析中的应用 MATLAB在测量误差分析中的应用 在技术测量中,按照误差的特点与性质,误差可分为:系统误差,粗大误差和随机误差.在假定不含有系统误差的情况下,可借助MATLAB对 ...
- matlab fsolve函数 误差,matlab关于fsolve函数的运用出现的问题
在网上查找了很多相同问题的答案,但是都没有合适的方法解决我的问题,求大神们指点 K1=442.3926125;K2=45483.17187;K3=0.000253321;K4=22987873.07; ...
- 【51单片机快速入门指南】仿真实例:幅值可调、频率可调的函数发生器(方波、三角波、正弦波)(1~10kHz)
目录 效果 设计思路 STC89C52 Windows 10 20H2 Proteus 8 Frofessional v8.9 SP2 Keil uVision V5.29.0.0 PK51 Prof ...
- hht时频谱 matlab 乱序_MATLAB信号频谱分析FFT详解
做OFDM通信少不了频谱分析,基带信号DA后的频谱,以及基带数字上变频后的DA信号都要频谱分析.我觉得其实做任何工程都是这样,先规定实施方案,然后仿真成功,再实际开发,不过也可以一边开发,一边仿真,开 ...
- FFT变换频谱图中幅值的设置方法
按照上篇博文所画出来的频谱图中,原信号的每个频率是准确地找出来了,但是各个频率点所对应的的幅值可不是原信号中真正的幅值,因为在进行DFT(FFT)变换的时候,已经把幅值改变了,要想让频谱图的纵坐标显示 ...
- matlab频谱图幅值意义,时域波形傅里叶分析之后,频率-幅值波形图意义 – MATLAB中文论坛...
%对单一的5元的样本纸币进行傅里叶分析,画出频率-幅值图(频谱图) %处理顺序: %第一步:冠字码信号时间序列 %第二步:数据预处理(数据平滑滤波),此处没有用到数据压缩,因为快速傅里叶变换涉及到采样 ...
- 有源电力滤波器matlab仿真, 并联型apf仿真fft分析 谐波电流检测ipiq法
有源电力滤波器matlab仿真, 并联型apf仿真fft分析 谐波电流检测ipiq法 跟踪电流控制(传统滞环控制 空间电压矢量滞环控制) 总谐波畸变率降至3%以下 ID:695064569089802 ...
最新文章
- Restful API的设计思路
- 请求体的方式传参_Angularjs中$http以post请求通过消息体传递参数的实现方法
- 3399 cpu绑核
- win10下处理“xxx不是内部或外部命令,也不是可运行的程序或批处理文件”
- dplyr和data.table让你的数据分析事半功倍
- 设计模式(面向对象)设计的七大原则
- 美团内推:java高级开发(一面+二面+三面),面试58题实拍!
- 大智慧 软件 开发语言_智慧工厂培训软件开发流程篇
- 关于C++条件编译的细节
- PHP实现程序单例执行
- Vulkan Nvidia 驱动 VK_ERROR_LAYER_NOT_PRESENT
- github电脑壁纸_这可能是2020年最好的电脑壁纸软件推荐文章!
- CAD软件绘图如何提高效率 (下)
- 年度盘点:20+主流数据库重大更新及技术要点回顾
- Source Insight等宽字体及对齐设置方式
- C++ 多态(2): 纯虚函数, 抽象类和接口类
- 可可直播电视---开通论坛
- UE4 材质笔记之墙面(纹理混合+顶点颜色应用)
- html学习基础(一)
- matlab频域滤波处理,手动滤波,图像去网格背景:频域中手动选择目标区域进行滤波,滤掉噪声,灵活地达到理想的效果。
热门文章
- 【php】基础学习4
- 关于跳转 + 传递消息,
- Lucene4:创建一个简单查询
- [jQuery] 按比例缩小图片
- kafka中zookeeper的作用
- 7-1 xbmc学习笔记
- Flutter入门一——W7环境下使用VSCode配置Flutter开发环境(脱离Android Studio安装)...
- 【Java基本功】很多人经常忽视的Java基础知识点
- ASP.NET vNext MVC 6 电商网站开发实战
- 数据结构 http://www.cnblogs.com/sun-haiyu/p/7704654.html