MATLAB--數字信号實驗
前言
MATLAB 是一套功能強大的工程計算及資料處理軟體,廣泛應用于工業,電子,醫療和建築等衆多領域。它是一種面向對象的,互動式程式設計語言,其結構完整又優良的可移植性。它在矩陣運算,數字信号處理方面有強大的功能。另外,MATLAB提供了友善的繪圖功能,便于使用者直覺地輸出處理結果。
本課程實驗要求學生運用MATLAB程式設計完成一些數字信号處理的基本功能,加深對教學内容的了解。
實驗1 常見離散信号的MATLAB産生和圖形顯示和離散系統的差分方程、沖激響應和卷積分析
實驗目的:1、加深對常用離散信号的了解;
2、加深對離散系統的差分方程、沖激響應和卷積分析方法的了解。
3、驗證線性系統的線性
實驗原理:(一)常用的離散信号
機關抽樣序列
在MATLAB中可以利用zeros()函數實作。
如果在時間軸上延遲了k個機關,得到即:
2.機關階躍序列
在MATLAB中可以利用ones()函數實作。
3.正弦序列
在MATLAB中
4.複正弦序列
在MATLAB中
5.指數序列
在MATLAB中
(二)離散系統的差分方程
離散系統
其輸入、輸出關系可用以下差分方程描述:
輸入信号分解為沖激信号,。記系統機關沖激響應
,則系統響應為如下的卷積計算式:
當時,h[n]是有限長度的(n:[0,M]),稱系統為FIR系統;反之,稱系統為IIR系統。
在MATLAB中,可以用函數y=Filter(p,d,x) 求解差分方程,也可以用函數 y=Conv(x,h)計算卷積。
實驗内容:1、編制程式産生上述5種信号(長度可輸入确定),并繪出其圖形。
2、編制程式求解下列兩個系統的機關沖激響應和階躍響應以及輸入信号為,并繪出其圖形。(利用遞推解法和MATLAB提供的FILTER函數和CONV函數)
3、計算下列卷積,并圖示各序列及其卷積結果。
4、編制程式驗證系列系統的線性性質。
輸入序列可采用
實驗要求:(1)預先閱讀附錄(MATLAB基礎介紹);
(2)讨論複指數序列的性質。
(3)給出理論計算結果和程式計算結果并讨論。
附錄:近似程式
1、clear,n0=0;nf=10;ns=3;
n1=n0:nf;
x1=[zeros(1,ns-n0),1,zeros(1,nf-ns)];%機關脈沖序列的産生
%用邏輯試産生機關脈沖序列更為簡潔n1=n0:nf;x1=[(n1-ns)==0]
n2=n0:nf;x2=[zeros(1,ns-n0),ones(1,nf-ns+1)];%機關階躍序列的産生
%用邏輯試産生機關階躍序列語句n1=n0:nf;x1=[(n1-ns)>=0]
n3=n0:nf;x3=exp((-0.2+0.5j)*n3);%複指數序列
subplot(2,2,1),stem(n1,x1);title('機關脈沖序列');
subplot(2,2,3),stem(n2,x2);title('機關階躍序列');
subplot(2,2,2),stem(n3,real(x3));line([0,10],[0,0]);
title('複指數序列'),ylabel('實部');
subplot(2,2,4),stem(n3,imag(x3));line([0,10],[0,10]),%畫橫坐标
ylabel('虛部')
2、clear;close all;
N=64;n=0:N-1;m=10;
B=[1,0.66,0.5,0.3,0.4,4,1];
A=[1,3,4,4,1,22,2];
x1=[n==0];
y1=filter(B,A,x1);
x2=[(n-m)==0];
y2=filter(B,A,x2);
x3=[n>=0];
y3=filter(B,A,x3);
x4=[(n>=0)&(n<32)];
y4=filter(B,A,x4);
x5=exp(j*pi*n/8);
y5=filter(B,A,x5);
subplot(3,2,1),stem(n,y1);title('y1');
subplot(3,2,2),stem(n,y2);title('y2');
subplot(3,2,3),stem(n,y3);
title('y3');
subplot(3,2,4),stem(n,y4);title('y4');
subplot(3,2,5),stem(n,y5);title('y5');
3、clear;close all;
Nx=20;Nh=10;m=5;
n=0:Nx-1;
x1=(0.9).^n