實驗一
離散時間訊號分析
班級
學號
姓名
日期
一、實驗目的
掌握兩個序列的相加、相乘、移位、反褶、卷積等基本運算。
二、實驗原理
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。如果非要對應上的話,可以將復指數序列的頻率單位看作弧度 取樣點。用單位圓上運動點的軌跡來演示 連續域的頻率是點的角速度 ...