实验一离散时间信号的分析

合集下载

实验一 离散时间信号的频域分析

实验一 离散时间信号的频域分析

实验一离散时间信号的频域分析一实验目的:信号的变换域分析是信号处理中一种有效的工具。

在离散信号的时域分析中,我们通常将信号表示成单位采样序列δ[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中给定的一系列频率集合点。

离散时间信号的时域分析实验报告

离散时间信号的时域分析实验报告

离散时间信号的时域分析实验报告实验报告:离散时间信号的时域分析一、实验目的本实验旨在通过MATLAB软件,对离散时间信号进行时域分析,包括信号的显示、基本运算(如加法、减法、乘法、反转等)、以及频域变换(如傅里叶变换)等,以加深对离散时间信号处理的基本概念和原理的理解。

二、实验原理离散时间信号是在时间轴上离散分布的信号,其数学表示为离散时间函数。

与连续时间信号不同,离散时间信号只能在特定的时间点取值。

离散时间信号的时域分析是研究信号的基本属性,包括幅度、时间、频率等。

通过时域分析,我们可以对信号进行各种基本运算和变换,以提取有用的信息。

三、实验步骤1.信号生成:首先,我们使用MATLAB生成两组简单的离散时间信号,一组为正弦波,另一组为方波。

我们将这些信号存储在数组中,以便后续分析和显示。

2.信号显示:利用MATLAB的绘图功能,将生成的信号在时域中显示出来。

这样,我们可以直观地观察信号的基本属性,包括幅度和时间关系。

3.基本运算:对生成的信号进行基本运算,包括加法、减法、乘法、反转等。

将这些运算的结果存储在新的数组中,并绘制出运算后的信号波形。

4.傅里叶变换:使用MATLAB的FFT(快速傅里叶变换)函数,将信号从时域变换到频域。

我们可以得到信号的频谱,进而分析信号的频率属性。

5.结果分析:对上述步骤得到的结果进行分析,包括比较基本运算前后的信号波形变化,以及傅里叶变换前后的频谱差异等。

四、实验结果1.信号显示:通过绘制图形,我们观察到正弦波和方波在时域中的波形特点。

正弦波呈现周期性的波形,方波则呈现明显的阶跃特性。

2.基本运算:通过对比基本运算前后的信号波形图,我们可以观察到信号经过加法、减法、乘法、反转等运算后,其波形发生相应的变化。

例如,两个信号相加后,其幅度和时间与原信号不同。

反转信号则使得波形在时间轴上反向。

3.傅里叶变换:通过FFT变换,我们将时域中的正弦波和方波转换到频域。

正弦波的频谱显示其频率为单一的直流分量,方波的频谱则显示其主要频率分量是直流分量和若干奇数倍的谐波分量。

实验一 离散时间信号的时域分析

实验一 离散时间信号的时域分析

实验一 离散时间信号的时域分析实验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.观察常用离散时间信号的图形,掌握离散时间信号的基本序列运算。

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描述波形。

数字信号处理实验离散时间 LTI 系统的时域分析与 Z 域分析

数字信号处理实验离散时间 LTI 系统的时域分析与 Z 域分析

实验一离散时间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)的分子与分母多项式的系数向量。

离散信号分析实验报告

离散信号分析实验报告

离散信号分析实验报告离散信号分析实验报告引言离散信号分析是一门重要的信号处理技术,广泛应用于通信、图像处理、音频处理等领域。

本实验旨在通过实际操作,探索离散信号分析的基本原理和方法,并通过实验结果验证理论知识的正确性。

实验一:离散信号采样与重构在离散信号分析中,采样是将连续时间信号转换为离散时间信号的过程。

首先,我们使用示波器对连续时间信号进行采样,得到一组离散时间信号。

然后,通过重构技术,将离散时间信号恢复为连续时间信号。

实验中,我们选择了一个正弦信号作为输入信号,通过改变采样频率和重构方法,观察信号的失真情况。

实验结果表明,当采样频率低于信号频率的两倍时,会发生混叠现象,导致信号失真。

