为什么matlab中的fft运算后想要得到信号的幅值需要对运算结果的幅值进行乘2除N
对于一个时域信号x(t),采样频率为Fs,信号频率F,采样点数为N,进行N采样后为y[n],则fft(y,N)计算所得的结果就是一个为N点的复数a+bi.
每一个点就对应着一个频率点.这个点的模值,就是该频率值下的幅度特性.
得到的频率点与相应点处的模值与原始信号的频率和幅度有什么关系?
1.频率点:实际信号第n点处的频率是nFs/N
2.幅度:第n(其中n!=1)点处的fft计算的结果是复数a+bi,模值A=sqrt(a2+b2),那么实际信号的幅度是2
A/N;
当n=0时(0Hz),第一个点就是直流分量,它的模值就是直流分量的N倍,那么实际信号的幅度是A/N,注意N是采样点而不是进行FFT的点数
3.相位:每个点处的相位就是该频率下信号的相位。

matlab自带的fft例程详解:

Fs = 1000; % Sampling frequency
T = 1/Fs; % Sample time
L = 1000; % Length of signal
t = (0:L-1)T; % Time vector
% Sum of a 50 Hz sinusoid and a 120 Hz sinusoid
x = 0.7
sin(2pi50t) + sin(2pi120t);
y = x + 2randn(size(t)); % Sinusoids plus noise增加的是一个1000点的随机噪声
plot(Fs
t(1:50),y(1:50)) % 绘制时域信号图,取前50点
title(‘Signal Corrupted with Zero-Mean Random Noise’)
xlabel(‘time (milliseconds)’)

NFFT = 2^nextpow2(L); % 主要用于计算L点最近的2的整数次幂的点数,此处采样为1000点,离它最近的是1024,所以NFFT是1024
Y = fft(y,NFFT)/L; %Y是复数矩阵,已经在此处除以L了,注意除的是L不是NFFT
f = Fs/2*linspace(0,1,NFFT/2+1);%频率分辨率矩阵,linspace将0-1平均分成NFFT/2份

% Plot single-sided amplitude spectrum.
plot(f,2*abs(Y(1:NFFT/2+1))) �s计算模值,前面已经除以L了,此处绘图时候仅乘以2,这样绘制的频谱图就是时域信号对应频率点的真实幅值
title(‘Single-Sided Amplitude Spectrum of y(t)’)
xlabel(‘Frequency (Hz)’)
ylabel(’|Y(f)|’)

原因是DFT的频谱是用谱密度定义的,即它的幅值表示的是单位带宽的幅值。 N 个离散点的DFT(我这里说的是实数DFT)将产生 N2+1 个频率点,频率的序号是从 0∼N2 ,需要注意,如果是复数,N 点DFT将产生 N 个频率点。所以 N 点实数DFT以后,频谱带宽是 N2 ,每个频率点占的带宽是 2N ,所以每个频率的实际幅值需要用DFT后的幅值乘以 2N ,也就是除以 N2 。但是注意,频率序号为 0 和 N2 的两个点带宽只占中间频率点的一半,也就是占 1N 的带宽,所以首尾两个点的幅值需要乘以 1N ,也就是除以 N 。FFT是DFT的快速算法,所以FFT也需要这样处理,才能得到每个频率点真正的幅值。

matlab计算幅度相关推荐

  1. 【数字信号处理】相关函数应用 ( 使用 matlab 计算相关函数 )

    文章目录 一.相关函数应用场景 1.生成高斯白噪声 2.信噪比 SNR 3.根据信噪比 SNR 求信号幅度 4.产生单载波信号及最终信号 5.求自相关函数及功率 6.matlab 完整代码 一.相关函 ...

  2. 用MATLAB计算序列的离散傅里叶变换

    用MATLAB计算序列的离散傅里叶变换 MATLAB提供了用快速算法计算离散傅里叶变换的函数fft,其调用格式为: Xk = fft(xn, N) 其中,调用参数xn为时域序列向量,N为离散傅里叶变换 ...

  3. matlab计算最大回撤,股票 最大回撤:股票中资金回撤是什么意思

    你好,回撤,是投资或资 易 见的一个名字,用 来描述 一段时间内 资产减少的 情况.具体来说,是在某一特定的时期内,账户净值由最高值一直向后推移,直到净值回落到最低值,这期间净值减少的幅度.在选定的时 ...

  4. matlab画复变函数,科学网—复数复变函数的Matlab计算与绘图 - 周铁戈的博文

    复数复变函数的Matlab计算与绘图 周铁戈 复数的表示 存在两种表示方法,一种是代数式,一种是指数式,在Matlab中的方式如下: >> z=1+2i            #代数式,1 ...

  5. Matlab计算基站覆盖面积示例

    站间距 用D表示:小区半径为 R: 单扇区覆盖面积一般作为一个正六边形:D和R示意如下: 计算基站覆盖面积,一般算三个正六边形:下图填充部分: 公式如下: D一般算作R的1.5倍: 用matlab计算 ...

  6. P2 Matlab计算基础-《Matlab/Simulink与控制系统仿真》程序指令总结

    上一篇 回到目录 下一篇 <Matlab/Simulink与控制系统仿真>程序指令总结 Matlab_Simulink_BookExample 2. Matlab 计算基础 表2.1 Ma ...

  7. 2021-05-25 传递函数阶跃响应指标的matlab计算

    传递函数阶跃响应指标的matlab计算 对于一个常规的传递函数,我们在进行了阶跃仿真后经常需要给出对应的响应指标, sys = tf(1,[1 2 3]) y = step(sys) figure p ...

  8. fvdm 跟驰模型 matlab仿真_【新书推荐】【2009.01】控制系统MATLAB计算及仿真(第3版)(黄忠霖)...

    本书包括MATLAB语言基础.控制系统MATLAB仿真基础.控制系统MATLAB计算与仿真3篇. 本书上篇介绍了MATLAB 7.1 系统的相关知识,包括MATLAB 7.1系统概述与活的笔记本Not ...

  9. matlab 求复数的模长,matlab计算带有复数的函数,最后求复数函数的模,结果里面却有...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 matlab计算带有复数的函数,最后求复数函数的模,结果里面却有复数标志i,输入自变量,得到的结果确实是实数,不知道怎么回事; 代码如下: syms n2 ...

最新文章

  1. 安卓开发学习日记 DAY5——监听事件onClick的实现方法
  2. Windows上的原生Linux容器(盆盆的Kubecon课程分享)
  3. 关于extern C
  4. “==”和“===”,难道不是多一个的区别吗?
  5. 公共技术点之 Android 动画基础
  6. 数据结构实验题:用栈求解n皇后问题
  7. 江苏省南京市谷歌高清卫星地图下载
  8. 软件安装管家matlab教程,timesat软件怎么安装 timesat安装使用图文教程 - 驱动管家...
  9. uniapp安卓app里拦截webview下载apk,显示下载进度
  10. 选择婚庆公司的注意事项
  11. Java第一周练习题
  12. 【ARM汇编】打印金字塔 | 打印倒三角
  13. Zabbix设置微信报警
  14. 问题 G(1203): 【基础算法】0/1字符串问题
  15. [开源 .NET 跨平台 数据采集 爬虫框架: DotnetSpider] [一] 初衷与架构设计 - ModestMT.Zou - 博客园...
  16. IDEA误删文件恢复
  17. PHP七彩自助发卡系统源码娱乐影视卡密自助发放系统+教程
  18. 高效能人士的执行四原则(二)——原则1:聚焦最重要目标
  19. jdk、jre、jvm、javase、javaee
  20. 优秀的磁盘管理工具:NeoFinder for Mac

热门文章

  1. 蓝桥杯真题:平面分割
  2. excel无法打开文件怎么解决
  3. html音乐博客代码,【转载】HTML博客音乐播放器代码大全
  4. 成考期末计算机组成原理,计算机组成原理期末考试试题及答案
  5. CocosBuilder 完全攻略 (译)
  6. Blender2.9基础七:外部插件篇
  7. Python--Flask在使用 SQLAlchemy出现'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and '
  8. SSTAP 测试讨论
  9. 【android studio】
  10. C++:实现量化期权定价理论方法之一Bates模型测试实例