离散时间信号的DTFT实验报告_第1页
离散时间信号的DTFT实验报告_第2页
离散时间信号的DTFT实验报告_第3页
离散时间信号的DTFT实验报告_第4页
离散时间信号的DTFT实验报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一 离散时间系统的时域分析一、实验目的. 运用MATLAB仿真一些简单的离散时间系统,并研究它们的时域特性。. 运用MATLAB中的卷积运算计算系统的输出序列,加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。二、实验原理离散时间系统其输入、输出关系可用以下差分方程描述: 当输入信号为冲激信号时,系统的输出记为系统单位冲激响应,则系统响应为如下的卷积计算式: 当hn是有限长度的(n:0,M)时,称系统为FIR系统;反之,称系统为IIR系统。在MATLAB中,可以用函数y=Filter(p,d,x) 求解差分方程,也可以用函数 y=Conv(x,h)计算卷积。例1 clf;n=0:40

2、;a=1;b=2;x1= 0.1*n;x2=sin(2*pi*n);x=a*x1+b*x2;num=1, 0.5,3;den=2 -3 0.1;ic=0 0; %设置零初始条件y1=filter(num,den,x1,ic); %计算输入为x1(n)时的输出y1(n)y2=filter(num,den,x2,ic); %计算输入为x2(n)时的输出y2(n)y=filter(num,den,x,ic); %计算输入为x (n)时的输出y(n)yt= a*y1+b*y2;%画出输出信号subplot(2,1,1)stem(n,y);ylabel(振幅);title(加权输入a*x1+b*x2的输

3、出);subplot(2,1,2)stem(n,yt);ylabel(振幅);title(加权输出a*y1+b*y2);(一)、线性和非线性系统 对线性离散时间系统,若和分别是输入序列和的响应,则输入的输出响应为,即符合叠加性,其中对任意常量a和b以及任意输入和都成立,否则为非线性系统。(二)、时不变系统和时变系统对离散时不变系统,若是的响应,则输入x(n)=x1(n-n0)的输出响应为y(n)=y1(n-n0),式中n0是任意整数。该输入输出关系,对任意输入序列及其相应的输出成立,若对至少一个输入序列及其相应的输出序列不成立,则系统称之为时变的。(三)、线性卷积假设待卷积的两个序列为有限长序

4、列,卷积运算符在MATLAB中可 命令conv实现。例如,可以把系统的冲激响应与给定的有限长输入序列进行卷积,得到有限长冲激响应系统的输出序列。下面的MATLAB程序实现了该方法。例2 clf; h=3 2 1 -2 1 0 -4 0 3;%冲激 x=1 -2 3 -4 3 2 1 ; %输入序列 y=conv(h,x); n=0:14; stem(n,y); xlabel(时间序号n);ylabel(振幅); title(用卷积得到的输出);grid;三、实验内容与步骤. 假定一因果系统为y(n)-0.4y(n-1)+0.75y(n-2)=2.2403x(n)+2.4908x(n-1)+2.

5、2403x(n-2)用MATLAB程序仿真该系统,输入三个不同的输入序列: ,计算并并显示相应的输出, 和。. 用MATLAB程序仿真步骤1给出的系统,对两个不同的输入序列x(n)和x(n-10),计算并显示相应的输出序列y3(n)和y4(n)。3用MATLAB程序仿真计算下列两个有限长序列的卷积和并显示图形。 四、实验仪器设备计算机,MATLAB软件五、实验要求给出理论计算结果和程序计算结果并讨论。六、实验结果实验1:clf;n=0:40;a=2;b=-3;x1= cos(2*pi*0.1*n);x2=cos(2*pi*0.4*n);x=a*x1+b*x2;den=1, -0.4,0.75;

6、num =2.2403 2.4908 2.2403;%分子系数ic=0 0; %设置零初始条件y1=filter(num,den,x1,ic); %计算输入为x1(n)时的输出y1(n)y2=filter(num,den,x2,ic); %计算输入为x2(n)时的输出y2(n)yn=filter(num,den,x,ic); %计算输入为x (n)时的输出y(n)%画出输出信号subplot(2,2,1)stem(n,y1);ylabel('振幅');title('y1输出');subplot(2,2,2)stem(n,y2);ylabel('振幅

7、9;);title('y2输出');subplot(2,2,3)stem(n,yn);ylabel('振幅');title('yn输出');实验2:clf;n=0:40;n1=0:50;a=2;b=-3;x1= cos(2*pi*0.1*n);x2=cos(2*pi*0.4*n);x3=a*x1+b*x2;x4=zeros(1,10), x3;den=1, -0.4,0.75;num=2.2403 2.4908 2.2403;ic=0 0; %设置零初始条件y3=filter(num,den,x3,ic);y4=filter(num,den,x4

8、,ic);%计算输入为x (n)时的输出y(n)%画出输出信号subplot(2,1,1)stem(n,y3);ylabel('振幅');title('yn输出');subplot(2,1,2)stem(n1,y4);ylabel('振幅');title('y1输出');实验3:clf;x=1 3 2;%冲激u=1 1 1; %输入序列y=conv(u,x);n=0:4;stem(n,y);xlabel('时间序号n');ylabel('振幅');title('用卷积得到的输出');

