资源描述:
《实验一、数字信号处理基础》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一:数字信号处理基础一、实验目的1、熟悉并掌握离散系统的差分方程表示法;2、加深对冲激响应和卷积分析方法的理解;3、加深对离散信号的DFT的理解;4、熟悉离散系统的频率响应分析方法、加深对零、极点分布的概念理解;5、掌握Matlab常用函数的使用方法。二、实验原理1.LTI系统的表示在时域中,离散时间系统对输入信号或者延迟信号进行运算处理,生成具有所需特性的输出信号,具体框图如下:其输入、输出关系可用以下差分方程描述:输入信号分解为冲激信号,记系统单位冲激响应,则系统响应为如下的卷积计算式:当时,h[n]是有限长度的(n=1:M),称系统为FIR
2、系统;反之,称系统为IIR系统。2.离散傅里叶变换(DFT)的定义N点序列的DFT和IDFT变换定义式如下:,,13利用旋转因子具有周期性,可以得到快速算法(FFT)。3.离散时间系统的变换域分析方法离散系统的时域方程为其变换域分析方法如下:频域:系统的频率响应为:Z域:系统的转移函数为:分解因式:,其中和称为零、极点。三、预习要求1、在MATLAB中,熟悉利用函数y=filter(b,a,x)实现差分方程的使用方法;2、在MATLAB中,熟悉用函数y=conv(x,h)计算卷积的使用方法;3、在MATLAB中,熟悉用函数y=impz(b,a)求系统
3、冲激响应的使用方法。4、在MATLAB中,熟悉用函数y=stepz(b,a)求系统冲激响应的使用方法。5、在MATLAB中,函数和计算N点序列的DFT正、反变换的使用方法。6、在MATLAB中,熟悉函数tf2zp、zplane、freqz、residuez、zp2sos的使用。13函数的使用方法:1、filter:这是一个一维数字滤波器;也可以用作卷积运算,结果与conv函数一样。y=filter(A,B,X),x为待处理序列,H=B/A为一个系统函数,y的结果是H与X相乘后作傅氏反变换的结果,如果A=1,则y为两个序列的卷积。2、conv:求卷积函
4、数,y=conv(x,h),y是x与h卷积的结果。3、impz:求系统的冲激响应。[h,t]=impz(b,a):b、a分别为系统的传递函数的分子和分母系数向量。返回系统(b,a)的冲激响应h和相应的时间轴向量。4、stepz:求系统的单位阶跃响应。[s,n]=stepz(b,a):求解离散系统的单位阶跃响应,其中b、a为向量,n为时间序列[s,n]=stepz(b,a,N):求解离散系统的单位阶跃响应,N为采样点数stepz(b,a):在当前窗口,用stem(n,s)绘出图形。5、求离散时间序列的傅立叶变换和反变换:X=fft(x,N),x=iff
5、t(X,N)其中,X为x的DFT变换,而x则是X的傅立叶反变换,N为计算的点数,可以能过上面两个函数实现DFT。6、tf2ss:由传递函数到状态空间的转换。[A,B,C,D]=tf2ss(NUM,DEN),NUM,DEM为向量H(s)=NUM(s)/DEN(s)到x=Ax+Bu,y=Cx+Du7、zplane(b,a):绘制由行向量b和a构成的系统函数的零极点分布图;zplane(z,p):绘制由列向量z确定的零点、列向量p确定的极点构成的零极点分布图。8、freqz:求离散时间系统的频率响应函数;[h,w]=freqz(b,a,n)。可以得到数字滤
6、波器的n点复频响应值,这n个点均匀地分布这[0,pi]上,并将这n个频点的频率记录在w中,相应的频响值记录在h中,n缺省时取512点。[h,f]=freqz(b,a,n,Fs),用于对H(jw)在[0,Fs/2]上等间隔采样n点,采样点频率及相应频响值分别记录在f和h中,由用户指定Fs(以Hz为单位)的值。9、[r,p,c]=residuez(b,a):把b(z)/a(z)展开成部分分式; [b,a]=residuez(r,p,c):根据部分分式的r、p、c数组,返回有理多项式。10、zp2sos:变系统零极点形式为二阶分割形式13[SOS,G]=Z
7、P2SOS(Z,P,K);SOS为矩阵形式,G为增益。………………………………………………………………………………………………..四、实验内容1.Matlab函数conv和filter的使用1.1实验要求以下程序中分别使用conv和filter函数计算h和x的卷积y和y1,运行程序,并分析y和y1是否有差别,为什么要使用x[n]补零后的x1来产生y1;具体分析当h[n]有M个值,x[n]有M个值,使用filter完成卷积功能,需要如何补零?%ProgramP2_7clf;h=[321-210-403];%impulseresponsex=[1-23-
8、4321];%inputsequencey=conv(h,x);n=0:14;subplot(2,1,1);