Matlab标准FFT绘制方法(详细注释)
创作时间:
作者:
@小白创作中心
Matlab标准FFT绘制方法(详细注释)
引用
CSDN
1.
https://m.blog.csdn.net/m0_56841583/article/details/144265824
Matlab官方文档中有fft的使用例程。
命令行窗口输入help fft,回车。
点击fft的参考页超链接,跳转到页面。
这是一个带有噪声的信号示例,为了更好地分析,将噪声部分删除,并将代码打下来,便于大家使用分析。
% 完整代码
Fs = 1000;
T = 1/Fs;
L = 1500;
t = (0:L-1)*T;
X = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
figure;
plot(1000*t,X)
title('Signal')
xlabel('t (milliseconds)')
ylabel('X(t)')
Y = fft(X);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
f = Fs*(0:(L/2))/L;
figure;
plot(f,P1)
title('Single-Sided Amplitude Spectrum of X(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')
详细解释每一句的含义。
% 生成信号
Fs = 1000; %采样率1000HZ
T = 1/Fs; %采样周期即采样间隔
L = 1500; %采样总点数
t = (0:L-1)*T; %时间向量,对应着每个采样点的时间值
X = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t); %模拟采样回来的信号
figure; %新建图层
plot(1000*t,X) %画图
title('Signal') %更改图标题
xlabel('t (milliseconds)') %更改x坐标轴名称
ylabel('X(t)') %更改y坐标轴名称
原始信号图,频率50Hz与120Hz混合的信号图。
% FFT代码
Y = fft(X); %fft是快速傅里叶变换函数
P2 = abs(Y/L);
%abs函数计算Y的绝对值,得到频谱的幅度。因为FFT的结果是复数,取绝对值可以得到幅度。
P1 = P2(1:L/2+1); %FFT结果是对称的,通常只关心正频率部分,取一半
P1(2:end-1) = 2*P1(2:end-1);
%这里2:end-1,为什么没有处理索引1和索引end,是因为,索引1是直流分量,
%在P2 = abs(Y/L)已经处理过了。索引end是奈奎斯特频率,位于频谱的中间,
%并没有重复或对称,所以不需要乘2。
f = Fs*(0:(L/2))/L; %频率向量,表示每个元素对应的频率
figure;
plot(f,P1)
title('Single-Sided Amplitude Spectrum of X(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|') %绝对值为幅值
从图中可以清晰看出两个频率50Hz与120Hz,并且50Hz的幅值对应0.7,120Hz的幅值对应1。
热门推荐
滑铁卢战役:拿破仑为何败给了威灵顿?
拿破仑的军事传奇:从土伦到滑铁卢
从修表工到亿万富翁:张明敏与《我的中国心》背后的故事
提高身体机能和恢复能力 - 科学家发现人参在运动领域的新功效
银杏树:中国特有的古老树种赢得国树荣誉
TED课堂揭秘:学乐器让你大脑开挂
锣乐器:治愈心灵的神器
如何有效实施工程标准化管理?一份全面的资料指南
项目管理中的成本控制要点及方法
恐怖奶奶3:吓人又好玩的新版本评测
穿裙子拍照,12个姿势技巧,松弛优美自然
蹦床、打球、走扁带:这些运动太好玩了!
网红款红豆奶茶DIY教程
周末DIY网红款红豆奶茶,悠闲午后必备
冬季气血不足?这些方法让你告别黄手黄脚!
电脑芯片维修费用、价格方面的处理方法有哪些?
自然语言处理:AI界的超级英雄
自然语言处理技术:职场新宠儿
自然语言处理的下一个风口:深度学习
电汇和转账的区别
《恐怖奶奶4》:一款让你心跳加速的心理极限游戏
后视镜改色膜如何正确粘贴?粘贴后如何保持美观?
人民币助力俄罗斯去美元化:现状、影响与未来展望
IM即时通讯基础入门:新手读者必看指南
南京都市圈:一体化发展的新引擎
双城际商务中心:如何利用地理优势优化商业布局?
“诗奴”贾岛,为何与推敲一词,以及“郊寒岛瘦”成语有关呢
张明敏《我的中国心》:一首歌见证香港回归历程
小年祭灶王,理发迎好运
对乙酰氨基酚片的功效与作用有哪些