9、grid;实验二(1) 离散时间信号的DTFT 一、实验目的. 运用MATLAB理解Z变换及其绘制H(z)的零极点图。. 运用MATLAB计算逆Z变换。二、实验原理(一)、MATLAB在ZT中的应用。 线性时不变离散时间系统的冲激响应h(n)的z变换是其系统函数H(z), 在MATLAB中可以利用性质求解Z变换,例如可以利用线性卷积求的Z变换。若H(z)的收敛域包含单位圆,即系统为稳定系统,即系统在单位圆上处计算的是系统的频率响应。(二)、逆Z变换Z变换对于分析和表示离散线性时不变系统具有重要作用。但是在MATLAB中不能直接计算Z变换,但是对于一些序列可以进行逆Z变换。已知序列的Z变换及其收

10、敛域, 求序列称为逆Z变换。 序列的Z变换及共逆Z变换表示如下: 通常,直接计算逆Z变换的方法有三种:围线积分法、长除法和部分分式展开法。在实际中,直接计算围线积分比较困难,往往不直接计算围线积分。由于序列的Z变换常为有理函数,因此采用部分分式展开法比较切合实际,它是将留数定律和常用序列的Z变换相结合的一种方法。设x(n)的Z变换X(z)是有理函数,分母多项式是N阶,分子多项式是M阶,将X(z)展成一些简单的常用的部分分式之和,通过常用序列的Z变换求得各部分的逆变换,再相加即得到原序列x(n)。在MATLAB中提供了函数residuez来实现上述过程,调用格式如下:R,P,K= residue

11、z(B,A)其中B、A分别是有理函数分子多项式的系数和分母多项式的系数,输出R是留数列向量,P是极点列向量。如果分子多项式的阶数大于分母多项式的阶数,则K返回为常数项的系数。三、实验内容与步骤选做一个实验:1、.运行下面程序并显示它,验证离散时间傅立叶变换DTFT的时移性。已知两个线性时不变的因果系统,系统函数分别为 ,分别令N=8,a=0.8,计算并图示这两个系统的零、极点图及幅频特性。程序: 2、运行下面程序并显示它,验证离散时间傅立叶变换DTFT的频移性。四、实验仪器设备计算机,MATLAB软件五、实验注意事项课前预先阅读并理解实验程序;六、实验结果clear num1=1 0 0 0

12、0 0 0 0 -1;%分子系数高阶到低阶den1=1 0 0 0 0 0 0 0 0;subplot(2,2,1) zplane(num1, den1)grid;title('H1零极点分布图') ;H,w=freqz(num1,den1,200,'whole'); %中B和A分别为离散系统的系统函数分子、分母多项式的系数向量,HF=abs(H); %返回量H则包含了离散系统频响在 0pi范围内N个频率等分点的值(其中N为正整数)subplot(2,2,2); %w则包含了范围内N个频率等分点。plot(w,HF)title('H1幅频响应特性曲线&#

13、39;);a=0.8;A=a8;num2=1 0 0 0 0 0 0 0 -1;%分子系数高阶到低阶den2=1 0 0 0 0 0 0 0 A;subplot(2,2,3) zplane(num2, den2);grid;title('H2零极点分布图') ;H,w=freqz(num2,den2,200,'whole'); %中B和A分别为离散系统的系统函数分子、分母多项式的系数向量,HF=abs(H); %返回量H则包含了离散系统频响在 0pi范围内N个频率等分点的值(其中N为正整数)subplot(2,2,4); %w则包含了范围内N个频率等分点。plo

