实验用MATLAB产生时域离散信号

合集下载

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

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

Matlab离散信号时域分析实验报告1. 引言信号是信息的载体,可以通过对信号进行离散化来进行数字信号的处理和分析。

离散信号时域分析是对离散信号在时域上进行观察和分析的方法。

本实验旨在通过使用Matlab软件对离散信号进行时域分析,掌握离散信号的时域特性和基本分析方法。

2. 实验目的•了解离散信号的概念和特性;•掌握离散信号的时域分析方法;•学会通过Matlab对离散信号进行时域分析。

3. 实验原理离散信号是在时间上呈现离散的特征,可以用离散序列表示。

离散序列可以通过采样连续信号得到,也可以通过数学模型生成。

在时域分析中,通常使用的分析方法包括: - 时域图像绘制:绘制离散信号的时域图像,了解信号的振幅和波形特征; - 时域序列计算:计算离散信号的均值、方差等统计量,了解信号的基本特性;- 时域滤波:对离散信号进行滤波,去除噪声或者突发干扰。

4. 实验步骤4.1 生成离散信号首先需要生成一个离散信号序列,可以使用Matlab的随机数函数生成一个大小为N的随机序列作为离散信号。

N = 100; % 信号长度为100x = rand(1,N); % 生成随机序列4.2 时域图像绘制通过plot函数可以将离散信号在时域上绘制出来,观察信号的振幅和波形特征。

t = 1:N; % 时间序列plot(t, x);title('离散信号时域图像');xlabel('时间');ylabel('幅度');4.3 时域序列计算可以通过内置函数计算离散信号的均值、方差等统计量。

avg = mean(x); % 均值variance = var(x); % 方差4.4 时域滤波可以使用滤波器对离散信号进行滤波,去除噪声或者突发干扰。

这里以均值滤波为例,对信号进行平滑处理。

windowSize = 5; % 滑动窗口大小b = (1/windowSize)*ones(1,windowSize);a = 1;smoothed_x = filter(b, a, x);5. 实验结果与分析通过对生成的离散信号进行时域分析,得到如下结果: - 时域图像:时域图像时域图像•信号均值:0.5231•信号方差:0.0842•平滑后的信号时域图像:平滑后的时域图像平滑后的时域图像从时域图像可以观察到信号的振幅和波形特征。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

使用matlab来实现 时域离散信号的产生实验心得

使用matlab来实现 时域离散信号的产生实验心得

使用matlab来实现时域离散信号的产生实验心得【标题】使用Matlab实现时域离散信号的产生实验心得【导语】在信号与系统课程的学习中,时域离散信号的产生是一个重要的实验内容。

本文将结合个人实验经验,探讨如何使用Matlab来实现时域离散信号的产生,以及实验心得体会。

【主体内容】一、时域离散信号的概念时域离散信号是指信号在时域上是离散的,其取样时间是离散的。

与连续信号相对应,离散信号具有一些独特的特性和处理方法。

在实际应用中,我们经常需要生成各种形式的时域离散信号,用于系统模拟、滤波器设计等方面。

二、Matlab在时域离散信号产生中的应用1. 生成简单的离散信号在Matlab中,可以利用基本的数学函数和操作符来生成简单的离散信号。

可以利用sin、cos等函数来生成正弦信号、余弦信号,利用随机数函数来生成随机信号等。

Matlab还提供了丰富的绘图函数,可以直观地展示生成的离散信号。

2. 生成复杂的离散信号除了基本的数学函数外,Matlab还提供了丰富的信号处理工具箱,可以用于生成各种复杂的离散信号。

可以利用波形合成函数生成有限长序列、周期序列等特殊形式的信号;还可以利用滤波器设计函数生成特定频率特性的信号等。

三、实验心得与体会在实验中,我深切体会到Matlab在时域离散信号生成方面的强大功能和便捷性。

通过Matlab,我能够快速生成各种形式的离散信号,并对其进行分析、处理和展示。

Matlab的直观、交互式界面也使得实验过程更加高效和愉悦。

在实践中,我也发现了一些问题和经验总结。

在生成复杂离散信号时,需要深入理解各种信号处理工具箱的使用方法,以及不同函数的参数设置;在展示离散信号时,需要注意选择合适的绘图方式,清晰地展现信号的特点和规律。

【总结与回顾】本文通过介绍时域离散信号的概念和Matlab在信号生成中的应用,共享了个人的实验心得和体会。

希望能够对读者有所启发,开拓视野,加深对时域离散信号的理解和掌握。

常见离散信号产生和实现实验报告

常见离散信号产生和实现实验报告

常见离散信号产生和实现实验报告实验1常见离散信号产生和实现学院信息科学与工程学院专业通信工程1班姓名学号一、实验目的1、加深对常用离散信号的理解;2、熟悉使用MATLAB在时域中产生一些基本的离散时间信号。

