您當前的位置:首頁 > 舞蹈

1.4 練習:週期方波的頻譜

作者:由 囧程程 發表于 舞蹈時間:2021-09-27

傅立葉級數的三角函式展開式和復指數展開式很重要,想掌握公式還是得練幾道題,本篇就拿週期

方波

來試試手,順便提一些“術語”。

x\left( t \right) = \left\{ \begin{matrix} {1,~~0 < t < \pi} \\ {- 1,~~ - \pi < t \leq 0} \\ \end{matrix} \right.

1.4 練習:週期方波的頻譜

※ 主要參考《機械工程測試技術》(孫紅春等主編) 機械工業出版社 ※

三角函式展開式

1.4 練習:週期方波的頻譜

※ 傅立葉級數的三角函式展開式 ※

利用三角函式的一個公式:

\[\begin{align} a\sin \theta  + b\cos \theta   =& {\left( {a + b} \right)^2}\left[ {\frac{a}{{{{\left( {a + b} \right)}^2}}}\sin \theta  + \frac{b}{{{{\left( {a + b} \right)}^2}}}\cos \theta } \right]\\  =& {\left( {a + b} \right)^2}\left[ {\cos \varphi \sin \theta  + \sin \varphi \cos \theta } \right]\\  =& A\sin (\theta  + \varphi ) \end{align}\]

其中,

A = {(a + b)^2},\varphi  = \arctan \frac{b}{a}

用此公式,將求和符號中的同一頻率下的三角函式都轉變成

sin

,傅立葉級數變成了:

x(t) = {A_0} + \sum\limits_{n = 1}^\infty  {{A_n}\sin \left( {n{\omega _0}t + {\varphi _n}} \right)}

其中,

{A_0} = {a_0}

{A_n} = \sqrt {a_n^2 + b_n^2}

{\varphi _n} = \arctan \frac{{{a_n}}}{{{b_n}}}

n=1

的諧波(理解為正弦, sin)稱為基波;其他的諧波稱為

n

次諧波;

A_n

稱為

n

次諧波的

幅值

\varphi_n

稱為

n

次諧波的

初相位

為了更直觀地表示一個訊號的頻率成分,均以圓頻率

\omega

為橫座標,以幅值An為縱座標作

幅值譜

,以初相位

\varphi_0

為縱座標作

相位譜

;這兩個圖一起稱為

頻譜

n

都是整數,畫出來的頻譜是離散的,一根一根的線。

現在把方波帶入求解。

首先觀察函式:

① 方波的週期是

2\pi

,所以

T_0=2\pi

\omega_0=2\pi/T_0=1

② 方波是奇函式。

在對稱積分割槽間下,奇函式的積分結果為0,偶函式的積分結果等於它在整個區間的一半上積分的2倍;

並且兩奇函式相乘為偶函式,奇函式和偶函式相乘為奇函式;

所以

a_0

a_n

的值都是0:

a_0=0

a_n=0

\[\begin{align} {b_n}  =& \frac{2}{{{T_0}}}\int_{ - {T_0}/2}^{{T_0}/2} {x(t)\sin n{\omega _0}t{\rm{d}}t}  \\ =& 2 \times \frac{1}{\pi }\int_0^\pi  {\sin n{\omega _0}t{\rm{d}}t} \\  =&  - \frac{2}{{\pi n{\omega _0}}}\cos n{\omega _0}t\left| \begin{array}{l} \pi \\ 0 \end{array} \right.\\  =&  - \frac{2}{{\pi {\rm{n}}}}(\cos \pi n - 1)\\  =& \left\{ {\begin{array}{*{20}{c}} {\frac{4}{{\pi n}}}&{n = 1,3,5, \ldots }\\ 0&{n = 2,4,6, \ldots } \end{array}} \right. \end{align}\]

帶入公式求幅值和初相位:

{A_n} = \sqrt {a_n^2 + b_n^2}  = {b_n}

{\varphi _n} = \arctan \frac{{{a_n}}}{{{b_n}}} = \arctan \frac{0}{{{b_n}}} = 0

1.4 練習:週期方波的頻譜

※ 頻譜圖 ※

非常清晰地看出不同諧波成分的幅值和初相位。

隨著頻率增加,幅值下降;可以看出,高次諧波的幅值幾乎為0了,所以在精度範圍內,可以適當捨去高次諧波。

這裡就畫出前20次諧波。

在網上找到一張很有意思的圖,書本上有類似的圖,我當時的感測器技術老師也拿類似的圖當群頭像。

1.4 練習:週期方波的頻譜

如有來源,請聯絡指明

這張圖上的數值不是很準,時域影象的縱座標數值應該寫錯了。因為相位譜都是0,所以頻譜就只畫出了幅值譜。

時域影象不是完全的週期方波,畢竟這只是前20項的疊加結果,無窮項能完全逼近週期方波。

你注意到了嗎?頻譜就是函式的

頻域

描述,在此之前,我們一直都只是在

時域

內研究函式。

恭喜你!ψ(`∇´)ψ多了一個看待函式的角度。

但是你現在還只能得到週期函式的頻域,因為傅立葉級數分析的就是滿足狄利克雷條件的週期函式。至於非週期函式,交給以後的

傅立葉變換

吧。

下面回到主題,接著整復指數展開式。

復指數展開式

1.4 練習:週期方波的頻譜

※ 傅立葉級數的復指數展開式 ※

c_n

是複變函式,可以由尤拉公式轉變為復指數形式:

\[\begin{align} {c_n} =& {\mathop{\rm Re}\nolimits} {c_n} + j{\mathop{\rm Im}\nolimits} {c_n}\\  =& \sqrt {{{({\mathop{\rm Re}\nolimits} {c_n})}^2} + {{({\mathop{\rm Im}\nolimits} {c_n})}^2}} \left[ {\frac{{{\mathop{\rm Re}\nolimits} {c_n}}}{{\sqrt {{{({\mathop{\rm Re}\nolimits} {c_n})}^2} + {{({\mathop{\rm Im}\nolimits} {c_n})}^2}} }} + j\frac{{{\mathop{\rm Im}\nolimits} {c_n}}}{{\sqrt {{{({\mathop{\rm Re}\nolimits} {c_n})}^2} + {{({\mathop{\rm Im}\nolimits} {c_n})}^2}} }}} \right]\\  =& \left| {{{\rm{c}}_n}} \right|\left[ {\cos {\varphi _n} + j\sin {\varphi _n}} \right]\\  =& \left| {{{\rm{c}}_n}} \right|{{\rm{e}}^{j{\varphi _n}}} \end{align}\]

其中,

幅值

相位

為:

\left| c_{n} \right| = \sqrt{\left( {Rec_{n}} \right)^{2} + \left( {Imc_{n}} \right)^{2}}

\varphi_{n} = {\arctan\frac{Imc_{n}}{Rec_{n}}}

需要注意的是,這裡的相位和上一節三角函式展開式的初相位是不一樣的!雖然這裡符號一樣,但是值是不一樣的。(有些書上為了區分兩者,符號不一樣)

之前由

三角函式展開式

推導

復指數展開式

的過程中,兩者有這樣一個聯絡:

c_{n} = \frac{1}{2}\left( {a_{n} - jb_{n}} \right)

所以,復指數展開式中的相位為:

\varphi_{n} = {\arctan\frac{Imc_{n}}{Rec_{n}}} = {\arctan\left( {- \frac{b_{n}}{a_{n}}} \right)}

現在帶入週期方波求解。

首先觀察函式

① 方波的週期是

2\pi

,所以

T_0=2\pi

\omega_0=2\pi/T_0=1

② 方波是奇函式。

由於是奇函式,對稱區間上積分後

c_0

等於0:

c_0=0

\[\begin{align} {c_n} =& \frac{1}{{{T_0}}}\int_{ - {T_0}/2}^{{T_0}/2} {x(t){{\rm{e}}^{ - {\rm{j}}n{\omega _0}t}}} \\  =& \frac{1}{{{T_0}}}\int_{ - {T_0}/2}^{{T_0}/2} {x(t)(\cos n{\omega _0}t - {\rm{j}}\sin n{\omega _0}t){\rm{d}}t} \\  =&  - {\rm{j}}\frac{2}{{{T_0}}}\int_0^{{T_0}/2} {\sin n{\omega _0}t{\rm{d}}t} \\  =&  - {\rm{j}}\frac{1}{\pi }\int_0^\pi  {\sin n{\omega _0}t{\rm{d}}t} \\  =& \left\{ {\begin{array}{*{20}{c}} { - {\rm{j}}\frac{2}{{\pi n}}}&{n =  \pm 1, \pm 3, \pm 5, \ldots }\\ 0&{n =  \pm 2, \pm 4, \pm 6, \ldots } \end{array}} \right. \end{align}\]

算出幅值和相位,畫出頻譜圖:

\left| {{c_n}} \right| = \left\{ {\begin{array}{*{20}{c}} {\frac{2}{{\pi \left| n \right|}}}&{n =  \pm 1, \pm 3, \pm 5, \ldots }\\ 0&{n =  \pm 2, \pm 4, \pm 6, \ldots } \end{array}} \right.

{\varphi _n} = \arctan \frac{{ - \frac{2}{{\pi n}}}}{0} = \left\{ {\begin{array}{*{20}{c}} { - \frac{\pi }{2}}&{n = 1,3,5, \ldots }\\ {\frac{\pi }{2}}&{n =  - 1, - 3, - 5, \ldots } \end{array}} \right.

1.4 練習:週期方波的頻譜

※ 頻譜圖 ※

三角展開式的頻譜叫“單邊譜”。

復指數展開式的頻譜叫“雙邊譜”。

兩者沒有好壞之分,並且幅值單邊譜和幅值雙邊譜還有聯絡:

如果只取幅值雙邊譜右半部分,再取絕對值,乘2倍,就是幅值單邊譜。

t=0

處有

c_0=a_0

肯定有人和我當初一樣有個疑惑:頻率

\omega

能為

負數

嗎??

如果只是以實數的角度來說,確實很難理解,頻率不可能為負數。我認為,這裡應該把正負理解為“方向”,復指數的方向,可以想想之前把復指數視覺化的文章。

而真正的頻率是正負號後面的數字,即其絕對值。

其實他沒有什麼實際意義,理解為“方向”也只是我自己這麼想。

總結

頻譜圖能非常直觀地呈現各個諧波成分的幅值和相位。

利用傅立葉級數,我們可以得到一般週期函式(滿足狄利克雷條件)的頻譜。

至於非週期函式的頻譜(傅立葉變換),且聽下回分解。

程式碼(Matlab)

% 第一個圖

clear

clc

T1

=

1

T2

=

2

T3

=

4

/

5

T4

=

4

/

7

T0

=

2

*

pi

% 週期 如果是相加項 取所有周期分子的公約數 再乘pi

omiga

=

2

*

pi

/

T0

fsin

=@(

n

t

sin

n

*

omiga

*

t

。*

square

t

);

fcos

=@(

n

t

cos

n

*

omiga

*

t

。*

square

t

);

N

=

20

Fsin

=

zeros

1

N

+

1

);

Fcos

=

zeros

1

N

+

1

);

for

n

=

1

N

Fsin

n

)=

quad

(@(

t

fsin

n

t

),

-

T0

/

2

T0

/

2

1e-9

/

T0

*

2

Fcos

n

)=

quad

(@(

t

fcos

n

t

),

-

T0

/

2

T0

/

2

1e-9

/

T0

*

2

end

n

=

0

a0

=

quad

(@(

t

fcos

n

t

),

-

T0

/

2

T0

/

2

1e-9

/

T0

% 把極小值弄為0

Fcos

Fcos

<

0。01

)=

0

Fsin

Fsin

<

0。01

)=

0

subplot

211

),

stem

((

1

N

+

1

。*

omiga

Fcos

);

title

‘an’

);

grid

on

ylim

([

-

1

1

])

% 設定幅值顯示範圍

xlabel

‘n’

ylabel

‘幅值’

subplot

212

),

stem

((

1

N

+

1

。*

omiga

Fsin

);

title

‘bn’

);

grid

on

ylim

([

-

1

1

])

% 設定幅值顯示範圍

xlabel

‘n’

ylabel

‘幅值’

figure

subplot

211

);

stem

((

1

N

+

1

。*

omiga

sqrt

Fcos

。^

2

+

Fsin

。^

2

));

grid

on

title

‘幅值譜’

‘fontsize’

13

);

xlabel

‘\omega’

‘fontsize’

12

);

ylabel

‘A_n’

‘fontsize’

12

subplot

212

);

phi

=

atan

Fcos

。/

Fsin

);

phi

isnan

phi

))=

0

% bn為0時 算出來NaN無效值 這一步去除無效值

stem

((

1

N

+

1

。*

omiga

phi

);

grid

on

ylim

([

-

pi

pi

])

xlim

([

0

25

])

title

‘相位譜’

‘fontsize’

13

xlabel

‘\omega’

‘fontsize’

12

);

ylabel

‘\phi_n’

‘fontsize’

12

% 第二個圖

clear

clc

T1

=

1

T2

=

2

T3

=

4

/

5

T4

=

4

/

7

T0

=

2

*

pi

% 週期 如果是相加項 取所有周期分子的公約數 再乘pi

omiga

=

2

*

pi

/

T0

cn

=

@(

n

t

exp

-

1

i

*

n

*

omiga

*

t

。*

square

t

);

N

=

20

Cn

=

zeros

1

2

*

N

+

1

);

for

n

=

-

N

N

Cn

n

+

N

+

1

=

quad

(@(

t

cn

n

t

),

-

T0

/

2

T0

/

2

1e-9

/

T0

end

n

=

0

c0

=

quad

(@(

t

cn

n

t

),

-

T0

/

2

T0

/

2

1e-9

/

T0

% % 把極小值弄為0

% Fcos(Fcos<0。01)=0;

% Fsin(Fsin<0。01)=0;

figure

subplot

211

);

stem

((

-

N

N

。*

omiga

abs

Cn

));

grid

on

title

‘幅值譜’

‘fontsize’

13

);

xlabel

‘\omega’

‘fontsize’

12

);

ylabel

‘|c_n|’

‘fontsize’

12

);

ylim

([

0

0。67

])

subplot

212

);

stem

((

-

N

N

。*

omiga

angle

Cn

));

grid

on

ylim

([

-

pi

pi

])

title

‘相位譜’

‘fontsize’

13

xlabel

‘\omega’

‘fontsize’

12

);

ylabel

‘\phi_n’

‘fontsize’

12

標簽: T0  幅值  展開式  FontSize  相位