实验一-离散时间信号分析
实验一 离散时间信号的频域分析
实验一离散时间信号的频域分析一实验目的:信号的变换域分析是信号处理中一种有效的工具。
在离散信号的时域分析中,我们通常将信号表示成单位采样序列δ[n]的线性组合,而在频域中,我们将信号表示成复变量e-jwn或e-j(2*pi/N)n的线性组合,通过这样的表示,可以将时域的离散序列映射到频域以便于进一步的处理。
在本实验中,将学习利用MATLAB计算离散时间信号的DTFT和DFT,并加深对其相互关系的理解。
二实验原理:(1) DTFT和DFT的定义及其相互关系:序列x[n]的DTFT定义:X(e jw)=∑x[n]e-jnw(n从负无穷到正无穷)它是关于自变量w的复函数,且是以2*pi为周期的连续函数。
X(e jw)可以表示为:X(e jw)=X re(e jw)+ jX im(e jw)其中,X re(e jw)和X im(e jw)分别是X (e jw)的实部和虚部;还可以表示为:X(e jw)= |X(e jw)|e jØ(w)其中。
|X(e jw)|和Ø(w)=arg{ X(e jw)}分别是X(e jw)的幅度函数和相位函数;它们都是w的实函数,也是以2*pi为周期的周期函数。
序列x[n]的N点DFT定义:X[k]=X(e j(2*pi/N)k)=∑x[n]e-j(2*pi/N)kn (0<=n<=N-1)X[k]是周期为N的序列。
X(e jw)与X[k]的关系:X[k]是对X(e jw)在一个周期中的谱的等间隔N点采样,即:X[k]= X(e jw)|w=(2*pi/N)k而X(e jw)可以通过对X[k]内插获得。
(2)使用MATLAB命令:A.基于DTFT离散时间信号分析函数:freqz,real,imag,abs,angle,unware.函数freqz可以用来计算一个以e jw的有理分式形式给出的序列的DTFT值。
Freqz的形式多样,常见的有H=freqz(num,den,w),其中num表示序列有理分式DTFT的分子多项式系数,den表示分母多项式系数(均按z的降幂排列),矢量w表示在0到2*pi中给定的一系列频率集合点。
实验一 离散时间信号的时域分析
实验一 离散时间信号的时域分析实验1 序列的产生1. 目的:熟悉C 语言产生和绘制,熟悉MATLAB 中产生信号和绘制信号的基本命令。
2. 具体实验:2.1 单位样本和单位阶跃序列。
Q1.1 运行程序P1.1 ,以产生单位样本序列u[n]并显示它。
答:如图1-1所示。
Q1.2 命令clf , axis , title , xlabel 和ylabel 的作用是什么? 答:clf :擦除当前图形窗口中的图形。
Axis :调整坐标轴X 轴Y 轴的范围。
Title:给绘制的图形加上标题。
Xlabel:给X 轴加上标注。
Ylabel: 给Y 轴加上标注。
Q1.3 修改程序P1.1 以产生带有延时11个样本的延迟单位样本序列ud[n]。
运行修改的程序并显示产生的序列。
答:如图1-2所示。
Q1.4修改程序P1.1 以产生单位步长序列s[n]。
运行修改的程序并显示产生的序列。
答:如图1-3所示。
Q1.5修改程序P1.1 以产生带有超前7个样本的延迟单位样本序列sd[n]。
运行修改的程序并显示产生的序列。
答:如图1-4所示。
Figure 1-2 The unit sample sequence ud[n]Figure 1-1 The shifted unit sample sequence u[n]单位样本序列公式如下所示:Time index nA m p l i t u d eUnit Sample Sequence u[n]Time index nA m p l i t u d eShifted Unit Sample Sequence ud[n]1 , n=0 1 , n=k δ[n]= δ[n-k]=0 , 0≠0 0 , 0≠kFigure 1-3 The unit step sequence s[n] Figure 1-4 The shifted unit step sequence sd[n]单位阶跃序列公式如下所示:1 , n ≥0 1 , n ≥k μ[n]= μ[n-k]=0 , n <0 0 , n <k2.2 指数信号Q1.6 运行程序P1.2 ,以产生复数值的指数序列。
离散时间信号的时域分析实验报告
离散时间信号的时域分析实验报告实验报告:离散时间信号的时域分析一、实验目的本实验旨在通过MATLAB软件,对离散时间信号进行时域分析,包括信号的显示、基本运算(如加法、减法、乘法、反转等)、以及频域变换(如傅里叶变换)等,以加深对离散时间信号处理的基本概念和原理的理解。
二、实验原理离散时间信号是在时间轴上离散分布的信号,其数学表示为离散时间函数。
与连续时间信号不同,离散时间信号只能在特定的时间点取值。
离散时间信号的时域分析是研究信号的基本属性,包括幅度、时间、频率等。
通过时域分析,我们可以对信号进行各种基本运算和变换,以提取有用的信息。
三、实验步骤1.信号生成:首先,我们使用MATLAB生成两组简单的离散时间信号,一组为正弦波,另一组为方波。
我们将这些信号存储在数组中,以便后续分析和显示。
2.信号显示:利用MATLAB的绘图功能,将生成的信号在时域中显示出来。
这样,我们可以直观地观察信号的基本属性,包括幅度和时间关系。
3.基本运算:对生成的信号进行基本运算,包括加法、减法、乘法、反转等。
将这些运算的结果存储在新的数组中,并绘制出运算后的信号波形。
4.傅里叶变换:使用MATLAB的FFT(快速傅里叶变换)函数,将信号从时域变换到频域。
我们可以得到信号的频谱,进而分析信号的频率属性。
5.结果分析:对上述步骤得到的结果进行分析,包括比较基本运算前后的信号波形变化,以及傅里叶变换前后的频谱差异等。
四、实验结果1.信号显示:通过绘制图形,我们观察到正弦波和方波在时域中的波形特点。
正弦波呈现周期性的波形,方波则呈现明显的阶跃特性。
2.基本运算:通过对比基本运算前后的信号波形图,我们可以观察到信号经过加法、减法、乘法、反转等运算后,其波形发生相应的变化。
例如,两个信号相加后,其幅度和时间与原信号不同。
反转信号则使得波形在时间轴上反向。
3.傅里叶变换:通过FFT变换,我们将时域中的正弦波和方波转换到频域。
正弦波的频谱显示其频率为单一的直流分量,方波的频谱则显示其主要频率分量是直流分量和若干奇数倍的谐波分量。
实验一 离散信号的分析
实验一 离散信号的分析一、实验目的1.观察常用离散时间信号的图形,掌握离散时间信号的基本序列运算。
2.理解离散时间系统的时域特性,加深对离散时间系统差分方程的理解。
3.熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解。
二、实验内容1.在给出的区间上产生并画出下面序列:200)],20()10([10)]10()([)()10(3.0≤≤---+--=--n n u n u e n u n u n n x n2.设}10,8,5,6,4,2,1{)(--=n x ,产生并画出下列序列的样本。
)(3)4(4)5(5)(1n x n x n x n x ++++=三、实验步骤1.新建一个m 文件stepseq.m ,保存到D :/matlab6p5/work 路径下。
具体函数段如下:function [x,n]=stepseq(n0,n1,n2)n=[n1:n2];x=[(n-n0)>=0];2利用上述函数完成实验内容1。
新建一个m 文件lin1.m ,保存到D :/matlab6p5/work 路径下。
具体函数段如下:n=[0:20];x1=n.*(stepseq(0,0,20)-stepseq(10,0,20));x2=10*exp(-0.3*(n-10)).*(stepseq(10,0,20)-stepseq(20,0,20));x=x1+x2;subplot(2,1,1);stem(n,x);xlable('n');ylabel('x(n)');axis([0,20,-1,11]);3.新建两个函数文件sigshift.m 和sigadd.m ,保存到D :/matlab6p5/work 路径下。
具体函数段如下:sigshift.m 程序——function [y,n]=sigshift(x,m,n0);n=m-n0;y=x;sigadd.m 程序——function [y,n]=sigadd(x1,n1,x2,n2); sigmultm=[min(n1),min(n2)];p=[max(n1),max(n2)];n=min(m):1:max(p);y1=zeros(1,length(n));y2=y1;y1(find(n>=min(n1)&(n<=max(n1))==1))=x1;y2(find(n>=min(n2)&(n<=max(n2))==1))=x2;y=y1+y2; y1 .*y24.运用上述两个函数完成实验内容2。
实验一离散时间信号的时域分析
实验一离散时间信号的时域分析离散时间信号是一种离散的信号形式,其具有离散的时间间隔。
这种信号在数字信号处理中得到了广泛的应用。
时域分析是分析信号的一种方法,它通常包括分析信号的幅度、相位、频率等参数,并从中获得信号的特征。
在本实验中,我们将探讨离散时间信号的时域分析方法。
1.实验目的• 了解离散时间信号的基本概念和性质。
• 熟悉MATLAB软件的使用,理解信号处理工具箱的使用方法。
2.实验原理离散时间信号是一种在离散时间点上定义的数列。
它通常用序列来表示,序列的元素是按照一定的时间间隔离散采样得到的。
离散时间信号的采样频率通常表示为Fs,单位是赫兹。
离散时间信号可以写成如下的形式:x(n) = [x(0),x(1),x(2),...,x(N-1)]其中,n表示离散时间点的下标,N表示离散时间信号的长度。
• 幅度分析:指分析离散时间信号的振幅大小。
离散时间信号的幅度、相位、频率的分析通常使用傅里叶变换、离散傅里叶变换等变换方法来实现。
3.实验步骤3.1 生成离散时间信号使用MATLAB编写程序,生成一个离散时间信号。
例如,我们可以生成一个正弦信号:t = 0:0.01:1;x = sin(2*pi*100*t);其中,t表示时间向量,x表示正弦信号。
将信号进行离散化,得到离散时间信号:其中,fs表示采样频率,n表示采样时间点,xn表示采样后的信号。
使用MATLAB的plot函数,绘制离散时间信号的时域图像。
figure(1);plot(n, xn);xlabel('Time');ylabel('Amplitude');其中,figure(1)表示创建一个新的窗口,用于显示图像。
xlabel和ylabel用于设置图像的横轴和纵轴标签。
3.3 使用FFT进行幅度分析X = fft(xn);n = length(X);f = (0:n-1)*(fs/n);power = abs(X).^2/n;其中,X表示离散时间信号的傅里叶变换结果,n表示离散时间信号的长度,f表示频率向量,power表示幅度谱。
实验一离散时间信号的分析报告
工程大学信号分析与处理实验一专业:通信02班学生:瑶华学号:**********完成时间:2022年4月27日实验一: 离散时间信号的分析一、实验目的1.认识常用的各种信号,理解其数学表达式和波形表示。
2.掌握在计算机中生成及绘制数字信号波形的方法。
3.掌握序列的简单运算及计算机实现与作用。
4.理解离散时间傅立叶变换、Z 变换及它们的性质和信号的频域特性。
二、实验设备计算机,MATLAB 语言环境。
三、实验基础理论1.序列的相关概念2.常见序列● 单位取样序列⎩⎨⎧≠==0n 0,0n 1n ,)(δ ● 单位阶跃序列⎩⎨⎧<≥=0,00,1)(n n n u ● 单位矩形序列⎩⎨⎧-≤≤=其他,010,1)(N n n R N ● 实指数序列)()(n u a n x n =● 复指数序列n jw e n x )(0)(+=σ● 正弦型序列)n sin()(0ϕ+=w A n x3.序列的基本运算● 移位 y(n)=x(n-m)● 反褶 y(n)=x(-n)● 和 )()()(21n x n x n y +=● 积 )()()(21n x n x n y •=● 标乘 y(n)=mx(n)● 累加∑-∞==nm m x n y )()( ● 差分运算 ⎩⎨⎧--=∇-+=∆)1()()()()1()(x n x n x n x n x n x n 后相差分前向差分 4.离散傅里叶变换的相关概念● 定义 ∑+∞-∞=-=n jwn jwe n x e X )()(● 两个性质1) [])2()2()2()()(,2)(ππππ++∞-∞=+-+--===∑w j n nw j jw n w j jwn jw e X e n x e X e ew e X 故有。
由于的周期函数,周期为是 2) 当x (n )为实序列时,)(jw e X 的幅值)(jw e X 在π20≤≤w 区间是偶对称函数,相位)(arg jw e X 是奇对称函数。
实验一离散时间信号与系统时域分析
实验一离散时间信号与系统时域分析实验目的1学习MATLAB语言编程和调试技巧2学会简单的矩阵输入和图形表示法3掌握简单的绘图命令一实验目的1学习MATLAB语言编程和调试技巧2学会简单的矩阵输入和图形表示法3掌握简单的绘图命令二、实验原理本实验主要为了熟悉MATLAB环境,重点掌握简单的矩阵(信号)输入和绘图命令,特别是绘图命令tem()和plot()。
实验内容中涉及到信号的无失真采样、离散卷积运算和差分方程求解这三个主要的问题。
其基本原理分别如下:对一个模拟信号某(t)进行采样离散化某(n),为了不失真地从采样信号某(n)中恢复原始信号某(t),采样时必须满足采样定理,即采样频率必须大于等于模拟信号中最高频率分量的2倍。
一个离散时间系统,输入信号为某(n),输出信号为y(n),运算关系用T[﹒]表示,则输入与输出的关系可表示为y(n)=T[某(n)]。
(1)线性时不变(LTI)系统的输入输出关系可通过h(n)表示:y(n)=某(n)某h(n)=式中某表示卷积运算。
(2)LTI系统的实现可物理实现的线性时不变系统是稳定的、因果的。
这种系统的单位脉冲响应是因果的(单边)且绝对可和的,即:h(n)0,n0;nh(n)0在MATLAB语言中采用conv实现卷积运算,即:Y=conv(某,h),它默认从n=0开始。
常系数差分方程可以描述一个LTI系统,通过它可以获得系统的结构,也可以求信号的瞬态解。
利用MATLAB 自带的filter(),可以代替手工迭代运算求解系统的差分方程,求解的过程类似于对输入信号进行滤波处理。
三、实验内容1、试画出如下序列的波形(1)某(n)3(n3)(n2)2(n1)4(n1)2(n2)3(n3)(2)某(n)0.5R10(n)解:用MATLAB描述波形1(1)某=[3120-42-3];%矩阵输入某n=-3:1:3;%输入自变量n,以间隔为1从-3到3变化n实验目的1学习MATLAB语言编程和调试技巧2学会简单的矩阵输入和图形表示法3掌握简单的绘图命令tem(n,某);%tem()函数绘制火柴杆图,注意n,某元素个数必须相等某label('n');%横坐标显示nylabal('某(n)');%纵坐标显示某(n)grid;%绘制网格1(2)n=0:9;某=0.5.^n;tem(n,某);某label('n');ylabel('某(n)');gri实验目的1学习MATLAB语言编程和调试技巧2学会简单的矩阵输入和图形表示法3掌握简单的绘图命令2、用MATLAB计算序列{-201–13}和序列{120-1}的离散卷积,即计算某(n)2(n)(n2)(n3)3(n4)与h(n)(n)2(n1)(n3)解:用MATLAB描述波形。
离散信号分析实验报告
离散信号分析实验报告离散信号分析实验报告引言离散信号分析是一门重要的信号处理技术,广泛应用于通信、图像处理、音频处理等领域。
本实验旨在通过实际操作,探索离散信号分析的基本原理和方法,并通过实验结果验证理论知识的正确性。
实验一:离散信号采样与重构在离散信号分析中,采样是将连续时间信号转换为离散时间信号的过程。
首先,我们使用示波器对连续时间信号进行采样,得到一组离散时间信号。
然后,通过重构技术,将离散时间信号恢复为连续时间信号。
实验中,我们选择了一个正弦信号作为输入信号,通过改变采样频率和重构方法,观察信号的失真情况。
实验结果表明,当采样频率低于信号频率的两倍时,会发生混叠现象,导致信号失真。
而当采样频率高于信号频率的两倍时,信号可以被完全恢复。
此外,使用不同的重构方法也会对信号的失真程度产生影响。
通过实验,我们深入理解了采样和重构的原理,并了解到了如何选择合适的采样频率和重构方法。
实验二:离散信号频谱分析频谱分析是离散信号分析的重要内容之一。
在实验中,我们使用FFT算法对离散信号进行频谱分析,并观察信号在频域上的特征。
通过改变输入信号的频率、幅度和相位,我们可以观察到频谱分析结果的变化。
实验结果表明,在频域上,信号的频谱图呈现出明显的峰值,对应着信号的频率成分。
当输入信号为单频信号时,频谱图上只有一个峰值;而当输入信号为复合信号时,频谱图上会有多个峰值。
此外,改变信号的幅度和相位也会对频谱图产生影响。
通过实验,我们进一步理解了离散信号在频域上的特性,为后续的信号处理工作奠定了基础。
实验三:离散信号滤波滤波是离散信号处理中常用的技术之一。
在实验中,我们使用FIR和IIR两种滤波器对输入信号进行滤波,并比较它们的性能差异。
通过观察输出信号的波形和频谱,我们可以评估滤波器的效果。
实验结果表明,FIR滤波器具有线性相位特性,能够实现较好的频率响应;而IIR滤波器则具有较窄的带宽和较快的响应速度。
根据不同的应用需求,我们可以选择合适的滤波器类型。
实验一 离散时间信号的产生
实验一 离散时间信号的产生1. 实验目的数字信号处理系统中的信号都是以离散时间形态存在的,所以对离散时间信号的研究是数字信号处理的基本所在。
而要研究离散时间信号,首先需要产生各种离散时间信号。
使用MATLAB 软件 很方便的产生各种常见的离散时间信号,而且它还有强大的绘图功能,便于用户直接地处理输出结果。
2. 实验原理离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。
离散序列通常用x(n)来表示,自变量必须是整数,常见的离散时间信号如下:(1) 单位冲激序列⎩⎨⎧=01)(n δ 00≠=n n如果)(n δ在时间轴上延迟了k 个单位,)(k n -δ即:⎩⎨⎧=-01)(k n δ 0≠=n k n长度为N 的单位冲激序列δ(n)可以通过下面的MATLAB 命令获得。
n=-(N-1):N-1x=[zeros(1,N-1) 1 zeros(1,N-1)];setm(n,x)延迟K 个采样点的长度为N 的单位冲激序列δ(N-k )(k<N)可以用下面的命令获得: n=-(N-1):N-1x=[zeros(1,M) 1 zeros(1,N-M-1)];setm(n,y)(2)单位阶跃序列⎩⎨⎧01)(n u 00<≥n n 长度为N 的单位阶跃序列u (n)可以通过下面的MA TLAB 命令获得。
n=-(N-1):N-1x=[zeros(1,N-1) ones(1,N)];setm(n,x)延迟的单位阶跃序可以用类似于单位冲激信号的方法产生。
(3)矩形序列R N =u(n)-u(n-N)(4)正弦序列x (n ) = A cos(ωn +φ).这里A ,ω,φ都是实数分别为正弦信号的振幅,角频率,和初始相位,可以用下面的命令获得:n=0:N-1x=A*cos(2*pi*f*n/Fs+phase)(5) 单边指数序列:n a n x =)(u (n) 长度为N 的单边指数序列可以通过下面的MA TLAB 命令实现n a x N n .^1:0=-=setm(n,x)(6)复指数序列3实验内容(1)绘制程序产生单位冲激序列⎩⎨⎧=01)(n δ00≠=n n 及δ(n-“学号后两位”)并绘出其图形>> n=-10:10;>> x=[zeros(1,10),1,zeros(1,10)];>> stem(n,x)>> title('单位冲激序列'); >> xlabel('n');ylabel('x(n)');>> n=0:50;>> y=[zeros(1,40),1,zeros(1,10)];>>stem(n,y);>> title('单位冲激采样后的序列');>> xlabel('n');ylabel('y(n)');(2)绘制程序产生单位阶跃信号⎩⎨⎧01)(n u 00<≥n n 及u(n-“学号后两位”)及u(n)- u(n-“学号后两位”),并绘出其图形。
离散时间信号的时域分析实验报告
离散时间信号的时域分析实验报告实验名称:离散时间信号的时域分析⼀、实验⽬的1.学会⽤MATLAB在时域中产⽣⼀些基本的离散时间信号,并对这些信号进⾏⼀些基本的运算。
2.熟悉MATLAB中产⽣信号和绘制信号的基本命令。
⼆、实验内容1.在载波信号xH[n]和调制信号xL[n]采⽤不同频率、不同调制指数m的情况下,运⾏程序P1.6,以产⽣振幅调制信号y[n]。
2.编写matlab程序,以产⽣图1.1和图1.2所⽰的⽅波和锯齿波序列,并将序列绘制出来。
三、主要算法与程序1.n=0:100;m=0.6;fH=0.2;fL=0.02;xH=sin(2*pi*fH*n);xL=sin(2*pi*fL*n);y=(1+m*xL).*xH;stem(n,y);grid;xlabel('时间序列');ylabel('振幅');通过改变m,fH和fL来产⽣不同情况下的振幅调制信号。
2.画出图⼆:n=0:1:30;y=3*square(n*pi/5,60);stem(n,y),grid onaxis([0,30,-4,4]);xlabel('时间序号n');ylabel('振幅');为画出图三,将占空⽐由图⼆的60改为30。
画出图四:n=0:1:50;y=2*sawtooth(n*pi/10,1);stem(n,y),grid onaxis([0,50,-2,2]);xlabel('时间序号n');ylabel('振幅');为画出图五,将图四中从-1到1的范围由1改为0.5。
四、实验结果与分析图⼀确定了数值:m=0.6,fH=0.2,fL=0.02,绘出图像。
图⼆图三图四图五五、实验⼩结通过这次实验,我熟悉MATLAB中产⽣信号和绘制信号的基本命令,学会⽤MATLAB在时域中产⽣⼀些基本的离散时间信号,并对这些信号进⾏⼀些基本的运算。
数字信号处理实验一 ——离散时间信号分析
function [y,ny] = seqshift(x,nx,n0)
-1 0 1 2 n 3 4 5 6 7
5 4 y[n]=x[n-3] 3 2 1 0 -2
% [y,ny] = seqshift(x,nx,n0) % ------------------------% 实现 y(n) = x(n-n0) % n0为平移样本数 为平移样本数 ny = nx + n0; % 位置向量移位 y = x; % 序列的值不变
测控技术与仪器研究室
实验原理
2.序列的基本运算 2.2 序列的乘法 :z(n)=x(n)×y(n) × 序列的乘法是一种非线性运算,它用于信号的调制。 序列的乘法是一种非线性运算,它用于信号的调制。 它把两个序列中位置序号相同的样本相乘, 它把两个序列中位置序号相同的样本相乘,形成新的样本 序列。例如: 序列。例如: y (n ) = x(n )sin (ω0 n + 0.1π )称做对x(n )做正弦调制; y (n ) = x(n )RN (n )为从序列中用矩形函数 RN (n )截取[0, N − 1]的一段有限序列。
画图
subplot(4,2,1), stem(ns1:nf1,x1,'.') % 绘图 xlabel('nx1'),ylabel('x1'),axis([xlabel('nx1'),ylabel('x1'),axis([-5,10,0,4]) subplot(4,2,3), stem(ns2:nf2,x2,'.'),axis([-5,10,-2,2]) stem(ns2:nf2,x2,'.'),axis([-5,10,xlabel('nx2'),ylabel('x2') subplot(4,2,2), stem(ny,y1,'.') % 绘图 xlabel('ny'),ylabel('y1') subplot(4,2,4), stem(ny,y2,'.') xlabel('ny'),ylabel('y2') line([ny(1),ny(end)],[0,0]) % 画 x轴 subplot(4,2,6), stem(ny,ya,'.') xlabel('ny'),ylabel('ya') line([ny(1),ny(end)],[0,0]) % 画 x轴 subplot(4,2,8), stem(ny,yp,'.') xlabel('ny'),ylabel('yp') line([ny(1),ny(end)],[0,0]) % 画 x轴 set(gcf,'color','w') % 置图形背景色为白
离散信号实验报告
一、实验目的1. 理解离散信号的概念及其特点。
2. 掌握离散信号的表示方法。
3. 掌握离散信号的基本运算方法。
4. 熟悉离散系统响应的求解方法。
5. 利用MATLAB进行离散信号分析。
二、实验原理离散信号是指时间上不连续的信号,与连续信号相比,具有以下特点:1. 采样性:离散信号是在时间上等间隔取样的信号。
2. 有限性:离散信号在时间上有限,即在有限的时间内存在。
3. 线性时不变性:离散系统具有线性时不变性,即系统对信号的时延和幅度变换保持不变。
离散信号的表示方法主要有以下几种:1. 序列表示法:用括号括起来的序列表示,如x[n]。
2. 图形表示法:用坐标轴表示,横轴为时间,纵轴为信号幅度。
3. Z变换表示法:用Z变换表示,如X(z)。
离散信号的基本运算方法包括:1. 加法运算:两个离散信号相加,结果为它们的序列对应元素相加。
2. 乘法运算:两个离散信号相乘,结果为它们的序列对应元素相乘。
3. 移位运算:将离散信号沿时间轴左移或右移。
4. 展平运算:将离散信号沿时间轴展平,即将信号序列展开成矩阵形式。
离散系统响应的求解方法主要有以下几种:1. 离散卷积法:用离散卷积运算求解离散系统响应。
2. Z变换法:用Z变换求解离散系统响应。
3. 快速傅里叶变换(FFT)法:用FFT求解离散系统响应。
三、实验内容及步骤1. 实验一:离散信号的表示方法(1)在MATLAB中,创建一个离散信号序列x[n],并绘制其图形表示。
(2)利用Z变换,将离散信号序列转换为Z变换表示。
2. 实验二:离散信号的基本运算(1)在MATLAB中,创建两个离散信号序列x[n]和y[n],并进行加法运算、乘法运算、移位运算和展平运算。
(2)绘制运算结果,并分析运算结果的特点。
3. 实验三:离散系统响应的求解(1)在MATLAB中,创建一个离散信号序列x[n],并设计一个离散系统。
(2)利用离散卷积法、Z变换法和FFT法求解离散系统响应。
实验一离散时间信号的时域分析
实验一离散时间信号的时域分析陈一凡20212121006一、实验目的:学习使用MATLAB程序产生信号和绘制信号;学习使用MATLAB运算符产生根本离散时间序列——指数序列;学习使用MATLAB三角运算符产生正弦序列;学习使用MATLAB命令产生长度为N且具有零均值和单位方差的正态分布的随机信号;学习使用MATLAB中三点滑动平均算法来实现噪声的移除;学习使用MATLAB程序产生振幅调制信号;学习使用MATLAB函数产生方波和锯齿波;二、实验原理简述:运用运算符和特殊符号,根本矩阵和矩阵控制,根本函数,数据分析,二维图形,通用图形函数,信号处理工具箱等命令,产生以向量形式存储的信号。
三、实验内容与实验结果1、产生并绘制一个单位样本序列运行程序clfn=-10:20;u=[zeros(1,10) 1 zeros(1,20)];stem(n,u);xlabel('时间序号);ylabel('振幅');title('单位样本序列');axis([-10 20 0 1.2]);实验结果如图1所示图1 2.1、生成一个复数值的指数序列:运行程序:clf;c=-(1/12)+(pi/6)*i;K=2;n=0:40;x=K*exp(c*n);subplot(2,1,1);stem(n,real(x));xlabel('时间序号n');ylabel('振幅');title('实部');subplot(2,1,2);stem(n,imag(x));xlabel('时间序号n');ylabel('振幅');title('虚部');实验结果如图2所示0510152025303540时间序号n振幅0510152025303540时间序号n振幅虚部图22.2、生成一个实数值的指数序列: 运行程序:clf;n=0:35;a=1.2;K=0.2; x=K*a.^n; stem(n,x);xlabel('时间序号n');ylabel('振幅');实验结果如图3所示时间序号n振幅图33、产生一个正弦信号: 运行程序:n=0:40; f=0.1; phase=0; A=1.5;arg=2*pi*f*n-phase; x=A*cos(arg); clf; stem(n,x); axis([0 40 -2 2]); grid;title('正弦序列'); xlabel('时间序号n'); ylabel('振幅'); axis;实验结果如图4所示正弦序列时间序号n振幅图44、产生长度为N 且具有零均值和单位方差的正态分布的随机信号: 运行程序:x=4*rand(1,100)-2 plot(x);axis([0,100,-2,2]); title('扫频正弦信号'); xlabel('时间序号n'); ylabel('振幅'); grid;axis;实验结果如图5所示:-2-1.5-1-0.500.511.52扫频正弦信号时间序号n振幅图5并产生如下所示序列:x =Columns 1 through 11Columns 12 through 22Columns 23 through 33Columns 34 through 44Columns 45 through 55Columns 56 through 66Columns 67 through 77Columns 78 through 88Columns 89 through 99Column 1005、利用三点滑动平均算法实现信号中噪声的移除:运行程序:clf;R=51;d=0.8*(rand(R,1)-0.5);m=0:R-1;s=2*m.*(0.9.^m);x=s+d';subplot(2,1,1);plot(m,d','r-',m,s,'g--',m,x,'b-.');xlabel('时间序号n');ylabel('振幅');legend('d[n] ','s[n] ','x[n] ');x1=[0 0 x];x2=[0 x 0];x3=[x 0 0];y=(x1+x2+x3)/3;subplot(2,1,2);plot(m,y(2:R+1),'r-',m,s,'g--');legend('y[n] ','s[n] ');xlabel('时间序号n');ylabel('振幅');实验结果如图6所示:-50510时间序号n振幅2468时间序号n振幅图66.1、产生一个振幅调制信号: 运行程序:n=0:100;m=0.4;fH=0.1; fL=0.01; xH=sin(2*pi*fH*n); xL=sin(2*pi*fL*n); y=(1+m*xL).*xH; stem(n,y);grid;xlabel('时间序列n');ylabel('振幅');实验结果如图7所示:时间序列n振幅图7、产生频率随时间线性增加的扫频正弦信号: 运行程序:n=0:100; a=pi/2/100; b=0;arg=a*n.*n+b*n; x=cos(arg); clf; stem(n,x);axis([0,100,-1.5,1.5]); title('扫频正弦信号'); xlabel('时间序号n'); ylabel('振幅'); grid;axis;实验结果如图8所示:扫频正弦信号时间序号n振幅图87.1、绘制最大振幅为2.7,周期为10,占空比为60%的方波信号: 运行程序:t=0:30;y=*square(2*pi*0.1*t,60); stem(t,y);xlabel('时间序号n'); ylabel('振幅');实验结果如图9所示:时间序号n 振幅图97.2、绘制最大振幅为2.7,周期为10,占空比为30%的方波信号:运行程序:t=0:30;y=2.7*square(2*pi*0.1*t,30);stem(t,y);xlabel('时间序号n');ylabel('振幅');实验结果如图10所示:时间序号n 振幅图107.3、产生一个振幅为2,周期为20的方波信号:运行程序:t=0:50;y=2*sawtooth(2*pi*0.05*t)stem(t,y);xlabel('时间序号n');ylabel('振幅');实验结果如图11所示:时间序号n 振幅图11并产生了锯齿波序列值如下所示:y =Columns 1 through 11-2.0000 -1.8000 -1.6000 -1.4000 -1.2000 -1.0000 -0.8000 -0.6000 -0.4000 -0.2000 0Columns 12 through 22Columns 23 through 33Columns 34 through 44Columns 45 through 51-1.2000 -1.0000 -0.8000 -0.6000 -0.4000 -0.2000 07.4、产生一个振幅为2,周期为20的方波信号:运行程序:t=0:50;y=2*sawtooth(2*pi*0.05*t)stem(t,y);xlabel('时间序号n');ylabel('振幅');实验结果如图12所示:时间序号n 振幅图12并产生了锯齿波序列值如下所示:y =Columns 1 through 11Columns 12 through 22Columns 23 through 33Columns 34 through 44Columns 45 through 51四、实验分析:针对实验1 产生并绘制了一个单位样本序列n=-10:20即产生从-10到20的一个向量u=[zeros(1,10) 1 zeros(1,20)];即产生单位样本序列stem(n,u);即绘制单位样本序列针对实验2 产生一个实指数序列clf;即去除所有的内存变量n=0:35;即产生一个从0到35的向量a=1.2;K=0.2;即对对各系数进展限定x=K*a.^n;即函数表达式stem(n,x);即绘制实指数信号xlabel('时间序号n');ylabel('振幅');即将横坐标记为时间序号n,纵坐标记为振幅产生一个复数值的指数序列c=-(1/12)+(pi/6)*i;即复数的表达式K=2;即对常数进展定义n=0:40;即产生一个从0到40的向量x=K*exp(c*n);即指数表达式subplot(2,1,1);即将平面分成上下两个区域,并在上半部分画图stem(n,real(x)); 即在平面的上半部分画实部图xlabel('时间序号n');ylabel('振幅');title('实部');即对该图进展命名,名为实部subplot(2,1,2);即在下半部分画图stem(n,imag(x));即画虚部图xlabel('时间序号n');ylabel('振幅');title('虚部');即对该图进展命名,名为虚部针对实验3产生一个正弦序列n=0:40;f=0.1;即对频率进展限定phase=0;即对初相角进展限定A=1.5;即对系数进展限定arg=2*pi*f*n-phase;即角度函数x=A*cos(arg);即正弦函数clf;stem(n,x);axis([0 40 -2 2]);即对图形的横纵坐标轴的范围进展限定grid;即产生二维图形title('正弦序列');xlabel('时间序号n');ylabel('振幅');axis;即产生二维图形针对实验4产生一个随机信号x=4*rand(1,100)-2;即产生长度为100且具有零均值和单位方差的正态分布的随机信号的函数表达式plot(x);即绘制二维图形axis([0,100,-2,2]);title('扫频正弦信号');xlabel('时间序号n');ylabel('振幅');grid;axis;针对实验5实现信号的噪声移除R=51;d=0.8*(rand(R,1)-0.5);即产生随机噪声m=0:R-1;即产生未污染的信号s=2*m.*(0.9.^m);即产生被噪声污染的信号x=s+d';其中对d进展了转置subplot(2,1,1);plot(m,d','r-',m,s,'g--',m,x,'b-.');即绘制图形,m,s,x xlabel('时间序号n');ylabel('振幅');legend('d[n] ','s[n] ','x[n] ');x1=[0 0 x];x2=[0 x 0];x3=[x 0 0];y=(x1+x2+x3)/3;subplot(2,1,2);plot(m,y(2:R+1),'r-',m,s,'g--');legend('y[n] ','s[n] ');xlabel('时间序号n');ylabel('振幅');针对实验6产生振幅调制信号n=0:100;m=0.4;fH=0.1; fL=0.01;即对高频和低频进展限定xH=sin(2*pi*fH*n);即产生高频信号xL=sin(2*pi*fL*n);即产生低频信号y=(1+m*xL).*xH;即产生振幅调制信号stem(n,y);grid;xlabel('时间序列n');ylabel('振幅');产生一个扫频正弦函数n=0:100;a=pi/2/100;b=0;arg=a*n.*n+b*n;即对角度进展限定x=cos(arg);正弦扫频函数表达式clf;stem(n,x);axis([0,100,-1.5,1.5]);title('扫频正弦信号');xlabel('时间序号n');ylabel('振幅');grid;axis;针对实验7产生方波和锯齿波信号t=0:30;时间范围是0到30,取样间隔为1y=2.7*square(2*pi*0.1*t,60);产生一个高度为2.7占空比为6:4的方波stem(t,y)7.2、t=0:30时间范围是0到30,取样间隔为1y=2.7*square(2*pi*0.1*t,30);产生一个高度为2.7占空比为3:7的方波stem(t,y)7.3、t=0:50时间范围是0到50,取样间隔为1y=2*sawtooth(2*pi*0.05*t);即产生一个高度为2的锯齿波stem(t,y);7.4、t=0:50;时间范围是0到50,取样间隔为1y=2*sawtooth(2*pi*0.05*t,0.5);产生一个高度为2的锯齿波stem(t,y);五、实验总结在此次实验中,我学会了用MATLAB 程序绘制图形,产生信号。
离散信号分析实验报告
一、实验名称离散信号分析实验二、实验目的1. 理解离散信号的基本概念和特点。
2. 掌握离散信号的表示方法,包括时域和频域表示。
3. 熟悉离散信号的基本运算,如加、减、乘、除等。
4. 理解离散系统响应的概念,并学会使用MATLAB进行离散信号与系统分析。
三、实验原理离散信号是指只在离散时刻上有定义的信号,其特点是时域上的不连续性。
离散信号可以通过时域采样和频域变换进行分析。
四、实验内容1. 离散信号的生成与表示使用MATLAB生成以下离散信号:- 单位脉冲序列:δ[n]- 单位阶跃序列:u[n]- 单位斜坡序列:r[n]- 正弦信号:sin(nω0)- 指数信号:e^(αn)并分别绘制这些信号的时域波形图。
2. 离散信号的运算对上述生成的信号进行以下运算:- 加法运算:δ[n] + u[n]- 乘法运算:δ[n] e^(αn)- 移位运算:δ[n - 1]- 反褶运算:δ[-n]绘制运算结果的时域波形图。
3. 离散系统响应假设离散系统由以下差分方程描述:y[n] = x[n] + x[n - 1] - y[n - 1]使用MATLAB编写程序,对输入信号x[n] = δ[n] 进行仿真,并绘制系统响应y[n] 的时域波形图。
4. 离散信号的频域分析对上述生成的信号进行傅里叶变换,得到其频域表示。
绘制信号的频谱图,并分析信号的频率特性。
五、实验步骤1. 使用MATLAB编写程序,生成上述离散信号。
2. 绘制信号的时域波形图。
3. 对信号进行运算,绘制运算结果的时域波形图。
4. 使用MATLAB编写程序,对输入信号进行仿真,并绘制系统响应的时域波形图。
5. 对信号进行傅里叶变换,绘制信号的频谱图。
六、实验结果与分析1. 离散信号的生成与表示通过实验,我们成功生成了上述离散信号,并绘制了它们的时域波形图。
可以看出,这些离散信号在时域上是不连续的。
2. 离散信号的运算通过实验,我们验证了离散信号的基本运算规律,如加法、乘法、移位和反褶等。
实验 离散时间信号的时域分析
实验一 离散时间信号的时域分析实验1 序列的产生1. 目的:熟悉C 语言产生和绘制,熟悉MATLAB 中产生信号和绘制信号的基本命令。
2. 具体实验:2.1 单位样本和单位阶跃序列。
Q1.1 运行程序P1.1 ,以产生单位样本序列u[n]并显示它。
答:如图1-1所示。
Q1.2 命令clf , axis , title , xlabel 和ylabel 的作用是什么? 答:clf :擦除当前图形窗口中的图形。
Axis :调整坐标轴X 轴Y 轴的范围。
Title:给绘制的图形加上标题。
Xlabel:给X 轴加上标注。
Ylabel: 给Y 轴加上标注。
Q1.3 修改程序P1.1 以产生带有延时11个样本的延迟单位样本序列ud[n]。
运行修改的程序并显示产生的序列。
答:如图1-2所示。
Q1.4修改程序P1.1 以产生单位步长序列s[n]。
运行修改的程序并显示产生的序列。
答:如图1-3所示。
Q1.5修改程序P1.1 以产生带有超前7个样本的延迟单位样本序列sd[n]。
运行修改的程序并显示产生的序列。
答:如图1-4所示。
Figure 1-2 The unit sample sequence ud[n]Figure 1-1 The shifted unit sample sequence u[n]单位样本序列公式如下所示:Time index nA m p l i t u d eUnit Sample Sequence u[n]Time index nA m p l i t u d eShifted Unit Sample Sequence ud[n]1 , n=0 1 , n=k δ[n]= δ[n-k]=0 , 0≠0 0 , 0≠kFigure 1-3 The unit step sequence s[n] Figure 1-4 The shifted unit step sequence sd[n]单位阶跃序列公式如下所示:1 , n ≥0 1 , n ≥k μ[n]= μ[n-k]=0 , n <0 0 , n <k2.2 指数信号Q1.6 运行程序P1.2 ,以产生复数值的指数序列。
实验一 离散时间信号与系统的傅里叶分析
电子信息工程系实验报告课程名称:数字信号处理成绩:实验项目名称:实验1 离散时间信号与系统的傅里叶分析时间:指导教师(签名):班级:电信092 姓名:XXX 学号:910706201实验目的:用傅里叶变换对离散时间信号和系统进行频域分析。
实验环境:计算机、MATLAB软件实验原理:对信号进行频域分析即对信号进行傅里叶变换。
对系统进行频域分析即对其单位脉冲响应进行傅里叶变换,得到系统的传输函数;也可由差分方程经过傅里叶变换直接求其传输函数,传输函数代表的就是频率响应特性。
而传输函数是w的连续函数,计算机只能计算出有限个离散频率点的传输函数值,故可在0~2∏之间取许多点,计算这些点的传输函数的值,并取它们的包络,所得包络即所需的频率特性。
实验内容和步骤:1、已知系统用下面差分方程描述:y(n)=x(n)+ay(n-1),试在a=0.95和a=0.5 两种情况下用傅立叶变换分析系统的频率特性。
要求写出系统的传输函数,并打印|H(e jω)|~ω曲线。
解:B=1;A=[1,-0.95]; [H,w]=freqz(B,A,'whole');subplot(1,3,1);plot(w/pi,abs(H),'linewidth',2);grid on;xlabel('\omega/\pi');ylabel('|H(e^j^\omega)|');title('幅频响应特性');axis([0,2,0,2.5]);B=1;A=[1,-0.5];[H,w]=freqz(B,A,'whole');subplot(1,3,3);plot(w/pi,abs(H),'linewidth',2);grid on;xlabel('\omega/\pi');ylabel('|H(e^j^\omega)|');title('幅频响应特性');axis([0,2,0,2.5]);图形如下图1、2所示:图1 a=0.95时的幅频响应特性图2 a=0.5时的幅频响应特性2、已知两系统分别用下面差分方程描述: y1(n)=x(n)+x(n-1) y2(n)=x(n)-x(n-1)试分别写出它们的传输函数,并分别打印|H(e jω)| ~ω曲线。
实验一离散时间信号的表示与运算
实验一离散时间信号的表示与运算实验一:离散时间信号的表示与运算一、实验目的本实验旨在让学生了解和掌握离散时间信号的基本表示方法,包括时域和频域表示方法,以及基本信号的运算方法,从而为学生进一步学习数字信号处理和通信系统等课程打下坚实的基础。
二、实验原理离散时间信号是在时间轴上离散出现的信号,与连续时间信号不同,它只能在离散的时间点上采样观察。
离散时间信号的表示方法包括时域和频域表示方法,其中时域表示方法是最基本和直观的表示方法。
离散时间信号的运算包括加法、减法、乘法和除法等基本运算,通过这些基本运算可以实现对离散时间信号的基本处理。
此外,离散时间信号的变换也成为频域分析,将信号从时域转化为频域,可以对信号的频率特性进行分析。
三、实验步骤1.准备阶段:在进行实验之前,需要准备好实验所需的器材和软件,包括计算机、信号发生器和数字示波器等。
同时,学生应该对离散时间信号的基本概念和表示方法进行预习,以便更好地进行实验。
2.时域表示:首先,通过计算机生成一组离散时间信号,例如矩形波信号、正弦波信号和余弦波信号等。
然后,将所生成的离散时间信号在数字示波器中进行观察和记录,并对这些信号进行简单的处理,例如加减乘除等基本运算。
3.频域表示:通过使用离散傅里叶变换(DFT)将所生成的离散时间信号从时域转化到频域,并对信号的频谱进行分析。
通过观察信号的频谱,可以了解信号的频率成分和幅度分布等情况。
4.实验总结:在完成实验观察和记录后,学生应该对实验结果进行分析和总结,并对实验过程中遇到的问题进行思考和解决。
同时,学生应该了解并掌握离散时间信号的表示与运算的基本原理和方法。
四、实验结果及分析通过本次实验,学生应该得到以下实验结果:1.了解并掌握离散时间信号的基本概念和表示方法;2.学会使用简单的离散时间信号处理算法对信号进行处理;3.掌握将离散时间信号从时域转化为频域的方法,并对信号的频谱进行分析;4.学会使用MATLAB等软件对离散时间信号进行处理和分析。
数字信号处理实验一 离散时间信号分析
数字信号处理实验一离散时间信号分析2013年3月6日一、实验目的1. 初步掌握Matlab的使用,掌握编写M文件和函数文件2. 掌握各种常用序列的表达,理解其数学表达式和波形表示之间的关系。
3. 掌握生成及绘制数字信号波形的方法。
4. 掌握序列的基本运算及实现方法。
5. 研究信号采样时采样定理的应用问题。
二、实验原理1.序列的基本概念离散时间信号在数学上可用时间序列{x(n)}来表示,其中x(n)代表序列的第n个数字,n 代表时间的序列,n 的取值范围为-∞<n <∞的整数,n 取其它值x(n)没有意义。
离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号x (t) a 进行等间隔采样,采样间隔为T,得到{x a(nT )}一个有序的数字序列就是离散时间信号,简称序列。
2.常用序列常用序列有:单位脉冲序列(单位抽样)δ(n)、单位阶跃序列u(n)、矩形序列R N(n)、实指数序列、复指数序列、正弦型序列等。
3.序列的基本运算序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。
4.序列的卷积运算上式的运算关系称为卷积运算,式中*代表两个序列卷积运算。
两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。
其计算的过程包括以下4 个步骤。
(1)反褶:先将x(n)和h(n)的变量n换成m ,变成x(m)和h(m),再将h(m)以纵轴为对称轴反褶成h(-m)。
(2)移位:将h(-m)移位n,得h(n-m)。
当n为正数时,右移n位;当n为负数时,左移n 位。
(3)相乘:将h(n-m)和x(m)的对应点值相乘。
(4)求和:将以上所有对应点的乘积累加起来,即得y(n)。
三、主要实验仪器及材料PC 机、Matlab7.0四、实验内容1.知识准备认真复习以上基础理论,理解本实验所用到的实验原理。
2.离散时间信号(序列)的产生利用MATLAB产生和绘制下列有限长序列:(1)单位脉冲序列δ(n),单位阶跃序列u(n),矩形序列R8(n)程序如下:clear;n=-5:30;x1=[zeros(1,5),1,zeros(1,30)]; %定义单位脉冲序列 x2=[zeros(1,5),ones(1,31)]; %定义单位阶跃序列 x3=[zeros(1,5),ones(1,8),zeros(1,23)]; %定义矩形序列 subplot(3,1,1); stem(n,x1,'fill'); grid on ; subplot(3,1,2); stem(n,x2,'fill'); grid on ; subplot(3,1,3); stem(n,x3,'fill'); grid on绘制图如下:分析:根据以上三个序列的特点,正确使用零矩阵函数(zeros )和幺矩阵函数(ones )编程;也可以使用for 循环语句实现上述序列生成。
实验一离散时间信号在MATLAB中的表示
实验一离散时间信号的表示及运算一、实验目的1、学会运用MATLAB 表示的常用离散时间信号;2、学会运用MATLAB 实现离散时间信号的基本运算。
二、实验原理及实例分析2.1 离散时间信号在MATLAB中的表示离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。
离散序列通常用x(n)来表示,自变量n 必须是整数。
离散时间信号的波形绘制在MA TLAB 中一般用stem( )函数(注释:stem中文意思是茎、干、柄)。
stem( )函数的基本用法和plot( )函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。
如果要实心,需使用参数“ fill ”、“ filled ”,或者参数“ .”。
由于MATLAB 中矩阵元素的个数有限,所以MATLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。
类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。
0、判断n 是否为整数function y = isInt(n)y = (n==fix(n)); % fix(n) 为取整运算end1、单位取样序列单位取样序列(n) ,也称为单位冲激序列,定义为1 (n 0)1)0 (n 0)要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n=0 处是取确定的值1。
在MA TLAB 中,冲激序列可以通过编写以下的impDT .m 文件来实现,即function y=impDT(n)y=(n==0); %当参数n 为0 时冲激为1,否则为0end调用该函数时n 必须为整数或整数向量。
【实例1】利用MA TLAB 的impDT 函数绘出单位冲激序列的波形图。
解:MATLAB 源程序为>>n=-3:3; % n=[-3,-2,-1,0,1,2,3]>>x=impDT(n);>>stem(n,x,'fill'), xlabel('n'), grid on>>title(' 单位冲激序列')>>axis([-3 3 -0.1 1.1])程序运行结果如图 1 所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 离散时间信号分析一、实验目的1. 初步掌握 Matlab 的使用,掌握编写M 文件和函数文件2. 掌握各种常用序列的表达,理解其数学表达式和波形表示之间的关系。
3. 掌握生成及绘制数字信号波形的方法。
4. 掌握序列的基本运算及实现方法。
5. 研究信号采样时采样定理的应用问题。
二、实验原理1.序列的基本概念离散时间信号在数学上可用时间序列{x (n )}来表示,其中x (n )代表序列的第n 个数字,n 代表时间的序列,n 的取值范围为-∞< n<+∞的整数,n 取其它值x (n )没有意义。
离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号x a (t ) 进行等间隔采样,采样间隔为T ,得到{x (nT )} a 一个有序的数字序列就是离散时间信号,简称序列。
2.常用序列常用序列有:单位脉冲序列(单位抽样)δ (n )、单位阶跃序列u (n )、矩形序列R N (n ) 、实指数序列、复指数序列、正弦型序列等。
3.序列的基本运算序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。
4.序列的卷积运算 y(n)=∑x (m )h (n −m )+∞m=−∞=x(n)*h(n) 上式的运算关系称为卷积运算,式中* 代表两个序列卷积运算。
两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。
其计算的过程包括以下4 个步骤。
(1)反褶:先将x (n )和h (n )的变量n 换成m ,变成x (m )和h (m ),再将h (m )以纵 轴为对称轴反褶成h (-m )。
(2)移位:将h (-m )移位n ,得h (n- m )。
当n 为正数时,右移n 位;当n 为负数时, 左移n 位。
(3)相乘:将h (n -m )和x (m )的对应点值相乘。
(4)求和:将以上所有对应点的乘积累加起来,即得y (n )。
三、主要实验仪器及材料PC 机、Matlab7.0。
四、实验内容1.知识准备认真复习以上基础理论,理解本实验所用到的实验原理。
2.离散时间信号(序列)的产生利用MATLAB 产生和绘制下列有限长序列:(1)单位脉冲序列δ(n),单位阶跃序列u(n),矩形序列R8(n)(2)在一幅图上绘出曲线x1(t)=Asin(π5t+π3);x2(t)=Acos(t-π3);x3(t)=2sin(3t)cos(2t-π3).(3)绘出正弦衰减信号:x2(t)=Ae−αt sin(2πft),A=2,α=0.5,f=2Hz(4)绘出谐波信号:x3(t)=A1sin(2πft)+A2sin(2πf2t)+A3sin(2πf3t);A1=1,A2=0.5,A3=0.2,f=2Hz.3.序列的运算生成下列序列:x(n)=δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4)h(n)= δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3)(1) 利用MATLAB 编程完成上述两序列的卷积,并绘制运算后序列的波形。
(2)编写一个完成卷积的函数,输入是两个序列,输出是结果。
4.采样定理的研究分别令采样周期Ts 为不同值,绘出不同采样周期下x(t) =sin(t)的频谱(直接用FFT函数),观察频谱混叠现象,和防止混叠的采样周期。
5.上机实验并完成实验报告。
请将实验报告保存为压缩文件(.rar,或.zip 格式),包括源程序(.M 文件)和文档(.doc),统一名为“xxx——实验x.rar”或“xxx——实验x.zip”五、实验结果1.1.1单位脉冲序列δ(n)源程序:function [x,n] =impseq(n0,n1,n2)%产生x(n)=δ(n-n0);n1<=n0<=n2if((n0<n1)|(n0>n2)|(n1>n2))error('参数不满足n1<=n0<=n2')endn=n1:n2;x=[(n-n0)==0];%x=[zeros(1,n0-n1),1,zeros(1,(n2-n0))] stem(n,x);n0=0;n1=-3;n2=3;impseq(n0,n1,n2);1.1.2.单位阶跃序列u(n)源程序:function [x,n] =stepseq(n0,n1,n2)%产生x(n)=u(n-n0);n1<n0<n2if((n0<n1)|(n0>n2)|(n1>n2))error('参数不满足n1<n0<n2')endn=n1:n2x=[(n-n0)>=0]%x=[zeros(1,(n0-n1)),ones(1,(n2-n1))] stem(n,x);n0=0;n1=-3;n2=3;stepseq(n0,n1,n2);1.1.3.矩形序列源程序:function [ x,n ] = R( N,ns,nf )%产生序列x(n)=u(n-n0)-u(n-n0-N)n=ns:nf;np=0; x=stepseq(np,ns,nf)-stepseq(N,ns,nf);%x=[0<=n<7]stem(n,x);N=8;ns=-2;nf=10;x=R(N,ns,nf)1.2在同一图中绘制x1(t),x2(t),x3(t)源程序:function [x1,x2,x3,t ] = X1(A,a,b ) t=a:0.001:b;a<bif(a>=b)error('参数不满足a<b')endx1=A.*sin(pi./5.*t+ pi./3);x2=A.*cos(t-pi./3);x3=2.*sin(3.*t).*cos(2.*t-pi./3); plot(t,x1,x2,x3)A=2;a=-pi;b=pi;[x1,x2,x3]=X1(A,a,b);1.3正弦衰减信号源程序:function [x,t] = X2( A,a,f,t1,t2 )%产生函数x(t)=e^(-at) sin(2pift),t1<t2 if(t1>t2)error('参数不满足t1<t2')endt=t1:0.01:t2;x=exp(-a.*t).* sin(2.*pi.*f.*t);plot(t,x)A=2;a=0.5;f=2;t1=-2;t2=2;x=X2(A,a,f,t1,t2)1.4谐波信号源程序:function [ x,t ] =X3( A1,A2,A3,f,t1,t2 )%产生x3(t)=A1.*sin(2.*pi.*f.*t)+A2.*sin(2.*pi.*f.*2.*t)+A3.*sin(2.*pi.*f.* 3.*%t),t1<t2if(t1>t2)error('参数不满足t1<t2')endt=t1:0.0001:t2;x=A1.*sin(2.*pi.*f.*t)+A2.*sin(2.*pi.*f.*2.*t)+A3.*sin(2.*pi.*f.*3.*t );plot(t,x)A1=1;A2=0.5; A3=0.2;f=2;t1=-1;t2=1;x=X3(A1,A2,A3,f,t1,t2);2矩阵的运算源程序:function [y,ny] = convwthn(x,nx,h,nh)ny1=nx(1)+nh(1);ny2=nx(end)+nh(end)%x*h在nx(1)+nh(1)到nx(end)+nh(end)之间取值;%nx(1)、nh(1)为最小下标,end为最大下标;y=conv(x,h);ny=ny1:ny2;stem(ny,y);endx=[1,2,3,4,5];nx=0:4;h=[1,2,1,2];nh=0:3;[y,ny]=convwthn(x,nx,h,nh);3采样定理的研究(1)fs=0.5(2)fs=π/2(3)fs=2(4)fs=10由图可以看出:当采样周期T<=π/2时正弦函数 x=sin(t)不产生混叠。
源程序:function [ ] =sample(fs,N)T=1/fs; %采样周期n=0:N-1;t=n*T; %采样时间点x=sin(t); %生成正弦信号subplot(1,2,1)plot(t,x);%画正弦信号的时域波形y=fft(x,N); %fft变换mag=sqrt(y.*conj(y)); %求幅值f=(0:N-1)*fs/N; %进行对应的频率转换subplot(1,2,2);plot(f,mag); %画频谱图axis([-10,50,0,80]);五、思考题1. 如何产生方波信号序列和锯齿波信号序列?方波源程序:function [y,t ] = squ( T )%方波T=0:0.001:2*pi;%方波的时间向量y=square(6*T);%方波w=6,周期为T=2*pi/6 plot(T,y);%画方波;axis([T(1)-1,T(end)+1,-2,2]);%坐标轴区域锯齿波源程序:function [y,t] = saw( t )t=0:0.001:10;y=t-fix(t);%取t的小数部分plot(t,y)2. 总结matlab 编程和C 编程的相同点和不同点?(1)相同点:都是可编程软件;很多编程语句和规则都是相同的(如赋值、变量命名、循环语句、条件语句、函数嵌套调用等);都是实现结构化程序块编程。
(2)不同点:MATLAB是一种数值计算环境和编程语言,它可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
Matlab中很多函数可以直接使用而非定义声明之后调用。
C 语言,是一种通用的、程序式的编程语言,广泛用于系统与应用软件的开发。
具有高效、灵活、功能丰富、表达力强和较高的移植性等特点,也就是说,C 语言的目的是用与软件开发,它有着丰富的应用支持。
C语言中调用函数必须事先自定义和声明。
3. 总结叙述matlab 编程的一个新应用领域,工具箱或功能目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、线性矩阵不等式控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等领域。
模型预测控制工具箱提供了一系列用于模型预测控制的分析、设计和仿真的函数。