昨天簡(jiǎn)單的復(fù)習(xí)了一下離散時(shí)間信號(hào)是什么以及系統(tǒng)的概念、系統(tǒng)要做的工作和系統(tǒng)中幾個(gè)簡(jiǎn)單的原件,今天跟著昨天的內(nèi)容繼續(xù)學(xué)習(xí)。
一、離散時(shí)間系統(tǒng)的分類:
為什么要對(duì)系統(tǒng)進(jìn)行分類呢,這就像是我們對(duì)函數(shù)進(jìn)行分類一樣,有些函數(shù)有的性質(zhì)其他函數(shù)沒有,相同的,也可能后者有著前者沒有的性質(zhì),所以,我們要對(duì)函數(shù)進(jìn)行分類,同理,系統(tǒng)也一樣,一個(gè)系統(tǒng)如果有特定的性質(zhì),那么這個(gè)性質(zhì)是對(duì)所有的輸入信號(hào)都必須滿足,如果說,這個(gè)性質(zhì)只對(duì)某些輸入信號(hào)滿足,那他就不具有這個(gè)性質(zhì),所以,就有了一個(gè)常用的判斷一個(gè)系統(tǒng)是否具有某個(gè)性質(zhì)的方法:舉反例,如果舉得出來,那這個(gè)系統(tǒng)就沒有這個(gè)性質(zhì)。
其實(shí),系統(tǒng)的分類方法很多,比如說有:
1、靜態(tài)-動(dòng)態(tài)系統(tǒng)
2、時(shí)不變-時(shí)變系統(tǒng)
3、線性-非線性系統(tǒng)
4、因果-非因果系統(tǒng)
5、穩(wěn)定-不穩(wěn)定系統(tǒng)
其實(shí),這些在字面意思上就已經(jīng)很清楚了,但是還是稍微的解釋一下:
1、靜態(tài):在任意時(shí)刻n的輸出至多依賴于同一時(shí)刻的輸入樣布,和過去、將來的樣本無關(guān),那就是靜態(tài)或者無記憶的,后面我們會(huì)有一種遞歸的概念,下一時(shí)刻和上一時(shí)刻是相關(guān)的,顯然,靜態(tài)系統(tǒng)沒有這個(gè)概念
2、動(dòng)態(tài),那這就很好理解了,動(dòng)態(tài)就是系統(tǒng)n時(shí)刻的輸出完全由區(qū)間n-N到n的輸入樣本決定,就是說他是有記憶的,那就是個(gè)動(dòng)態(tài)系統(tǒng),而如果我們的N是無窮大,那就說系統(tǒng)是無限記憶。
顯然,N=0的情況就是靜態(tài)系統(tǒng)。
3、時(shí)不變、時(shí)變:這個(gè)更好理解了,系統(tǒng)的輸入輸出特性不隨著時(shí)間變化,那就是時(shí)不變,相反的,那就是時(shí)變系統(tǒng),就這么理解,我們有個(gè)輸入信號(hào)x(n),輸入到一個(gè)系統(tǒng)中,系統(tǒng)的輸出是y(n),假設(shè)還有一個(gè)和x(n)相同的,但是是提前了k個(gè)單位的信號(hào):x(n-k),系統(tǒng)的輸出是y(n-k),那么我們就可以比較,如果說,y(n-k)和y(n)的特性是相同的,那這個(gè)系統(tǒng)他就是時(shí)不變的,但如果這兩個(gè)的特性不一樣了,那這個(gè)系統(tǒng)就是時(shí)變的。
4、線性、非線性:
這兩個(gè)是很重要的一個(gè)分類方法,其他的分類方法在后面的學(xué)習(xí)中我看到的很少,或者說,幾乎沒有。
什么是線性呢,書上說的是滿足疊加性的系統(tǒng)就是線性系統(tǒng),或者你就這么理解:有兩個(gè)輸入信號(hào)x1、x2和任意常數(shù)a,b,那么這兩個(gè)信號(hào)的疊加性就是這樣的:
相應(yīng)的,對(duì)于一個(gè)弛豫系統(tǒng),如果說,零輸入?yún)s是非零輸出,那這個(gè)系統(tǒng)就是非線性系統(tǒng)。
5、因果、非因果:
其實(shí)這個(gè)系統(tǒng)他和靜態(tài)和動(dòng)態(tài)我感覺差不多,因果不就是依賴于當(dāng)前和過去的輸入么,那他和動(dòng)態(tài)就很像,同樣的,非因果它之和當(dāng)前輸入信號(hào)有關(guān),和之前的輸入信號(hào)無關(guān),這和靜態(tài)就很像。
6、穩(wěn)定、不穩(wěn)定:
當(dāng)然,誰都希望自己的程序是穩(wěn)定運(yùn)行的,不是三天兩頭的出毛病,穩(wěn)定也是這么個(gè)意思,就是系統(tǒng)對(duì)信號(hào)的處理要非常穩(wěn)定。
這里我把書上對(duì)這兩種系統(tǒng)進(jìn)行一個(gè)解答:
一個(gè)任意的弛豫系統(tǒng)稱為有界輸入-有界輸出(BIBO)穩(wěn)定,當(dāng)且僅當(dāng),每個(gè)有界輸入會(huì)產(chǎn)生有限的輸出,這就相當(dāng)于區(qū)間極大值和極小值問題也就是說,輸入信號(hào)之后,系統(tǒng)輸出的信號(hào)值有上下界,那么這個(gè)系統(tǒng)就是穩(wěn)定的,但如果我們輸出的是無界的信號(hào),輸出也是無界的信號(hào),那這個(gè)系統(tǒng)肯定就是不穩(wěn)定系統(tǒng)。
二、離散時(shí)間系統(tǒng)的相連接:
昨天的最后,我們展示了,加法器、、乘法器(常數(shù)、信號(hào))、單位延遲元件、單位超前元件等,他們都有著各自的功能,但是,一個(gè)復(fù)雜的系統(tǒng)往往需要多個(gè)元件組合而成,并不是說,我們用最簡(jiǎn)單的幾個(gè)元件就能夠?qū)崿F(xiàn)一個(gè)復(fù)雜系統(tǒng)的功能,所以這就用到了復(fù)雜系統(tǒng)元件的相連接。其實(shí)這個(gè)沒啥好講的,得具體問題具體分析。
好了,把一些基礎(chǔ)性的東西講完了,現(xiàn)在我們來到了很重要的一部分:線性時(shí)不變系統(tǒng)(LTI)
一、線性系統(tǒng)的分析:
對(duì)于給定的信號(hào),系統(tǒng)的輸出這么分析呢,主要有這么兩種辦法:
1、基于系統(tǒng)輸入輸出方法的直接求解,
2、輸入信號(hào)分解,分別處理后再將響應(yīng)相加。
LTI系統(tǒng)輸入輸出關(guān)系的一般形式是:
這個(gè)后面的差分方程求解中會(huì)用到。
第二種的話,就是我們把一個(gè)輸入信號(hào)x(n)給他分解成多個(gè)基本信號(hào)成分的加權(quán)和:
當(dāng)我們對(duì)每個(gè)信號(hào)用系統(tǒng)進(jìn)行處理之后,再加起來就成了輸入是x(n)的輸出。
有個(gè)很簡(jiǎn)單的方法,如果說,我們對(duì)輸入信號(hào)的特性并沒有做限制,那就把輸入信號(hào)分解成單位沖激序列的加權(quán)和,這樣是比較方便的。
那么,怎么樣才能把輸入信號(hào)分解成單位沖激序列的加權(quán)和呢,我們得先求解系統(tǒng)對(duì)單位采樣序列的響應(yīng),然后用線性系統(tǒng)的特性來求解對(duì)于給定輸入信號(hào)的輸出公式:
那么我們對(duì)于一個(gè)輸入信號(hào)x(n):
選取基本的信號(hào):
其中,
這樣的話,將兩者相乘:,這樣我們就構(gòu)成了一個(gè)只在n=k處值為x(k)以外,其他值都是0的序列,同理的,我們就可以構(gòu)建多個(gè)只在特定位置(如n=k)處有值而其他位置均為0的序列,那么顯而易見,我們就通過這個(gè)方法實(shí)現(xiàn)了對(duì)一個(gè)線性系統(tǒng)的劃分:
我用一個(gè)矩陣的形式來表示一下,就是,假設(shè)我們有個(gè)線性系統(tǒng),輸入信號(hào)是,用上述方法給拆分成單位沖激響應(yīng)之后,就有了如下形式:
這其中,每一行都是一個(gè)進(jìn)行了加權(quán)的單位沖激序列,當(dāng)然,我這就是簡(jiǎn)單的一寫,書上有個(gè)更加好的例子,我給稍微改了一下:
有一個(gè)有限長(zhǎng)序列:
我們看到,在這個(gè)序列中,-2,-1,0,2,3這五個(gè)數(shù)值非零,也就是說,在-2,-1,0,1,3這五個(gè)時(shí)刻的值是非0的,所以,我們就需要在k=這5個(gè)時(shí)刻的沖激,最后得到的x(n)就是這樣子的:
其實(shí)我更喜歡上面那個(gè)用矩陣表示的,因?yàn)槲矣X得那個(gè)好看一些。
二、LTI對(duì)任意輸入的響應(yīng)的計(jì)算:
這里,,就要說到今日最重要的一個(gè)內(nèi)容:卷積和
我們用LTI系統(tǒng)對(duì)輸入信號(hào)x(n)和單位采樣沖激h(n)來給出LTI的響應(yīng):y(n):
說法就是輸入x(n)和沖激響應(yīng)h(n)的卷積產(chǎn)生輸出y(n)。
那么,卷積怎么計(jì)算呢?這才是今天的重點(diǎn)內(nèi)容,但是其實(shí)也簡(jiǎn)單,四個(gè)步驟:反轉(zhuǎn)、移位,乘積、求和,直接看圖最簡(jiǎn)單了:
?就用書上的例子吧:
,
讓我們來計(jì)算:
1、反轉(zhuǎn):我們把h給反轉(zhuǎn)了:
?
2、移位、乘積:
n=0的時(shí)候,響應(yīng)序列:
依次計(jì)算n=-1,1,2,3,4,5的響應(yīng)序列:
3、求和:把上述的響應(yīng)序列全給加起來,我們就得到了LTI系統(tǒng)的計(jì)算結(jié)果。
后面還會(huì)學(xué)到一種和卷積很相似的運(yùn)算,但是兩者的意義是不一樣的,不能把兩者給搞混淆了。
其實(shí),上次聽課的時(shí)候我就以及了解了卷積的一個(gè)知識(shí),但是我還沒有學(xué)到那里,所以一直在糾結(jié)到底寫不寫他,但是,想了想,時(shí)頻現(xiàn)在都在用,寫寫無妨:時(shí)域的卷積是想加形式,頻率域的卷積是相乘形式,這兩者通過轉(zhuǎn)化,實(shí)際上是一樣的效果。我想簡(jiǎn)單的寫一下卷積,emm,試試看唄,能寫出來更好,寫不出來的話,numpy也提供了卷積操作np.convolve(x,h)直接用也行。
import numpy as np
x=np.array([1,2,1,-1])
#單位沖激響應(yīng)
h=np.array([1,2,3,1])
y=np.zeros(len(x)+len(h)-1,dtype=int)
for i in range(len(x)):
for j in range(len(h)):
y[i+j]+=x[i]*h[j]
print(y)
print(np.convolve(x,h))
結(jié)果是一樣的,這我就放心了。
然后,我找了個(gè)圖,我覺得這個(gè)對(duì)算法的講解比較好:
?其實(shí),從這個(gè)算法看出來的就是,對(duì)h每次提前一個(gè)單位。
后面呢這個(gè)就可以更好的解釋了:
這兩個(gè)方法其實(shí)是等價(jià)的:
上面的圖和我的代碼就是用的第一種情況,在實(shí)際計(jì)算機(jī)中會(huì)方便很多,要是你用手算的話,那就1-4步老老實(shí)實(shí)的去計(jì)算。
好了,卷積的計(jì)算就說完了,但是卷積有哪些性質(zhì)呢?
1、恒等性、位移性:
當(dāng)我們采用單位采樣序列的時(shí)候,我們的卷積是這個(gè)樣子滴:
神奇吧,就相當(dāng)于提前了k個(gè)單位
2、交換律、結(jié)合律、分配:
和數(shù)學(xué)中的交換結(jié)合類似,就是符號(hào)變了變,之后,我們?cè)谑褂镁矸e的時(shí)候,通常用的是*:
交換:
結(jié)合:
分配:
從結(jié)合律可以得到一個(gè)很有意思的性質(zhì):如果我們有L個(gè)沖激響應(yīng)為的線性時(shí)不變系統(tǒng)級(jí)聯(lián)在一起,那么就有一個(gè)等價(jià)的LTI系統(tǒng),其沖激響應(yīng)等于這些沖激響應(yīng)的L-1重卷積:
同樣的,我們也可以把這個(gè)性質(zhì)給反轉(zhuǎn)過來,一個(gè)LTI系統(tǒng)必然可以分解成為級(jí)聯(lián)的子系統(tǒng)。
相似的,從分配率中也可以得到的一個(gè)性質(zhì):多個(gè)沖激響應(yīng)的組合可以成為一個(gè)大的沖激響應(yīng),而一個(gè)大的沖激響應(yīng)是可以轉(zhuǎn)換成若干個(gè)小的沖激響應(yīng)的。
因果LTI系統(tǒng):
之前我們就講解了因果系統(tǒng),這是一個(gè)什么樣子的系統(tǒng)呢?同一片博客,應(yīng)該是有印象的,因果系統(tǒng)就是某一時(shí)刻的輸出依賴之前的輸出,時(shí)刻的輸出依賴的是時(shí)刻的信號(hào)。
emm,就用書上給的例子吧,我也想不出來啥好的自己舉例:
有這么一個(gè)LTI系統(tǒng),我們知道其在時(shí)刻的輸出:
然后,我們把這個(gè)輸出轉(zhuǎn)換成兩組,一組包含當(dāng)前和過去的值,另一組則包含將來的值:
?好長(zhǎng)一堆是吧,但是仔細(xì)看,第一項(xiàng)其實(shí)是輸人信號(hào)的當(dāng)前和過去的值,第二項(xiàng)則是未來的值,怎么看的?延遲和提前。這就好理解多。
這樣的話,我們就發(fā)現(xiàn),要讓上面的輸出成為只依靠當(dāng)前和過去,就讓,這樣子,這個(gè)輸出就滿足了因果關(guān)系,那么我們就由此得出因果LTI系統(tǒng):要使一個(gè)LTI系統(tǒng)是因果的,其沖激響應(yīng)在n為負(fù)值時(shí)必須是0。
這就很簡(jiǎn)單的出現(xiàn)了倆個(gè)序列:
1、因果序列:n小于0時(shí),所有值為0
2、非因果序列:n小于0和n大于0時(shí)的值不為0
先解釋一個(gè)詞:BIBO穩(wěn)定:BIBO穩(wěn)定是指一個(gè)系統(tǒng)在輸入和輸出都是有限的條件下,系統(tǒng)的輸出也是有限的,且系統(tǒng)的輸出在無窮遠(yuǎn)處不會(huì)無限增長(zhǎng)。簡(jiǎn)單來說,BIBO穩(wěn)定性是指系統(tǒng)對(duì)輸入的響應(yīng)不會(huì)無限增長(zhǎng)或震蕩,而是在某個(gè)范圍內(nèi)有限制地變化。
保持系統(tǒng)穩(wěn)定的沖要條件:如果一個(gè)LTI系統(tǒng)的沖激響應(yīng)是絕對(duì)可加的,那么他是穩(wěn)定的。
在系統(tǒng)穩(wěn)定的時(shí)候,系統(tǒng)輸入端的任何有限長(zhǎng)激勵(lì),產(chǎn)生的輸出實(shí)際上是瞬時(shí)的,也就是其幅度隨著時(shí)間衰減并且直至最終消失。實(shí)際上,對(duì)于一個(gè)系統(tǒng)的沖激響應(yīng)h來說,我們?yōu)榱讼到y(tǒng)的穩(wěn)定,當(dāng)n趨近于無限的時(shí)候,必須是按著指數(shù)衰減的方式衰減到0的。
今天的最后,我們?cè)俳榻B兩個(gè)系統(tǒng),他們很簡(jiǎn)單,但是明天的復(fù)習(xí)著重就是他們兩個(gè):
有限長(zhǎng)沖激響應(yīng):Finite Impulse Response (FIR)
無限長(zhǎng)沖激響應(yīng):Infinite Impulse Response (IIR)
從名字就能看的出來,F(xiàn)IR就是一個(gè)有限的區(qū)間,這個(gè)區(qū)間外面的數(shù)值他就一定是0,而IIR呢,就沒有這個(gè)區(qū)間的概念了。
一般來說,我們只會(huì)關(guān)注因果FIR:
這就像個(gè)窗口一樣,我們只會(huì)關(guān)心窗口為M大小的系統(tǒng),也就是說,我們說FIR系統(tǒng)又這長(zhǎng)為M個(gè)樣本的有限存儲(chǔ)空間。
IIR呢:
我們?cè)谶@里說的是系統(tǒng)是有無限存儲(chǔ)的,顯然,這很扯,哪有那么多的存儲(chǔ)空間給你干那事去。文章來源:http://www.zghlxwxcb.cn/news/detail-457335.html
好了,今天的復(fù)習(xí)就到這里了,明天繼續(xù),希望明天有足夠的時(shí)間去把這一章給復(fù)習(xí)完。文章來源地址http://www.zghlxwxcb.cn/news/detail-457335.html
到了這里,關(guān)于數(shù)字信號(hào)處理6的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!