常见离散信号产生和实现
- 格式:doc
- 大小:345.00 KB
- 文档页数:42
实验一 常见离散信号的MATLA B 产生和图形显示 授课课时:2学时一、实验目的:(1)熟悉MATL A B 应用环境,常用窗口的功能和使用方法。
(2)掌握MATL A B 在时域内产生常用离散时间信号的方法。
(3)掌握离散信号的基本运算。
(4)掌握简单的绘图命令。
二、实验原理:(一)信号的表示和产生① 单位抽样序列⎩⎨⎧=01)(n δ 00≠=n n 如果在时间轴)(n δ上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ0≠=n k n参考程序:例1-1:)2010(()(<<-=n n n x )δclear all n1=-10;n2=20;n0=0;%在起点为n1,终点为n2的范围内,于n0处产生冲激。
n=n1:n2;%生成离散信号的时间序列x=[n==n0];%生成离散信号x (n)stem(n,x);%绘制脉冲杆图xlabel (' n');ylabel ('x(n)');%横坐标和纵坐标的标注说明。
title('Unit Sample Sequen c e');%图形上方标注图名axis([-10 20 0 1.2]);%确定横坐标和纵坐标的取值范围② 单位阶跃序列⎩⎨⎧=01)(n u 00<≥n n 例1-2:)202((u )(<<-=n n n x )clear alln1=-2;n2=20;n0=0;n=n1:n2;%生成离散信号的时间序列x=[n>=n0];%生成离散信号x (n)stem(n,x,'filled ');xlabel ('n');ylabel ('x(n)');title('Unit step Sequen c e');axis([-2 20 0 1.2]);③ 正弦序列)sin()(ϕ+=wn A n x例1-3:一正弦信号的频率为1HZ ,振幅值幅度A 为1V ,在窗口显示2个周期的信号波形,并对该信号的一个周期进行32点采样获得离散信号并显示该连续信号和离散信号的波形。
离散时间信号和系统理论知识介绍离散时间信号和系统理论是信号与系统理论领域的重要分支,用于描述和分析在离散时间点上的信号及其相应的系统行为。
离散时间信号是在离散时间集合上定义的函数,通常由离散采样得到。
离散时间系统则是对输入离散时间信号进行操作和处理得到输出信号的过程。
离散时间信号是时间的一个离散序列,可以通过对连续时间信号进行采样得到。
最常见的离散时间信号是离散时间单位脉冲信号,其在一个时间点的值为1,其他时间点的值为0。
其他常见的离散时间信号包括阶跃信号、正弦信号、方波信号等。
每个离散时间信号都有其特定的频谱和幅度特性。
离散时间系统是对离散时间信号进行处理和操作的载体。
离散时间系统可以是线性系统或非线性系统。
线性系统可以通过线性时不变(LTI)系统模型来描述,即系统的输入和输出之间存在线性时不变关系。
LTI系统可以用巴特沃斯(Bartow)方程式或其它传输方程式来表示,并可以通过离散时间卷积来分析系统的响应。
非线性系统则不满足线性性质的要求,其描述和分析方法更为复杂。
离散时间信号和系统理论的基本概念包括线性性、时不变性、因果性和稳定性等。
线性性要求系统对输入信号的加法性和乘法性具有反应;时不变性要求系统的性质不随时间变化而改变;因果性要求系统的响应仅依赖于过去和当前的输入信号;稳定性要求系统的输出有界且有限。
离散时间信号和系统的分析方法包括时域分析和频域分析。
时域分析主要关注信号和系统在时间域上的行为,如脉冲响应、单位样本响应、单位阶跃响应等;频域分析则关注信号和系统在频域上的特性,如频谱分析、频率响应等。
离散时间信号和系统在实际应用中有广泛的应用。
例如,它们可以用于数字音频处理、数字图像处理、通信系统、控制系统等领域中。
在这些应用中,离散时间信号和系统的理论方法可以帮助我们分析和设计系统,优化信号处理算法,并提高系统的性能。
总而言之,离散时间信号和系统理论是信号与系统理论中重要的一部分,用于描述和分析离散时间信号和系统的特性。
离散时间信号处理概述及解释说明1. 引言1.1 概述离散时间信号处理是一门重要的信号处理领域,它涉及到对离散时间信号进行采样、分析、变换和滤波等处理操作。
相比于连续时间信号处理,离散时间信号处理更适用于数字系统和实际应用中的数字信号。
离散时间信号处理技术在现代通信、音频、图像和视频等领域得到广泛应用。
通过研究离散时间信号处理方法和算法,可以提高数据传输质量、优化压缩算法、改善音频和图像效果以及实现其他相关应用。
1.2 文章结构本文将从以下几个方面介绍离散时间信号处理的基本概念、常用方法以及在实际应用领域中的技术应用:- 第2部分:离散时间信号处理的基本概念。
我们将讨论信号与系统的概念,并比较离散时间信号与连续时间信号之间的区别。
此外,我们还将探讨离散时间系统的性质和特点。
- 第3部分:常用的离散时间信号处理方法。
我们将了解采样和重建过程的原理,并介绍常见的离散时间信号变换和频域分析方法。
此外,我们还将探讨数字滤波器的设计与应用。
- 第4部分:实际应用领域中的离散时间信号处理技术。
我们将以语音信号处理、图像处理与压缩算法以及音频信号编辑与效果处理为例,阐述离散时间信号处理在不同领域中的应用技术。
- 第5部分:结论。
我们将对全文进行总结回顾,并展望离散时间信号处理未来发展的趋势。
1.3 目的本文旨在提供一个关于离散时间信号处理的概述及解释说明,使读者对该领域有一个全面而清晰的认识。
通过阅读本文,读者可了解离散时间信号处理的基本概念、常用方法和实际应用情况,并对该领域未来的发展趋势有所预测。
同时,本文也可作为进一步学习和研究离散时间信号处理的起点。
2. 离散时间信号处理的基本概念2.1 信号与系统在离散时间信号处理中,信号指的是随时间变化的电压、电流或其他物理量的函数。
系统则是对输入信号进行处理或转换的设备、算法或方法。
离散时间信号处理旨在通过对输入信号的分析和处理,实现对输出信号的控制和调整。
2.2 离散时间信号和连续时间信号的区别离散时间信号是在一系列取样时间点上定义的,只能在这些点上取值。
离散信号的产生、显示及离散序列的卷积和matlab实现离散信号的产生可以通过一个生成离散序列的函数来实现。
Matlab提供了一些内置的函数来生成常见的离散信号,例如单位阶跃函数(heaviside)、单周期方波(square)、正弦信号(sin)、脉冲(impulse)等。
离散信号的显示可以使用Matlab的plot函数来实现。
将离散序列作为函数的输入参数,然后使用plot函数绘制出序列的图像。
离散序列的卷积可以使用conv函数来实现。
conv函数接受两个输入信号,并返回它们的离散卷积结果。
下面是一个示例代码演示离散信号的产生、显示和离散序列的卷积:```matlab% 产生离散信号n = 0:1:9; % 定义离散点的范围x1 = heaviside(n-2); % 单位阶跃函数x2 = square(n); % 单周期方波x3 = sin(n); % 正弦信号% 显示离散信号figure;subplot(3,1,1);stem(n, x1);title('单位阶跃函数');subplot(3,1,2);stem(n, x2);title('单周期方波');subplot(3,1,3);stem(n, x3);title('正弦信号');% 离散序列的卷积h = [1, 2, 1]; % 卷积核y = conv(x3, h); % 卷积运算figure;subplot(2,1,1);stem(x3);title('输入信号');subplot(2,1,2);stem(y);title('卷积结果');```在上面的代码中,首先定义了离散序列的范围n,然后使用内置函数生成了三个不同的离散信号x1、x2和x3。
接下来,使用subplot函数将三个离散信号的图像显示在一个图形窗口中。
最后,定义了一个卷积核h,并使用conv函数对x3进行卷积运算,得到卷积结果y。
常见离散信号产生和实现实验报告实验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-的函数。
第1篇一、实验目的1. 理解时域离散信号的基本概念和特性。
2. 掌握时域离散信号的表示方法。
3. 熟悉常用时域离散信号的产生方法。
4. 掌握时域离散信号的基本运算方法。
5. 通过MATLAB软件进行时域离散信号的仿真分析。
二、实验原理时域离散信号是指在时间轴上取离散值的一类信号。
这类信号在时间上不连续,但在数值上可以取到任意值。
时域离散信号在数字信号处理领域有着广泛的应用,如通信、图像处理、语音处理等。
时域离散信号的基本表示方法有:1. 序列表示法:用数学符号表示离散信号,如 \( x[n] \) 表示离散时间信号。
2. 图形表示法:用图形表示离散信号,如用折线图表示序列。
3. 时域波形图表示法:用波形图表示离散信号,如用MATLAB软件生成的波形图。
常用时域离散信号的产生方法包括:1. 单位阶跃信号:表示信号在某个时刻发生突变。
2. 单位冲激信号:表示信号在某个时刻发生瞬时脉冲。
3. 正弦信号:表示信号在时间上呈现正弦波形。
4. 矩形脉冲信号:表示信号在时间上呈现矩形波形。
时域离散信号的基本运算方法包括:1. 加法:将两个离散信号相加。
2. 乘法:将两个离散信号相乘。
3. 卷积:将一个离散信号与另一个离散信号的移位序列进行乘法运算。
4. 反褶:将离散信号沿时间轴翻转。
三、实验内容1. 实验一:时域离散信号的表示方法(1)使用序列表示法表示以下信号:- 单位阶跃信号:\( u[n] \)- 单位冲激信号:\( \delta[n] \)- 正弦信号:\( \sin(2\pi f_0 n) \)- 矩形脉冲信号:\( \text{rect}(n) \)(2)使用图形表示法绘制以上信号。
2. 实验二:时域离散信号的产生方法(1)使用MATLAB软件生成以下信号:- 单位阶跃信号- 单位冲激信号- 正弦信号(频率为1Hz)- 矩形脉冲信号(宽度为2)(2)观察并分析信号的波形。
3. 实验三:时域离散信号的基本运算(1)使用MATLAB软件对以下信号进行加法运算:- \( u[n] \)- \( \sin(2\pi f_0 n) \)(2)使用MATLAB软件对以下信号进行乘法运算:- \( u[n] \)- \( \sin(2\pi f_0 n) \)(3)使用MATLAB软件对以下信号进行卷积运算:- \( u[n] \)- \( \sin(2\pi f_0 n) \)(4)使用MATLAB软件对以下信号进行反褶运算:- \( u[n] \)4. 实验四:时域离散信号的仿真分析(1)使用MATLAB软件对以下系统进行时域分析:- 系统函数:\( H(z) = \frac{1}{1 - 0.5z^{-1}} \)(2)观察并分析系统的单位冲激响应。
数字信号处理课程实验报告实验名称离散信号及离散系统的MATLAB编程实现系别教师姓名实验地点实验日期一、实验内容1、用MATLAB仿真(编写)离散序列2、常见序列运算3、差分方程的求解4、系统零极点的求解。
(红色部分为必做项目)二、实验目的1. 复习离散时间的信号和系统,复习离散时间重要类型的信号和它们的运算的实现。
2. 熟悉MATLAB软件的集成开发环境,学会利用MATLAB编程及获得帮助的方法。
3. 学会利用MATLAB的绘图功能。
三、涉及实验的相关情况介绍(包含使用软件或实验设备等情况)matlab软件,计算机四、实验试做记录(含程序、数据记录及分析)1、 Matlab表示序列MATLAB中,可采用向量表示序列,由于MATLAB中对序列下标默认为从1开始递增,因此要表示离散信号,一般应采用两个向量分别对信号的自变量和因变量进行描述。
如, n= -3~4,在MATLAB中表示为>> n = [-3, -2, -1, 0, 1, 2, 3, 4]; %自变量取值>> x = [ 2, 1, -1, 0, 1, 4, 3, 7]; %因变量取值说明:(1)向量可用方括号[ ]表示。
(2)当向量取值连续变化时可用冒号运算符“:”简化赋值过程,如的n值,可简化为n=[-3:4]或n= -3:4 。
(3)分号“;”表示不回显表达式的值。
(4)“%”表示其后内容为注释对象。
(5)符号“>>”是MATLAB命令窗口的输入提示符,此外,为便于多次调用,也可在m文件中输入相应的命令语句。
利用MATLAB,还可对信号的波形进行描述,常采用的绘图语句有stem,plot,subplot, axis,title,xlabel,ylabel,gtext, hold on, hold off, grid 等。
其中stem 绘制离散图形;plot 绘制连续图形;subplot 用于绘制子图,应在stem 或plot 语句前调用;axis 指定x 和y轴的取值范围,用在stem或plot语句后;title 标注图形名称,xlabel, ylabel 分别标注x轴和y轴名称;gtext可将标注内容放置在鼠标点击处;hold on和 hold off 用于控制对象绘制方式,是在原图上还是在新图上绘制;grid用于绘制网格。
1.9离散信号和系统分析的MATLAB实现1.9.1利用MATLAB产生离散信号用MATLAB表示一离散序列x[k]时,可用两个向量来表示。
其中一个向量表示自变量k的取值范围,另一个向量表示序列x[k]的值。
例如序列x[k]={2,1,1,-1,3,0,2}可用 MATLAB表示为K=-2:4;x=[2,1,1,-1,3,0,2]可用stem(k,f)画出序列波形。
当序列是从k=0开始时,可以只用一个向量x来表示序列。
由于计算机内寸的限制,MATLAB无法表示一个无穷长的序列。
例1-38利用MATLAB计算单位脉冲序4δ-k在-k≤]24[≤范围内各点的取值。
解:%progran 1_1 产生单位脉冲序列Ks=-4;ke=4;n=2;K=[ks:ke];X=[(k-n)==0];Stem(k,x):xlabel(‘k’);程序产生的序列波形如图1-49所示。
例1-39利用MATLAB画出信号X[k]=10sin(0.02kπ)+n[k], 1000≤≤k的波形。
其中n[k]表示为均值为0方差为1的Gauss分布随机信号。
解:MALAB提供了两个产生(伪)随机序列的函数。
Rand(1,N)产生1行N列的[0,1]均匀分布随机数。
Randn(1,N)产生1行N列均值为0方差为1的Gauss分布随机数。
%program 1_2 产生受噪声干扰的正弦信号N=100;k=0:N;X=10*sin(0.02*pi*k)+randn(1,N+1);Plot(k,x);Xlabel(‘k’);Ylabel(‘x[k]’);程序产生序列如图1-50所示。
1.9.2 离散卷积的计算离散卷积是数字信号处理中的一个基本运算,MTLAB提供的计算两个离散序列卷积的函数是conv,其调用方式为y=conv(x,h)其中调用参数x,h为卷积运算所需的两个序列,返回值y是卷积结果。
MATLAB函数conv的返回值y中只有卷积的结果,没有y的取值范围。
实验一 常见离散信号的MATLAB 产生和图形显示实验目的:加深对常用离散信号的理解; 实验原理:1.单位抽样序列⎩⎨⎧=01)(n δ≠=n n 在MATLAB 中可以利用zeros()函数实现。
;1)1();,1(==x N zeros x如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ≠=n kn2.单位阶跃序列⎩⎨⎧01)(n u00<≥n n 在MATLAB 中可以利用ones()函数实现。
);,1(N ones x =3.正弦序列)/2sin()(ϕπ+=Fs fn A n x在MATLAB 中)/***2sin(*1:0fai Fs n f pi A x N n +=-=4.复正弦序列n j e n x ϖ=)(在MATLAB 中)**ex p(1:0n w j x N n =-=5.指数序列n a n x =)(在MATLAB 中na x N n .^1:0=-=实验内容:编制程序产生上述5种信号(长度可输入确定),并绘出其图形。
实验要求:讨论复指数序列的性质。
实验过程: 1. 单位冲击序列:>> n=0:10;>> x1=[1 zeros(1,10)];>> x2=[zeros(1,8) 1 zeros(1,8)]; >> subplot(1,2,1); >> stem(n,x1);>> xlabel ('时间序列n'); >> ylabel('幅度');>> title('单位冲激序列δ(n )'); >> subplot(1,2,2); >> stem(x2);>> xlabel('时间序列n'); >> ylabel('幅度');>> title('延时了8个单位的冲激序列δ(n-8)'); >>>> n=0:10;>> u=[ones(1,11)];>> stem(n,u);>> xlabel ('时间序列n');>> ylabel('信号幅度');>> title('单位阶跃序列u(n)');>>3.正弦序列:>> n=1:30;>> x=2*sin(pi*n/6+pi/4);>> stem(n,x);>> xlabel ('时间序列n');>> ylabel('振幅');>> title('正弦函数序列x=2*sin(pi*n/6+pi/4)'); >>>> n=1:30;>> x=5*exp(j*3*n);>> stem(n,x);>> xlabel ('时间序列n');>> ylabel('振幅');>> title('复指数序列x=5*exp(j*3*n)');>>5.指数序列:>> n=1:30;>> x=1.8.^n;>> stem(n,x);>> xlabel ('时间序列n');>> ylabel('振幅');>> title('指数序列x=1.8.^n');>>复指数序列的周期性讨论:为了研究复指数序列的周期性质,我们分别作了正弦函数x1=1.5sin(0.3πn)和x2=sin(0.6n); 的幅度特性图像。
实验一 常见离散信号的MATLAB 产生和图形显示授课课时:2学时一、实验目的:(1)熟悉MATLAB 应用环境,常用窗口的功能和使用方法。
(2)掌握MATLAB 在时域内产生常用离散时间信号的方法。
(3)掌握离散信号的基本运算。
(4)掌握简单的绘图命令。
二、实验原理:(一)信号的表示和产生① 单位抽样序列⎩⎨⎧=01)(n δ 00≠=n n如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ≠=n k n 参考程序:例1-1:)2010(()(<<-=n n n x )δclear all n1=-10;n2=20;n0=0;%在起点为n1,终点为n2的范围内,于n0处产生冲激。
n=n1:n2;%生成离散信号的时间序列x=[n==n0];%生成离散信号x(n)stem(n,x);%绘制脉冲杆图xlabel(' n');ylabel('x(n)');%横坐标和纵坐标的标注说明。
title('Unit Sample Sequence');%图形上方标注图名axis([-10 20 0 1.2]);%确定横坐标和纵坐标的取值范围② 单位阶跃序列⎩⎨⎧=01)(n u 00<≥n n 例1-2:)202((u )(<<-=n n n x )clear alln1=-2;n2=20;n0=0;n=n1:n2;%生成离散信号的时间序列x=[n>=n0];%生成离散信号x(n)stem(n,x,'filled');xlabel('n');ylabel('x(n)');title('Unit step Sequence');axis([-2 20 0 1.2]);③ 正弦序列)sin()(ϕ+=wn A n x例1-3:一正弦信号的频率为1HZ ,振幅值幅度A 为1V ,在窗口显示2个周期的信号波形,并对该信号的一个周期进行32点采样获得离散信号并显示该连续信号和离散信号的波形。
实验1 常见离散信号产生和实现一、实验目的:1、加深对常用离散信号的理解;2、掌握matlab 中一些基本函数的建立方法。
二、实验原理:1.单位抽样序列⎩⎨⎧=01)(k δ 00≠=k k在MATLAB 中可以利用zeros()函数实现。
;1)1();,1(==x N zeros x 如果)(k δ在时间轴上延迟了n 个单位,得到)(n k -δ即:⎩⎨⎧=-01)(n k δ nk n k ≠= 2.单位阶越序列⎩⎨⎧01)(k u 00<≥k k在MATLAB 中可以利用ones()函数实现。
);,1(N ones x =3.正弦序列)/2sin()(ϕπ+=Fs fk A k x在MATLAB 中)/***2sin(*1:0fai Fs k f pi A x N k +=-=4.复指数序列k j e r k x ϖ⋅=)(在MATLAB 中)**exp(1:0k w j r x N k ⋅=-=5.指数序列k a k x =)(在MATLAB 中k a x N k .^1:0=-= 三、实验内容1、五种基本函数的图形生成(1)、单位抽样序列% 单位抽样序列和延时的单位抽样序列clf;n=0:10;x1=[1 zeros(1,10)];x2=[zeros(1,5) 1 zeros(1,5)];subplot(1,2,1);stem(n,x1);xlabel ('时间序列n');ylabel('振幅');title('单位抽样序列x1');subplot(1,2,2);stem(n,x2); xlabel('时间序列n');ylabel('振幅');title('延时了5的单位抽样序列');(2)、单位阶越序列clf;n=0:10;u=[ones(1,11)];stem(n,u);xlabel ('时间序列n');ylabel('振幅');title('单位阶越序列');所得的图形如下所示:(3)正弦函数clf;n=1:30;x=2*sin(pi*n/6+pi/3);stem(n,x); xlabel ('时间序列n');ylabel('振幅');title('正弦函数序列x=2*sin(pi*n/6+pi/3)');(4)、复指数序列clf;n=1:30;x=2*exp(j*3*n);stem(n,x); xlabel ('时间序列n');ylabel('振幅');title('复指数序列x=2*exp(j*3*n)');图形如下:(5)实指数序列clf;n=1:30;x=1.2.^n;stem(n,x); xlabel ('时间序列n');ylabel('振幅');title('指数序列x=1.2.^n');2、使用帮助功能学习square(方波), sawtooth(锯齿波)和sinc 函数,并绘图。
实验一离散信号的MATLAB实现一、目的要求1)学习典型的离散时间信号的MATLAB实现方法;2)学习离散时间序列的基本运算:相加、相乘、移位等;3)学习噪声的产生;4)掌握两个序列的卷积和相关运算5)掌握离散系统单位脉冲响应的求解。
二、实验内容1)典型的离散信号的表示方法:用matlab产生单位抽样信号δ(n) 、单位阶跃序列u(n) 、矩形序列R N(n) 、实指数序列a n u(n)、正弦序列sin(ωn)。
编写程序、并画出图形。
n=-20:20;n0=0;n1=10;w0=pi/4;x=[(n-n0)==0];x1=[(n-n0)>=0];x2=[(n-n0)>=0& (n-n1)<=0];x3=0.9.^n.*x1;x4=sin(w0*n);subplot(511);stem(n,x);axis([ -20 20 0 2]);ylabel('\sigma(n)'); subplot(512);stem(n,x1);axis([ -20 20 0 2]);ylabel('u(n)');subplot(513);stem(n,x2);axis([ -20 20 0 2]);ylabel('B N(n)');subplot(514);stem(n,x3);axis([ -20 20 0 2]);ylabel('a n u(n)');subplot(515);stem(n,x4);axis([ -20 20 -2 2]);ylabel('sin(w0n)');xlabel('n');2)离散信号的基本运算:对序列x(n)={2,3,4,1,2,5} ,n=0,1,2,3,4,5,的移位、乘法、加法、翻转及尺度变换。
编写程序、并画出图形。
n=-10:10;k=2;N=length(n);x=zeros(size(n));x1=zeros(size(n));y=zeros(size(n));y1=zeros(size(n));y2=zeros(size(n));y3=zeros(size(n));y4=zeros(size(n));x(11:16)=[2 3 4 1 2 5];x1(11:16)=[1 2 3 4 5 6];y(1+k:N)=x(1:N-k);y1(1:N-k)=x(1+k:N);y2=x.*x1;y3=x+x1;y4=fliplr(x);y5=x(1:2:N);n1=fix(n(1:2:N)/2);subplot(421);stem(n,x);xlabel('n');ylabel('x(n)');subplot(422);stem(n,x1);xlabel('n');ylabel('x1(n)');subplot(423);stem(n,y);xlabel('n');ylabel('x(n-2)');subplot(424);stem(n,y1);xlabel('n');ylabel('x(n+2)');subplot(425);stem(n,y2);xlabel('n');ylabel('x(n)*x1(n)');subplot(426);stem(n,y3);xlabel('n');ylabel('x(n)+x1(n)');subplot(427);stem(n,y4);xlabel('n');ylabel('x(-n)');subplot(428);stem(n1,y5);xlabel('n');ylabel('x(2n)');3)噪声的产生:产生方差为1,2,0.5的白噪声。
Guangxi University of Science and Technology实验报告实验课程:数字信号处理实验内容:常见离散信号的MATLAB产生和图形显示院(系):计算机科学与通信工程学院专业:通信工程班级:学生姓名:学号:指导教师:2016年 5 月 25 日实验一、常见离散信号的MATLAB 产生和图形显示一、实验目的:加深对常用离散信号的理解;二、实验原理:1.单位抽样序列实现: ⎩⎨⎧=01)(n δ 00≠=n n在MATLAB 中可以利用zeros()函数实现。
;1)1();,1(==x N zeros x如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即: ⎩⎨⎧=-01)(k n δ0≠=n k n2.单位阶跃序列实现: ⎩⎨⎧01)(n u 00<≥n n ;在MATLAB 中可以利用ones()函数实现。
);,1(N ones x =3.正弦序列实现: )/2sin()(ϕπ+=Fs fn A n x在MATLAB 中 )/***2sin(*1:0fai Fs n f pi A x N n +=-=4.复指数序列实现: n j e n x ϖ=)(在MATLAB 中 )**exp(1:0n w j x N n =-=5.实指数序列实现: n a n x =)(在MATLAB 中 n a x N n .^1:0=-=三、实验内容及步骤:1.单位抽样序列实现程序如下:n=n1:n2;x1=[zeros(1,5) 1 zeros(1,5)];%%n 为冲击位置x2=[zeros(1,7) 1 zeros(1,3)];%向右平移2个单位subplot(1,2,1);stem(n,x1,'filled');axis([n1,n2,0,1.1]);title('单位脉冲序列');xlabel('时间');ylabel('幅度x(n)');subplot(1,2,2);stem(n,x2,'filled');axis([n1,n2,0,1.1]);title('单位脉冲序列向右平移2个单位');xlabel('时间');ylabel('幅度x(n)');结果如下:图: 1-12. 单位阶跃序列程序如下:N=5;x=ones(1,N);xn=0:N-1;subplot(1,2,1);stem(xn,x,'filled')axis([-1 5 0 1.1])title('单位阶跃序列');xlabel('时间(n)');ylabel('幅度x(n)');x1=[0 0 ones(1,3)];subplot(1,2,2);stem(xn,x1,'filled')axis([-1 5 0 1.1])title('单位阶跃序列平移两个单位');xlabel('时间(n)');ylabel('幅度x(n)');结果如下:图: 1-2 3.正弦序列实现程序如下:n1=0;n2=15;n=n1:n2;x=3*sin(n*pi/4+pi/2);stem(n,x,'filled');axis([n1 n2 1.1*min(x) 1.1*max(x)]);axis([n1 n2 1.1*min(x) 1.1*max(x)]);title('正弦函数图');ylabel('时间x(n)');xlabel('幅度n');结果如下:图: 1-3 4.复指数序列实现程序如下:n1=30;a=-0.1;w=0.6;n=0:n1;x=exp((a+j*w)*n);subplot(1,2,1),stem(n,real(x),'filled');title('复指数原信号的实部');subplot(1,2,2),stem(n,imag(x),'filled');title('复指数原信号的虚部');结果如下:图: 1-4 5.实指数序列实现程序如下:n1=-10;n2=10;a1=0.5;a2=2;na1=n1:0;x1=a1.^na1;na2=0:n2;x2=a2.^na2;subplot(1,2,1),stem(na1,x1,'filled');title('实指数序列(a<1)');subplot(1,2,2),stem(na2,x2,'filled');title('实指数序列(a>1)');结果如下:图: 1-5四、实验总结与分析通过本实验,深入了解了MATLAB的运行环境,掌握了如何在该软件上编程、编译和运行一个MATLAB程序,通过运行简单的MATLAB程序,初步了解了MATLAB程序的特点,掌握了一些基本的MATLAB函数。
《数字信号处理》实验指导书实验一 常见离散信号的产生一、实验目的1. 加深对离散信号的理解。
2. 掌握典型离散信号的Matlab 产生和显示。
二、实验原理及方法在MATLAB 中,序列是用矩阵向量表示,但它没有包含采样信息,即序列位置信息,为此,要表示一个序列需要建立两个向量;一是时间序列n,或称位置序列,另一个为取值序列x ,表示如下: n=[…,-3,-2,-1,0,1,2,3,…]x=[…,6,3,5,2,1,7,9,…]一般程序都从0 位置起始,则x= [x(0), x(1), x(2),…]对于多维信号需要建立矩阵来表示,矩阵的每个列向量代表一维信号。
数字信号处理中常用的信号有指数信号、正弦信号、余弦信号、方波信号、锯齿波信号等,在MATLAB 语言中分别由exp, sin, cos, square, sawtooth 等函数来实现。
三、实验内容1. 用MATLAB 编制程序,分别产生长度为N(由输入确定)的序列:①单位冲击响应序列:()n δ可用MATLAB 中zeros 函数来实现; ②单位阶跃序列:u(n)可用MATLAB 中ones 函数来实现; ③正弦序列:()sin()x n n ω=; ④指数序列:(),nx n a n =-∞<<+∞⑤复指数序列:用exp 函数实现()0()a jb nx n K e+=,并给出该复指数序列的实部、虚部、幅值和相位的图形。
(其中00.2,0.5,4,40a b K N =-===.)参考流程图:四、实验报告要求1. 写出实验程序,绘出单位阶跃序列、单位阶跃序列、正弦序列、指数序列的图形以及绘 出复指数序列的实部、虚部、幅值和相位的图形。
2. 序列信号的实现方法。
3. 在计算机上实现正弦序列0()sin(2)x n A fn πϕ=+。
实验二 离散信号的运算一、实验目的1. 掌握离散信号的时域特性。
2. 用MATLAB 实现离散信号的各种运算。
离散时间信号与系统[实验目的]1.了解信号处理的基本操作2.熟悉一些常用的序列及其应用[实验原理]我们所接触的信号大多为连续信号,为使之便于处理,往往要对其进行采样,对信号抽样并保证其能完全恢复,对抽样频率有一定的限制。
基本的离散序列的定义如下:1.单位采样序列2.单位阶跃序列3.实指数序列,;a为实数4.复数指数序列,5.正余弦序列,6.周期序列,[实验内容]1.用MATLAB实现函数impseq(n0,n1,n2),使函数实现,。
函数定义:function [x,n]=impseq(n0,n1,n2)if (n1>n2||n0>n2||n0<n1)error('parameter error');end;if (n1<=n2)for n=1:n2-n1+1if (n==n0)x(1,n)=n1-1+n;x(2,n)=1;end;x(1,n)=n1-1+n;x(2,n)=0;end;x(2,n0-n1+1)=1;end;运行结果:impseq(3,1,9)ans =6 7 8 9 10 11 12 13 140 0 0 0 1 0 0 0 0注:上面一行为自变量n,下面一行为函数值,以下运行结果为两行的,都与此题同,不在表明。
2.用MATLAB实现函数stepseq(n0,n1,n2),使函数实现u(n-n0),。
函数定义:function [x,n]=stepseq(n0,n1,n2)if (n0>n2||n0<n1||n1>n2)error('parameter error');end;for n=1:n2-n1+1if (n+n1-1<n0)x(1,n)=n1+n-1;x(2,n)=0;elsex(1,n)=n1+n-1;x(2,n)=1;end;end;运行结果:Stepseq(4,2,10)ans =2 3 4 5 6 7 8 9 100 0 1 1 1 1 1 1 1 注:与上同,上面一行是自变量,下面一行是函数值。
数字信号处理实验报告实验1 常见离散信号产生和实现一、实验目的1、加深对常用离散信号的理解;2、熟悉使用MATLAB 在时域中产生一些基本的离散时间信号。
二、实验原理MATLAB 语言提供了一系列函数用来产生信号,如exp, sin, cos, square, sawtooth ,ones, zeros 等函数。
1.基本信号序列1) 单位抽样序列⎩⎨⎧=01)(n δ00≠=n n 在MATLAB 中可以利用zeros()函数实现。
x=[1 zeros(1, n-1)]示范程序: % Program P1_1% Generation of a Unit Sample Sequence clf;% Generate a vector from -10 to 20 n = -10:20;% Generate the unit sample sequence u = [zeros(1,10) 1 zeros(1,20)]; % Plot the unit sample sequence stem(n,u);xlabel('Time index n');ylabel('Amplitude'); title('Unit Sample Sequence'); axis([-10 20 0 1.2]);如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ 0≠=n k n 2) 单位阶跃序列⎩⎨⎧01)(n u 00<≥n n 在MATLAB 中可以利用ones()函数实现。
);,1(N ones x =3) 实指数序列R a n a n x n∈∀=,)(MATLAB 实现:na x N n .^1:0=-=4) 复指数序列n e n x nj ∀=+)()(ωσMATLAB 实现:))0exp((1:0n w j lu x N n **+=-=5) 随机序列MATLAB 提供了两种随机信号:rand(1,N) 产生[0,1]上均匀分布的随机矢量。
randn(1,N) 产生均值为0,方差为1的高斯随机序列,即白噪声序列。
2.基本周期波形1) 方波MATLAB 工具箱函数square 可以产生方波;t=0:0.1*pi:6*pi; y=square(t);axis([0 7*pi -1.5 1.5]);plot(t,y); xlabel(‘时间 t ’); ylabel(‘幅度y ’); 2) 正弦波)/2sin()(ϕπ+=Fs fn A n x在MATLAB 中)/***2sin(*1:0fai Fs n f pi A x N n +=-=3) 锯齿波工具箱函数sawtooth 函数可以产生锯齿波Fs=10000;t=0:1/Fs:1.5; %抽样长度1.5s, 抽样频率为10kHz x=sawtooth(2*pi*50*t); %信号频率为50Hz plot(t, x);axis()[0 0.2 -1 1]; %画出0.2秒的波形3.基本非周期波形工具箱函数chirp 能产生一种扫射频率信号,其特点是信号的瞬时频率随时间按照一定规律变化t=0:1/1000:2 %抽样频率1kHz, 抽样时间2s.x=chirp(t, 0.1, 150) %0时刻为DC 信号,1s 时频率为150Hz 。
specgram(x, 256, 1000, 256, 250); 4.sinc 信号MATLAB 实现: t=linspace(-5,5); x=sinc(t); plot(t,x); 5.序列的操作1) 信号加 x(n)=x1(n)+x2(n) MATLAB 实现:x=x1+x2;注意:x1和x2序列应该具有相同的长度,位置对应,才能相加。
2) 信号乘 x(n)=x1(n)*x2(n) MATLAB 实现:x=x1.*x2; %数组乘法 3) 改变比例 y(n)=k*x(n) MATLAB 实现: y=k*x;4) 折叠 y(n)=x(-n); MATLAB 实现: y=fliplr(x);5) 抽样和 ∑==21)(n n n n x yMATLAB 实现:y=sum(x(n1:n2));6) 抽样积 ∏==21)(n n n n x yMATLAB 实现:y=prod(x(n1:n2));7) 信号能量 2|)(|∑∞-∞==n n x ExMATLAB 实现:Ex=sum(abs(x).^2);8) 信号功率 21|)(|1∑-==N n n x N PxMATLAB 实现:Px=sum(abs(x).^2)/ N;实验和程序: 1) 单位抽样序列function uss(n)%构造函数N=0:n-1u = [1, zeros(1,n-1)];%构造矩阵stem(N,u);xlabel('Time index n');ylabel('Amplitude'); title('Unit Sample Sequence');axis([-10 n 0 1.2]);右图为取n为10的图形2) 单位阶跃序列function jieyue(n)%构造函数N = -10:n-1;u = [zeros(1,10) ones(1,n)];stem(N,u);xlabel('Time indexn');ylabel('Amplitude');title('Unit jump Sequence');axis([-10 n 0 1.2]);右图为取n为10的图形3) 实指数序列function index(z1,N)%构造函数% n1=0:N;n=0:N/2;x=z1.^n;stem(n,x);xlabel('Time indexn');ylabel('Amplitude');右图为取z1=2,N=30的图形4) 复指数序列function findex(z1,z2)%构造函数Time index nAmplitudeUnit Sample SequenceTime index nAmplitudeUnit jump Sequence4Time index n Amplitude5Time index nAmplitudeN=10;n=0:N/2;x=exp((z1+j*z2).*n);stem(n,abs(x));xlabel('Time index n');ylabel('Amplitude'); 右图为z1=2,z2=3的图形5) 方波function square1(g)%G为方波的占空比t=0:0.1:6*pi;y=square(t,g);plot(t,y);xlabel('时间 t');ylabel('幅度y');axis([0 7*pi -1.5 1.5]); %要放在最后才可以正确显示右图分别为G=70,G=30的图形6)正弦波function sin1(N,A,Fs,f,Q)%N为显示的范围,A为幅度,%FS为抽样频率,f为模拟信号的频率,Q为初相位n=0:N/2;x=A*sin(2*pi*f*n/Fs+Q)stem(n,x);xlabel('Time indexn');ylabel('Amplitude');axis([0 N/2 -2.5 2.5]);右图为sin1(60,2,1000,50,10)的图形7)锯齿波时间 t幅度y时间 tTime index nAmplitudefunction saw(f,F)%f 为锯齿波的频率,F 为间隔 %其中F 不能取太大,不易观 察图形 t=0:1/F:2;y=sawtooth(2*pi*f*t); plot(t,y);axis([0 2 -1.2 1.2]); 右图为saw(10,100)的图形 8)基本非周期波形%利用chirp 来实现t=0:1/500:2 %抽样频率500Hz, 抽样时间2s.x=chirp(t, 0.1, 150) %0时刻为DC 信号,1s 时频率为150Hz 。
specgram(x, 256, 500, 256, 250); 右图分别为抽样频率为500与10000的图形 9) sinc 信号function sinc1(t1,t2,A)%[t1,t2]为定义域A为幅度t=linspace(t1,t2);x=A*sinc(t);plot(t,x);右图为[t1,t2]=[-10,10],A=2的图形10)序列相加 function sequenceplus(x1,x2) n1=length(x1); n2=length(x2);TimeF r e q u e n cy50100150200250TimeF r e q u e n cy50100150200250-20-101020-40-2002040n=-n1/2:(n1/2-1);subplot(221)stem(n,x1)subplot(222)stem(n,x2)if(n1==n2) % x1,x2 的长度必须相同x=x1+x2;subplot(223)stem(n,x);axis([-n1 n1 0 2])else error('x1与x2不一样长')end右图为x3=[ones(1,20),ones(1,10),ones(1,10)];x4=[zeros(1,20),ones(1,10),zeros(1,10)];sequenceplus(x3,x4)的图形如果输入x3=[ones(1,10),ones(1,10),ones(1,10)];x4=[zeros(1,20),ones(1,10),zeros(1,10)];则会显示x1与x2不一样长11)序列相乘function sequencenmultiply(x1,x2)n1=length(x1);n2=length(x2);n=-n1/2:(n1/2-1);subplot(221)stem(n,x1)subplot(222)stem(n,x2)if(n1==n2) % x1,x2的长度必须相-20-1001020同x=x1.*x2; subplot(223) stem(n,x);axis([-n1 n1 0 2])else disp('error x1与x2不一样长') end右图为x3=[ones(1,20),ones(1,10),ones(1,10)];x4=[zeros(1,20),ones(1,10),zeros(1,10)]; sequenceplus(x3,x4)的图形 如果输入x3=[ones(1,10),ones(1,10),ones(1,10)]; x4=[zeros(1,20),ones(1,10),zeros(1,10)]; 则会显示x1与x2不一样长 12)改变比例function changerate(x,k) n1=length(x); %x 为需要改变的序列 n=-n1/2:(n1/2-1); ,k 为改变的比例x1=k.*x; stem(n,x1);axis([-n1 n1 0 k+1]); 右图为x=[ones(1,20),ones(1,10),ones(1,10)];K=1.5的图形 13)折叠function pucker(x)n1=length(x);n=-n1/2:(n1/2-1);%这里的n 必须关于0两边对称 x1=fliplr(x); ,不然就会出错 subplot(211)-40-30-20-1010203040stem(n,x)%画出原序列axis([-n1 n1 0 1.2]);subplot(212)stem(n,x1);%画出折叠后的序列axis([-n1 n1 0 1.2]);14)抽样和函数n=0:24;x1=[zeros(1,5),ones(1,3),zeros(1,5),ones(1,6),zeros(1,6)];x=sum(x1)计算结果为x =915)序列积n=0:25;x1=rand(1,26)x=prod(x1)计算结果为x1 =Columns 1 through 60.9501 0.2311 0.6068 0.4860 0.8913 0.7621Columns 7 through 120.4565 0.0185 0.8214 0.4447 0.6154 0.7919Columns 13 through 180.9218 0.7382 0.1763 0.4057 0.9355 0.9169Columns 19 through 240.4103 0.8936 0.0579 0.3529 0.8132 0.0099Columns 25 through 260.1389 0.2028x =4.6704e-01216) 序列能量x3=[ones(1,15),ones(1,20),ones(1,16)];p=sum(abs(x3).^2)计算结果为p =5117)信号功率x1=[zeros(1,5),-2*ones(1,3),zeros(1,5),5*ones(1,6),zeros(1,6)];N=length(x1)p=sum(abs(x1).^2)/N计算结果为N =25p =6.4800四、讨论复指数序列的性质。