14、t(w,HF)title('H2幅频响应特性曲线');实验二(2) 离散傅立叶变换DFT一、实验目的. 运用MATLAB计算有限长序列的DFT和IDFT。. 运用MATLAB验证离散傅立叶变换的性质。3 .运用MATLAB计算有限长序列的圆周卷积。二、实验原理(一)、离散傅立叶变换DFT的定义一个有限长度的序列x(n)(0n<N-1), 它的 DFT X(k) 可以通过在轴()上对均匀采样得到 可以看到也是频域上的有限长序列,长度为N。序列称为序列x(n)的N点DFT。N称为DFT变换区间长度。 通常表示 可将定义式表示为 X(k)的离散傅里叶逆变换(IDFT)为 (二)

15、、DFT的性质1圆周移位定义序列x(n)的m单位的圆周移位y(n)为: (即对x(n)以N为周期进行周期延拓的序列的m点移位,表示对此延拓移位后再取主值序列)1 圆周卷积设 则 这里 表示与 的N点循环卷积。 2 共轭对称性 实际应用中,利用上述对称性质可以减少DFT的运算量,提高运算效率。三、实验内容与步骤:(2,3选做一个). 构造离散傅立叶正、反变换函数的MATLAB程序,其中dft(xn,N)为离散傅立叶正变换,idft(xn,N)为离散傅立叶反变换。2、如果是一个N=16的有限长序列,利用离散傅立叶变换函数求其16点DFT。3、如果是一个的有限长序列,绘制及其离散傅立叶变换X(K)的

16、幅度、相位图。四、实验仪器设备计算机,MATLAB软件五、实验注意事项课前预先阅读并理解实验程序;六、实验结果Dft:程序function xk=dft(xn,N) %dft n=0:1:N-1; k=n; WN=exp(-i*2*pi/N); %旋转因子 nk=n'*k; WNnk=WN.nk; xk=xn*WNnk; endidft:程序function xn=idft(xk,N) %idft n=0:1:N-1; k=n; WN=exp(-j*2*pi/N); nk=n'*k; %矩阵的转制*K WNnk=WN.(-nk); xn=xk*WNnk/N;end实验程序:选做

17、2k=16; %序列长N=16;%dft点数n1=0:1:15; xn1=sin(pi/8*n1/k)+sin(pi/4*n1/k); %抽样信号 xk1=dft(xn1,N);subplot(1,2,1);stem(n1,xn1); xlabel('t/T');ylabel('x(n)');subplot(1,2,2);stem(n1,xk1);grid;xlabel('k');ylabel('x(k)');实验二(3) 快速傅立叶变换FFT及其应用一、实验目的. 利用MATLAB的快速傅立叶变换来计算信号的离散傅立叶变换。.

18、利用MATLAB程序,理解进一步离散傅立叶变换的物理意义。3. 利用MATLAB程序,理解快速卷积算法。二、实验原理在MATLAB中,使用函数fft可以很容易地计算有限长序列x(n)的离散傅立叶变换Xk。此函数有两种形式,fft(x)计算序列x(n) 的离散傅立叶变换X(k),这里X(k)的长度与x(n)的长度相等。fft(x,L)计算序列x(n) 的L点离散傅立叶变换,其中LN。若L>N,在计算离散傅立叶变换之前,对x(n)尾部的L-N个值进行补零。同样,离散傅立叶变换序列X(k)的离散傅立叶逆变换x(n)用函数ifft计算,它也有两种形式。(一)、基本序列的离散傅立叶变换计算N点离散

19、傅立叶变换的一种物理解释就是,Xk是x(n)以N为周期的周期延拓序列的离散傅立叶级数系数的主值区间序列,即。例如序列,当N=16时,正好是的一个周期,所以的周期延拓序列就是这种单一频率的正弦序列。而当N=8时,正好是的半个周期,的周期延拓就不再是单一频率的正弦序列,而是含有丰富的谐波成分,其离散傅立叶级数的系数与N=16时的差别很大,因此对信号进行谱分析时,一定要截取整个周期,否则得到错误的频谱。(二)、验证N点DFT的物理意义假如x(n)非周期、有限长,则傅立叶变换存在,那么对在N个等间隔频率=2k/N, k=0,1,N-1取样,则可得X(k)。 序列x(n)的N点DFT的物理意义是对X()

