天天看點

基于MATLAB的傅裡葉級數可視化

去年有幸選到學校MATLAB的選修課,課程作業是利用MATLAB寫一個GUI程式,作為電類專業的國小渣,當時正學習《信号與系統》,同時看到前輩們對于傅裡葉變換的各種精妙文章,就做了這樣一個傅裡葉級數可視化的小程式。

最近整理資料時候,寫此文章将其開源,希望對其他人有幫助啦。

程式界面如下:

基于MATLAB的傅裡葉級數可視化

程式截圖

程式主界面

注:部分算法參考了網上關于傅裡葉級數展開的已有文章。

代碼連結: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 為存放程式背景的容器。

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

個人原創,轉載請聯系我本人。

繼續閱讀