而当采样频率高于信号频率的两倍时,信号可以被完全恢复。

此外,使用不同的重构方法也会对信号的失真程度产生影响。

通过实验,我们深入理解了采样和重构的原理,并了解到了如何选择合适的采样频率和重构方法。

实验二:离散信号频谱分析频谱分析是离散信号分析的重要内容之一。

在实验中,我们使用FFT算法对离散信号进行频谱分析,并观察信号在频域上的特征。

通过改变输入信号的频率、幅度和相位,我们可以观察到频谱分析结果的变化。

实验结果表明,在频域上,信号的频谱图呈现出明显的峰值,对应着信号的频率成分。

当输入信号为单频信号时,频谱图上只有一个峰值;而当输入信号为复合信号时,频谱图上会有多个峰值。

此外,改变信号的幅度和相位也会对频谱图产生影响。

通过实验,我们进一步理解了离散信号在频域上的特性,为后续的信号处理工作奠定了基础。

实验三:离散信号滤波滤波是离散信号处理中常用的技术之一。

在实验中,我们使用FIR和IIR两种滤波器对输入信号进行滤波,并比较它们的性能差异。

通过观察输出信号的波形和频谱,我们可以评估滤波器的效果。

实验结果表明,FIR滤波器具有线性相位特性,能够实现较好的频率响应;而IIR滤波器则具有较窄的带宽和较快的响应速度。

根据不同的应用需求,我们可以选择合适的滤波器类型。

离散时间信号的时域分析实验报告

离散时间信号的时域分析实验报告

离散时间信号的时域分析实验报告实验名称:离散时间信号的时域分析⼀、实验⽬的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在时域中产⽣⼀些基本的离散时间信号,并对这些信号进⾏⼀些基本的运算。

离散信号实验报告

离散信号实验报告

一、实验目的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 序列的产生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ω)| ~ω曲线。

数字信号处理实验MATLAB上机DOC

数字信号处理实验MATLAB上机DOC

班级: 学号: 姓名: 日期: 实验一:离散时间信号的分析一、实验目的利用DFT 卷积实现系统的时域分析二、实验原理在离散时间、连续频率的傅里叶变换中,由于卷积性质知道,对系统输出的计算可以通过求x[n]和h[n]的DTFT ,将得到的X(e jw )和H(e jw )相乘就可以得到Y(e jw ),进而再通过反变换得到y[n]。

这就避免了在时域进行繁琐的卷积求解。

三、实验步骤(包括代码和波形)1-2(2)x[k]=g[k]=k+1,0<=k<=3;x[k]=g[k]=0,其他 编码如下:ak=1:4 gk=1:4Z=conv(ak,gk) stem(Z)波形如下:12345675101520251-3(1)已知序列x[k]={1,2,3,4;k=0,1,2,3},y[k]={-1,1,2,3;k=0,1,2,3},试计算x[k]的自相关函数以及序列x[k]与y[k]的互相关函数。

编码如下:x=[1,2,3,4];kx=0:3; y=[-1,1,-2,3];ky=0:3; xf=fliplr(x); s1=conv(x,xf); s2=conv(xf,y); yf=fliplr(y); s3=conv(yf,x);k1=kx(1)+ky(1):kx(end)+ky(end); kxf=-fliplr(kx);k2=kxf(1)+ky(1):kxf(end)+ky(end); kyf=-fliplr(ky);k3=kyf(1)+kx(1):kyf(end)+kx(end); subplot(2,2,1); stem(k1,s1);xlabel('k1');ylabel('s1'); subplot(2,2,2); stem(k2,s2);xlabel('k2');ylabel('s2'); subplot(2,2,3) stem(k3,s3);xlabel('k3');ylabel('s3');波形如下:0246102030k1s 1-4-2024-10-50510k2s 2-4-2024-10-50510k3s 3M-1已知g1[t]=cos(6*pi*t),g2=cos(14*pi*t),g3=cos(26*pi*t),以抽样频率f(max)=10HZ对上述三个信号进行抽样。

实验一 时域离散信号与系统分析(实验报告)-2015

