MTALAB中的fourier(傅里叶级数)变换提取谐波分量
MTALAB中的fourier(傅里叶级数)变换提取谐波分量在研究中通常需要对某个数据的波形进行分析,利用傅里叶级数变换分解高次谐波和低频分量首先,在simulink中将需要进行分析的波形数据利用to workspace模块导入到工作区;然后返回matlab界面创建脚本,编程分析并画出各频率下的分量。例子如下:在simulink随机生成一个波形,如图:将其导入工作区中,创建脚本文件,程序如下:cl
·
MTALAB中的fourier(傅里叶级数)变换提取谐波分量
在研究中通常需要对某个数据的波形进行分析,利用傅里叶级数变换分解高次谐波和低频分量
在simulink可以用powergui里的FFT分析,但是其分析后的漂亮统计图难以导出,通常仅截图作为他用,因此可导出到工作区重新画出。
首先,在simulink中将需要进行分析的波形数据利用to workspace模块导入到工作区;然后返回matlab界面创建脚本,编程分析并画出各频率下的分量。例子如下:
在simulink随机生成一个波形,如图:
将其导入工作区中,创建脚本文件,程序如下:
clf;
fs=1000; %采样频率
N=1024; %采样数据点数
n=0:N-1;
t=n/fs; %时间序列
y=fft(y2.signals.values(:,1),N); %进行快速傅里叶变换 先查看time采样总数,再按照时间比例算出相应时间对于的采样点,带入signal中可画出对于采样时间点的信号值大小
mag=abs(y); %求傅里叶变换后的振幅
f=n*fs/N; %频率序列
subplot(2,1,1),plot(f,mag); %绘制随频率变化的振幅
xlabel('f/Hz');
ylabel('振幅');
% title('N=128');
grid on;
subplot(2,1,2),plot(f(1:N/2),mag(1:N/2)); %绘制Nyquist频率之前随频率变换的振幅
xlabel('f/Hz');
ylabel('振幅');
% title('N=128');
grid on;
% subplot(2,2,3);
% plot(Ik0.time,Ik0.signals.values(:,1),'b','LineWidth',1);
% grid on;
作者此处用y2装导入的数据,具体程序功能见注释
最后点击运行,得到如下结果:
在simulink里的powergui中的FFT analysis的结果如图,其仅对0秒到0.02秒时间段的波形进行变换,可能会有参数设置不同带来的较大区别,可自行进行对比:
欢迎关注公众号获取matlab/simulink学习资料:
说明:本文仅助力于学习,欢迎交流
更多推荐
已为社区贡献1条内容
所有评论(0)