實驗一卷積與傅利葉變換
一、實驗目的
1、了解線性卷積與圓周卷積;
2、學會運用matlab求解離散時間系統的卷積和;
3、學會通過求解離散時間訊號的卷積和運算得到系統的零狀態響應;
4、掌握通過傅利葉變換和反變換求取圓周卷積。
二、實驗內容
1. 試用matlab命令求解一下離散時間系統的單位取樣響應。
(1)3y(n)+4y(n-1)+y(n-2)=x(n)+x(n-1)
a=[3,4,1];
b=[1,1];
n=0:30;
impz(b,a,30),
gridon
title('系統單位響應h(n)')
(2)5/2y(n)+6y(n-1)+10y(n-2)=x(n)
a=[5/2,6,10];
b=[1];
n=0:30;
impz(b,a,30),
gridon
title('系統單位響應h(n)')
2.已知某系統的單位取樣響應為h(n)=(7/8)^n*[u(n)-u(n-10)],試用matlab求當激勵訊號為x(n)=u(n)-u(n-5)時,系統的零狀態響應。
nx=-1:5;%x(n)向量顯示範圍(新增了附加零點值)
nh=-2:10; %h(n)向量顯示範圍(新增了附加零點值)
x=udt(nx)-udt(nx-5);
h=(7/8).^nh.*(udt(nh)-udt(nh-10));
y=conv(x,h);
ny1=nx(1)+nh(1); %卷積結果起始點值,卷積結果長度為0到(lengtn(nx)+length(nh-2))。因此卷積結果的時間範圍是將上述長度加上起始點偏移值
ny=ny1+(0:length(nx)+length(nh)-2);
subplot(311)
stem(nx,x,'fill'),grid on
xlabel('n'),title('x(n)')
axis([-4 16 0 3])
subplot(312)
stem(nh,h','fill'),grid on
xlabel('n'),title('h(n)')
axis([-4 16 0 3])
subplot(313)
stem(ny,y,'fill'),grid on
xlabel('n'),title('y(n)=x(n)*h(n)')
axis([-4 16 0 5])
總結:求解離散時間系統的單位取樣響應有兩種方式。一是利用filter,並將激勵設為impdt函式;二是利用控制系統工具箱提供的函式impz來實現呼叫格式為:
impz(b,a,n),其中n通常為正整數,代表單位取樣響應的值的個數。系統的零狀態響應是激勵與系統的單位取樣響應的卷積,求離散訊號卷積和的命令為conv,呼叫格式為y=conv(x,h)。
3、試用matlab求其有限序列x1(n)=(0.8)^n(0n10)與x1(n)=(0.6)^n(0n18)的圓周卷積,(n=20),並畫出結果圖。
% x1的傅利葉變換
n=10;
n=0:1:n-1;
x1=(0.8).^n;
xk=fft(x1,20);
k=0:19;
subplot(3,2,1)
stem(n,x1);
subplot(3,2,2)
stem(k,abs(xk));hold on
% x2的傅利葉變換
n1=18;
n=0:1:n1-1;
x2=(0.6).^n;
xk2=fft(x2,20);
k=0:19;
subplot(3,2,3)
stem(n,x2);
subplot(3,2,4)
stem(k,abs(xk2));
% 時域的圓周卷積對應的頻域的相乘
x3=xk.*xk2;
subplot(3,2,5)
stem(k,abs(x3));
% 傅利葉反變換
x4=ifft(x3);
subplot(3,2,6)
stem(k,abs(x4));
總結:計算兩有限長序列的圓周卷積有兩種方法。一是利用matlab內部用於計算圓周卷積的函式circonv;二是根據公式可知,可以先對兩個時域訊號進行傅利葉變換然後在時域相乘,再用傅利葉反變換回來就是兩個訊號的圓周卷積了。
三、心得體會
1、求解線性卷積與圓周卷積均有兩種方法。一是分別用matlab給定的函式conv和circonv求解,二是先將兩其傅利葉變換後在頻域相乘,再進行傅利葉反變換求解。利用第二種方法求解線性卷積時要注意選取的點數要大於等於兩序列點數之和減一。
2、兩線性卷積和的起始點是兩序列的起始點相加,卷積結果的範圍是起始點的偏移值加上兩序列之和減一。
3、當點數n大於或者等於兩序列點數之和減一時,圓周卷積和線性卷積結果一樣。
4、對差分方程在指定時間範圍內的輸入序列所產生的響應:y=filter(b,a,x)其中x為輸入的離散序列,y為輸出的離散序列,y的長度與x的長度一樣,b與a分別為差分方程右端與左端的係數向量。求取單位取樣響應:
impz(b,a,n)其中,n通常為正整數,代表計算單位取樣響應的樣值個數。
5、求離散序列時間訊號的卷積和:y=conv(x,h)。無法實現無限的累加,只能計算時限訊號的卷積。
6、快速傅利葉變換:y=fft(x),或者y=fft(x,n),n是進行離散傅利葉變換的x的長度,可以通過對x進行補零或者擷取來實現。
數字訊號處理實驗
一 實驗目的 研究不同型別的窗函式,研究一些不同的方法來測試窗函式的效能 專注於有關窄帶訊號的幾個不同的情形。二 實驗原理 訊號是無限長的,而在進行訊號處理時只能採用有限長訊號,所以需要將訊號 截斷 在訊號處理中,截斷 被看成是用乙個有限長的 視窗 看無限長的訊號,或者從分析的角度是無限長的訊號x ...
數字訊號處理實驗
班級 08050742 姓名 劉曉華 學號 41 實驗一頻譜分析與取樣定理 一 實驗目的 1 觀察模擬訊號經理想取樣後的頻譜變化關係。2 驗證取樣定理,觀察欠取樣時產生的頻譜混疊現象 3 加深對dft演算法原理和基本性質的理解 4 熟悉fft演算法原理和fft的應用 二 實驗原理 根據取樣定理,對給...
數字訊號處理實驗
利用fft實現快速卷積 姓名 田昕煜 學號 13081405 班級 通訊四班 指導教師 周爭 一 實驗原理 應用fft實現數字濾波器實際上就是用fft來快速計算有限長度序列的線性卷積。這種方法就是先將輸入訊號x n 通過fft變換為它的頻譜取樣值x k 然後再和fir的頻響取樣值h k 相乘,h k...