⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fftff.m

📁 用matlab实现了仿真过程中的fft变换
💻 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 + -