首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Matlab上用FFT计算和绘制信号的频谱

在Matlab上用FFT计算和绘制信号的频谱
EN

Stack Overflow用户
提问于 2017-07-26 14:19:05
回答 1查看 118关注 0票数 0

在Matlab上使用FFT计算信号的频谱时,我遗漏了一些东西。我的代码:

代码语言:javascript
运行
AI代码解释
复制
%% compute the spectrum of the data (data(t))
L = length(time); % length of the sample
NFFT = 2^(nextpow2(L)-1); % Next power of 2 from length of y
Y = fft(data,NFFT);%/NFFT;%L;
Fs = 1/(mean(time(2:end)-time(1:end-1)));  % compute the sampling frequency
f = Fs/2*linspace(0,1,NFFT/2+1);
loglog(f,2*abs(Y(1:NFFT/2+1)))
title('Single-Sided Amplitude Spectrum of My Data')
xlabel('Frequency (Hz)')
ylabel('|Y(f)|')

你能告诉我我哪里搞砸了吗?

我尝试使用相同信号的这两个采样(相同的采样频率;在0-10和0-100两个不同的时间范围内)来检查算法是否有效:

代码语言:javascript
运行
AI代码解释
复制
fs=1000;
time10 = [0:1/fs:10];
time100 = [0:1/fs:100];
data10 = sin(2*pi*0.23 .*time10)+cos(2*pi*12 .*time10);
data100 = sin(2*pi*0.23 .*time100)+cos(2*pi*12 .*time100);

我想这两种光谱应该是相互支持的,但他们没有...如下所示:https://www.dropbox.com/s/wfols9o409pr94u/FFT_spectrum_StackOverflow.png?dl=0 https://www.dropbox.com/s/a8vmzwto6x4130w/FFT_spectrum_StackOverflow.fig?dl=0

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-27 12:21:02

好消息是,你对频谱的计算本身并没有什么问题。

问题是,通过查看不同长度的样本,您实际上是在查看两个完全不同的样本。在时域中,它们可以看作是无限长的正弦与不同长度的矩形窗口相乘的结果。

在频域中,无限长连续时间正弦信号的频谱与矩形窗口的频谱进行卷积。随着窗口长度的不同,这些窗口的相应频谱具有不同的宽度(较长的矩形窗口的频谱较窄)。因此,无限长的正弦信号频谱中的尖峰将分布在不同的带宽上。这就是你所看到的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45329651

