上機實驗7離散時間訊號的時域分析

2023-01-11 16:42:01 字數 4122 閱讀 6236

一、實驗目的

(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...