程 飛
在實(shí)際教學(xué)中,開發(fā)具有交互功能、能表現(xiàn)三維動畫、體現(xiàn)知識形成過程、適應(yīng)特定教學(xué)環(huán)境、具有一定綜合性的高等數(shù)學(xué)輔助教學(xué)平臺能克服上述5類教學(xué)軟件的不足,從而促進(jìn)高職高等數(shù)學(xué)教學(xué).限于篇幅,本文僅以高等數(shù)學(xué)教學(xué)體系中的“傅里葉分析(連續(xù)函數(shù))”為例,予以具體說明基于VC++的高等數(shù)學(xué)輔助教學(xué)平臺的開發(fā)過程.
周期為T的連續(xù)周期信號f(t),可以展開為三角傅里葉級數(shù)[4-5]
其中,
用指數(shù)形式表示為:
其中Cn為虛指數(shù)信號,| |Cn和頻率的關(guān)系稱為幅度頻譜,一般采用雙邊頻譜,則
(1)式中各個諧波的初相角與頻率的關(guān)系稱為相位頻譜.
這一部分內(nèi)容是進(jìn)一步學(xué)習(xí)專業(yè)課程(如信號與系統(tǒng)、數(shù)字圖像處理)的基礎(chǔ),教學(xué)地位十分重要.但是由于這一部分教學(xué)內(nèi)容涉及到歐拉公式、時域頻域轉(zhuǎn)換,高職學(xué)生難以理解和接受.不僅如此,由于計算量大,各個諧波分量的系數(shù)an、bn不可能在有限的教學(xué)時間里采用直接計算方法得到.為解決這一問題,常規(guī)方法是采用MATLAB軟件輔助教學(xué).如圖1和圖2所示.該做法本質(zhì)上僅起到降低計算量的效果,學(xué)生對于傅里葉分析的意義仍然沒有具體的認(rèn)識.而如果采用VC++技術(shù),設(shè)計三維實(shí)驗(yàn)平臺,就可以較好地實(shí)現(xiàn)教學(xué)目標(biāo).如圖3所示.圖3的左視圖方向表現(xiàn)時域信號,而在主視圖方向由近及遠(yuǎn)表現(xiàn)相位譜、頻譜、諧波圖像,在右視圖方向表現(xiàn)各諧波的合成.
采用SPSS 21.0統(tǒng)計學(xué)軟件對數(shù)據(jù)進(jìn)行處理,計量資料以“±s”表示,組間比較采用單因素方差分析,多重比較采用LSD和Dunnet檢驗(yàn),以P<0.05為差異有統(tǒng)計學(xué)意義。
圖1 階躍函數(shù)
圖2 n=21時傅里葉諧波的合成圖像
圖3 傅里葉分析實(shí)驗(yàn)平臺(T=6,n=10)
在基于高等數(shù)學(xué)實(shí)驗(yàn)平臺輔助教學(xué)過程中,學(xué)生需要通過自主操作實(shí)驗(yàn)平臺,輸入?yún)?shù),獲得并分析實(shí)驗(yàn)結(jié)果,獲得關(guān)于數(shù)學(xué)原理的深刻認(rèn)識.對于高職高等數(shù)學(xué)教學(xué)而言,數(shù)學(xué)知識的可視化、平坡化也必須考慮到.具體到本文所述傅里葉分析教學(xué)內(nèi)容,平臺應(yīng)可實(shí)現(xiàn):①學(xué)生通過輸入?yún)?shù)n,可以獲得各諧波的系數(shù),并在三維坐標(biāo)系中將諧波以圖形的方式表達(dá)出來.如圖3所示,階躍函數(shù)分解為10次諧波,共有5次直流信號和5次交流信號(圖中所示5條直線和5條正弦波);②學(xué)生通過輸入周期T的值,觀察T值對于諧波圖像的影響,如圖4所示(此時T=2);③觀察不同T值和n值下的頻域圖像(連續(xù)函數(shù)的頻域圖像是離散的,如圖3和圖4所示);④觀察不同T值和n值下的相位譜(如圖3和圖4所示);⑤合成圖像的Gibbs效應(yīng)[5](級數(shù)的項數(shù)越多,合成波形的峰起越靠近不連續(xù)點(diǎn),并從不連續(xù)點(diǎn)以起伏震蕩的形式衰減下去),如圖3和圖4的右視圖所示.
圖4 傅里葉分析實(shí)驗(yàn)平臺(T=2,n=18)
(1)界面劃分和按鍵控制.該平臺輸入值為T和n,而可視化輸出包括時域圖像、諧波圖像、Gibbs效應(yīng)、頻譜、相位譜,因而界面劃分為左右兩個區(qū).左邊輸入數(shù)據(jù),包括多個功能組框,每個組框?qū)?yīng)于上述的一個繪圖功能,每個組框包括“繪圖”與“關(guān)閉”兩個按鈕.每個組框的功能獨(dú)立設(shè)計,互不影響.例如,時域圖像繪制完成后,在“頻譜”組框按下“繪圖”按鈕,則僅顯示頻譜圖,如圖5所示.再在“頻譜”組框按下“關(guān)閉”鍵,關(guān)閉頻譜圖;在“相位譜”組框按下“繪圖”按鈕,則僅顯示相位譜,如圖6所示.這樣可以使各個組框功能獨(dú)立出來,便于根據(jù)教學(xué)需要顯示不同的圖形的組合.
圖5 時域圖像和頻譜(T=6,n=10)
圖6 時域圖像和相位譜(T=6,n=10)
具體設(shè)計中,采用VC++的FormView-Doc-DrawView結(jié)構(gòu)[1,6],兩個編輯框控件對應(yīng)于輸入的周期和諧波次數(shù),在FormView、Doc、DrawView中對應(yīng)的變量如表1所示.在Doc中對于變量首先賦值,軟件啟動初始化時,F(xiàn)ormView和DrawView從Doc中取值,以FormView為例,代碼為:按鈕采用LHint機(jī)制,按鈕按下將LHint值發(fā)送給所有的View,對應(yīng)代碼為:
這里L(fēng)Hint=1,在DrawView中對應(yīng)于BOOL型變量flag1(繪圖開關(guān)),LHint不同取值和各個flag對應(yīng)關(guān)系如表1所示.
表1 變量對應(yīng)表
(2)動態(tài)觀察.對于該實(shí)驗(yàn)平臺,當(dāng)諧波次數(shù)增加的時候,僅從固定的角度觀察會影響實(shí)驗(yàn)結(jié)果的分析,因而需要從不同角度觀察,也采用LHint機(jī)制,以左轉(zhuǎn)為例,代碼如下:
視角函數(shù)為:
這里將三維坐標(biāo)系中Y軸方向向上,以配合時域圖像的繪制.繪制效果如圖7和圖8所示.
圖7 改變視角的圖像(右視圖方向觀察,T=6,n=10)
圖8 改變視角的圖像(右視圖方向觀察,T=6,n=18)
綜合分析圖5和圖7,可以觀察到對應(yīng)于各頻率,頻譜對應(yīng)的值為該頻率諧波的振幅的1/2,即符合(2)式,由此可以進(jìn)一步分析和深入研究雙邊頻譜.而綜合分析圖6和圖7,可以觀察到對應(yīng)于各頻率,相位譜對應(yīng)的值為該頻率諧波的初相.
觀察圖7和圖8的Gibbs效應(yīng)圖,可以快速理解和掌握Gibbs效應(yīng)的規(guī)律,由圖7(n=10)和圖8(n=18)可見,圖8的合成波形的峰起更加靠近不連續(xù)點(diǎn).
對于階躍函數(shù),首先定義然后計算函數(shù)曲線上各個點(diǎn)的坐標(biāo),代碼如下:
再使用OpenGL的glBegin(GL_LINES)命令繪圖,得到函數(shù)曲線.首先得到的是一個周期的圖像,其他周期圖像可以通過平移定義域方式進(jìn)行延拓.由于本實(shí)驗(yàn)平臺是基于VC++的MFC開發(fā)的,如果設(shè)計其他函數(shù)的傅里葉分析實(shí)驗(yàn),只要重新定義f(x)即可,計算坐標(biāo)點(diǎn)的程序無需做改動.如果時域函數(shù)為線性函數(shù),語句(3)修改為:
編譯構(gòu)建后軟件效果如圖9所示.
圖9 線性函數(shù)傅里葉分析實(shí)驗(yàn)
如果時域函數(shù)為草帽函數(shù),語句(3)修改為:
編譯構(gòu)建后軟件效果如圖10所示.
圖10 草帽函數(shù)傅里葉分析實(shí)驗(yàn)
高等數(shù)學(xué)實(shí)驗(yàn)平臺的應(yīng)用,可以將復(fù)雜深奧的高等數(shù)學(xué)知識可視化和三維化,進(jìn)一步基于三維圖形分析數(shù)學(xué)原理、各個表達(dá)式的數(shù)學(xué)意義,增加知識之間的關(guān)聯(lián),將高難度的數(shù)學(xué)知識平坡化,有助于復(fù)雜數(shù)學(xué)知識的理解和掌握.教學(xué)實(shí)踐表明,基于該方法設(shè)計的數(shù)學(xué)實(shí)驗(yàn)平臺易于開發(fā)設(shè)計,其使用可以明顯提高教學(xué)效果,能有效克服MATLAB軟件輔助教學(xué)平面化的缺點(diǎn).學(xué)生通過參數(shù)輸入,并對繪圖結(jié)果進(jìn)行分析和探究,開展數(shù)學(xué)學(xué)習(xí)活動.基于VC++開發(fā)的高等數(shù)學(xué)實(shí)驗(yàn)平臺,有利于培養(yǎng)學(xué)生分析能力,促進(jìn)學(xué)生數(shù)學(xué)思維的培養(yǎng),是促進(jìn)高等數(shù)學(xué)教學(xué)的有效手段.