复制
相关文章
基于MATLAB的数字信号处理(3) 用FFT对信号作频谱分析
学习用 FFT 对连续信号和时域离散信号进行频谱分析(也称谱分析)的方法, 了解可能出现的分析误差及其原因,以便正确应用FFT。
叶庭云
2021/12/01
7.6K0
基于MATLAB的数字信号处理(3)   用FFT对信号作频谱分析
FFT_频谱分析(数字信号处理)
用FFT对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重点在于频谱分辨率及分析误差。频谱分辨率D和频谱分析的点数N直接相关,其分辨率为2π/N 。因此2π/N≤D,可以据这个公式确定频率的分辨率。
Fivecc
2022/11/21
2.2K0
FFT_频谱分析(数字信号处理)
matlab画时域和频谱图_信号的频域分析及matlab实现
振动信号降噪结果分析: 对于去噪效果好坏的评价,常用信号的信噪比(SNR)、估计信号同原信号的均方根误差(RMSE)来判断。SNR 越高则说明混在信号里的噪声越小,否则相反。RMSE的计算值越小则表示去噪效果越好。 信噪比定义:
全栈程序员站长
2022/11/04
5K0
matlab画时域和频谱图_信号的频域分析及matlab实现
MATLAB实现FFT 及信号的谱分析
一、实验目的 1.通过实验加深对 FFT 的理解,熟悉 FFT 程序、结构及编程方法。
timerring
2022/07/20
1.3K0
MATLAB实现FFT 及信号的谱分析
OFDM原理及MATLAB仿真
本文讲解了 OFDM 相关概念及原理,并通过 MATLAB 仿真模拟一个 OFDM 时域及频域波形图。
Gnep@97
2023/10/20
2.4K0
OFDM原理及MATLAB仿真
信号与系统实验八 音频信号的时域、频域观测与分析
音频信号是一种连续变化的模拟信号,计算机只能处理和记录二进制的数字信号,由自然音源而得到的音频信号必须经过采样、量化和编码,变成二进制数据后才能送到计算机进行再编辑和存储。
timerring
2022/08/03
1.3K0
信号与系统实验八 音频信号的时域、频域观测与分析
基于MATLAB语音信号的处理与滤波
摘要:MATLAB是十分强大的用于数据分析和处理的工程实用软件,利用其来进行语音信号的分析、处理和可视化十分便捷。文中介绍了在MATLAB环境中如何驱动声卡采集语音信号和语音信号采集后的文档处理方法,并介绍了FFT频谱分析原理及其显示、MATLAB中相关函数的功能、滤波器的设计和使用。在此基础上,对实际采集的一段含噪声语音信号进行了相关分析处理,包括对语音信号的录取和导入,信号时域和频域方面的分析,添加噪声前后的差异对比,滤波分析,语音特效处理。结果表明利用MATLAB处理语音信号十分简单、方便且易于实现。
全栈程序员站长
2022/09/01
4.1K0
基于MATLAB语音信号的处理与滤波
【STM32F407的DSP教程】第26章 FFT变换结果的物理意义
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第26章       FFT变换结果的物理意义     FFT是离散
Simon223
2020/06/01
1.7K0
【STM32F407的DSP教程】第26章    FFT变换结果的物理意义
基于MATLAB的AM调制解调「建议收藏」
摘要 现在的社会越来越发达,科学技术不断的在更新,在信号和模拟电路里面经常要用到调制与解调,而AM的调制与解调是最基本的,也是经常用到的。用AM调制与解调可以在电路里面实现很多功能,制造出很多有用又实惠的电子产品,为我们的生活带来便利。在我们日常生活中用的收音机就是采用了AM调制的方式,而且在军事和民用领域都有十分重要的研究课题。现用MATLAB中M文件实现本课程设计内容“基于MATLAB的AM调制解调实现”。在课程设计中,系统开发平台为Windows XP,MTALAB 2007,程序设计语言采用MATLAB 2007,程序运行平台为MATLAB 2007。通过MATLAB编写程序并加以调试能够实现AM的调制与调解,完成了课程设计的目标,并经过适当完善后,将可以在实际中应用。
全栈程序员站长
2022/09/06
5.2K1
基于MATLAB的AM调制解调「建议收藏」
信号补零对信号频谱的影响
先抛出结论: 补 1 次零相当于在原始频谱图中每两个频率之间插入1个频率值,补 2 次零相当于在原始频谱图中每两个频率之间插入 2 个频率值,并且原始频率值的位置及其幅值保持不变。因此, 补零会使频谱图中的频率点的数量增加,从而使得频谱图更加的光滑连续,但是补零不能对频谱图中的频率分辨率、频率值以及幅值有所改善。
Gnep@97
2023/10/26
1.2K0
信号补零对信号频谱的影响
【STM32F407的DSP教程】第28章 FFT和IFFT的Matlab实现(幅频响应和相频响应)
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第28章 FFT和IFFT的Matlab实现(幅频响应和
Simon223
2021/04/30
2K0
【STM32F407的DSP教程】第28章       FFT和IFFT的Matlab实现(幅频响应和相频响应)
【STM32F429的DSP教程】第28章 FFT和IFFT的Matlab实现(幅频响应和相频响应)
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第28章 FFT和IFFT的Matlab实现(幅频响应和
Simon223
2021/04/30
8940
【STM32F429的DSP教程】第28章       FFT和IFFT的Matlab实现(幅频响应和相频响应)
【STM32H7的DSP教程】第28章 FFT和IFFT的Matlab实现(幅频响应和相频响应)
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第28章 FFT和IFFT的Matlab实现(幅频响应和
Simon223
2021/04/30
1.5K0
【STM32H7的DSP教程】第28章       FFT和IFFT的Matlab实现(幅频响应和相频响应)
信号分析与处理1「建议收藏」
X=FFT(x); X=FFT(x,N); x=IFFT(X); x=IFFT(X,N)
全栈程序员站长
2022/09/20
9870
基于matlab的语音信号频谱分析_声音信号的数字化过程
随着软硬件技术的发展,仪器的智能化与虚拟化已成为未来实验室及研究机构的发展方向[1]。虚拟仪器技术的优势在于可由用户定义自己的专用仪器系统,且功能灵活,很容易构建,所以应用面极为广泛。基于计算机软硬件平台的虚拟仪器可代替传统的测量仪器,如示波器、逻辑分析仪、信号发生器、频谱分析仪等[2]。从发展史看,电子测量仪器经历了由模拟仪器、智能仪器到虚拟仪器,由于计算机性能的飞速发展,已把传统仪器远远抛到后面,并给虚拟仪器生产厂家不断带来连锅端的技术更新速率。目前已经有许多较成熟的频谱分析软件,如SpectraLAB、RSAVu、dBFA等。
全栈程序员站长
2022/09/22
1.9K0
基于matlab的语音信号频谱分析_声音信号的数字化过程
MATLAB实现 利用FFT和IFFT计算线性卷积
一、实验目的 1.学习用 FFT和IFFT计算线性卷积的方法。 2.编制 IFFT程序。 3.实现用 FFT 程序计算线性卷积。
timerring
2022/07/20
2.2K0
MATLAB实现 利用FFT和IFFT计算线性卷积
matlab 及数字信号实验报告,Matlab数字信号处理实验报告.doc
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
全栈程序员站长
2022/07/23
1K0
【DSP教程】第36章 FIR滤波器的Matlab设计(含低通,高通,带通和带阻)
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第36章 FIR滤波器的Matlab设计(含低通,高通,
Simon223
2021/07/19
4K0
【DSP教程】第36章       FIR滤波器的Matlab设计(含低通,高通,带通和带阻)
点击加载更多

相似问题

用matlab绘制256点FFT的频谱图

11

用FFT计算频谱值

10

用python计算频谱的FFT

24

绘制信号的频谱

11

Matlab绘制FFT幅值谱信号

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档