基于MATLAB的傅里叶级数可视化

去年有幸选到学校MATLAB的选修课,课程作业是利用MATLAB写一个GUI程序,作为电类专业的小学渣,当时正学习《信号与系统》,同时看到前辈们对于傅里叶变换的各种精妙文章,就做了这样一个傅里叶级数可视化的小程序。
最近整理资料时候,写此文章将其开源,希望对其他人有帮助啦。

程序界面如下:

基于MATLAB的傅里叶级数可视化_第1张图片 程序截图

程序主界面

注:部分算法参考了网上关于傅里叶级数展开的已有文章。


代码链接:https://download.csdn.net/download/sinat_38896294/10647356 

如果需要代码但没有积分,可以在知乎私信我@电工李达康

 

 

 


==================================程序介绍=====================================


一、打开方式

运行 main.m文件 即可打开程序

二、选题背景

  • 傅里叶变换是电类专业研究“信号与系统“的核心内容,正确理解傅里叶变换,首先应充分理解傅里叶级数的物理意义,即:任何连续测量的时序或信号,都可以表示为不同频率的正弦波信号的无限叠加。
  • 本程序通过对傅里叶级数展开过程的可视化分析,利用MATLAB在绘图、计算方面的优势,将傅里叶的展开过程清晰地呈现出来,从而更好地帮助用户理解傅里叶级数,为电类专业未来的学习打下良好基础。

三、程序介绍

  • 程序核心为周期函数傅里叶展开的三维可视化。从时域、频域、相位等角度清晰地表现了傅里叶展开的过程。
  • 程序以方波信号为例,用户可自主选择展开级数,从而得到不同精度的拟合函数。
  • 下方三个图像更加清晰的展示了傅里叶级数展开后的物理意义,帮助用户理解傅里叶展开的核心内容。
  • 利用rotate3d,用户可旋转图像,以从不同角度观察傅里叶展开细节。(三维图中,为使幅频特性更加清晰,对幅频特性的强度作了等比放大,实际大小可从下方离散幅度谱查看)

四、文件结构介绍

  • main.m 为程序主框架
  • ex_fly_f(绘制离散幅频图)、ex_fly_dt(绘制动态拟合图)、ex_fly_one(绘制三维图)、ex_fly_nh(绘制拟合图)、ex_fly_zz(绘制各次谐波叠加图) 为绘图核心程序。
  • draw_all(执行绘图命令函数)、filesave(保存图像)、radio_one_Callback(radio_one的callback函数)、radio_two_Callback(radio_two的callback函数)、calledit(多数控件的callback函数) 为自定义辅助函数。
  • ex_words 为存放程序背景的容器。

 

同知乎文章,均为同一作者,

个人原创,转载请联系我本人。

你可能感兴趣的:(基于MATLAB的傅里叶级数可视化)