📄 fftff.m
字号:
%开关频率为8kHz,采样频率20MHZ,一个开关周期内的采样数据为2500个
y=0;
xmax=0;
ymax=0;
ff1=fft(ff.signals.values,2500);%此处注意一个问题,当仿真模型中ff的数据类型为array时,此句改为ff1=fft(ff,2500)才能运行,傅里叶变换后的数据类型为2500X2,计算
%计算结果好像不对,不过为什么这样还没有搞清楚
% 如果x的长度小于N,则在其后补0使之长度为N的序列,用户也可以省略N,这时采用的就是x的长度;如果x是一个矩阵则计算x中每列的N点DFT。
%傅里叶变换后得到的数据就是各个频率成分的系数,也就是频谱特性,它是一个复数,具有幅值和相位两个特性,我们研究的通常是其幅频特性。
for i=1:1:2500;
x=real(ff1(i));
x1=imag(ff1(i));
ff2(i)=sqrt(x*x+x1*x1)/2500;%傅里叶变换的幅值
if ff2(i)>ymax
ymax=ff2(i);%最大值
xmax=i-1;%最大值的级数
end;
y=y+ff2(i);%总和
end
str2mat(num2str(ymax),num2str(xmax),num2str(y/2500))%由字符构成矩阵,低位用空格填补。num2str将数字量转换为字符量
figure(1);
f = (1/5e-8)*(0:2499)/2500;
% plot(f,Pyy(1:257))
% zj=abs(ff1)/2500
zj=20*log10(abs(ff1)/2500)
plot(f,zj(1:2500))
figure(2)
bar(ff2(1,1:100))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -