實驗一 離散時間訊號分析

2021-08-20 06:23:38 字數 4695 閱讀 9965

實驗一

離散時間訊號分析

班級

學號

姓名

日期

一、實驗目的

掌握兩個序列的相加、相乘、移位、反褶、卷積等基本運算。

二、實驗原理

1.序列的基本概念

離散時間訊號在數學上可用時間序列

來表示,其中

代表序列的第

n個數字,

n代表時間的序列,

n的取值範圍為

的整數,

n取其它值

沒有意義。離散時間訊號可以是由模擬訊號通過取樣得到,例如對模擬訊號

進行等間隔取樣,取樣間隔為

t,得到

乙個有序的數字序列就是離散時間訊號,簡稱序列。

2.常用序列

常用序列有:單位脈衝序列(單位抽樣)

、單位階躍序列

、矩形序列

、實指數序列、復指數序列、正弦型序列等。

3.序列的基本運算

序列的運算包括移位、反褶、和、積、標乘、累加、差分運算等。

4.序列的卷積運算

=-=å

¥-¥=

上式的運算關係稱為卷積運算,式中

*代表兩個序列卷積運算。兩個序列的卷積是乙個序列與另乙個序列反褶後逐次移位乘積之和,故稱為離散卷積,也稱兩序列的線性卷積。其計算的過程包括以下

4個步驟。

(1)反褶:先將

和的變數

換成,變成

和,再將

以縱軸為對稱軸反褶成。(

2)移位:將

移位,得

。當為正數時,右移

n位;當

n為負數時,左移位。(

3)相乘:將

和的對應點值相乘。

(4)求和:將以上所有對應點的乘積累加起來,即得

。三、主要實驗儀器及材料

微型計算機、matlab6.5 教學版、

tc 程式設計環境。

四、實驗內容

(1)用

matlab 或c

語言編制兩個序列的相加、相乘、移位、反褶、卷積等的程式;

(2)畫出畫出兩個序列運算以後的圖形;

(3)對結果進行分析;

(4)完成實驗報告。

五、實驗結果

六、實驗總結

五、實驗結果

(1) 繪製基本序列

function

y=impdt(n)

y=(n==0)

在命令視窗輸入並執行:

n=-5:5;

x=impdt(n);

stem(n,x,'fill'),xlabel('n'),grid on;

