实验一、数字信号处理基础

上传人:liy****000 文档编号:115797278 上传时间:2019-11-14 格式:DOC 页数:14 大小:367.50KB
返回 下载 相关 举报
实验一、数字信号处理基础_第1页
第1页 / 共14页
实验一、数字信号处理基础_第2页
第2页 / 共14页
实验一、数字信号处理基础_第3页
第3页 / 共14页
实验一、数字信号处理基础_第4页
第4页 / 共14页
实验一、数字信号处理基础_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《实验一、数字信号处理基础》由会员分享,可在线阅读,更多相关《实验一、数字信号处理基础(14页珍藏版)》请在金锄头文库上搜索。

1、实验一:数字信号处理基础一、实验目的1、熟悉并掌握离散系统的差分方程表示法;2、加深对冲激响应和卷积分析方法的理解;3、加深对离散信号的DFT的理解;4、熟悉离散系统的频率响应分析方法、加深对零、极点分布的概念理解;5、掌握Matlab常用函数的使用方法。二、实验原理1. LTI系统的表示在时域中,离散时间系统对输入信号或者延迟信号进行运算处理,生成具有所需特性的输出信号,具体框图如下: 其输入、输出关系可用以下差分方程描述: 输入信号分解为冲激信号, 记系统单位冲激响应,则系统响应为如下的卷积计算式:当时,hn是有限长度的(n=1:M),称系统为FIR 系统;反之,称系统为IIR系统。2.

2、离散傅里叶变换(DFT)的定义N点序列的DFT和IDFT变换定义式如下:,利用旋转因子具有周期性,可以得到快速算法(FFT)。3. 离散时间系统的变换域分析方法离散系统的时域方程为其变换域分析方法如下:频域:系统的频率响应为:Z域:系统的转移函数为:分解因式:,其中和称为零、极点。三、预习要求1、在MATLAB 中,熟悉利用函数y = filter(b,a,x)实现差分方程的使用方法;2、在MATLAB 中,熟悉用函数y=conv(x,h)计算卷积的使用方法;3、在MATLAB 中,熟悉用函数y=impz(b,a)求系统冲激响应的使用方法。4、在MATLAB 中,熟悉用函数y=stepz(b,

3、a)求系统冲激响应的使用方法。5、在MATLAB中,函数和计算N点序列的DFT正、反变换的使用方法。6、在MATLAB中,熟悉函数tf2zp、zplane、freqz、residuez、zp2sos的使用。 函数的使用方法:1、filter:这是一个一维数字滤波器;也可以用作卷积运算,结果与conv函数一样。y = filter(A,B,X),x为待处理序列,H=B/A为一个系统函数,y的结果是H与X相乘后作傅氏反变换的结果,如果A=1,则y为两个序列的卷积。2、conv:求卷积函数,y=conv(x,h),y是x与h卷积的结果。3、impz:求系统的冲激响应。h,t=impz(b,a):b、

4、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=ifft(X,N)其中,X为x的DFT变换,而x则是X的傅立叶反变换,N为计算的点数,可以能过上面两个函数实现DFT。6、tf2ss:由传递函数到状态空间的转换。A,B,C,D

5、=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)。可以得到数字滤波器的n点复频响应值,这n个点均匀地分布这0,pi上,并将这n个频点的频率记录在w中,相应的频响值记录在h中,n缺省时取512点。h,f=freqz(b,a,n,Fs),用于对H(jw)在0,Fs/2上等间隔采样n点,采

6、样点频率及相应频响值分别记录在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:变系统零极点形式为二阶分割形式SOS,G = ZP2SOS(Z,P,K);SOS为矩阵形式,G为增益。.四、实验内容1. Matlab函数conv和filter的使用1.1 实验要求以下程序中分别使用conv和filter函数计算h和x的卷积y和y1,运行程序,并分析y和y1是否有差别,为什么要使用xn补零后的x1来产生y1;具体分析当

