數字訊號處理實驗二
一﹑實驗目的:
通過Matlab實現基本訊號的表示和運算。理解訊號的構成和性質。
二﹑實驗要求與內容:
1.學習使用基本訊號在Matlab中的基本表示方法。
2.瞭解本實驗中的擴充套件函式的結構和組成,實現自己設計的擴充套件函式的程式設計。
(1)寫一新的卷積函式conv_m,它可求出帶下標的序列卷積。
3.掌握複雜訊號的表示方法;並對複雜訊號進行程式設計實現。
(1)產生下列序列並繪出離散圖。
(a) x(n)=2δ(n+2)-δ(n-4) -5≤n≤5。
(b) x(n)=n[u(n)-u(n-10)]+10a[u(n-10)-u(n-20)]
0≤n≤20。
(c)x(n)=cos(0.04n)=0.2w(n) 0≤n≤50。其中w(n)是均值為零、方差為1的白噪聲序列
4.掌握復序列x(n)的實部﹑虛部﹑幅值和相位離散圖,並程式設計實現。
產生覆信號:x(n)= -10≤n≤10。並畫出復序列x(n)的實部、虛部、幅值、和相位離散圖。
5.設線性時不變(LTI)系統的單位衝擊響應為h(n)=(0.9)^(n)u(n);輸入序列為x(n)=u(n)-u(n-10);求系統輸出y(n)。
三、實驗步驟
1.先在Matlab中建立儲存三個建構函式並儲存為.m格式。
建立單位取樣序列儲存
function[x,n]=impseq(n0,n1,n2)
n=[n1:n2];
x=[(n-n0)>=0];
2.建立單位階躍序列儲存
function[x,n]=stepseq(n0,n1,n2)
n=[n1:n2];
x=[(n-n0)==0];
3.編寫新卷積函式conv_m儲存。
function[y,yn] =conv_m(x,xn,h,hn)
yn1 = xn(1) +hn(1);
yn2 = xn(length(x)) +hn(length(h));
yn = [yn1:yn2];
y = conv(x,h);
4.對實驗任務進行程式設計實現。
四、實驗程式及實驗結果
2、(1)
function[y,n]=conv_m[x,n1,h,n2]
y=conv(x,h);
n=(min(n1)+min(n2)):(max(n1)+max(n2))
3、
A)n=[-5:5];
x=2*impseq(-2,-5,5)-impseq(4,-5,5);
subplot(2,2,1);stem(n,x);title('Sequencein Eample 3.a');
B)n=[0:20];
x1=n.*(stepseq(0,0,20)-stepseq(10,0,20));
x2=10*exp(-0.3*(n-10)).*(stepseq(10,0,20)-stepseq(20,0,20));
x=x1+x2;
subplot(2,2,2);stem(n,x);title('Sequencein Eample 3.b');
C)n=[0:50];
f=randn(1,51);
x=cos(0.04*pi.*n)+0.2*f;
subplot(2,2,3);stem(n,x);title('Sequencein Eample 3.c');
4、n=[-10:10];
x=exp((-0.1+j*0.3)*n);
subplot(2,2,1);
stem(n,real(x));
title('real x');xlabel('n');
subplot(2,2,2);
stem(n,imag(x));
title('imag x');xlabel('n');
subplot(2,2,3);
stem(n,abs(x));
title('abs x');xlabel('n');
subplot(2,2,4);
stem(n,angle(x));
title('angle x');xlabel('n')
例題
n=[-5:50];
u1=stepseq(0,-5,50);
u2=stepseq(10,-5,50);
x=u1-u2;
h=((0.9).^n).*u1;
figure(1)
subplot(3,1,1);stem(n,x);axis([-5,50,0,2])
title(' IputSequence ')
ylabel('x(n)')
subplot(3,1,2);stem(n,h);axis([-5,50,0,2])
ylabel('h(n)')
%outputresponse
[y,ny]=conv_m(x,n,h,n);
subplot(3,1,3);stem(ny,y);axis([-5,50,0,8])
gtext('ImpulseResponse')
xlabel('n'),ylabel('y(n)')
五、實驗總結
學會了基本訊號在Matlab中的基本表示方法,做實驗時注意數字相乘和字母相乘需要加點,同時注意提前定義所有需要的基本擴充套件函式,做實驗時需要仔細認真,注意中英文的切換問題,不能出現中文空格!