王波
摘要:選擇一個(gè)特定的周期鋸齒波信號(hào),求出其離散頻譜函數(shù)及其幅度頻譜和相位頻譜,編制程序繪制其雙邊頻譜圖,探討利用Matlab輔助教學(xué)手段,使周期信號(hào)復(fù)傅里葉級(jí)數(shù)及相關(guān)理論教學(xué)過程直觀、可視化的一般方法。
關(guān)鍵詞:周期信號(hào);傅里葉級(jí)數(shù);離散頻譜函數(shù);幅度頻譜;相位頻譜;Matlab
中圖分類號(hào):G642? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)33-0118-02
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
1 引言
非正弦周期信號(hào)分解為傅里葉級(jí)數(shù)的理論是具有驚人洞察力的法國(guó)科學(xué)家傅里葉(J.Fourier)在1807年提出,并于1822年公之于世的[1]。其后,泊松(Poisson)、高斯(Gauss)等人將這一成果應(yīng)用到電學(xué)中,經(jīng)過近兩個(gè)世紀(jì)時(shí)間的發(fā)展,如今傅里葉分析法已廣泛成熟地應(yīng)用于眾多的科學(xué)技術(shù)領(lǐng)域[2]。
在諸如信號(hào)與系統(tǒng)、數(shù)字信號(hào)處理等眾多的高等學(xué)校理工科專業(yè)基礎(chǔ)課的課程體系中,傅里葉級(jí)數(shù)理論是系統(tǒng)分析由時(shí)域轉(zhuǎn)向頻域的重要關(guān)節(jié)點(diǎn),起著承前啟后的重要作用。在依托傳統(tǒng)教學(xué)手段的基礎(chǔ)上,借助Matlab軟件使傅里葉級(jí)數(shù)及相關(guān)理論脫離抽象,可在一定程度上降低教學(xué)難度,取得更好的教學(xué)效果。以下,將以一個(gè)特定的周期鋸齒波信號(hào)的雙邊頻譜圖的Matlab實(shí)現(xiàn)過程為例對(duì)此進(jìn)行說明。
2周期信號(hào)的復(fù)傅里葉級(jí)數(shù)及相關(guān)理論
2.1復(fù)傅里葉級(jí)數(shù)
狄里赫利(P.Dirichlet)嚴(yán)格證明了傅里葉級(jí)數(shù)理論,當(dāng)周期信號(hào)滿足狄里赫利條件時(shí),可將其展開成傅里葉級(jí)數(shù),傅里葉級(jí)數(shù)分為三角形式傅里葉級(jí)數(shù)和復(fù)指數(shù)形式傅里葉級(jí)數(shù)兩種[3]。三角形式的傅里葉級(jí)數(shù)表明周期信號(hào)由直流成分及眾多的正弦、余弦函數(shù)形式的諧波分量疊加組成,而復(fù)指數(shù)級(jí)數(shù)形式的傅里葉級(jí)數(shù)簡(jiǎn)稱為復(fù)傅里葉級(jí)數(shù),其理論的核心內(nèi)容體現(xiàn)在以下一對(duì)數(shù)學(xué)變換式中[4]。
[ft=n=-∞∞Fnejnω1t? ? ? ? ? ? ? ? ? ? ? ? ? ?(1)Fn=1T-T2T2f(t)e-jnω1tdt? ? ? ? ? ? ? ? ?(2)]
式(1)給出周期為T的連續(xù)時(shí)間信號(hào)f(t)的復(fù)傅里葉級(jí)數(shù)表示,其物理意義非常明確,意味著f(t)可分解為直流及無(wú)窮多個(gè)指數(shù)形式的諧波分量[Fnejnω1t],其中的[ω1=2πT]稱為基波角頻率,而[nω1]則為f(t)中的n次諧波角頻率。
2.2離散頻譜函數(shù)及周期信號(hào)的雙邊頻譜
式(1)中各個(gè)諧波分量的復(fù)傅里葉系數(shù)[Fn]是實(shí)現(xiàn)周期信號(hào)復(fù)傅里葉級(jí)數(shù)表示的關(guān)鍵,可依據(jù)式(2)所示的積分變換求出[Fn]。
一般情況下,[Fn]為以各次諧波角頻率[nω1]為自變量的復(fù)函數(shù),其極坐標(biāo)形式為[Fn=Fnejφn],[Fn]的模[|Fn|]稱為幅度頻譜,[Fn]的輻角[φn]則稱為相位頻譜,它們分別反映了組成周期信號(hào)的各個(gè)諧波分量的幅度和相位隨[nω1]的變化關(guān)系。因?yàn)檎麛?shù)n的取值范圍為[-∞~+∞],所以幅度頻譜和相位頻譜均為雙邊頻譜,在對(duì)應(yīng)的頻譜圖上,譜線都是僅出現(xiàn)在基波角頻率[ω1]整數(shù)倍即[nω1]處,故[Fn]亦稱為信號(hào)f(t)的離散頻譜函數(shù)。
3周期信號(hào)雙邊頻譜圖的實(shí)現(xiàn)
3.1實(shí)例時(shí)間信號(hào)
選擇一個(gè)周期T=2秒,峰值為1且位于每個(gè)周期最左側(cè)的周期鋸齒波信號(hào)f(t),在以t=0為奇函數(shù)對(duì)稱中心的周期內(nèi),其可以用函數(shù)[ft=-2Tt=-t]加以描述,以此實(shí)例信號(hào)探討利用Matlab實(shí)現(xiàn)周期信號(hào)雙邊頻譜圖的方法。
3.2實(shí)例信號(hào)的頻譜
實(shí)例信號(hào)f(t)的基波角頻率為[ω1=2π2=π(rad/s)],利用式(2)求對(duì)應(yīng)的離散頻譜函數(shù)。
[Fn=1T-T2T2f(t)e-jnω1tdt=12-11(-t)e-jnπtdt]
可知[F0=0],即f(t)中不存在直流分量,而對(duì)于f(t)中的各交流諧波分量,則有
[Fn=-j1nπcosnπ=j(-1)n+11nπ(n=±1,±2,±3…)]
其中的幅度頻譜為
[Fn=1nπ=1nπ? ? ? ?(n=+1,+2,+3,…)-1nπ? ?(n=-1,-2,-3,…)? ? ?(3)]
相位頻譜為[φn=π2? ? ?(n=+1,+3,+5,…)-π2? ?(n=-1,-3,-5,…)-π2? ?(n=+2,+4,+6,…)π2? ? ?(n=-2,-4,-6,…)? ? ? (4)]
3.3雙邊頻譜圖的實(shí)現(xiàn)
根據(jù)上述討論內(nèi)容編制本文后續(xù)3.4部分給出的Matlab程序,通過其中代碼的順序執(zhí)行,可完成以下4步操作。
(1)以交互方式輸入一個(gè)數(shù)值,后續(xù)代碼將依據(jù)此值設(shè)定頻譜圖中繪制的最高次諧波譜線的諧波次數(shù);
(2)依次以[pi*t-1、0]為兩個(gè)實(shí)參調(diào)用sawtooth函數(shù),生成并存儲(chǔ)實(shí)例周期鋸齒波信號(hào)f(t)的相關(guān)數(shù)據(jù);
(3)根據(jù)式(3)、式(4)分別計(jì)算并存儲(chǔ)幅度頻譜[|Fn|]和相位頻譜[φn]的相關(guān)數(shù)據(jù);
(4)在圖形窗口中,利用從上到下排列的(a)、(b)和(c)三個(gè)子窗口依次繪制f(t)的波形及其對(duì)應(yīng)的雙邊幅度頻譜圖和雙邊相位頻譜圖。
設(shè)定最高次諧波次數(shù)為15時(shí),運(yùn)行程序?qū)⒌玫饺鐖D1所示的圖形窗口,周期信號(hào)的復(fù)傅里葉級(jí)數(shù)分解的思想得以形象、直觀地圖示,復(fù)雜理論的教學(xué)過程變得相對(duì)簡(jiǎn)單、方便。
可以借助圖1說明周期信號(hào)幅度頻譜的諧波性(譜線只能在基波角頻率[ω1]的整數(shù)倍即諧波角頻率[nω1]處出現(xiàn))、離散性(頻譜圖由頻率離散的譜線組成,每根譜線代表一個(gè)諧波分量,兩根相鄰譜線之間的角頻率間隔為[ω1])和收斂性(各譜線的高度即各諧波分量的幅度隨著諧波次數(shù)增高而逐漸減小并直至趨于無(wú)窮?。?。另外,幅度頻譜[|Fn|]是諧波角頻率[nω1]的偶函數(shù),相位頻譜[φn]則是[nω1]的奇函數(shù)的特征在圖1中也是顯而易見的。
3.4 程序代碼
display('請(qǐng)輸入最高次諧波次數(shù)Nmax');
Nmax=input('Nmax= ');
t=-5:0.0001:5;
f=sawtooth(pi*(t-1),0);
AbsFn=zeros(2*Nmax+1,1);Phase=AbsFn;
fori=(Nmax+2):(2*Nmax+1)
AbsFn(i)=1/(i-(Nmax+1))/pi;
AbsFn(2*Nmax+2-i)=AbsFn(i);
end
fori=(Nmax+2):2:(2*Nmax+1)
Phase(i)=pi/2;
Phase(2*(Nmax+1)-i)=-pi/2;
end
fori=(Nmax+3):2:(2*Nmax+1)
Phase(i)=-pi/2;
Phase(2*(Nmax+1)-i)=pi/2;
end
subplot(311);plot(t,f,'linewidth',1.5);
axis([-4.8 4.8 -1.1 1.1]);
xlabel('\itt? ? ? \rm單位:s','Fontsize',9);
ylabel('(a)? 周期鋸齒信號(hào) f(t)','Fontsize',9);
k=-Nmax:Nmax;
subplot(312);stem(k,AbsFn,'filled');
axis([-NmaxNmax 0 0.34]);
xlabel('n\omega_1? ? ? 單位:rad/s','Fontsize',9);
ylabel('(b)? 幅度頻譜 |F_n|','Fontsize',9);
subplot(313);stem(k,Phase,'filled');
axis([-NmaxNmax -1.8 1.8]);
xlabel('n\omega_1? ? ? 單位:rad/s','Fontsize',9);
ylabel('(c)? 相位頻譜 \phi_n','Fontsize',9);
4結(jié)束語(yǔ)
不限于實(shí)例鋸齒波信號(hào),只要按照上述說明的方法、步驟,將信號(hào)的函數(shù)表達(dá)式代入式(2)求出其對(duì)應(yīng)的離散頻譜函數(shù)[Fn],并根據(jù)[Fn]的具體形式計(jì)算出[|Fn|]和[φn]的相關(guān)數(shù)據(jù),對(duì)Matlab程序中的相關(guān)代碼加以有針對(duì)性地簡(jiǎn)單修改,此程序即可以應(yīng)用于諸如周期性三角波、周期性方波等許多一般周期信號(hào)的雙邊頻譜圖的繪制。
本文所敘述的工作,僅僅是Matlab實(shí)際應(yīng)用的一個(gè)簡(jiǎn)單的嘗試探索。由于在數(shù)值計(jì)算處理、數(shù)據(jù)可視化分析和系統(tǒng)直觀描述等方面具有強(qiáng)大的能力,Matlab一定會(huì)在高等學(xué)校眾多課程的理論和實(shí)踐教學(xué)過程中得到更廣泛的應(yīng)用。選擇恰當(dāng)?shù)闹R(shí)點(diǎn),適時(shí)使用Matlab輔助教學(xué)手段,一定會(huì)取得較之傳統(tǒng)教學(xué)手段更好的教學(xué)效果。
參考文獻(xiàn):
[1] 燕慶明.信號(hào)與系統(tǒng)教程[M].北京:高等教育出版社,2013:86.
[2] 馬金龍.信號(hào)與系統(tǒng)[M].北京:科學(xué)出版社,2010:114.
[3] 王明泉.信號(hào)與系統(tǒng)[M].北京:科學(xué)出版社,2008:79.
[4] 沈元隆.信號(hào)與系統(tǒng)[M].北京:人民郵電出版社,2003:71.
【通聯(lián)編輯:王力】