title('單位取樣序列

')axis([-5 5 -0.1 1.1])

執行後的圖形如下所示:

(2) 單位階躍序列

新建指令碼檔案

udt.m

:function

y=udt(n)

y=n>=0

在命令視窗輸入並執行:

n=-4:4;

x=udt(n);

stem(n,x,'fill'),xlabel('n'),grid on;

title(『單位階躍序列』

)axis([-4 4 -0.1 1.1])

執行後的圖形如下所示:

(3) 矩形序列

新建指令碼檔案

udt.m

:function

y=udt(n)

y=n>=0

在命令視窗輸入並執行:

n=-10:10;

x=udt(n)-udt(n-5);

stem(n,x,'fill'),xlabel('n'),grid on;

title(『矩陣序列』

)axis([-10 10 -0.1 1.1])

執行後的圖形如下所示:

(4) 指數序列

在命令視窗輸入並執行:

n=-5:5;

a1=1.7;a2=-1.7;a3=0.2;a4=-0.2;

x1=a1.^n;x2=a2.^n;x3=a3.^n;x4=a4.^n;

subplot(221);

stem(n,x1,'fill'),grid on;

xlabel('n');title('x(n)=1.7^n')

subplot(222);

stem(n,x2,'fill'),grid on;

xlabel('n');title('x(n)=(-1.7)^n')

subplot(223);

stem(n,x3,'fill'),grid on ;

xlabel('n');title('x(n)=0.2^n')

subplot(224);

stem(n,x4,'fill'),grid on;

xlabel('n');title('x(n)=(-0.2)^n')

執行後的圖形如下所示:

(5) 正弦序列

在命令視窗輸入並執行:

n=-15:15;

x=sin(pi/5*n);

stem(n,x,'fill'),xlabel('n'),ylabel('x(n)'),grid on;

title('正弦序列

')axis([-12 12 -1.5 1.5])

執行後的圖形如下所示:

2、序列間的基本運算

(1) 單位取樣與單位階躍序列的相加

在命令視窗輸入並執行:

n=-7:7;

x=impdt(n);

axis

([-3 4 -0.5 1.5]);

x=udt(n);

axis([-8 8 -0.1 2.1]);

x=impdt(n)+udt(n);

stem(n,x,'fill'),xlabel('n'),grid on;

title('單位階躍與單位取樣序列求和

')執行後的圖形如下所示:

(2) 相乘

在命令視窗輸入並執行:

n1=-1:4;

n2=-2:5;

x1=[1,2,0,-1,-2,0];

x2=[-1,1,-1,0.8,0,-1,3,1];

[y,n]=seqmult(x1,n1,x2,n2);

subplot(221);

stem(n1,x1,'.');grid;xlabel('n1');ylabel('y1)

subplot(222);

stem(n2,x2,'');grid;xlabel('n2');ylabel('y2')

subplot(212);stem(n,y,'.');grid;

title('兩序列相乘後的

');xlabel('n');ylabel('y');

執行後的圖形如下所示:

(3) 卷積

在命令視窗輸入並執行:

convwthn.m檔案

function[y,ny] = convwthn(x,xn,h,hn)

y = conv(x,h);

yn1=xn(1) + hn(1);

yn2=xn(end) + hn(end);

ny=[yn1:yn2];

fx>>x=[1,2,3,-1,-2];xn=-1:3;

h=[2,2,1,-1,4,-2];hn=-3:2

[y,yn]=convwthn(x,xn,h,hn);

stem(yn,y,'fill');xlabel('n');ylabel('y(n)');grid on;

title('單位階躍與單位取樣訊號的卷積

');執行後的圖形如下所示:

(4) 移位

在命令視窗輸入並執行:

n = -2:3;

x= udt(n) - udt(n + 1)

m = -n;

m1 = m -1;

subplot(211);

stem(m,x,'fill'),xlabel('n');grid on

title('移位之前的

');axis([-5 5 -3 3])

subplot(212);

stem(m1,x,'fill'),xlabel('n');grid on

title('移位之後的

');axis([-5 5 -3 3])

執行後的圖形如下所示:

(5) 反轉

在命令視窗輸入並執行:

n = -3:3;

h= udt(n) - udt(n-2)

subplot(211);

stem(n,h,'fill'),xlabel('n');grid on

title('反轉之前的

');axis([-4 4 -1 3])

m = -n;

subplot(212);

stem(m,h,'fill'),xlabel('m');grid on

title('反轉之後的

');axis([-4 4 -1 3])

執行後的圖形如下所示:

六.實驗總結

在此次試驗中,我學會了使用matlab繪製基本的單位脈衝序列(單位抽樣)

、單位階躍序列

、矩形序列

、實指數序列、復指數序列、正弦型序列等

影象,而且掌握了兩個序列的相加、相乘、移位、反褶、卷積等基本運算。

離散時間訊號取樣

1.脈衝串取樣 由取樣過程形成的新序列,在取樣週期n的整數倍點上就等於原序列,而在取樣點之間都是零。原序列 取樣訊號和新序列的時域波形如下 從上圖中可以看出,x n p n xp n 之間的關係可表示為 xp n x n p n 於是,這三者之間的頻域關係可表示為卷積。從上圖可以看出卷積的搬移效果,...

數字訊號處理第一章 離散時間訊號與離散時間系統

演算法與實現 第二版 胡廣書 清華大學出版社 1.離散時間訊號的基本概念 1 離散訊號概述 a 連續時間訊號x t 離散時間訊號 x nts 離散時間序列x n 離散訊號 數碼訊號 b 用有限位的數碼訊號表示無限精度的模擬訊號,帶來量化誤差 2 典型離散訊號 a 單位抽樣訊號 n kronecker...

離散時間訊號與系統

0.復指數 或復正弦 序列的頻率問題 復指數序列表示式ej n中,n為無量綱數,因此 的單位是弧度 所以頻率分別為 和 2pi的訊號是相同的 相對應的連續域頻率的單位是rad s。如果非要對應上的話,可以將復指數序列的頻率單位看作弧度 取樣點。用單位圓上運動點的軌跡來演示 連續域的頻率是點的角速度 ...