7、hn有M个值,xn有M个值,使用filter完成卷积功能,需要如何补零?% Program P2_7clf;h = 3 2 1 -2 1 0 -4 0 3; %impulse responsex = 1 -2 3 -4 3 2 1; %input sequencey = conv(h,x);n = 0:14;subplot(2,1,1);stem(n,y);xlabel(Time index n); ylabel(Amplitude);title(Output Obtained by Convolution); grid;x1 = x zeros(1,8);y1 = filter(h,1,x1

8、);subplot(2,1,2);stem(n,y1);xlabel(Time index n); ylabel(Amplitude);title(Output Generated by Filtering); grid; 1.2 实验结果与分析上面程序的运行结果如下:将程序作如下改动:h = 3 2 1 -2 1 0 -4 0 3; %impulse responsex = 1 -2 3 -4 3 2 1; %input sequencey = conv(h,x)y1 = filter(h,1,x)y2 = filter(x,1,h)结果输出如下:y = Columns 1 through

9、10 3 -4 6 -10 9 0 17 2 -9 10 Columns 11 through 15 -2 -20 5 6 3y1 = 3 -4 6 -10 9 0 17y2 = 3 -4 6 -10 9 0 17 2 -9从结果分析可知,conv(h,x)是专门用来做卷积运算的,得出的结果长度为(nh+nx-1),而对于filter(h,1,x),得出的结果长度与第三个参数x相同,而对于前面的运算结果与conv的结果一致,所以,用filter函数进行卷积运算时要对x进行补0操作。当hn有M个值,xn有M个值时,需要令x=x zeros(M-1,1)。.2. Matlab函数impz和step

10、z的使用2.1 实验要求编制程序用impz和stepz分别求解下列两个系统的单位冲激响应和阶跃响应:yn + 0.75 yn-1 + 0.125 yn-2 = xn xn-1yn = 0.25 *(xn-1 + xn-2 + xn-3 + xn-4)给出理论计算结果和程序计算结果并讨论。2.2 程序代码N=16;n=0:N-1;y1=1,.75,0.125;x1=1,-1;y2=1;x2=0.25,0.25,0.25,0.25;h1=6*(-0.5).n.*(n=0)-5*(-0.25).n.*(n=0); %式1的单位冲激响应理论计算值h2=2*(-0.5).n.*(n=0)-(-0.25)

11、.n.*(n=0); %式1的单位阶跃响应理论计算值h3=0,0.25,0.25,0.25,0.25,zeros(1,11);h4=0.25*(n=1)+(n=2)+(n=3)+(n=4);subplot(4,2,1);impz(x1,y1,N); %求系统的冲激响应title(式1的冲激响应matlab结果);subplot(4,2,2);stem(n,h1);title(式1的冲激响应理论计算结果);xlabel(n(samples);ylabel(Amplitude);subplot(4,2,3);stepz(x1,y1,N); %求系统的阶跃响应title(式1的阶跃响应matlab结

12、果);subplot(4,2,4);stem(n,h2);title(式1的阶跃响应理论计算结果);xlabel(n(samples);ylabel(Amplitude);subplot(4,2,5);impz(x2,y2,N);title(式2的冲激响应matlab结果);subplot(4,2,6);stem(n,h3);title(式2的冲激响应理论计算结果);xlabel(n(samples);ylabel(Amplitude);subplot(4,2,7);stepz(x2,y2,N);title(式2的阶跃响应matlab结果);subplot(4,2,8);stem(n,h4);

13、title(式2的阶跃响应理论计算结果);xlabel(n(samples);ylabel(Amplitude);.2.3 实验结果与分析理论计算:对式1:yn + 0.75 yn-1 + 0.125 yn-2 = xn xn-1单位冲击响应为:阶跃响应为:对式2:yn = 0.25 *(xn-1 + xn-2 + xn-3 + xn-4)单位冲击响应为:阶跃响应为: 由结果图像可得,通过impz和stepz计算的单位冲激响应和阶跃响应与理论计算结果基本一致。.3. 用N点DFT计算2N点实数的DFT3.1 实验要求2N点实数序列N=64。用一个64点的复数FFT程序,一次算出,并绘出 的图形。3.2 实现原理vn是长度为2N的实序列,Vk表示该实序列的2N点DFT。定义两个长度均为N的实序列gn和hn为gn=v2n,hn=v2n+1, 。Gk和Hk表示它们的N点DFT。通过下式可以算出vn的2N点傅立叶变换。在matlab中,可以运用函数X=fft(x,N)直接计算出xn的N点傅立叶变换。.3.3 实现代码N=64;n=0:N-1;k=0:2*N-1;x=cos(14*pi*k/N)+0.5*cos(38*

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号