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。
热门推荐
为什么总有人说陈式太极不是太极拳?
叶子带你玩转重庆:四天三晚超值游!
重庆网红景点打卡攻略:龙门阵&梦幻奥陶纪
雅西高速新收费:自驾游西昌成本大揭秘!
雅西高速收费标准影响地方经济发展
春秋航空“黑名单”事件引发热议:如何平衡航空公司管理与旅客权益?
秋冬雾霾季,这3招帮你远离肺结节!
犯太岁如何影响你的心理健康?
海花岛:海南儋州的人工岛旅游胜地
许昌禹州下周大降温!中到大雪即将来袭,这些事项需注意
许昌到禹州交通攻略:一站多点,超方便!
苏州博物馆成网红打卡地!这份攻略请收好
冬日游苏州:从拙政园到金鸡湖
火影~宇智波带土:暗影中的悲情英雄
盐城高新区:产业科创高地新动向
许昌禹州迎来罕见寒潮!这些保暖措施请收好
许昌到禹州自驾游攻略:避坑指南
养老金已经实现20连涨,每年的退休金增长主要跟哪些情况有关?
养老金再次上调3%,三类人涨得少,看看有你吗?
严防电信诈骗!你的银行卡可能被冻
法院冻结银行卡?这份解冻攻略请收好!
强化学习在机器人领域的四大成功应用
宁波海皮岛门票优惠全攻略:早鸟票、普通票、儿童老人优惠详解
冬季避寒首选:皮皮岛最佳游玩攻略
宁德出发三日游推荐:景点与路线指南
张维良教你从零开始学笛子:入门指南与学习建议
竹笛吹奏:抑郁症治疗的新希望
杜仲的功效与作用
杜仲:传统中药在骨质疏松治疗中的新突破
甜美可爱的马尾扎法,你get了吗?