二、实验原理MATLAB语言提供了一系列函数用来产生信号,如exp,sin,cos, square,sawtooth,ones,zeros等函数。

1.基本信号序列1)单位抽样序列???=01)(nδ≠=n n在MATLAB中可以利用zeros()函数实现。

x=[1zeros(1, n-1)]程序:clear all;n=-20:20;u=[zeros(1,20)ones(1,21)];stem(n,u)xlabel('Time index n');ylabel('Amplitude'); title('p21');axis([-20200 1.2]);图形:Request1:编写一个)(k n-δ的函数。

???=-01)(k nδ≠=n kn程序:clear all;n=-20:20;k=5;u=[zeros(1,20+k)ones(1,21-k)];stem(n,u)xlabel('Time index n');ylabel('Amplitude'); title('p22');axis([-20200 1.2]);图形:(2)单位阶跃序列???01)(n u00<≥n n在MATLAB中可以利用ones()函数实现。

);,1(N ones x=Request2:编写一个)(k n u-的函数。

程序:clf;n=-20:20;u=[zeros(1,20)1zeros(1,20)];stem(n,u);xlabel('Time index n');ylabel('Amplitude');title('Unit Sample Sequence p10');axis([-20200 1.2]);图形:Request2:编写一个)(k n u-的函数。

实验六 基于MATLAB的离散系统时域分析

实验六  基于MATLAB的离散系统时域分析

实验六基于MATLAB的离散系统时域分析一、实验名称基于MATLAB的离散系统时域分析二、实验目的1.掌握离散时间序列卷积和MATLAB实现的方法。

2.掌握离散系统的单位响应及其MATLAB的实现方法。

3.掌握用MATLAB表示离散系统的时域响应。

三、实验器材安装MATLAB软件的电脑一台四、预习要求1.熟悉离散时间序列的卷积和原理2.熟悉编程实现离散时间序列的卷积和3.熟悉离散系统的单位响应及其常用函数的调用格式五、实验原理1. (1)单位序列(单位脉冲序列)MATLAB描述。

MATLAB函数可写为k=[k1:k2]; %k1,k2为时间序列的起始及终止时间序号fk=[(k-k0)==0]; %k0为§(k)在时间轴上的位移量stem(k,fk)(2)单位阶跃序列MATLAB描述。

MARLAB函数可写为k=[k1:k2] %k1,k2为时间序列的起始及终止时间序号fk=[(k-k0)>=0] %k0为 (k)在时间轴上的位移量stem(k,fk)2. 离散系统的时域响应MATLAB提供了求离散系统响应的专用函数filter()filter函数能求出差分方程描述的离散系统在指定时间范围内的输入序列所产生的响应序列的数值解。

其调用格式如下:filter(b,a,x)其中,b 和a 是由描述系统的差分方程的系数决定的、表示离散系统的两个行向量;x 是包含输入序列非零样点的行向量。

上述命令将求出系统在与x 的取样时间点相同的输出序列样值。

3.离散时间序列的卷积设序列f1(k)在1n ~2n 范围内非零,f2(k)在1m ~2m 范围内非零,则f1(k)时域宽度为L1=2n -1n +1,f2(k)的时域宽度为L2=2m -1m +1。

由卷积和的定义可得,序列y(k)=f1(k)*f2(k)的时域宽度为L=L1+L2-1,且只在(1n +1m )~(1n +1m +L1+L2-2)范围内非零。

用MATLAB实现常用的离散时间信号及其时域运算

用MATLAB实现常用的离散时间信号及其时域运算

实验四用M A T L A B实现常用的离散时间信号及其时域运算——摘要:在MATLAB中,只能用向量来表示离散时间信号。

与连续信号不同,离散时间信号无法用符号运算来表示。

用适当的MATLAB语句表示出信号后,就可以利用MATLAB 的绘图命令stem来绘出直观的信号波形图,stem是专门用于绘制离散时间信号的。

在MATLAB中离散序列的时域运算和变换不能用符号运算来实现,而必须用向量表示的方法,即在MATLAB中离散序列的相加、相乘需表示成两个向量的相加、相乘,因而参加运算的两序列向量必须有相同的维数。

一、实验目的:(1)学习MATLAB语言及其常用指令;(2)学习和掌握用MATLAB语言产生离散时间信号的编程方法;(3)通过编程绘制出离散时间信号的波形,加深理解信号的时域运算。

二、实验内容:(1)运用MATLAB的绘图指令绘制离散时间信号;(2)用MATLAB语言实现离散时间信号的时域运算。

三、实验原理:(1)单位阶跃序列和单位样值序列。

离散时间信号只在某些离散的瞬时给出信号的值,因此,它是时间上不连续的序列。

单位阶跃序列和单位样值序列在离散时间信号与系统的分析中是两个非常典型的序列,分别记为u(n)和δ(n)。

它们的定义分别如下:1 n≥0 1 n≥0u(n)= δ(n)=0 n<0 0 n≠0若单位阶跃序列的起始点为n0,单位样值序列出现在n0时刻,则表达式分别为:1 n≥n0 1 n=n0u(n-n0)= δ(n-n0)=0 n<n0 0 n≠n0应注意,离散时间的单位阶跃序列与连续时间的单位阶跃信号的异同,以及离散时间的单位样值序列与连续时间的单位冲激信号的异同。

(2)离散时间信号的时域运算。

与连续时间系统的研究类似,在离散系统分析中,经常遇到离散时间信号的运算,包括两信号的相加、相乘以及序列自身的移位、反褶、尺度等等,也需要了解在运算过程中序列的表达式以及对应的波形的变化。

用MATLAB实现常用的离散时间信号及其时域运算

用MATLAB实现常用的离散时间信号及其时域运算

⽤MATLAB实现常⽤的离散时间信号及其时域运算⽤MATLAB 实现常⽤的离散时间信号及其时域运算摘要:1.运⽤MATLAB 的绘图指令绘制离散时间信号;2.⽤MATLAB 实现离散时间信号的时域运算。

关键词:MATLAB 离散时间信号时域运算实验⽬的:1.复习MATLAB 语⾔以及常⽤指令2.学习和掌握⽤MATLAB 语⾔产⽣离散时间信号的编程⽅法3.通过编程绘制出离散时间信号波形,加深理解信号的时域运算实验原理:1.1单位阶跃序列和单位样值序列离散时间信号只在某些离散瞬间时给出信号的值,因此,它是时间上不连续的序列。

单位阶跃序列和单位样值序列在离散信号与系统的分析中是两个⾮常典型的序列,分别记为u(n)和δ(n),他们的定义分别如下:≠≡=)0(0)0(1)(n n n δ≥<=)0(1)0(0)(n n n u若单位节约序列的起始点为n 0,单位样值序列出现在n 0时刻,则表达式为:2.离散时间信号的时域运算与连续时间信号的研究类似,在离散系统分析中,经常遇到离散时间的运算,包括两信号的相加、相乘以及序列本⾝的移位、反褶、尺度等等,也需要了解在运算过程中序列的以及相应的波形的变化。

序列)(n x 的反褶:序列)(n x 的移位:序列)(n x 的尺度:两序列)(1n x 和)(2n x 相加减:两序列)(1n x 和)(2n x 相乘: )()(21n x n x ?≥<=-)(1)(0)(000n n n n n n u ≠==-)(0)(1)(000n n n n n n δ)(n x -)(0n n x -)(an x )()(21n x n x ±试验任务:1.绘制⽤于产⽣以下信号的通⽤程序1 )()(0n n A n x -=δ2 )]()([)(21m n u m n u A n x ---=1.1 程序和图形见附录11.2 程序和图形见附录22.已知波形,求表达式并绘出各信号波形①)()2(k u k f - ②)2(+-k f ③)2()2(--k u k f 2.程序和图形见附录3附录1:clear% n1:起始时刻;n0:跳变时刻;n2:终⽌时刻;t1=input('请输⼊起始时刻n1=');t0=input('请输⼊跳变时刻n0=');t2=input('请输⼊终⽌时刻n2=');A=input('请输⼊幅度A=');t=t1:t2;n=length(t);tt=t1:t0;n1=length(tt);x=zeros(1,n);x(n1)=A*1;stem(t,x),grid ontitle('x(n)')axis([t1 t2 -0.2 A+1])n1=-2,n0=1,n2=3,A=2附录2:Clear%n1:起始时刻;m1第⼀次跳变时刻;m2:第⼆次跳变时刻;n2:终⽌时刻;t1=input('请输⼊起始时刻n1=');t0=input('请输⼊第⼀次跳变时刻m1=');t3=input('请输⼊第⼆次跳变时刻m2=');t2=input('请输⼊终⽌时刻n2=');A=input('请输⼊幅度A=');t=t1:t2;n=length(t);tt=t0:t2;n1=length(tt);x=[zeros(1,n-n1),ones(1,n1)];ttt=t3:t2;n2=length(ttt);y=[zeros(1,n-n2),ones(1,n2)];z=A*(x-y);stem(t,z),grid ontitle('x(n)')axis([t1, t2 ,min(z)-1, max(z)+1]) n1=-3,n2=3,m1=-1,m2=1,A=2附录3:1.离散序列反褶函数(lsfz.m)function[f,k]=lsfz(f1,k1)f=fliplr(f1);k=-fliplr(k1);2.离散序列移位函数(lspy.m)function[f,k]=lspy(ff,kk,k0)k=kk+k0;f=ff;3.离散序列相乘函数(lsxc.m)function[f,k]=lsxc(f1,f2,k1,k2)k=min(min(k1),min(k2)):max(max(k1),max(k2)); s1=zeros(1,length(k));s2=s1;s1(find((k>=min(k1))&(k<=max(k1))==1))=f1;s2(find((k>=min(k2))&(k<=max(k2))==1))=f2;f=s1.*s2;Return4.主程序:cleari=1;for m=-3:4if m<0f(i)=m+3;elseif(m==4)f(i)=0;elsef(i)=3;endi=i+1;end%f(k)m=-3:4subplot(221),stem(m,f,'filled'),grid on,title('f(k)') axis([min(m)-1,max(m)+1,min(f)-0.5,max(f)+1]) i=1;for n=-4:6if n<0u(i)=0;elseu(i)=1;endi=i+1;endn=-4:6m=-3:4%f(k-2)[y1,k1]=lspy(f,m,2);%f(-k)[y2,k2]=lsfz(f,m);%u(k-2)[y3,k3]=lspy(u,n,2);%f(k-2)u(k)[z1,k]=lsxc(y1,u,k1,n)subplot(222),stem(k,z1,'filled'),grid on,title('f(k-2)u(n)')axis([min(k)-1,max(k)+1,min(z1)-0.5,max(z1)+1])%f(-k+2)[z2,w2]=lspy(y2,k2,2)subplot(223),stem(w2,z2,'filled'),grid on,title('f(-k+2)')axis([min(w2)-1,max(w2)+1,min(z2)-1,max(z2)+1])%f(k-2)u(k-2)[z3,w3]=lsxc(y1,y3,k1,k3)subplot(224),stem(w3,z3,'filled'),grid on,title('f(k-2)u(k-2)') axis([min(w3)-1,max(w3)+1,min(z3)-0.5,max(z3)+0.5])。

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

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

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

实验1用M A T L A B产生时域离散信号
一、.实验目的:
1、了解常用时域离散信号及其特点
2、掌握用MATLAB产生时域离散信号的方法
二、实验内容及步骤
1、阅读并上机验证实验原理部分的例题程序,理解每一条语句的含义。

改变例题中的有关参数(如信号的频率、周期、幅度、显示时间的取值范围、采样点数等),观察对信号波形的影响。

2、编写程序,产生以下离散序列:
n1=-3;n2=4;n0=0;
n=n1:n2;
x=[n==n0];
stem(n,x,'filled');
axis([n1,n2,0,*max(x)]);
xlabel('时间(n)');ylabel('幅度x(n)');
title('单位脉冲序列');
(2)n1=-5;n2=5;n0=0;
n=n1:n2;
x=[n>=n0];
stem(n,x,'filled')
axis([n1,n2,0,*max(x)]);
xlabel('时间(n)');ylabel('幅度x(n)');
title('单位阶跃序列');
n1=20;a=;w=*pi;
n=0:n1;
x=exp((a+j*w)*n);
subplot(2,2,1);plot(n,real(x));
title('复指数信号的实部');
subplot(2,2,3);stem(n,real(x),'filled');
title('复指数序列的实部');
subplot(2,2,2);plot(n,imag(x));
title('复指数信号的虚部');
subplot(2,2,4);stem(n,imag(x),'filled');
title('复指数序列的虚部');
05101520-505
10复指数信号的实部
复指数序列的实部
05101520
-50
5
10
复指数信号的虚部复指数序列的虚部(4)
w0=pi/4;
n=0:20;
f=3*sin(n*w0);
subplot(1,1,1),stem(n,f,'filled');
xlabel('正弦型序列')
3、一个连续的周期性方波信号频率为200Hz ,信号幅度在-1~+1V 之间,要求在图形窗口上显示其两个周期的波形。

以4kHz 的频率对连续信号进行采样,编写程序生成连续信号和其采样获得的离散信号波形。

f=200;nt=2;N=20;T=1/f;
d=T/N;n=0:2*N-1;t=n*d;
x=square(2*f*pi*t,50);
subplot(2,1,1);plot(t,x);
axis([0,nt*T,*min(x),*max(x)]);
ylabel('x(t)');subplot(2,1,2);stem(t,x,'filled');
axis([0,nt*T,*min(x),*max(x)]);ylabel('x(n)');box;
三、.实验小结
1、阅读并上机验证实验原理部分的例题程序,理解每一条语句的含义。

改变例题中的有关参数(如信号的频率、周期、幅度、显示时间的取值范围、采样点数等),观察对信号波形的影响。

相关文档
最新文档