




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验一: 信号与系统的时域分析实验属性验证性实验地点电信系EDA实验室授课/上机学时数2/4实验主要内容1、信号的时域描述2、LTI系统的时域描述-差分方程和卷积和表达式3、LTI系统的时域求解4、滤波和滤波器的概念实验的基本要求掌握用MATLAB描述离散时间信号的方法,能够编写MATLAB程序,实现各种信号的运算,并且以图形的方式再现各种信号的波形。掌握线性时不变离散时间系统的时域数学模型用MATLAB描述的方法,掌握卷积运算、线性常系数差分方程的求解编程,掌握滤波器和滤波的概念。实验评价预习: 实验过程: 实验报告:本实验项目综合得分: 实验教师签名: 日期:一、实验原理1. 离散时间信号
2、的时域表示方法1.1将信号表示成独立时间变量的函数例如 xn=n(0.5)nun 表示一个离散时间信号。在MATLAB中有许多内部函数,可以直接完成信号的这种表达,例如:sin():正弦信号cos():余弦信号exp():指数信号1.2用信号的波形图来描述信号用函数曲线表示一个信号,图1.1就是一个连续时间信号和一个离散时间信号的波形图。图1.1离散时间信号的波形图1.3将信号用一个数据序列来表示对于离散时间信号,还可以表示成一个数的序列,例如: xn=., 0.1, 1.1, -1.2, 0, 1.3, . n=0 在数字信号处理课程中,上述三种信号的描述方法是经常要使用的。2 用MATLA
3、B仿真离散时间信号 离散时间信号通常用一个称为样本(Sample)的数字序列来表示,它可以是有限长的或者无限长的。在MATLAB中,无论是连续时间信号还是离散时间信号,MATLAB都是用一个数字序列来表示信号,这个数字序列在MATLAB中叫做向量(vector)。通常的情况下,需要与时间变量相对应。 如前所述,MATLAB有很多内部数学函数可以用来产生这样的数字序列,例如sin()、cos()、exp()等函数可以直接产生一个按照正弦、余弦或指数规律变化的数字序列。2.1典型离散时间信号单位冲激序列(Unit Sample Sequence)单位冲激序列定义为 (1.1)移位的单位冲激序列 (
4、1.2)单位冲激序列是数字信号处理中最重要和最基本的信号,按照信号分解的观点,我们可以说,任意离散时间信号都可以表示成移位加权的的单位冲激序列之和(Any discrete-time sequence can be expressed as a sum of weighted and time shifted unit sample sequences)。单位阶跃序列(Unit Step Sequence)单位阶跃序列定义为 (1.3)移位的单位阶跃序列 (1.4)单位冲激序列与单位阶跃序列有如下关系:, (1.5)正弦和指数序列(Sinusoidal and Exponential Sequ
5、ences)正弦序列的一般形式为 (1.6)式中,A,0和均为实数,分别叫做振幅(Amplitude),角频率(Angular frequency)和相位(Phase)。指数序列的一般形式为 (1.7)若A,均为实数,则xn为实指数序列。若令 , 则复指数序列可表示为 (1.8)2.2离散时间信号的MATLAB仿真在信号与系统实验中,我们已经学习过如何用MATLAB来仿真信号。这里,给出若干个范例程序,目的是回顾用MATLAB仿真信号的编程方法。程序Program1_1是用MATLAB对一个正弦信号进行仿真的程序,请仔细阅读该程序,并在计算机上运行,观察所得图形。% Program1_1% T
6、his program is used to generate a discrete-time sinusoidal signal and draw its plotclear, % Clear all variablesclose all, % Close all figure windowsn = -20: 20; % Specify the interval of timew0 = 0.2*pi; % Specify the angular frequencyx = sin(w0*n); % Generate the signalstem(n,x,k.) % Open a figure
7、window and plot xntitle(Sinusoidal signal xn)xlabel(Time Index n)执行Program1_1所得到的信号的波形图如图1.2所示。图1.2 正弦序列的时域波形对于正弦信号,有一个有趣的现象,那就是,信号振荡剧烈程度并不总是随着0的增加而增加,而是当0等于时,再增大0,信号振荡的剧烈程度反而减弱。范例程序Program1_2绘制了不同角频率时的正弦信号的波形。程序Program1_2如下% Program1_2clear,close all, n = -20: 20; w0 = 0*pi; w1 = 0.1*pi; w2 = 0.2*p
8、i; w3 = 0.8*pi; w4 = 0.9*pi; w5 = 1*pi; w6 = 1.1*pi; w7 = 1.2*pi;x0 = cos(w0*n); x1 = cos(w1*n); x2 = cos(w2*n); x3 = cos(w3*n); x4 = cos(w4*n); x5 = cos(w5*n); x6 = cos(w6*n); x7 = cos(w7*n);subplot(421), stem(n,x0,k.) ,ylabel(w0=0)subplot(422), stem(n,x1,k.) ,ylabel(w0=0.1*pi)subplot(423), stem(n,
9、x2,k.) ,ylabel(w0=0.2*pi)subplot(424), stem(n,x3,k.) ,ylabel(w0=0.8*pi)subplot(425), stem(n,x4,k.) ,ylabel(w0=0.9*pi)subplot(426), stem(n,x5,k.) ,ylabel(w0=1*pi)subplot(427), stem(n,x6,k.) ,ylabel(w0=1.1*pi)subplot(428), stem(n,x7,k.) ,ylabel(w0=1.2*pi)图1.3所示波形是执行范例程序Program1_2得到的。从图中可以很清楚地看出这一点。这意味
10、着,正弦信号的最高角频率等于。图1.3 不同频率时的正弦序列的波形 程序Program1_3用来仿真下面形式的离散时间信号: xn=., 0.1, 1.1, -1.2, 0, 1.3, . n=0% Program1_3% This program is used to generate a discrete-time sequence% and draw its plotclear, % Clear all variablesclose all, % Close all figure windowsn = -5:5; % Specify the interval of time, the n
11、umber of points of n is 11.x = 0, 0, 0, 0, 0.1, 1.1, -1.2, 0, 1.3, 0, 0; % Generate the signalstem(n,x,.) % Open a figure window and draw the plot of xngrid on,title (A discrete-time sequence xn)xlabel (Time index n) 由于在程序的stem(n,x,.) 语句中加有.选项,因此绘制的图形中每根棒条线的顶端是一个实心点。 如果需要在序列的前后补较多的零的话,可以利用函数zeros(),
12、其语法为: zeros(1, N):圆括号中的1和N表示该函数将产生一个一行N列的矩阵,矩阵中的所有元素均为零。利用这个矩阵与序列xn进行组合,从而得到一个长度与n相等的向量。 例如,当 xn= 0.1, 1.1, -1.2, 0, 1.3 时,为了得到程序Program1_3中的序列, n=0可以用这个MATLAB语句x = zeros(1,4) x zeros(1, 2) 来实现。用这种方法编写的程序如下:% Program1_4% This program is used to generate a discrete-time sinusoidal signal% and draw it
13、s plotclear, % Clear all variablesclose all, % Close all figure windowsn = -5:5; % Specify the interval of timex = zeros(1,4), 0.1, 1.1, -1.2, 0, 1.3, zeros(1,2); % Generate the sequencestem (n,x,.) % Open a figure window and draw the plot of xngrid on,title (A discrete-time sequence xn)xlabel (Time
14、 index n) 在实验中,经常要使用单位冲激序列n和单位阶跃序列n。由于MATLAB无法不支持拉丁文和西腊文,所以,我们仍用un来表示单位阶跃序列。为了能够象教材中那样使用un,请将下面的MATLAB函数拷贝到work文件夹中保存:% Unit step functionfunction y = u(t)y = (t=0); % y = 1 for t 0, else y = 0再利用单位冲激序列n与单位阶跃序列un之间的关系,就能够用单位阶跃序列un表示单位冲激序列n。离散时间单位阶跃信号un除了可以直接用这个扩展函数来产生,还可以利用MATLAB内部函数ones(1,N) 来实现。这个
15、函数类似于zeros(1,N),所不同的是它产生的矩阵的所有元素都为1。值得注意的是,利用ones(1,N) 来实现的单位阶跃序列并不是真正的单位阶跃序列,而是一个长度为N单位门(Gate)序列,也就是un-un-N。但是在一个有限的图形窗口中,我们看到的还是一个单位阶跃序列。3. 离散时间LTI系统的时域描述3.1线性时不变系统在分析LTI系统时,有关LTI系统的两个重要的性质是必须首先掌握和理解的。这就是线性性(Linearity)和时不变性(Time-invariance)。所谓线性性就是指系统同时满足齐次性和叠加性。这可以用下面的方法来描述。 假设系统在输入信号x1n作用时的响应信号为
16、y1n,在输入信号x2n作用时的响应信号为y2n,给定两个常数a和b,如果当输入信号为x(t)时系统的响应信号为y(t),且满足 xn = x1n + x2n 1.9(a) yn = y1n + y2n 1.9(b)则该系统具有叠加性(Additivity)。如果满足 xn = ax1n 1.10(a) yn = ay1n 1.10(b)则该系统具有齐次性(Homogeneity)。一个系统如果是线性系统的话,那么这个系统必须同时具有叠加性和齐次性。 又假设系统在输入信号x(t)作用时的响应信号为y(t),对一个给定时间常数t0,如果当输入信号为xn-n0时,系统的响应信号为yn-n0的话,则
17、该系统具有时不变性。同时具有线性性和时不变性的系统,叫做线性时不变系统,简称LTI系统。3.2 离散时间LTI系统的单位冲激响应和卷积模型给定一个离散时间LTI系统,在系统的初始条件为零时,用单位冲激信号n作用于系统,此时系统的响应称为系统的单位冲激响应(Unit impulse response),一般用hn来表示。需要强调的是,系统的单位冲激响应是在激励信号为n时的零状态响应(Zero-state response)。系统的单位冲激响应是一个非常重要的概念,对于一个系统,如果我们知道了该系统的单位冲激响应,那么,该系统对任意输入信号的响应信号都可以求得。也就是说,系统的输入信号xn和输出信
18、号yn之间的关系可以用一个数学表达式来描述,这个数学表达式为 1.11这个表达式就是LTI系统的卷积模型,它是根据系统的线性性和时不变性以及信号可以分解成单位冲激函数经推理得到的。这个表达式实际上告诉了我们一个重要的结论,那就是,任意LTI系统可以完全由它的单位冲激响应hn来确定(Any discrete-time LTI system can be completely specified by its unit impulse response)。由于系统的单位冲激响应是零状态响应,故按照式1.11求得的系统响应也是零状态响应。式1.11中的求和运算叫做卷积和,是描述离散时间LTI系统输入
19、输出关系的一个重要表达式。3.3卷积的计算 卷积的计算通常可按下面的五个步骤进行:1. 改换两个信号波形图中的横坐标,由n改为k,k变成函数的自变量;2. 把其中一个信号反褶,如把hk变成h-k;3. 把反褶后的信号做移位,移位量是n,这样n是一个参变量。在k坐标系中,n 0时图形右移,n 0时图形左移;4. 计算两个信号重叠部分的乘积xkhn-k;5. 完成相乘后图形的求和。对于两个时限信号(Time-limited signal),按照上述的五个步骤,作卷积和运算时,关键是正确确定不同情况下的求和区间。只要正确地确定了求和区间,一般都能得到正确定卷积结果。尽管如此,在时域中计算卷积积分,总
20、体上来说是一项比较困难的工作。程序Dcovdemo用来演示上述作卷积和运算的五个步骤。本程序较为复杂,不建议读者读懂该程序,只需执行这个程序,观看程序执行过程中有关卷积积分的运算过程,以便于理解这五个步骤。借助MATLAB的内部函数conv()可以很容易地完成两个信号的卷积和运算。其语法为:y = conv(x,h)其中x和h分别是两个作卷积运算的信号,y为卷积结果。在有些时候,做卷积和运算的两个序列中,可能有一个序列或者两个序列都非常长,甚至是无限长,MATLAB处理这样的序列时,总是把它看作是一个有限长序列,具体长度由编程者确定。实际上,在信号与系统分析中所遇到的无限长序列,通常都是满足绝
21、对可和(Absolutely summable)条件的信号。因此,可以对信号进行截断处理。对信号采取这种截短处理尽管存在误差,但是通过选择合理的信号长度,这种误差是能够减小到可以接受的程度的。若这样的一个无限长序列可以用一个数学表达式表示的话,那么,它的长度可以由编程者通过指定时间变量n的范围来确定。例如,对于一个单边实指数序列xn = 0.5nun,通过指定n的范围为0 n 100,则对应的xn的长度为101点,虽然指定更宽的n的范围,xn将与实际情况更相符合,但是,应该注意到,当n大于某一数时,xn之值已经非常接近于0了。对于序列xn = 0.5nun,当n = 7时,x7 = 0.007
22、8,这已经是非常小了。所以,对于这个单边实指数序列,指定更长的n的范围是没有必要的。当然,不同的无限长序列具有不同的特殊性,在指定n的范围时,只要能够反映序列的主要特征就可以了。3.4 用线性常系数差分方程描述LTI系统线性常系数差分方程是描述离散时间LTI系统的另一个时域模型,即系统的输入信号xn输出信号yn关系可以用下面的差分方程来表达 (1.12)式1.12中,max (N, M)定义为系统的阶(Order)。式1.12描述了LTI系统输入信号和输出信号的一种隐性关系(Implicit relationship)。为了求得系统响应信号的显式表达式(Explicit expression)
23、,必须对差分方程求解。 在MATLAB中,是用差分方程的系数来描述这个离散时间LTI系统的。例如,一个LTI离散时间系统的差分方程为 yn+yn-1-6yn-2=xnMATLAB则用两个系数向量num = 1和den = 1 1 -6来描述该系统,其中num和den分别表示系统差分方程右边和左边的系数,按照差分运算的递减排列。在用num和den定义了一个离散时间LTI系统之后,可以利用MATLAB来求解系统响应。求解离散时间系统的响应的一个非常有用的MATLAB函数就是filter()。它可以用来求解系统的在输入信号xn作用下的零状态响应(Zero-State Response),也可以求解系
24、统在这个输入信号作用下的完全响应(Complete Solution)。其用法描述如下:y = filter(num, den, x),求系统在输入x作用下的零状态响应y,x与y的长度相同。y = filter(num, den, x, ic),求系统在输入x作用下的完全响应y,x与y的长度相同。其中ic为系统的初始条件(Initial Condition),即ic = y-1, y-2, y-3, ., y-N。例题1.1 给定一个离散时间LTI系统,它的差分方程为yn+0.1yn-1-0.06yn-2=xn若输入信号为xn = 0.5nun,系统的初始条件为ic = 0, 1,编写程序,绘
25、制输入信号xn、系统的零状态响应yzsn和系统的完全响应信号y n的波形图。MATLAB范例程序如下:% Program1_5clear,close all,num = 1; den = 1 .1 -0.06;n = 0:20; x = 0.5.n.*u(n); ic = 0 .9;yzs = filter(num,den,x); y = filter(num,den,x,ic); subplot(221)stem(n,x,.), title(The input sequence xn), axis(0,20,-0.5,1.5)subplot(222)stem(n,yzs,.), title(
26、The zero-state response yzsn), axis(0,20,-0.5,1.5), xlabel(Time index n)subplot(223)stem(n,y,.), axis(0,20,-0.5,1.5), title(The total solution yn)xlabel(Time index n)二、实验内容实验前,必须首先阅读本实验原理,读懂所给出的全部范例程序。实验开始时,先在计算机上运行这些范例程序,观察所得到的信号的波形图。并结合范例程序应该完成的工作,进一步分析程序中各个语句的作用,从而真正理解这些程序。实验前,一定要针对下面的实验项目做好相应的实验
27、准备工作,包括事先编写好相应的实验程序等事项。Project 1: 移动平均滤波器(The Moving Average Filter)一个因果的M点移动平均FIR滤波器的差分方程为: (1.13)下面我们通过从若干个正弦信号之和组成的信号中滤出高频分量,来研究式(1.13)表示的该移动平均滤波器的使用。实验用程序如下% Program P1_1% Simulation of an M-point Moving Average Filter% Generate the input signalclear, close all,n = 0:100;s1 = cos(2*pi*0.05*n); %
28、 A low-frequency sinusoids2 = cos(2*pi*0.47*n); % A high frequency sinusoidx = s1+s2;% Implementation of the moving average filterM = input(Desired length of the filter = );num = ones(1,M);y = filter(num,1,x)/M;% Display the input and output signalssubplot(2,2,1); plot(n, s1); axis(0, 100, -2, 2); x
29、label(Time index n); ylabel(Amplitude);title(Signal #1);subplot(2,2,2); plot(n, s2); axis(0, 100, -2, 2); xlabel(Time index n); ylabel(Amplitude);title(Signal #2);subplot(2,2,3); plot(n, x); axis(0, 100, -2, 2); xlabel(Time index n); ylabel(Amplitude);title(Input Signal);subplot(2,2,4); plot(n, y);
30、axis(0, 100, -2, 2); xlabel(Time index n); ylabel(Amplitude);title(Output Signal);Q1-1:运行程序P1_1,输入M = 2,得到输入信号xn = s1n+s2n的输出信号的波形图如下:从输出信号的波形图中可以看出,输入信号xn中的那个分量被系统抑制了?答:Q1-2:修改程序P1_1,并以Q1_2为文件名存盘,使程序中的系统由yn = 0.5(xn+xn-1)变成yn = 0.5(xn-xn-1),输入信号仍为xn = s1n+s2n。执行程序Q1_2,得到的信号波形如下: 从输出信号的波形图中可以看出,输入信号
31、xn中的那个分量被系统抑制了?答:Q1-3:对滤波器长度M和正弦信号s1n和s2n的频率取其它值,反复运行程序P1_1,通过观察所得到的图形,你发现滤波器的滤波效果有和变化?答:Project 2: 离散时间LTI系统的单位冲激响应的计算(Computation of Impulse Responses of Discrete-Time LTI Systems)MATLAB命令y = impz(num, den, N),可以用来计算式(1.12)所表示的因果线性时不变离散时间系统的单位冲激响应的前N个样本。而命令y = stepz(num, den, N),可以用来计算由式(1.12)所表示的
32、因果线性时不变离散时间系统的单位阶跃响应的前N个样本。下面给出用命令y = impz(num, den, N)计算并绘制系统 yn-0.4yn-1+0.75yn-2=2.2403xn+2.4908 xn-1+2.2403 xn-2的单位冲激响应的程序。% Program P1_2% Compute the impulse response yclear, close all;N = 40;num = 2.2403 2.4908 2.2403;den = 1 -0.4 0.75;y = impz(num,den,N);% Plot the impulse responsestem(y);xlab
33、el(Time index n); ylabel(Amplitude);title(Impulse Response); grid;Q1-4:执行程序P1_2,观察所得到的图形。然后修改程序P1_2并以Q1_4存盘,产生下面系统的单位冲激响应的前40个样本:yn+0.71yn-1-0.46yn-2-0.62 yn-3=0.9xn-0.45 xn-1+0.35xn-2+0.002xn-3抄写修改后的程序Q1_4如下: 执行程序Q1_4得到的图形如下:Q1-5:利用filter()命令编写一个MATLAB程序,以Q1_5为文件名存盘,生成Q1-4所给系统的单位冲激响应,绘制出其前40个样本。并与执
34、行程序Q1_4所得到的图形比较。抄写修改后的程序Q1_5如下: 执行程序Q1_5得到的图形如下:答:经比较,我们发现Q1-6:仿照程序P1_2的编写方法,编写一个MATLAB程序,以Q1_6为文件名存盘,使之能够计算并绘制由式(1.12)描述的系统的单位阶跃响应的前40个样本。并利用此程序计算并绘制Q1-4所给系统的单位阶跃响应。编写的程序Q1_6如下:执行程序Q1_6得到的图形如下:Project 3: 卷积和(Convolution Sum)实验用程序Program P1_3:% Program P1_3clear, close all;h = 3 2 1 -2 1 0 -4 0 3; %
35、 impulse response x = 1 -2 3 -4 3 2 1;% input sequencey = conv(h,x); % convolutionn = 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);subplot(2,1,2);stem(n,y1, . );xlabel(Time index n); ylabel
36、(Amplitude);title(Output Generated by Filtering); grid;在这个程序中,使用了两种计算系统输出的方法,一种方法是利用卷积计算输出响应,另一种方法是利用滤波函数filter() 计算输出响应。请仔细阅读程序,认真体会这两种方法的编程区别。Q1-7:运行程序P1_3,对序列hn和xn求卷积,生成yn,并用FIR滤波器hn对输入xn滤波求得y1n。yn和y1n有差别吗?为什么要使用对xn补零后得到的x1n作为输入来产生y1n?答:Q1-8:仿照程序P1_3的编写方法,编写程序Q1-8,计算长度为15的序列hn和长度为10的序列xn的卷积,hn和xn
37、的样本值由你自己给定。编写的程序Q1_8如下:执行程序Q1_8得到的图形如下: Project 4: LTI系统的稳定性(Stability of LTI Systems)若离散时间线性时不变系统的单位冲激响应hn满足绝对可和条件(Absolutely summable condition),则该系统是稳定性。绝对可和条件表示为 实验程序P1_4就是根据上述公式,计算之值,并对S(K)之值加以分析,从而判断系统是否稳定。实验程序P1_4如下:% Program P1_4% Stability test based on the sum of the absolute % values of t
38、he impulse response samplesclf;num = 1 -0.8; den = 1 1.5 0.9;N = 200;h = impz(num,den,N+1);parsum = 0;for k = 1:N+1;parsum = parsum + abs(h(k);if abs(h(k) 10(-6), break, endend% Plot the impulse responsen = 0:N;stem(n,h)xlabel(Time index n); ylabel(Amplitude);% Print the value of abs(h(k) disp(Value
39、 =);disp(abs(h(k);按照这个程序,当S(K) 10-6时,可以认为S(K)已经收敛并且非常接近于S()。Q1-9:写出程序P1_4中的系统的差分方程:该系统是否是递归系统?其单位冲激响应是多少点?运行程序,从所得到的系统的单位冲激响应图和MATLAB命令窗口显示的abs(h(k)之值,你认为系统是稳定的吗?若abs(h(k)之值不小于10-6且图形显示了一个衰减的单位冲激响应,那么,用一个较大的N再次运行该程序。答:Q1-10:考虑差分方程 yn =xn-4xn-1+3xn-2+1.7yn-1-yn-2描述的系统,仿照程序P1_4的编写方法,编写程序 Q1_10,计算并绘制该系
40、统的单位冲激响应,说明该系统是否稳定。编写的程序Q1_10如下:执行程序Q1_10得到的图形如下:答:三、实验报告要求1、按要求完整书写你所编写的全部MATLAB程序2、详细记录实验过程中的有关信号波形图(存于自带的U盘中),图形要有明确的标题。全部的MATLAB图形应该用打印机打印,然后贴在本实验报告中的相应位置,禁止复印件。3、实事求是地回答相关问题,严禁抄袭。实验二: 离散时间信号的变换域分析实验属性验证性 / 必做实验地点电信系EDA实验室授课/上机学时数4/6实验主要内容1、序列的离散时间傅里叶变换(DTFT)及其物理意义2、离散时间傅里叶变换(DTFT)的MATLAB实现3、离散傅
41、里叶变换(DFT)及其物理意义4、离散傅里叶变换(DFT)的MATLAB实现5、DTFT与DFT之间的关系6、DFT的快速算法实验的基本要求掌握并深刻理序列的离散时间傅里叶变换(DTFT)、离散傅里叶变换(DFT)及其物理意义,掌握利用MATLAB编程完成DFT、DTFT的计算方法,并能够通过编程,验证DFT、DTFT的若干重要性质。实验评价预习: 实验过程: 实验报告:本实验项目综合得分: 实验教师签名: 日期:一、实验原理1、离散时间信号的傅里叶变换DTFT1.1 DTFT的定义序列xn的离散时间傅里叶变换(DTFT)定义为 (2.1)通常,是实变量的复函数,并且可以表示成 (2.2)和
42、(2.3)其中, (2.4)式中,和分别是的实部和虚部,为的幅度(Magnitude),称为的相位(Phase)。序列xn的DTFT的存在是有条件的,即若xn满足绝对可和条件 (2.5)则序列xn的DTFT是存在的。1.2 离散时间傅里叶逆变换IDTFT的定义的离散时间傅里叶逆变换定义为 (2.6)从式(2.6)可知,xn可看作是由很多频率分量的积分构成的,其中的每一个频率分量的复幅度就是序列的频谱。1.3 离散时间傅里叶变换DTFT的性质DTFT满足很多有用的性质,这些性质在许多应用中都会用到。这些性质也可以用MATLAB来验证。下面我们列出了几个经常会遇到的重要性质。时移性质(Time-s
43、hifting):若表示序列gn的DTFT,则时移序列gn-n0的DTFT为。频移性质(Frequency-shifting):若表示序列gn的DTFT,则序列的DTFT为。调制性质(Modulation):若和分别表示序列gn和hn的DTFT,则序列gnhn的DTFT为。卷积性质(Convolution):若和分别表示序列gn和hn的DTFT,则序列gn*hn的DTFT为。1.4 离散时间傅里叶变换DTFT的MATLAB计算用MATLAB,可以有下面的两种方法实现对序列xn的DTFT的计算。一种较为简便的方法是利用MATLAB的内部函数freqz()实现,其用法说明如下X = freqz(x
44、, 1, w):其中x为时域序列,w为指定的频率范围,X为计算得到的序列xn的DTFT。使用函数freqz()进行序列的DTFT的计算尽管方便,但是仍有局限,也就是这个函数只能计算因果序列的DTFT,若序列xn为非因果序列,则计算出的结果与实际的DTFT之间存在一个乘法因子,因子中的n0为xn中n 0的样本个数。因此,若序列xn为非因果序列,且n 0的样本个数为n0,则正确的计算应该为X = exp(-j*w*n0).*freqz(x, 1, w)例题2-1:给定序列xn = 0.5nun,利用MATLAB函数freqz()计算并绘制xn的DTFT。范例程序Program2_1如下:% Pro
45、gram2_1clear, close all;w = -4*pi:0.02:4*pi;n = 0:40;x = 0.5.n.*u(n);X = freqz(x,1,w);subplot(221)stem(n,x,.), title(Sequence xn), xlabel(Time index n)subplot(222)plot(w/pi,abs(X), title(Magnitude of DTFT of xn), axis(-4,4,0,max(abs(X)subplot(224)plot(w/pi,angle(X), title(Phase of DTFT of xn), xlabe
46、l(Frequency*pi in ratians)axis(-4,4,min(angle(X),max(angle(X)执行该程序得到的序列的幅度频谱和相位频谱图如图2.1所示。图2.1 序列xn及其幅度频谱和相位频谱例题2-2:若给定序列xn = 0.5n+5un+5,利用MATLAB函数freqz()计算并绘制xn的DTFT。显然,xn是非因果序列,此时对应的范例程序Program2_2如下:% Program2_2clear, close all;w = -4*pi:0.02:4*pi;n = -5:35;x = 0.5.(n+5).*u(n+5);X = exp(j*w*5).*fr
47、eqz(x,1,w);subplot(221)stem(n,x,.), title(Sequence xn), xlabel(Time index n), axis(-5,35,0,max(x)subplot(222)plot(w/pi,abs(X), title(Magnitude of DTFT of xn), axis(-4,4,0,max(abs(X)subplot(224)plot(w/pi,angle(X), title(Phase of DTFT of xn), xlabel(Frequency*pi in ratians)axis(-4,4,min(angle(X),max(a
48、ngle(X)执行该程序得到的序列的幅度频谱和相位频谱图如图2.2所示。图2.2 非因果序列xn及其幅度频谱和相位频谱另一种计算方法就是采用矩阵运算的方法计算。下面给出按照这种方法计算例题2-1中时域序列xn = 0.5nun的DTFT的范例程序Program2_3:% Program2_3clear, close all;w = -4*pi:0.02:4*pi;n = 0:40;x = 0.5.n.*u(n);X = x*exp(-j*n*w); % Compute the DTFT of xnsubplot(221)stem(n,x,.), title(Sequence xn), xlab
49、el(Time index n)subplot(222)plot(w/pi,abs(X), title(Magnitude of DTFT of xn), axis(-4,4,0,max(abs(X)subplot(224)plot(w/pi,angle(X), title(Phase of DTFT of xn), xlabel(Frequency*pi in ratians)axis(-4,4,min(angle(X),max(angle(X)读者可将程序Program2_3与程序Program2_1进行比较,找出这两种方法之间的区别。按照这种方法计算序列的DTFT时,不必考虑序列是否是因果的。2、离散傅里叶变换DFT 2.1 DFT的定义对于定义在0 n N-1区间的有限长序列序列xn,它的N点DFT定义为: k = 0, 1, 2, ., N-1 (2.7)其中, 序列xn的N点DFT的物理意义是,Xk是xn的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学行政管理工作发展计划
- 2024-2025岗位安全培训考试试题【满分必刷】
- 2025车间安全培训考试试题带答案(A卷)
- 2025年安全管理员安全培训考试试题附解析答案可打印
- 2025企业安全管理人员安全培训考试试题打印
- 2025车间安全培训考试试题及完整答案(网校专用)
- 2025日常安全培训考试试题带下载答案
- 青少年水上运动安全保障计划
- 2025年企业主要负责人安全培训考试试题含答案
- 2025年日常安全培训考试试题及完整答案(名校卷)
- 《高效面试技巧课件版》教案
- 实验室精密仪器全面维护保养服务协议
- (三模)2025年沈阳市高中三年级教学质量监测 (三)生物试卷(含答案)
- 拓扑优化与异形结构打印-洞察阐释
- 【绥化】2025年黑龙江绥化市“市委书记进校园”事业单位引进人才287人笔试历年典型考题及考点剖析附带答案详解
- 粉笔协议班电子合同
- 2025年电缆购销合同范本9篇
- 2025+CSCO非小细胞肺癌诊疗指南解读课件
- 中学生学宪法班会课件
- 县人民医院老住院楼装修改造项目可行性研究报告申请报告编写
- 2024年天津高考英语第二次高考真题(原卷版)
评论
0/150
提交评论