实验一 时域离散信号与系统分析(实验报告)-2015

《数字信号处理》 实验报告学院 专业 电子信息工程 班级 姓名 学号 时间实验一 时域离散信号与系统分析一、实验目的1、熟悉连续信号经理想采样后的频谱变化关系,加深对时域采样定理的理解。

2、熟悉时域离散系统的时域特性,利用卷积方法观察分析系统的时域特性。

3、学会离散信号及系统响应的频域分析。

4、学会时域离散信号的MATLAB 编程和绘图。

5、学会利用MATLAB 进行时域离散系统的频率特性分析。

二、实验内容1、序列的产生(用Matlab 编程实现下列序列(数组),并用stem 语句绘出杆图。

(要求标注横轴、纵轴和标题)(1). 单位脉冲序列x(n)=δ(n ) (2). 矩形序列x(n)=R N (n) ,N=10nδ(n )nR N (n )图1.1 单位脉冲序列 图1.2 矩形序列(3) . x(n)=e (0.8+3j )n ; n 取0-15。

4n|x (n )|201321111053 陈闽焜n<x (n )/R a d图1.3 复指数序列的 模 图1.4 复指数序列的 相角(4). x(n)=3cos (0. 25πn +0.3π)+2sin (0.125πn +0.2π) n 取0-15。

ny (n )图1.4 复合正弦实数序列(5). 把第(3)小题的复指数x(n)周期化,周期20点,延拓3个周期。

4m|y (m )|201321111053 陈闽焜图1.5 第(3)的20点周期延拓杆图(6). 假设x(n)= [1,-3,2,3,-2 ], 编程产生以下序列并绘出杆图:y(n) y(n)= x(n)-2x(n+1)+x(n-1)+x(n-3);5201321111053 陈闽焜图1.6 y(n)序列杆图(7)、编一个用户自定义matlab 函数,名为stepshf (n0,n1,n2)实现单位阶跃序列u[n -n1]。

其中位移点数n1在起点n0和终点n2之间任意可选。

自选3个入口参数产生杆图。

数字信号处理实验一 离散时间信号分析

数字信号处理实验一    离散时间信号分析

数字信号处理实验一离散时间信号分析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中的表示

实验一离散时间信号在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.对离散信号和系统在频域中进行分析,可以进一步研究它们的性质。

学会通过matlab,对离散时间序列的三种表示方法:离散时间傅里叶变换(DTFT)、离散傅里叶变换(DFT)和Z变换。

二、实验内容1、修改程序P3.1,计算如下有限长序列的离散时间傅里叶变换:g[n]=[1357911131517]并重做习题Q3.2。

讨论你的结果。

你能解释相位谱中的跳变吗?2、选取两个改变了长度的序列以及两个不同的时移值,重做习题Q3.73、编写一个MATLAB程序,用一个N点复数离散傅里叶变换计算两个长度为N的实数序列的N点离散傅里叶变换,并将结果同直接使用两个N点离散傅里叶变换得到的结果进行比较。

4、选取两个不同的时移量,重做习题Q3.335、选取两个不同长度的序列,重做习题Q.336、选取另外两组等长序列重做习题Q3.36三、主要算法与程序1、w=-4*pi:8*pi/511:4*pi;num=[1357911131517];den=[1];h=freqz(num,den,w);%Plot the DTFTsubplot(2,2,1)plot(w/pi,real(h));gridtitle('H(e^{j\omega})的实部')xlabel('\omega/\pi');ylabel('振幅');subplot(2,2,2)plot(w/pi,imag(h));gridtitle('H(e^{j\omega})的虚部')xlabel('\omega/\pi');ylabel('振幅');subplot(2,2,3)plot(w/pi,abs(h));gridtitle('|H(e^{j\omega})|幅度谱')xlabel('\omega/\pi');ylabel('振幅');subplot(2,2,4)plot(w/pi,angle(h));gridtitle('[H(e^{j\omega})]相位谱')xlabel('\omega/\pi');ylabel('以弧度为单位的相位');2、(1)序列为[9123456789],时移为30; %离散时间傅立叶变换的时移性质clf;w=-pi:2*pi/255:pi;wo=0.4*pi;D=30;num=[9123456789];h1=freqz(num,1,w);h2=freqz([zeros(1,D)num],1,w);subplot(2,2,1)plot(w/pi,abs(h1));gridtitle('原序列的幅度谱')xlabel('\omega/\pi');ylabel('振幅');subplot(2,2,2)plot(w/pi,abs(h2));gridtitle('时移D=30后序列的幅度谱')xlabel('\omega/\pi');ylabel('振幅');subplot(2,2,3)plot(w/pi,angle(h1));gridtitle('原序列的相位谱')xlabel('\omega/\pi');ylabel('振幅');subplot(2,2,4)plot(w/pi,angle(h2));gridtitle('时移D=30后序列的相位谱')xlabel('\omega/\pi');ylabel('振幅');(2)序列为[12345678910],时移为50;D=50;num=[12345678910];3、clf;g=[1124];h=[2321];x=g+i*h;N=length(x)-1;n=0:N;gk=fft(g);hk=fft(h);xk=fft(x);xk1=fft(conj(x));gk1=(xk+xk1)/2;hk1=(xk-xk1)/2i;subplot(4,2,1)stem(n,abs(gk));gridtitle('实部序列gk的离散傅里叶变换的幅度')xlabel('时间序号n');ylabel('振幅');subplot(4,2,2)stem(n,abs(hk));gridtitle('虚部序列gk的离散傅里叶变换的幅度')xlabel('时间序号n');ylabel('振幅');subplot(4,2,3)stem(n,abs(gk1));gridtitle('通过xk得到的gk1的离散傅里叶变换的幅度') xlabel('时间序号n');ylabel('振幅');subplot(4,2,4)stem(n,abs(hk1));gridtitle('通过xk得到的hk1的离散傅里叶变换的幅度') xlabel('时间序号n');ylabel('振幅');subplot(4,2,5)stem(n,angle(gk));gridtitle('实部序列gk的离散傅里叶变换的相位')xlabel('时间序号n');ylabel('以弧度为单位的相位'); subplot(4,2,6)stem(n,angle(hk));gridtitle('虚部序列hk的离散傅里叶变换的相位')xlabel('时间序号n');ylabel('以弧度为单位的相位'); subplot(4,2,7)stem(n,angle(gk1));gridtitle('通过xk得到的gk1的离散傅里叶变换的相位') xlabel('时间序号n');ylabel('以弧度为单位的相位'); subplot(4,2,8)stem(n,angle(hk1));gridtitle('通过xk得到的hk1的离散傅里叶变换的相位') xlabel('时间序号n');ylabel('以弧度为单位的相位');4、function y=circshift(x,M)if abs(M)>length(x)M=rem(M,length(x));endif M<0M=M+length(x);endy=[x(M+1:length(x))x(1:M)];%离散傅里叶变换的圆周时移性质,时移为10x=[0246810121416];N=length(x)-1;n=0:N;y=circshift(x,10);XF=fft(x);YF=fft(y);subplot(2,2,1);stem(n,abs(XF));gridtitle('原序列的离散傅里叶变换的幅度');xlabel('时间序号n');ylabel('振幅');subplot(2,2,2);stem(n,abs(YF));gridtitle('圆周移位10后的序列的离散傅里叶变换的幅度'); xlabel('时间序号n');ylabel('振幅');subplot(2,2,3);stem(n,angle(XF));gridtitle('原序列的离散傅里叶变换的相位');xlabel('时间序号n');ylabel('相位');subplot(2,2,4);stem(n,angle(YF));gridtitle('圆周移位10后的序列的离散傅里叶变换的相位'); xlabel('时间序号n');ylabel('相位');%离散傅里叶变换的圆周时移性质,时移为20y=circshift(x,20);5、序列为x=[0246810121416],时移为10;序列为x=[02468101214161820],时移为10;6、function y=circonv(x1,x2)L1=length(x1);L2=length(x2);if L1~=L2,error('长度不相等的序列'),endy=zeros(1,L1);x2tr=[x2(1)x2(L2:-1:2)];for k=1:L1sh=circshift(x2tr,1-k);h=x1.*sh;y(k)=sum(h);end%离散傅里叶变换的圆周卷积g1=[1234567];g2=[21-12-113];ycir=circonv(g1,g2);disp('圆周卷积的结果');disp(ycir)G1=fft(g1);G2=fft(g2);yc=real(ifft(G1.*G2));disp('离散傅里叶变换乘积的离散傅里叶逆变换的结果=');disp(yc)四、实验结果与分析图1图2.1图2.2图3图4.1图4.2图5.1序列长度9图5.2序列长度11Q6、圆周卷积的结果18183225393925离散傅里叶变换乘积的离散傅里叶逆变换的结果=18.000018.000032.000025.000039.000039.000025.0000、五、实验小结通过这次实验,我对离散信号和系统在频域中进行分析,进一步研究了它们的性质。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

武汉工程大学信号分析与处理实验一专业:通信02班学生姓名:李瑶华学号:1304200113完成时间:2016年6月1日实验一: 离散时间信号的分析一、实验目的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 jw e 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 是奇对称函数。

5.Z 变换的相关概念● 定义 ∑+∞-∞=-=n n z n x z X )()((双边Z 变换)∑+∞=-=0)()(n n z n x z X (单边Z 变换)四、实验内容与步骤1.离散时间信号(序列)的产生利用MATLAB 语言编程产生和绘制单位样值信号、单位阶跃序列、指数序列、正弦序列及随机离散信号的波形表示。

1. 单位取样序列的产生函数function [x,n]=impseq(n0,n1,n2)%产生x(n)=delta(n-n0);n1<=n,n0<=n2;%[x,n]=impseq(n0,n1,n2)if ((n0<n1)|(n0>n2)|(n1>n2))error('参数必须满足n1<=n0<=n2')endn=[n1:n2];%x=[zeros(1,(n0-n1)),1,zeros(1,(n2-n0))];x=[(n-n0)==0];2. 单位阶跃序列的产生函数function [x,n]=stepseq(n0,n1,n2)%产生x(n)=u(n-n0);n1<=n,n0<=n2;%[x,n]=stepseq(n0,n1,n2)if ((n0<n1)|(n0>n2)|(n1>n2))error('参数必须满足n1<=n0<=n2')endn=[n1:n2];%x=[zeros(1,(n0-n1)),ones(1,(n2-n0+1))];x=[(n-n0)>=0];Matlab产生各种常见序列的程序n=[-5:5];x1=impseq(0,-5,5);subplot(2,2,1);stem(n,x1);title('单位取样序列');xlabel('n');ylabel('x(n)');n=[-3:10];x2=stepseq(0,-3,10);subplot(2,2,2);stem(n,x2);title('单位阶跃序列');xlabel('n');ylabel('x(n)');n=[-10:10];x3=(0.5).^n;subplot(2,2,3);stem(n,x3);title('实指数序列');xlabel('n');ylabel('x(n)');n=[0:20];x4=sin(0.3*n);subplot(2,2,4);stem(n,x4);title('正弦序列');xlabel('n');ylabel('x(n)');Matlab产生复指数序列的程序n=[0:1:20];alpha=-0.1+0.5j;x=exp(alpha*n);subplot(2,2,1);stem(real(x));title('实部');xlabel('n');subplot(2,2,2);stem(imag(x));title('虚部');xlabel('n');subplot(2,2,3);stem(abs(x));title('振幅');xlabel('n');subplot(2,2,4);stem(n,(180/pi)*angle(x));title('相位');xlabel('n');Matlab产生随机离散信号的程序n=[1:10];x=rand(1,10);figure;stem(n,x);xlabel('n');ylabel('x(n)');title('随机序列');grid2.序列的运算(1)利用MATLAB语言编程实现信号平滑运算。

程序r=65;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('振幅');(2)利用MATLAB语言编程实现信号的调制。

程序Fm=10;Fc=100;Fs=500;k=0:199;t=k/Fs;x=sin(2*pi*Fm*t);y=x.*cos(2*pi*Fc*t);X=fft(x,256);Y=fft(y,256);subplot(2,2,1);plot(x);xlabel('t(s)');ylabel('x');title('原信号');subplot(2,2,2);plot(X);plot([-128:127],fftshift(abs(X)));xlabel('w');ylabel('X(jw)') ;title('原信号频谱');subplot(2,2,3);plot(y);xlabel('t(s)');ylabel('y');title('调制信号');subplot(2,2,4);plot(Y);plot([-128:127],fftshift(abs(Y)));xlabel('w');ylabel('Y(jw)') ;title('已调信号频谱');(3)利用MATLAB语言编程实现信号卷积运算。

序列卷积的产生函数function[y,ny]=conv_m(x,nx,h,nh)%信号处理的卷积程序%[y,ny]=conv_m(x,nx,h,nh)%y=卷积结果%ny=y的基底(support)%x=基底nx上的第一个信号%nx=x的基底%h=基底nh上的第二个信号%nh=h的基底nyb=nx(1)+nh(1);nye=nx(length(x))+nh(length(h));ny=[nyb:nye];y=conv(x,h);Matlab实现线性卷积的程序x=[0 0.5 1 1.5 0];nx=0:4;h=[1 1 1 0 0];nh=0:4;[y,ny]=conv_m(x,nx,h,nh);subplot(2,2,1);stem(nx,x);title('序列x');xlabel('n');ylabel('x(n)'); subplot(2,2,2);stem(nh,h);title('序列h');xlabel('n');ylabel('h(n)'); subplot(2,2,3);stem(ny,y);title('两序列卷积');xlabel('n');ylabel('y(n)');(4)利用MATLAB语言编程实现信号离散傅立叶的正反变换。

离散傅立叶正变换的产生函数function[Xk]=dft(xn,N)n=[0:1:N-1];k=n;WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^nk;Xk=xn*WNnk;离散傅立叶反变换的产生函数function[Xk]=idft(xn,N)n=[0:1:N-1];k=n;WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^(-nk);Xk=xn*WNnk/N;(5)利用MATLAB语言编程实现信号的圆周移位,圆周卷积,验证DFT 的圆周时移、圆周卷积性质和圆周卷积与线性卷积的关系。

function m=sigmod(n,N);m=rem(n,N);m=m+N;m=rem(m,N);function y=cirshift(x,m,N);if length(x)>Nerror('N must be greater then length(x)');endx=[x zeros(1,N-length(x))];n=[0:N-1];n=sigmod(n-m,N);y=x(n+1);Matlab实现圆周移位的程序n=[0:10];M=6;N=11;x=15*0.4.^n;y=cirshift(x,M,N);subplot(2,1,1);stem(n,x);xlabel('n');ylabel('x(n)');title('原序列波'); subplot(2,1,2);stem(n,y);xlabel('n');ylabel('y(n)');title('圆周移位序波形')圆周卷积function y=circonvt(x1,x2,N)if length(x1)>Nerror('length(x1)is not great than N')endif length(x2)>Nerror('length(x2)is not greater than N')endx1=[x1,zeros(1,N-length(x1))];x2=[x2,zeros(1,N-length(x2))];m=[0:N-1];x2=x2(mod(-m,N)+1);H=zeros(N,N);for n=1:N;H(n,:)=cirshift(x2,n-1,N);endy=x1*H';Matlab实现圆周卷积的程序x1=[2,4,3];x2=[4 3 5 1];disp('N=7')N=7;y=circonvt(x1,x2,N)subplot(3,1,1);stem(x1);xlabel('n');ylabel('x1(n)');subplot(3,1,2);stem(x2);xlabel('n');ylabel('x2(n)');subplot(3,1,3);stem(y);xlabel('n');ylabel('y(n)');title('圆周卷积');(6)验证一个周期实序列奇偶部分的DFT与此序列本身的DFT之间的关系。

相关文档
最新文档