[已解决] 求助 文中 f=f(1:length(ft));是啥意思

[复制链接]
狼魂刺客 发表于 2022-5-6 19:37:05

%E2_3_fft.m文件源代码
%快速傅立叶函数演示实例:编写一个M文件,产生频率为100Hz和105Hz正弦信号叠加后的信号,用fft函数
%对信号进行频率分析,要求在频率上能分辨出两种频率的正弦信号,分别绘出信号的时域及频域波形。

N=512;   %数据长度
f1=100;  %信号频率,单位为Hz
f2=105;
Fs=400;  %采样频率,单位为Hz
t=0:1/Fs:1/Fs*(N-1);             %产生时间序列
s=sin(2*pi*f1*t)+sin(2*pi*f2*t); %产生两个频率信号的叠加信号
f=fft(s,N);                      %计算傅立叶变换
f=20*log(abs(f))/log(10);        %换算成dBW单位
ft=[0:(Fs/N):Fs/2];              %转换横坐标以Hz为单位
f=f(1:length(ft));
%绘图
subplot(211);plot(t,s);
xlabel('时间(s)','fontsize',8,'position',[1.32,-2.5,0]); ylabel('幅度(v)','fontsize',8);
title('时域信号波形','fontsize',8);
subplot(212);plot(ft,f);
xlabel('频率(Hz)','fontsize',8,'position',[180,-34.38,0]); ylabel('功率(dBW)','fontsize',8);
title('信号频谱图','fontsize',8);
————————————————
版权声明:本文为CSDN博主「Cheeky_man」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36045093/article/details/113867114

最佳答案


20141303 发表于 2022-5-6 20:33:38
仅供参考,f=f(1:length(ft));是重新定义了f,等于原先f变量里的从1到length(ft)的元素,
回复此楼

2 条回复


20141303 发表于 2022-5-6 20:33:38
仅供参考,f=f(1:length(ft));是重新定义了f,等于原先f变量里的从1到length(ft)的元素,
回复此楼

狼魂刺客 发表于 2022-5-7 08:32:40
20141303 发表于 2022-5-6 20:33
仅供参考,f=f(1:length(ft));是重新定义了f,等于原先f变量里的从1到length(ft)的元素, ...

谢谢大佬  谢谢大佬  谢谢大佬
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表