20、在0,2上进行N点的等间隔采样。(三)、利用FFT计算序列的线性卷积 直接计算线性卷积计算量大,并且计算机无法判断y(n)的长度,需要计算多少的y(n)值,若输入为无限长,就更无法计算,其运算量随长度成级数增长。由于可以利用FFT对DFT进行有效的计算,我们希望能够利用DFT来计算线性卷积。设 x(n) 和 h(n) 是长度分别为M和N的有限长序列,令 L=M+N-1,定义两个长度L的有限长序列: (3.4.8) (3.4.9)通过对x(n) 和 h(n)补充零样本值得到上面两个序列。那么: (3.4.10)上面的过程如下图所示:计算线性卷积也可以直接调用函数con来计算,因为MATLAB中的

21、计时比较粗糙,所以只有M和N较大的时候,才能比较两种方法的执行时间快慢。三、实验内容与步骤(选做一个). 对复正弦序列,利用MATLAB程序求当N=16和N=8时的离散傅立叶变换,并显示其图形。.已知, 绘制相应的幅频和相频曲线,并计算N=8和N=16时的DFT。 四、实验仪器设备计算机,MATLAB软件五、实验注意事项课前预先阅读并理解实验程序;六、实验结果k1=16; %序列长N1=16;%dft点数n1=0:1:15; xn1=exp(j*pi/8*n1/k1); %抽样信号 xk1=dft(xn1,N1);subplot(2,2,1);stem(n1,xn1); xlabel('

22、;t/T');ylabel('x(n)');subplot(2,2,2);stem(n1,xk1);grid;xlabel('k');ylabel('x(k)');k2=8; %序列长N2=8;%dft点数n2=0:1:7; xn2=exp(j*pi/8*n2/k2); %抽样信号 xk2=dft(xn2,N2);subplot(2,2,3);stem(n2,xn2); xlabel('t/T');ylabel('x(n)');subplot(2,2,4);stem(n2,xk2);grid;xlabel(

23、'k');ylabel('x(k)');实验三 基于MATLAB的IIR数字滤波器设计一、实验目的. 进一步熟悉IIR数字滤波器的理论知识。. 熟悉与IIR数字滤波器设计有关的MATLAB函数。3 . 学会通过MATLAB,利用脉冲响应不变法和双线性变换法设计IIR数字滤波器,加深对数字滤波器的常用指标和设计过程的理解。二、实验原理(一)、低通滤波器的常用指标:通带边缘频率:,阻带边缘频率: ,通带起伏:,通带峰值起伏: ,阻带起伏:最小阻带衰减:。(二)、IIR数字滤波器设计目前,设计IIR数字滤波器的通用方法是先设计相应的低通滤波器,然后再通过双线性变换法和

24、频率变换得到所需要的数字滤波器。模拟滤波器从功能上分有低通、高通、带通及带阻四种,从类型上分有巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器以及贝塞尔滤波器等。1、利用模拟滤波器设计IIR数字低通滤波器的步骤。(1)确定数字低通滤波器的技术指标:通带截止频率p、通带衰减p、阻带截止频率s、阻带衰减s。(2)将数字低通滤波器的技术指标转换成模拟低通滤波器的技术指标。 脉冲响应不变法:双线性变换法:(3)按照模拟低通滤波器的技术指标设计模拟低通滤波器。 (4)将模拟滤波器Ha(s),从s平面转换到z平面,得到数字低通滤波器系统函数H(z)。2、下面给出与IIR数字滤波器设计有关的MATLAB文件。(1

25、)buttord.m用来确定数字低通或模拟低通滤波器的阶次,其调用格式分别是a. N,Wn=buttord(Wp,Ws,Rp,Rs)b. N,Wn=buttord(Wp,Ws,Rp,Rs,s)格式a对应数字滤波器,式中Wp,Ws分别是通带和阻带的截止频率,实际上它们是归一化频率,其值在0-1之间,1对应(即对的归一化)。Rp,Rs分别是通带和阻带衰减,单位为dB。N是求出的相应低通滤波器的阶次,Wn是求出的3dB频率。格式b对应模拟滤波器,式中各个变量的含义和格式a相同,但Wp,Ws及Wn是模拟角频率,单位为rad/s。(2)buttap.m用来设计模拟低通原型(归一化)滤波器Ha(p),其调

