離散信號與系統分析(上)

1、利用MATLAB產生離散信號函數

1.前言部分code

stem(X,Y):在X的指定點處畫出數據序列Y;blog

stem(X,Y,'filled'):以實心的方式畫出莖稈;im

axis([xmin,xmax,ymin,ymax]):設置當前圖形的座標範圍,分別爲x軸的最小、最大值,y軸的最小、最大值;數據

2.實驗部分
<代碼塊>
莖狀圖 db

k=-2:1:4;
x=[2,1,1,-1,3,0,2];
stem(k,x);
axis([-3,5,-1.5,3.5])

實心莖狀圖img

k=-2:1:4;
x=[2,1,1,-1,3,0,2];
stem(k,x,'filled');
axis([-3,5,-1.1,3.1])

實驗結果圖dba

3.結果分析部分matlab

matlab只能表示一個有限長度的序列,而不能表示無窮大的序列。co

2、利用MATLAB計算系列卷積與相關

1.前言部分

卷積函數:conv
w = conv(u,v): 返回向量 u 和 v 的卷積。若是 u 和 v 是多項式係數的向量,對其卷積與將這兩個多項式相乘等效。

相關函數:xcorr
c = xcorr(x,y):返回矢量長度爲2*N-1互相關函數序列,其中x和y的矢量長度均爲N,若是x和y的長度不同,則在短的序列後補零直到二者長度相等。

2.實驗部分

x=[1,2,3,4];
h=[2,1,3];
y1=conv(x,h)
y2=xcorr(x,h)
y3=conv(h,x)
y4=xcorr(h,x)
y5=xcorr(x,x)
y6=xcorr(h,h)

輸出結果

y1 =

2     5    11    17    13    12

y2 =

-0.0000 3.0000 7.0000 13.0000 19.0000 10.0000 8.0000

y3 =

2     5    11    17    13    12

y4 =

8.0000   10.0000   19.0000   13.0000    7.0000    3.0000   -0.0000

y5 =

4.0000   11.0000   20.0000   30.0000   20.0000   11.0000    4.0000

y6 =

6     5    14     5     6

3.結果分析部分

從數字信號處理的角度方面來看,自相關運算能夠用卷積運算來代替;在此我就不擺複雜公式了,簡單的列舉幾個結論;

自相關函數:r[-n]=r[n] 偶對稱序列,關於x=0對稱;能夠用xcorr[-n]=xcorr[n]表示;如實驗結果y5,y6;

r[n]在n=0處的數值最大;如實驗結果y5,y6中30.0000、14分別爲其序列中的最大值;

互相關函數xcorr[X,Y]=-xcorr[Y,X],可見xcorr[X,Y]與xcorr[Y,X]互爲其翻轉序列;如實驗結果y4,y6;

相關文章
相關標籤/搜索