实验三 离散时间系统的时域分析(附思考题程序)
- 格式:doc
- 大小:160.00 KB
- 文档页数:4
离散时间信号的时域分析实验报告实验报告:离散时间信号的时域分析一、实验目的本实验旨在通过MATLAB软件,对离散时间信号进行时域分析,包括信号的显示、基本运算(如加法、减法、乘法、反转等)、以及频域变换(如傅里叶变换)等,以加深对离散时间信号处理的基本概念和原理的理解。
二、实验原理离散时间信号是在时间轴上离散分布的信号,其数学表示为离散时间函数。
与连续时间信号不同,离散时间信号只能在特定的时间点取值。
离散时间信号的时域分析是研究信号的基本属性,包括幅度、时间、频率等。
通过时域分析,我们可以对信号进行各种基本运算和变换,以提取有用的信息。
三、实验步骤1.信号生成:首先,我们使用MATLAB生成两组简单的离散时间信号,一组为正弦波,另一组为方波。
我们将这些信号存储在数组中,以便后续分析和显示。
2.信号显示:利用MATLAB的绘图功能,将生成的信号在时域中显示出来。
这样,我们可以直观地观察信号的基本属性,包括幅度和时间关系。
3.基本运算:对生成的信号进行基本运算,包括加法、减法、乘法、反转等。
将这些运算的结果存储在新的数组中,并绘制出运算后的信号波形。
4.傅里叶变换:使用MATLAB的FFT(快速傅里叶变换)函数,将信号从时域变换到频域。
我们可以得到信号的频谱,进而分析信号的频率属性。
5.结果分析:对上述步骤得到的结果进行分析,包括比较基本运算前后的信号波形变化,以及傅里叶变换前后的频谱差异等。
四、实验结果1.信号显示:通过绘制图形,我们观察到正弦波和方波在时域中的波形特点。
正弦波呈现周期性的波形,方波则呈现明显的阶跃特性。
2.基本运算:通过对比基本运算前后的信号波形图,我们可以观察到信号经过加法、减法、乘法、反转等运算后,其波形发生相应的变化。
例如,两个信号相加后,其幅度和时间与原信号不同。
反转信号则使得波形在时间轴上反向。
3.傅里叶变换:通过FFT变换,我们将时域中的正弦波和方波转换到频域。
正弦波的频谱显示其频率为单一的直流分量,方波的频谱则显示其主要频率分量是直流分量和若干奇数倍的谐波分量。
南昌大学实验报告(信号与系统)学生姓名:学号:专业班级:通信实验类型:□验证□综合□设计□创新实验日期:2012.5.17 实验成绩:离散时间系统的时域特性分析一、实验项目名称: 离散时间系统的时域特性分析二、实验目的:线性时不变离散时间系统在时域中可以通过常系数线性差分方程来描述,冲激响应序列可以刻画其时域特性。
本实验通过使用MATLAB函数研究离散时间系统的时域特性,以加深对离散时间系统的差分方程、冲激响应系统的线性和时不变特性的理解。
三、实验基本原理一个离散时间系统是将输入序列变换成输出序列的一种运算。
若以T[·]表示这种运算,则一个离散时间系统可由图1-1来表示,即x(n) T[·] y(n)图1-1离散时间系统离散时间系统最重要的,最常用的是“线性时不变系统”。
1.线性系统4. 实验用matlab语言工具函数简介(1)产生N个元素矢量函数x=zeros(1,N)(2)计算系统的单位冲激响应h(n)的两种函数y=impz(b,a,N)功能:计算系统的激励响应序列的前N个取样点y=filter(b,a,x)功能:系统对输入进行滤波,如果输入为单位冲激序列δ(n),则输出y即为系统的单位冲激响应h(n).四、实验说明例1.1产生一个N=100的单位冲激序列。
>> N=100;>> u=[1 zeros(1,N-1)];>> Stem(0:N-1,u)>>例1.2产生一个长度为N=-100的单位阶跃响应>> N=100;>> s=[ones(1,N)];>> Stem(0:99,s);>> axis([0 100 0 2])例1.3产生一个正弦序列>> n=0:40;>> f=0.1;>> phase=0;>> A=1.5;>> arg=2*pi*f*n-phase; >> x=A*cos(arg);>> stem(n,x);>> axis([0 40 -2 2]); >> grid例1.4产生一个复指数序列>> c=-(1/12)+(pi/6)*i; >> k=2;>> n=0:40;>> x=k*exp(c*n);>> subplot(2,1,1);>> stem(n,imag(x)); >> subplot(2,1,2);>> stem(n,imag(x)); >> xlabel('时间序列n'); >> ylabel('信号幅度'); >> title('虚部');例1.5假设系统为y(n)-0.4y(n-1)+0.75y(n-2)=2.2403x(n)+2.4908x(n-1)+2.2403x(n-2),输入三个不同的序列x1(n),x2(n)和x9n)=ax1(n)+bx2(n),求y1(n),y2(n)和y(n),并判断此系统是否为线性系统。
信号、系统与信号处理实验报告实验一、离散时间系统的时域特性分析姓名:学号:班级:专业:一.实验目的线性时不变(LTI)离散时间系统在时域中可以通过常系数线性差分方程来描述,冲激响应列可以刻画时域特性。
本次实验通过使用MATLAB函数研究离散时间系统的时域特性,以加深对离散时间系统的差分方程、冲激响应和系统的线性和时不变性的理解。
二.基本原理一个离散时间系统是将输入序列变换成输出序列的一种运算。
离散时间系统中最重要、最常用的是“线性时不变系统”。
1.线性系统满足叠加原理的系统称为线性系统,即若某一输入是由N个信号的加权和组成的,则输出就是系统对这几个信号中每一个输入的响应的加权和。
即那么当且仅当系统同时满足和时,系统是线性的。
在证明一个系统是线性系统时,必须证明此系统同时满足可加性和比例性,而且信号以及任何比例系数都可以是复数。
2.时不变系统系统的运算关系在整个运算过程中不随时间(也即序列的先后)而变化,这种系统称为时不变系统(或称移不变系统)。
若输入的输出为,则将输入序列移动任意位后,其输出序列除了跟着位移外,数值应该保持不变,即则满足以上关系的系统称为时不变系统。
3.常系数线性差分方程线性时不变离散系统的输入、输出关系可用以下常系数线性差分方程描述:当输入为单位冲激序列时,输出即为系统的单位冲激响应。
当时,是有限长度的,称系统为有限长单位冲激响应(FIR)系统;反之,则称系统为无限长单位冲激响应(IIR)系统。
三.实验内容及实验结果1.实验内容考虑如下差分方程描述的两个离散时间系统:系统1:系统2:输入:(1)编程求上述两个系统的输出,并画出系统的输入与输出波形。
(2)编程求上述两个系统的冲激响应序列,并画出波形。
(3)若系统的初始状态为零,判断系统2是否为时不变的?是否为线性的?2.实验结果(1)编程求上述两个系统的输出和冲激响应序列,并画出系统的输入、输出与冲激响应波形。
clf;n=0:300;x=cos((20*pi*n)/256)+cos((200*pi*n)/256);num1=[0.5 0.27 0.77];den1=[1];num2=[0.45 0.5 0.45];den2=[1 -0.53 0.46];y1=filter(num1,den1,x);y2=filter(num2,den2,x);subplot(3,1,1);stem(n,x);xlabel('时间信号');ylabel('信号幅度');title('输入信号');subplot(3,1,2);stem(y1);xlabel('时间信号n');ylabel('信号幅度');title('输出信号');subplot(3,1,3);stem(y2);xlabel('时间序号n ');ylabel('信号幅度');title('冲激响应序列');(2)N=40;num1=[0.5 0.27 0.77];den1=[1];num2=[0.45 0.5 0.45];den2=[1 -0.53 0.46];y1=impz(num1,den1,N);y2=impz(num2,den2,N);subplot(2,1,1);stem(y1);xlabel('时间信号n ');ylabel('信号幅度');title('³冲激响应');subplot(2,1,2);stem(y2);xlabel('时间信号n ');ylabel('信号幅度');title('³冲激响应');1.应用叠加原理验证系统2是否为线性系统:clear allclcn = 0 : 1 : 299;x1 = cos(20 * pi * n / 256);x2 = cos(200 * pi * n / 256);x = x1 + x2;num = [0.45 0.5 0.45];den = [1 -0.53 0.46];y1 = filter(num, den, x1);y2 = filter(num, den, x2);y= filter(num, den, x);yt = y1 + y2;figuresubplot(2, 1, 1);stem(n, y, 'g');xlabel('时间信号n');ylabel('信号幅度');axis([0 100 -2 2]);grid;subplot(2, 1, 2);stem(n, yt, 'r');xlabel('时间信号n');ylabel('信号幅度');axis([0 100 -2 2]);grid;2.应用时延差值来判断系统2是否为时不变系统。
实验四 离散时间系统的频域分析1.实验目的(1)理解和加深傅里叶变换的概念及其性质。
(2)离散时间傅里叶变换(DTFT)的计算和基本性质。
(3)离散傅里叶变换(DFT)的计算和基本性质。
2.实验原理对离散时间信号进行频域分析, 首先要对其进行傅里叶变换, 通过得到的频谱函数进行分析。
离散时间傅里叶变换(DTFT, Discrete-time Fourier Transform)是傅立叶变换的一种。
它将以离散时间nT (其中 , T 为采样间隔)作为变量的函数(离散时间信号)f(nT)变换到连续的频域, 即产生这个离散时间信号的连续频谱 , 其频谱是连续周期的。
211200)()|()()DTFT kw N knTN N i iwT iwnT N n n F e f nT e f nT e 长度为N 的有限长信号x(n), 其N 点离散傅里叶变换为:10()[()]()kn N N n X k DFT x n x n W 。
X(k)的离散傅里叶逆变换为: 。
DTFT 是对任意序列的傅里叶分析, 它的频谱是一个连续函数;而DFT 是把有限长序列作为周期序列的一个周期, 对有限长序列的傅里叶分析, DFT 的特点是无论在时域还是频域都是有限长序列。
3.实验内容及其步骤(1)复习傅里叶变换的定义及其性质, 加深理解。
(2)熟悉离散时间傅里叶变换的概念及其性质。
参考一: 计算离散时间傅里叶变换, 并绘制图形。
已知有限长序列x(n)={1,2,3,4,5}。
n=-1:3;x=1:5;k=0:500;w=(pi/500)*k;X=x*(exp(-j*2*pi/500)).^(n'*k);magX=abs(X);angX=angle(X);realX=real(X);imagX=imag(X);subplot(2,2,1);plot(w/pi,magX);grid;xlabel('');ylabel('模值 ');title('模值部分');subplot(2,2,2);plot(w/pi,angX);grid;xlabel('pi 为单位');ylabel('弧度');title('相角部分');subplot(2,2,3);plot(w/pi,realX);grid;xlabel('');ylabel('实部');title('实部部分');subplot(2,2,4);plot(w/pi,imagX);grid;xlabel('pi为单位');ylabel('虚部');title('虚部部分');参考二: 计算离散时间傅里叶变换。
离散时间信号与系统的时域分析实验报告报告⼆:⼀、设计题⽬1.绘制信号)()(1k k f δ=和)2()(2-=k k f δ的波形2.绘制直流信号)()(1k k f ε=和)2(2-=k f ε的波形3绘制信号)()(6k G k f =的波形⼆实验⽬的1.掌握⽤MATLAB 绘制离散时间信号(序列)波形图的基本原理。
2.掌握⽤MATLAB 绘制典型的离散时间信号(序列)。
3.通过对离散信号波形的绘制与观察,加深理解离散信号的基本特性。
三、设计原理离散时间信号(也称为离放序列)是指在时间上的取值是离散的,只在⼀些离放的瞬间才有定义的,⽽在其他时间没有定义,简称离放信号(也称为离散序列) 序列的离散时间间隔是等间隔(均匀)的,取时间间隔为T.以f(kT)表⽰该离散序列,k 为整数(k=0,±1.±2,...)。
为了简便,取T=1.则f(kT)简记为f(k), k 表⽰各函数值在序列中出现的序号。
序列f(k)的数学表达式可以写成闭合形式,也可逐⼀列出f(k)的值。
通常,把对应某序号K0的序列值称为序列的第K0个样点的“样点值”。
四、设计的过程及仿真1clear all; close all; clc;k1=-4;k2=4;k=k1:k2;n1=0;n2=2;f1=[(k-n1)==0];f2=[(k-n2)==0];subplot(1,2,1)stem(k,f1,'fill','-k','linewidth',2);xlabel('k');ylabel('f_1(k)');title('δ(k)')axis([k1,k2,-0.1,1.1]);subplot(1,2,2)stem(k,f2,'filled','-k','linewidth',2);ylabel('f_2(k)');title('δ(k-2)')axis([k1,k2,-0.1,1.1]);程序运⾏后,仿真绘制的结果如图所⽰:2c lear all; close all; clc;k1=-2;k2=8;k=k1:k2;n1=0;n2=2; %阶跃序列开始出现的位置f1=[(k-n1)>=0]; f2=[(k-n2)>=0];subplot(1,2,1)stem(k,f1,'fill','-k','linewidth',2);xlabel('k');ylabel('f_1(k)');title('ε(k)')axis([k1,k2+0.2,-0.1,1.1])subplot(1,2,2)stem(k,f2,'filled','-k','linewidth',2);xlabel('k');ylabel('f_2(k)');title('ε(k-2)')axis([k1,k2+0.2,-0.1,1.1]);程序运⾏后,仿真绘制的结果如图所⽰:3clear all; close all; clc;k1=-2;k2=7;k=k1:k2; %建⽴时间序列n1=0;n2=6; f1=[(k-n1)>=0];f2=[(k-n2)>=0];f=f1-f2;stem(k,f,'fill','-k','linewidth',2);xlabel('k');ylabel('f(k)');title('G_6(k)')axis([k1,k2,-0.1,1.1]);程序运⾏后,仿真绘制的结果如图所⽰:五、设计的结论及收获实现了⽤matlab绘制离散时间信号, 通过对离散信号波形的绘制与观察,加深理解离散信号的基本特性。
实验一离散时间LTI系统的时域分析与Z域分析一、实验目的1、掌握用MATLAB求解离散时间系统的零状态响应、单位脉冲响应和单位阶跃响应;2、掌握离散时间系统系统函数零极点的计算方法和零极点图的绘制方法,并能根据零极点图分析系统的稳定性。
二、实验原理1、离散时间系统的时域分析(1)离散时间系统的零状态响应离散时间LTI系统可用线性常系数差分方程来描述,即MATLAB中函数filter可对式(1-1)的差分方程在指定时间范围内的输入序列所产生的响应进行求解。
函数filter的语句格式为:y=filter(b,a,x)其中,x为输入的离散序列;y为输出的离散序列;y的长度与x的长度一样;b与a分别为差分方程右端与左端的系数向量。
(2)离散时间系统的单位脉冲响应系统的单位脉冲响应定义为系统在 (n)激励下系统的零状态响应,用h(n)表示。
MATLAB求解单位脉冲响有两种方法:一种是利用函数filter;另一种是利用函数impz。
impz函数的常用语句格式为impz(b,a,n),其中b和a的定义见filter,n表示脉冲响应输出的序列个数。
(3)离散时间系统的单位阶跃响应系统的单位阶跃响应定义为系统在ε(n)激励下系统的零状态响应。
MATLAB求解单位脉冲响应有两种方法:一种是利用函数filter,另一种是利用函数stepz。
stepz函数的常用语句格式为stepz(b,a,N)其中,b和a的定义见filter,N表示脉冲响应输出的序列个数。
2、离散时间系统的Z域分析(1)系统函数的零极点分析离散时间系统的系统函数定义为系统零状态响应的z变换与激励的z变换之比,即如果系统函数H(z)的有理函数表示式为那么,在MATLAB中系统函数的零极点就可通过函数roots得到,也可借助函数tf2zp得到。
roots的语法格式为:Z=roots(b)%计算零点b=[b1b2…bmbm+1]P=roots(a)%计算极点a=[a1a2…anan+1]tf2zp的语句格式为[Z,P,K]=tf2zp(b,a)其中,b与a分别表示H(z)的分子与分母多项式的系数向量。
实验三 离散时间系统的时域分析
1.实验目的
(1)理解离散时间信号的系统及其特性。
(2)对简单的离散时间系统进行分析,研究其时域特性。
(3)利用MATLAB 对离散时间系统进行仿真,观察结果,理解其时域特性。
2.实验原理
离散时间系统,主要是用于处理离散时间信号的系统,即是将输入信号映射成的输出的某种运算,系统的框图如图所示:
]
[n x ]
[n y Discrete-time
systme
(1)线性系统
线性系统就是满足叠加原理的系统。
如果对于一个离散系统输入信号为12(),()
x n x n 时,输出信号分别为12(),()y n y n ,即:
1122()[()]()[()]
y n T x n y n T x n ==。
而且当该系统的输入信号为12()()ax n bx n +时,其中a,b 为任意常数,输出为
121212[()()][()][()]()()T ax n bx n aT x n bT x n ay n by n +=+=+,则该系统就是一个线性离散
时间系统。
(2)时不变系统
如果系统的响应与激励加于系统的时刻无关,则该系统是时不变系统。
对于一个离散时间系统,若输入()x n ,产生输出为()y n ,则输入为()x n k -,产生输出为()y n k -,即:
若()[()]y n T x n =,则[()]()T x n k y n k -=-。
通常我们研究的是线性时不变离散系统。
3.实验内容及其步骤
(1)复习离散时间系统的主要性质,掌握其原理和意义。
(2)一个简单的非线性离散时间系统的仿真 参考:% Generate a sinusoidal input signal
clf; n = 0:200; x = cos(2*pi*0.05*n); % Compute the output signal x1 = [x 0 0]; % x1[n] = x[n+1] x2 = [0 x 0]; % x2[n] = x[n] x3 = [0 0 x];
% x3[n] = x[n-1]
y = x2.*x2-x1.*x3; y = y(2:202); % Plot the input and output signals
subplot(2,1,1) plot(n, x)
xlabel('Time index n'); ylabel('Amplitude'); title('Input Signal')
subplot(2,1,2) plot(n,y)
xlabel('Time index n'); ylabel('Amplitude');
title('Output signal');
(3)线性与非线性系统的仿真
参考:% Generate the input sequences
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;
num = [2.2403 2.4908 2.2403];
den = [1 -0.4 0.75];
ic = [0 0]; % Set zero initial conditions
y1 = filter(num,den,x1,ic); % Compute the output y1[n]
y2 = filter(num,den,x2,ic); % Compute the output y2[n]
y = filter(num,den,x,ic); % Compute the output y[n]
yt = a*y1 + b*y2; d = y - yt; % Compute the difference output d[n] % Plot the outputs and the difference signal
subplot(3,1,1) stem(n,y); ylabel('Amplitude');
title('Output Due to Weighted Input: a \cdot x_{1}[n] + b \cdot x_{2}[n]');
subplot(3,1,2) stem(n,yt); ylabel('Amplitude');
title('Weighted Output: a \cdot y_{1}[n] + b \cdot y_{2}[n]');
subplot(3,1,3) stem(n,d); xlabel('Time index n'); ylabel('Amplitude');
title('Difference Signal');
(4)时不变与时变系统的仿真
参考:% Generate the input sequences
clf; n = 0:40; D = 10; a = 3.0; b = -2;
x = a*cos(2*pi*0.1*n) + b*cos(2*pi*0.4*n);
xd = [zeros(1,D) x]; num = [2.2403 2.4908 2.2403]; den = [1 -0.4 0.75];
ic = [0 0]; % Set initial conditions
% Compute the output y[n]
y = filter(num,den,x,ic);
% Compute the output yd[n]
yd = filter(num,den,xd,ic);
% Compute the difference output d[n]
d = y - yd(1+D:41+D);
% Plot the outputs
subplot(3,1,1) stem(n,y); ylabel('Amplitude'); title('Output y[n]'); grid;
subplot(3,1,2) stem(n,yd(1:41)); ylabel('Amplitude');
title(['Output due to Delayed Input x[n - ', num2str(D),']']); grid;
subplot(3,1,3) stem(n,d); xlabel('Time index n'); ylabel('Amplitude');
title('Difference Signal'); grid;
4.实验用MATLAB函数介绍
在实验过程中,MATLAB函数命令plot, figure, stem, subplot, axis, grid on, xlabel, ylabel, title, clc等在不同的情况下具体表述也有所不同,应该在实验中仔细体会其不同的含义。
5.思考题
(1)离散时间系统有何特点。
(2)总结实验过程中所得到的结论,并能进行分析处理。
(3)对实验过程中所涉及的问题进行分析,试编写和修改相应的程序,得出最终正确的结果和波形图,并对实验报告进行整理分析。
(4)通过MA TLAB仿真,研究离散时间系统,对线性、非线性、时变、非时变等系统进行仿真。
6.实验报告要求:
(1)明确实验目的以及实验的原理。
(2)通过实验内容分析离散时间信号的性质。
(3)完成思考题的内容,对实验结果及其波形图进行分析对比,总结主要结论。
>> n = 0:40; x=[1 zeros(1,40)];
>> num = [0.8 -0.44 0.36 0.02]; den = [1 0.7 -0.45 -0.6];
>> y = filter(num,den,x,);
>> stem(n,y); legend('y[n]');。