26、用的格式为 z , p, k=buttap(N)N是欲设计的低通原型(归一化)滤波器的阶次,z, p和k分别是设计出Ha(p)的极点、零点及增益。(3)lp2lp.m将模拟低通原型(归一化)滤波器Ha(p)转换为实际的低通滤波器Ha(s)。(去归一化),其调用格式为: B,A=lp2lp(b,a,Wn)b,a分别是模拟低通原型滤波器Ha(p)的分子、分母多项式的系数向量,其中B,A是去归一化后Ha(s) 的分子、分母多项式的系数向量, Wn为截止频率。(4)bilinear.m实现双线性变换,即由模拟滤波器Ha(s)得到数字滤波器H(z)。其调用格式是: Bz,Az=bilinear(B,A,

27、Fs)B,A是去归一化后Ha(s) 的分子、分母多项式的系数向量,Bz,Az是H (z) 的分子、分母多项式的系数向量, Fs是抽样频率。(4)impinvar.m由脉冲响应不变法将模拟滤波器Ha(s)转换为数字滤波器H(z)。其调用格式是: Bz,Az= impinvar(B,A,Fs)B,A是去归一化后Ha(s) 的分子、分母多项式的系数向量,Bz,Az是H (z) 的分子、分母多项式的系数向量, Fs是抽样频率。(5) butter.m用来直接设计巴特沃斯数字滤波器(双线性变换法),实际上它把buttord.m,buttap.m,lp2lp.m及bilinear.m等文件都包含进去,从而

28、使设计过程更简捷,其调用格式为: a. B,A=butter(N, Wn) b. B,A=butter(N,Wn,s)格式a是设计低通数字滤波器,格式b是设计低通模拟滤波器。B,A是H (z) 的分子、分母多项式的系数向量,Wn是截止频率。三、实验内容与步骤以下选做一个. 设计MATLAB程序,采用脉冲响应不变法设计一个巴特沃斯低通数字滤波器,其通带上限临界频率为400Hz,阻带临界频率为600Hz,抽样频率是1000Hz,在通带内的最大衰减为0.3dB, 阻带内的最小衰减为60dB,并绘出幅频特性曲线。. 设计MATLAB程序,采用双线性变换法设计一个巴特沃斯低通数字滤波器,要求在通带0,0

29、.2内衰减不大于3dB, 在阻带0.6,内衰减不小于40dB,并绘出幅频特性曲线。四、实验仪器设备计算机,MATLAB软件五、实验要求根据要求独立编程设计,并根据程序运行结果写出滤波器的系统函数六、实验结果选做1:fp=400; %通带上限临界频率fs=600; %阻带临界频率Rp=0.3; %通带允许的最大衰减Rs=60; %阻带允许的最小衰减Fs=1000; %采样频率Wp=2*pi*fp; %通带截止平率Ws=2*pi*fs; %阻带截止平率%Nn=256; n=(0:100-1);%采样点数 N,Wn=buttord(Wp,Ws,Rp,Rs,'s'); %用于计算阶数和

30、截止平率b,a=butter(N,Wn,'s'); %计算分子向量b,分母向量aw=linspace(1,400,100)*2*pi; %起始值,终止值,元素个数H=freqs(b,a,w); % 在0,2上进行采样,采样频率点由矢量w指定 figure(1); plot(w/(2*pi),20*log10(abs(H); title('巴特沃斯模拟滤波器幅频特性'); xlabel('频率/Hz'); ylabel('幅度/db'); %bz,az=impinvar(b,a,Fs); %caiyong冲击响应不变法转换为数字滤波

31、器实验四 基于MATLAB的FIR数字滤波器设计一、实验目的. 进一步熟悉FIR数字滤波器的理论知识。. 熟悉与FIR数字滤波器设计有关的MATLAB函数。3. 学会通过MATLAB,利用窗函数法设计FIR数字滤波器。二、实验原理设计FIR滤波器实际上是要在满足线性相位的条件下,实现幅度响应的逼近。而一个FIR滤波器若是符合线性相位,则必须满足一定的条件,即:一个FIR滤波器若是线性相位的,则其单位冲激响应必然满足 n=0,1,N-1 h(n)是关于(N-1)/2对称(奇对称或偶对称)即, (1) h(n)是偶对称序列 (1) h(n) 是奇对称(反对称)序列 设滤波器要求的理想频率响应为Hd(ejw) , 那么FIR滤波器的设计问题在于寻找一系统函数 ,使其频率响应逼近Hd(ejw)。若要求FIR滤波器具有线性相位特性,则h(n)必须满足上节所述的对称条件。逼近的方法有三种:窗口设计法(时域逼近);频率采样法Frequency-sampling(频域逼近);最优化设计Optimum Equiripple(等波纹逼近)。 窗函数法又称傅立叶级数法,是设计FIR数字滤波器的最简单的方法。FIR数字滤波器的设计问题就是要使所设计的FIR数字滤波器的频率响应H(w)去逼近所要求的理想滤波器的响应Hd(w)。从

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论