序列的卷积运算与相关运算——MATLAB
一、實(shí)驗(yàn)?zāi)康?/h2>
1、掌握有限長(zhǎng)序列線性卷積的編程計(jì)算原理,并能夠利用Matlab或C語(yǔ)言編寫(xiě)算法程序進(jìn)行線性卷積運(yùn)算的程序?qū)崿F(xiàn);
2、學(xué)會(huì)線性卷積函數(shù)和線性相關(guān)函數(shù)的使用方法,并能利用二者進(jìn)行有限長(zhǎng)序列的線性卷積與線性相關(guān)運(yùn)算的實(shí)現(xiàn);自相關(guān)序列的基本性質(zhì);
4、驗(yàn)證線性卷積運(yùn)算和線性相關(guān)運(yùn)算之間的關(guān)系,掌握由線性卷積運(yùn)算實(shí)現(xiàn)線性相關(guān)運(yùn)算的方法;
5、學(xué)會(huì)利用自相關(guān)序列進(jìn)行信號(hào)周期性的檢測(cè)與判別。
二、實(shí)驗(yàn)原理
在數(shù)字信號(hào)處理中,相關(guān)(correlation)可以分為互相關(guān)(cross correlation)和自相關(guān)(auto-correlation). 互相關(guān)是兩個(gè)數(shù)字序列之間的運(yùn)算;自相關(guān)是單個(gè)數(shù)字序列本身的運(yùn)算,可以看成是兩個(gè)相同數(shù)字序列的互相關(guān)運(yùn)算.互相關(guān)用來(lái)度量一個(gè)數(shù)字序列移位后,與另一個(gè)數(shù)字序列的相似程度.其數(shù)學(xué)公式如下:
其中,f和g為數(shù)字序列,n為移位的位數(shù),f*表示f序列值的復(fù)數(shù)共軛,即復(fù)數(shù)的實(shí)部不變,虛部取反而卷積(convolution)與互相關(guān)運(yùn)算相似,定義為將其中一個(gè)序列反轉(zhuǎn)并移位后,兩個(gè)序列的乘積的積分(求和),其數(shù)學(xué)公式如下:
其中,f和g 為數(shù)字序列,n 為移位的位數(shù).
在實(shí)數(shù)范圍內(nèi),f的復(fù)數(shù)共軛f*=f.此時(shí),通過(guò)比較上面兩式可知:序列f與將序列g(shù)反轉(zhuǎn)后的序列的卷積為序列f與序列g(shù)的互相關(guān)
如下所示:
第一步:確定(n) 有限區(qū)間為[N1+N2,M1+M2], 這一步的的工作是為了決定y(n) 中的哪些序列值要計(jì)算,因?yàn)閰^(qū)間外的序列值都是0,無(wú)須計(jì)算
第二步:把x(n)和h(n)的有限區(qū)間都變?yōu)閺?開(kāi)始。
第三步:利用公式計(jì)算序列值。計(jì)算y(n)的n=0,1,2,…M1+M2 -N1- N2,所對(duì)應(yīng)的y(0),y(1),…,y(M1+ M2 - N1+N2)。求每一個(gè)序列值時(shí),乘加運(yùn)算的結(jié)束標(biāo)志是h(n-k)的n-k
第四步:把y(n)的序號(hào)由0開(kāi)始變?yōu)橛蒒1+N2開(kāi)始,其它序號(hào)依次變?yōu)镹1+M2為止,就是N2+1,N1+N2+2,直到M1+真正的輸出序列y(n)。
2、線性相關(guān)運(yùn)算及計(jì)算方法
設(shè)序列x(n)利y(n)為兩個(gè)能量有限的離散時(shí)間信號(hào),則序列之間的線性互相關(guān)序列(運(yùn)算)
Rxy(m)反映了序列x(n)與右移m個(gè)單位的序列y(n)之間的相似程度,某一m處Rxy(m)的絕對(duì)值越大,則此時(shí)二者之間的相似性就越強(qiáng)。
序列的線性相關(guān)運(yùn)算和線性卷積運(yùn)算之關(guān)系:
Rxy(m)= y(m)x(-m)
表明:序列的相關(guān)運(yùn)算可以序列的線性卷積運(yùn)算為基礎(chǔ)進(jìn)行實(shí)現(xiàn)。
(1)若序列x(n)是實(shí)序列,則R.(m)為偶函數(shù),即:
Rxy(m)=Rxy(-m)
(2)Rxx(m)在=0時(shí)取得最大值,即:
Rxx(0)≥Rxx(m)
(3)若x(n)是能量信號(hào),則有:
lim(x?∞) Rxx(m)=0
3、利用自相關(guān)序列講行信號(hào)周期性的檢測(cè)
原序列具有相同的周期。這一性質(zhì)是實(shí)際應(yīng)用中, 利用自相關(guān)運(yùn)算進(jìn)行信號(hào)周期性檢測(cè)的基礎(chǔ)和理論依據(jù)。
三、實(shí)驗(yàn)步驟、數(shù)據(jù)記錄及處理
本實(shí)驗(yàn)主要進(jìn)行離散時(shí)間信號(hào)的線性卷積運(yùn)算和線性相關(guān)運(yùn)算的程序?qū)崿F(xiàn),實(shí)驗(yàn)內(nèi)容和具體的實(shí)驗(yàn)步驟如下:
其中:
1、用Matlab生成兩個(gè)有限長(zhǎng)序列x(n)、y(n)
2、編寫(xiě)有限長(zhǎng)序列線性卷積算法程序計(jì)算x(n)與y(n)的線性卷積,結(jié)果令為cl(n),即c1(n)=x(n)*y(n);利用 Matlab 的 conv()函數(shù)計(jì)算x(n)與y(n)的線性卷積,結(jié)果令為 c2(n),即c2(n)=x(n)*y(n)。將x(n)、y(n)、cl(n)、c2(n)的序列圖形繪制在一幅圖上,對(duì)結(jié)果進(jìn)行對(duì)比分析,檢驗(yàn)所實(shí)現(xiàn)的線性卷積算法仿真程序是否正確。
3、以 conv()函數(shù)為基礎(chǔ),編程計(jì)算x(n)與vn)的卷積線性互相關(guān)序列,結(jié)果令為R1(n):利用 matlab的xcorr()函數(shù)計(jì)算x(n)與y(n)的線性互相關(guān)序列結(jié)果令為R2(n)。將x(n)、y(n)、R1(n)、R2(n)繪制在一幅圖上,對(duì)結(jié)果進(jìn)行對(duì)比分析,驗(yàn)線性卷積運(yùn)算和線性相關(guān)運(yùn)算之間的關(guān)系。
4、以下為1970年至1869年這100年間每年所記錄到的太陽(yáng)黑子出現(xiàn)的月平均次數(shù):
101,82,66,35,31,7,20,92,154,125,85,68,38,23,
10,24,83,132,131,118,90,67,60,47,41,21,16,6, 8,
42,28,10,8,2,0,1,5,12,4,7,14,34、45,43,416 , 7,
4,2,8,17,36,50,62,14,35,46,41,30,24,37,24, 67,71,
48,28,8,13,57,122,138,103,86,63,96,66,64, 54,39,
21,7,4,23,11,15,40,62,98,124,47,30,16,7,37,74,55,
94, 96,77,59,44,
然后將該組數(shù)據(jù)去除掉均值計(jì)算該組數(shù)據(jù)的均值,然后將該組數(shù)據(jù)去除掉均值后做自相關(guān)分析,繪制出自相關(guān)序列的圖形,并以計(jì)算結(jié)果為依據(jù)確定太陽(yáng)黑子活動(dòng)的周期。
實(shí)驗(yàn)代碼:
(1)
四、分析
設(shè)x(n)x(n)x(n)和y(n)y(n)y(n)是兩個(gè)功率信號(hào),其互相關(guān)函數(shù)定義為:
當(dāng)x(n)=y(n)x(n)=y(n)x(n)=y(n),功率信號(hào)的自相關(guān)函數(shù)定義為:
如果x(n)x(n)x(n)和y(n)y(n)y(n)都是周期為 N NN 的信號(hào),則(10)、(11)中有限區(qū)間上的平均值就等于一個(gè)周期上的平均值:
當(dāng)x ( n ) = y (n ) x( n)=y( n)x(n)=y(n)時(shí),功率信號(hào)的自相關(guān)函數(shù)定義為
由周期信號(hào)的定義可得:
互相關(guān)函數(shù)性質(zhì)
設(shè)兩個(gè)信號(hào)x(n)x(n)x(n)和y(n)y(n)y(n) 均為能量信號(hào),其能量分別為
對(duì)于線性非時(shí)變離散時(shí)間系統(tǒng)來(lái)說(shuō),若序列x(n)是系統(tǒng)的輸入,h(n)是系統(tǒng)在單位脈沖作用下的單位脈沖響應(yīng),則由于輸入序列x(n)可表示為一系列脈沖的線性組合,所以,根據(jù)線性系統(tǒng)的疊加性質(zhì),系統(tǒng)的輸出在系統(tǒng)初始不儲(chǔ)能的條件下(零狀態(tài)響應(yīng))可由圖求得。
上式在運(yùn)算過(guò)程存在序列的翻轉(zhuǎn)、移位、相乘和相加,所以稱為卷積和。x(n)*h(n)表示兩個(gè)序列相卷積的運(yùn)算符號(hào),故式①也就是卷積的定義式。為了與離散傅里葉變換的循環(huán)卷積以及周期序列的周期卷積相區(qū)別,通常所指的卷積又稱為線性卷積。卷積運(yùn)算符合交換率,可寫(xiě)成另一種等效形式。
線性卷積的計(jì)算可以用解析法,也可以用圖解法。若兩 個(gè)序列的長(zhǎng)度分別為N1和N2,則卷積結(jié)果的總長(zhǎng)度應(yīng)為L(zhǎng)=N1+N2-1。
同理,對(duì)線性非時(shí)變連續(xù)系統(tǒng)來(lái)說(shuō),若連續(xù)時(shí)間信號(hào)x(t)是系統(tǒng)的輸入,h(t)是系統(tǒng)在單位脈沖作用下的單位沖激響應(yīng),則系統(tǒng)在零狀態(tài)的輸出為它們的卷積積分。
線性卷積是數(shù)字信號(hào)處理中最常見(jiàn)的一種基本運(yùn)算,不僅用于系統(tǒng)分析還用于系統(tǒng)設(shè)計(jì)。如果代表濾波器的脈沖響應(yīng)則卷積運(yùn)算就是一種線性濾波,y(n)是信號(hào)x(n)通過(guò)濾波器后的響應(yīng)。
卷積性質(zhì)
(1)結(jié)合律:三個(gè)序列卷和運(yùn)算,任意兩個(gè)序列先卷和運(yùn)算,再與第3個(gè)序列作卷和運(yùn)算,其運(yùn)算結(jié)果等同。即
(2)交換律:離散序列卷和運(yùn)算滿足交換律,即兩序列卷和運(yùn)算與卷和次序無(wú)關(guān),即
(3)分配律:兩個(gè)序列先行相加運(yùn)算再與第3個(gè)序列做卷和運(yùn)算,其結(jié)果等于這兩個(gè)序列分別與第3個(gè)序列先做卷和運(yùn)算,然后二者再相加。
離散線性卷積的定義:設(shè)長(zhǎng)度為N1的序列x(n)和長(zhǎng)度為N2的序列h(n)進(jìn)行線性卷積,得到長(zhǎng)度為N1+N2-1的y(n)。離散圓周卷積的定義:圓周卷積是定義在有限長(zhǎng)序列之間的。設(shè)有限長(zhǎng)序列x(n)和h(n)的長(zhǎng)度分別為N1和N2,取N>=max(N1,N2),定義它們的N點(diǎn)圓周卷積6。圓周卷積與線性卷積之間的關(guān)系:當(dāng)有限長(zhǎng)序列x(n)和h(n)的長(zhǎng)度分別為N1和N2,取N>=max(N1,N2),當(dāng)N>=N1+N2-1,則線性卷積與圓周卷積相同。對(duì)于線性卷積,一般直接比較麻煩,由上可知當(dāng)取點(diǎn)數(shù)足夠多時(shí)(點(diǎn)數(shù)不夠補(bǔ)零),可求解圓周卷積即可,而圓周卷積又可通過(guò)FFT實(shí)現(xiàn),從而實(shí)現(xiàn)線性卷積通過(guò)FFT和IFFT實(shí)現(xiàn)。
自相關(guān)檢測(cè)基本原理:
設(shè)混有隨機(jī)噪聲的信號(hào)為
將f(t)同時(shí)輸入到相關(guān)接收機(jī)的2個(gè)通道,其中一路經(jīng)過(guò)延遲電路,使它延遲時(shí)間r,然后將經(jīng)延遲后的f(t-T)和未經(jīng)延遲的f(t)送入相敏檢波器(乘法器),再將乘積積分,取平均值,從而得到f(t)的自相關(guān)函數(shù)R(T)。
由于信號(hào)與噪聲是不相關(guān)的,根據(jù)互相關(guān)函數(shù)的性質(zhì)知,Rns(T)=Rsn(T)=0,則有R(T)=Rss(t)+Rnn(t)。假設(shè)噪聲的均值為零,根據(jù)自相關(guān)函數(shù)的性質(zhì)知,隨著t的增大,噪聲自相關(guān)函數(shù)Rnn(T)衰減至零,結(jié)果使包含著s(t)信息的e。Rss(T)相對(duì)突出從而達(dá)到檢測(cè)信號(hào)的目的。
五、思考題
(1)對(duì)于無(wú)限長(zhǎng)序列序列的線性卷積的實(shí)現(xiàn),能否利用直接編程計(jì)算的方式,為什么?
(2)試從區(qū)間端點(diǎn)及長(zhǎng)度兩方面總結(jié)有限長(zhǎng)序列線性卷積的結(jié)果序列的非零值區(qū)間與做卷積的兩個(gè)有限長(zhǎng)序列的非零值區(qū)的關(guān)系。
(3)結(jié)合實(shí)驗(yàn)或仿真結(jié)果說(shuō)明在對(duì)周期信號(hào)進(jìn)行自相關(guān)序列的計(jì)算時(shí)為什么總要先去掉直流成分?
六、總結(jié)
通過(guò)這次實(shí)驗(yàn),讓我知道序列的卷積和可以用matlab編程實(shí)現(xiàn),并且實(shí)現(xiàn)的方法比較簡(jiǎn)單,而且matlab本身有豐富的函數(shù)庫(kù),畫(huà)圖、求卷積和時(shí)只要調(diào)用相應(yīng)的函數(shù)即可。這次實(shí)驗(yàn)的難點(diǎn)主要就在寫(xiě)conv()函數(shù)和各序列長(zhǎng)度的計(jì)算,如果不注意其中的計(jì)算關(guān)系則很容易出錯(cuò),而conv()只要寫(xiě)錯(cuò),后面的題目的圖形就不能準(zhǔn)確的繪制出來(lái)。對(duì)于后面的兩個(gè)小題只要把相應(yīng)的序列寫(xiě)出來(lái),寫(xiě)入用matlab表示的矩陣中,在調(diào)用dconv()畫(huà)出圖形即可。由于matlab這門課的學(xué)習(xí)距現(xiàn)在隔的的時(shí)間較長(zhǎng),所以,在實(shí)驗(yàn)之前應(yīng)該做好預(yù)習(xí)準(zhǔn)備,熟悉matlab的基本操作,熟悉matlab相應(yīng)函數(shù)的用法,這樣,在實(shí)驗(yàn)中才能比較快速的完成實(shí)驗(yàn)的要求,就不會(huì)感到無(wú)從下手。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的序列的卷积运算与相关运算——MATLAB的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 每天一个实用小技巧!教你在Mac上快速输
- 下一篇: 「兼容M1」Royal TSX for