一、實驗目的
(1)掌握離散時間訊號時域運算的基本實現方法。
(2)熟悉相關函式的呼叫格式及作用。
(3)掌握離散訊號的基本運算。
(4)掌握訊號的分解,會將任意離散訊號分解為單位脈衝訊號的線性組合。
二、實驗原理
離散時間訊號的運算包括訊號的相加和相乘。訊號的時域變換包括訊號的平移、反折、倒相以及尺度變換。
三、實驗內容
1.驗證性實驗:
(1)序列的加法
matlab程式為:
x1 = -2:2;k1 = -2:2;
x2 = [1 -1 1];k2 = -1:1;
k = min([k1,k2]):max([k1,k2]);
f1 = zeros(1,length(k));
f2 = zeros (1,length(k));
f1(find((k>=min(k1))&(k<=max(k1))==1))=x1;
f2(find((k>=min(k2))&(k<=max(k2))==1))=x2;
f = f1+f2;stem(k,f,'filled');
axis ([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5]);
title ('序列的加法');
(2)序列的乘法
matlab程式為:
x1 = -2:2;k1 = -2:2;
x2 = [1 -1 1];k2 = -1:1;
k = min([k1,k2]):max([k1,k2]);
f1 = zeros(1,length(k));
f2 = zeros (1,length(k));
f1(find((k>=min(k1))&(k<=max(k1))==1))=x1;
f2(find((k>=min(k2))&(k<=max(k2))==1))=x2;
f = f1.*f2;
stem (k,f,'filled');
axis ([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5]);
title ('序列的乘法');
(3)序列的翻轉
matlab程式為:
x1 = -2:2;
k1 = -2:2;
k = -fliplr(k1);
f = fliplr(x1);
stem (k,f,'filled');
axis ([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5]);
title ('序列的翻轉');
(4)序列的倒相
matlab程式為:
x1 = -2:2;
k1 = -2:2;
k = k1;
f = -x1;
stem (k,f,'filled');
axis ([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5]);
title ('序列的倒相');
(5)序列的平移
matlab程式為:
x1 = -2:2;
k1 = -2:2;
k0 = 2;
k = k1+k0;
f = x1;
stem (k,f,'filled');
axis ([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5]);
title ('序列的平移');
2.程式設計實驗:
已知序列,對應的k值為-3=, , ,
, ,解答:
(1)matlab程式為:
x1=[2,3,1,2,3,4,3,1];
k1=-3:4;k0=2;
k=k1+k0;f=x1;
stem(k,f,'filled');
axis([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5]);
title ('f_(k)=f(-k)');
(2)matlab程式為:
x1=[2,3,1,2,3,4,3,1];
k1=-3:4;
k=-fliplr(k1);
f=fliplr(x1);
stem(k,f,'filled');
axis([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5]);
title ('f_(k)=f(k-2)');
(3)matlab程式為:
x1=[2,3,1,2,3,4,3,1];
k1=-3:4;k0=1;
k1=k1+k0;
ns=0;
k2=0:10;
k=min([k1,k2]):max([k1,k2]);
x2=[zeros(1,ns-0),ones(1,10-ns+1)];
f1=zeros(1,length(k));
f2=zeros(1,length(k));
f1(find((k>=min(k1))&(k<=max(k1))==1))=x1;
f2(find((k>=min(k2))&(k<=max(k2))==1))=x2;
f=f1.*f2;stem(k,f,'filled');
axis([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5]);
title ('f_(k)=f(k-1)u(k)');
(4)matlab程式為:
x1=[2,3,1,2,3,4,3,1];
k1=-3:4;k0=2;
k3=k1+k0;f=x1;k=-fliplr(k3);
f=fliplr(x1);
stem(k,f,'filled');
axis([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5]);
title ('f_(k)=f(-k+2)');
(5)matlab程式為:
x1=[2,3,1,2,3,4,3,1];
k1=-3:4;k0=1;
k=k1-k0;f=x1;
stem(k,f,'filled');
axis([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5]);
title ('f_(k)=f(k+1)');
(6)matlab程式為:
x1=[2,3,1,2,3,4,3,1];
k1=-3:4;k0=2;
k1=k1+k0;
ns=0;
k2=0:10;
k=min([k1,k2]):max([k1,k2]);
x2=[zeros(1,ns-0),ones(1,10-ns+1)];
f1=zeros(1,length(k));
f2=zeros(1,length(k));
f1(find((k>=min(k1))&(k<=max(k1))==1))=x1;
f2(find((k>=min(k2))&(k<=max(k2))==1))=x2;
f=f1.*f2;stem(k,f,'filled');
axis([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5]);
title ('f_(k)=f(k-2)u(k)');
(7)matlab程式為:
x1=[2,3,1,2,3,4,3,1];
k1=-3:4;k0=-2;
k1=k1+k0;
ns=0;
k2=0:10;
k=min([k1,k2]):max([k1,k2]);
x2=[zeros(1,ns-0),ones(1,10-ns+1)];
f1=zeros(1,length(k));
f2=zeros(1,length(k));
f1(find((k>=min(k1))&(k<=max(k1))==1))=x1;
f2(find((k>=min(k2))&(k<=max(k2))==1))=x2;
f=f1.*f2;stem(k,f,'filled');
axis([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5]);
title ('f_(k)=f(k+2)u(k)');
上機實驗一連續時間訊號的時域分析
1 實驗目的 1 掌握連續時間訊號時域運算的基本方法 2 掌握相關函式的呼叫格式及應用 3 掌握連續訊號的基本運算 4 掌握利用計算機進行卷積運算的原理和方法 5 熟悉連續訊號卷積運算函式conv的應用 二 實驗內容 1 驗證性實驗 1 相加 實現兩個連續訊號的相加 matlab程式 clear a...
實驗二離散時間系統的時域和頻域分析 學生
相關matlab函式 1.求解零狀態響應 filter 函式 y filter b,a,x 由向量b和a組成的系統對輸入x進行濾波 2.求解單位序列響應 impz 函式 1 h impz b,a 計算單位序列響應的序列值,取樣點個數由matlab自動選取 2 h impz b,a,n 計算指定範圍內...
上機實驗四 非週期訊號的頻譜分析
1.驗證試驗 1.門訊號的傅利葉變換 matlab程式 clear all clc syms t w定義符號變數 ut sym he iside t 0.5 he iside t 0.5 借助階躍函式定義門函式 subplot 2,1,1 ezplot ut hold on axis 1 1 0 1...