数字信号处理实验1 常见离散信号产生和实现

合集下载

数字信号处理实验报告

数字信号处理实验报告

《数字信号处理》实验报告学院:信息科学与工程学院专业班级:通信1303姓名学号:实验一 常见离散时间信号的产生和频谱分析一、 实验目的(1) 熟悉MATLAB 应用环境,常用窗口的功能和使用方法;(2) 加深对常用离散时间信号的理解;(3) 掌握简单的绘图命令;(4) 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号进行频域分析。

二、 实验原理(1) 常用离散时间信号a )单位抽样序列⎩⎨⎧=01)(n δ00≠=n n 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ0≠=n k n b )单位阶跃序列⎩⎨⎧=01)(n u 00<≥n n c )矩形序列 ⎩⎨⎧=01)(n R N 其他10-≤≤N nd )正弦序列)sin()(ϕ+=wn A n xe )实指数序列f )复指数序列()()jw n x n e σ+=(2)离散傅里叶变换:设连续正弦信号()x t 为0()sin()x t A t φ=Ω+这一信号的频率为0f ,角频率为002f πΩ=,信号的周期为00012T f π==Ω。

如果对此连续周期信号()x t 进行抽样,其抽样时间间隔为T ,抽样后信号以()x n 表示,则有0()()sin()t nT x n x t A nT φ===Ω+,如果令w 为数字频率,满足000012s sf w T f f π=Ω=Ω=,其中s f 是抽样重复频率,简称抽样频率。

为了在数字计算机上观察分析各种序列的频域特性,通常对)(jw e X 在[]π2,0上进行M 点采样来观察分析。

对长度为N 的有限长序列x(n), 有∑-=-=10)()(N n n jw jw k k e n x e X其中 1,,1,02-==M k k Mw k ,π 通常M 应取得大一些,以便观察谱的细节变化。

取模|)(|k jw e X 可绘出幅频特性曲线。

数字信号处理实验报告一 离散信号及其MATLAB实验

数字信号处理实验报告一  离散信号及其MATLAB实验

实验报告2012 年 04 月 06 日课程名称: 数字信号处理 实验名称: 离散信号及其MATLAB 实现 班级: 学号: 姓名:实验一 离散信号及其MATLAB 实验一、实验目的(1)熟悉MATLAB 的主要操作命令;(2)学会离散信号的表示方法及其基本运算; (3)掌握简单的绘图命令;(4)用Matlab 编程并学会创建函数。

二、实验内容(1)序列的加、减、乘、除和乘方运算。

输入A=[1 2 3 4 ],B=[3 4 5 6],起点n=0,求C=A+B ,D=A-B ,E=A.*B ,F=A./B ,G=A.^B ,并用stem 语句画出A ,B ,C ,D ,E ,F ,G 。

(2)用MATLAB 实现下列序列:① x(n)=n 8.0 0≤n ≤15 ② x(n)=n j e )32.0( 0≤n ≤15③ x(n)=3cos(0.125πn+0.2π)+2sin(0.25πn+0.1π) 0≤n ≤15(3)编写函数如stepshift (n0,n1,n2)实现u(n)的移动序列u(n-n0),n1≤n ≤n2,给出该函数的图形。

设n1=0,n2=9,n0=2(4) x(n)=[1,-1,3,5],起点n=0,产生并绘出下列序列的样本: x1(n)=2x(n+2)-x(n-1)-2x(n)三、实验程序及实验图形 实验(1) 1、 程序:n=[0:3];A=[1 2 3 4 ]; %定义序列A ,即一行四列的矩阵 B=[3 4 5 6]; %定义序列BC=A+B;D=A-B;E=A.*B;F=A./B;G=A.^B; figure(1);subplot(2,2,1) %将图形界面分成2行2列,其中第一个显示下列图形 stem(n,A,'r*'); %绘制二维离散数据的火柴杆图,用红线和*号标出xlabel('n'); %x 轴标签为n ylabel('A'); %y 轴标签为A grid on; %绘制网格 subplot(2,2,2)stem(n,B);xlabel('n');ylabel('B');grid on; subplot(2,2,3)stem(n,C);xlabel('n');ylabel('C');grid on;title('序列的运算'); subplot(2,2,4);stem(n,D);xlabel('n');ylabel('D');grid on; figure(2); subplot(3,1,1)stem(n,E);xlabel('n');ylabel('E');grid on;title('序列的运算'); subplot(3,1,2)stem(n,F);xlabel('n');ylabel('F');grid on; subplot(3,1,3)stem(n,G);xlabel('n');ylabel('G');grid on;2、 运行结果1231234nA1230246nB1230510nC序列的运算123-2-1.5-1-0.50nD图1 A 、B 、C 、D 的波形00.511.522.532040nE序列的运算00.511.522.530.51nF0.511.522.530200040006000nG图2 E 、F 、G 的波形3、 实验结果分析:由图1和图2可知:序列的加、减、乘、除是在n 上的对应点的加、减、乘、除,.*、./、.^也是矩阵的对应点相乘、除、乘方,对离散序列进行运算可以看作是对两个行向量的运算。

《数字信号处理》实验指导书1

《数字信号处理》实验指导书1

实验一离散信号产生和基本运算一、实验目的(1)掌握MATLAB最基本的矩阵运算语句。

(2)掌握对常用离散信号的理解与运算实现。

二、实验原理1.向量的生成a.利用冒号“:”运算生成向量,其语句格式有两种:A=m:nB=m:p:n第一种格式用于生成不长为1的均匀等分向量,m和n分别代表向量的起始值和终止值,n>m 。

第二种格式用于生成步长为p的均匀等分的向量。

b.利用函数linspace()生成向量,linspace()的调用格式为:A=linspace(m,n)B=linspace(m,n,s)第一种格式生成从起始值m开始到终止值n之间的线性等分的100元素的行向量。

第二种格式生成从起始值m开始到终止值n之间的s个线性等分点的行向量。

2.矩阵的算术运算a.加法和减法对于同维矩阵指令的A+BA-B对于矩阵和标量(一个数)的加减运算,指令为:A+3A-9b.乘法和除法运算A*B 是数学中的矩阵乘法,遵循矩阵乘法规则A.*B 是同维矩阵对应位置元素做乘法B=inv(A)是求矩阵的逆A/B 是数学中的矩阵除法,遵循矩阵除法规则A./B 是同维矩阵对应位置元素相除另'A表示矩阵的转置运算3.数组函数下面列举一些基本函数,他们的用法和格式都相同。

sin(A),cos(A),exp(A),log(A)(相当于ln)sqrt(A)开平方 abs(A)求模 real(A)求实部 imag(A)求虚部 式中A 可以是标量也可以是矩阵 例: 利用等差向量产生一个正弦值向量 t=0:0.1:10 A=sin(t) plot(A)这时候即可看到一个绘有正弦曲线的窗口弹出 另:每条语句后面加“;”表示不要显示当前语句的执行结果 不加“;”表示要显示当前语句的执行结果。

4. 二维曲线的绘制plot()函数plot()函数是将各个数据点通过连折线的方式来绘制二维图形的,其命令格式有以下几种:c . plot(y)当y 为向量时,以y 的序号作为X 轴,按向量y 的值绘制曲线。

数字信号处理实验一时域离散信号的产生与基本运算.docx

数字信号处理实验一时域离散信号的产生与基本运算.docx

实验一时域离散信号的产生与基本运算一、实验目的1、了解常用的时域离散信号及其特点;2、掌握Matlab产生常用时域离散信号的方法;3、掌握时域离散信号简单的基本运算方法;二、实验内容1、自己设定参数,分别表示并绘制单位抽样序列、单位阶跃序列、正弦序列、实指数序列、随机序列;2、自己设定参数,分别表示并绘制信号移位、信号相加、信号相乘、信号翻转、信号和、信号积、信号能量。

3、已知信号2n 5 -4_n_ 4-1x(n)=6 0 _ n _ 4b 其他(1)描绘x(n)序列的波形;(2)用延迟的单位脉冲序列及其加权和表示x(n)序列;(3)描绘一下序列的波形刃5) = 2x(n - 2), x2(n) = 2x(n 2), x3(n) = x(2 - n)三、实现步骤1、自己设定参数,分别表示并绘制单位抽样序列、单位阶跃序列、正弦序列、实指数序列、随机序列。

输出图形如图1所示。

x=zeros(1,10);x(2)=1;subplot(3,2,1); stem(x, 'filled' )axis([0,10,-0.2,1]); title('单位抽样序列');N=10; x=-20:1:20;y=si n(0.2*pi.*x+0.5*pi); subplot(3,2,3);stem(x,y, 'filled' );axis([-20,20,-2,2]);title( '正弦序列');u=on es(1,N); subplot(3,2,2);stem(u, 'filled' ) axis([-10,10,0,1]);title('单位阶跃序列'); n=0:10;a1=1/2;y1=a1.A n;subplot(3,2,4); stem( n,y1, 'filled' );y=ra nd(1,20); subplot(3,2,6); stem(y, 'filled' ); title( '随机序列’);2、自己设定参数,分别表示并绘制信号移位、信号相加、信号相乘、信号翻转、 信号和、信号积、 信号的移位: n=-3:10;k0=3;k1=-3;x=cos(2*pi* n/10);x1=cos(2*pi*( n-k0)/10); x2=cos(2*pi*( n-k1)/10); subplot(3,1,1),stem( n,x,5ylabel( 'x( n)' ); subplot(3,1,2),stem( n,x1, );ylabel( 'x( n-2)');subplot(3,1,3),stem( n,x2, ylabel( 'x( n+2)' );单检推拦洋列单拉阶砥月 F 列■ ■II--fl -B-2 D 2 4 G 9 10实腊瞰序列,SF I/2n---------■ 片1T¥s■A A ■Jk0 1234567E911陆WL 序利"IIJ1 1■ ■axis([0,10,0,1]);title( '实指数序列,a=1/2'); stem( n,y2, 'filled' ); title( '实指数序列,a=2');n=0:10; a2=2;y2=a2.An;subplot(3,2,5);信号冃匕里。

常见离散信号产生和实现

常见离散信号产生和实现

数字信号处理实验报告实验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]上均匀分布的随机矢量。

《数字信号处理》上机实验指导书

《数字信号处理》上机实验指导书

《数字信号处理》上机实验指导书实验1 离散时间信号的产生1.实验目的数字信号处理系统中的信号都是以离散时间形态存在,所以对离散时间信号的研究是数字信号处理的基本所在。

而要研究离散时间信号,首先需要产生出各种离散时间信号。

MATLAB 是一套功能强大的工程计算及数据处理软件,广泛应用于工业,电子,医疗和建筑等众多领域。

使用MATLAB软件可以很方便地产生各种常见的离散时间信号,而且它还具有强大的绘图功能,便于用户直观地输出处理结果。

通过本实验,学生将学习如何用MATLAB产生一些常见的离散时间信号,并通过MATLAB中的绘图工具对产生的信号进行观察,加深对常用离散信号的理解。

2.实验要求本实验要求学生运用MATLAB编程产生一些基本的离散时间信号,并通过MATLAB的几种绘图指令画出这些图形,以加深对相关教学内容的理解,同时也通过这些简单的函数练习了MATLAB的使用。

3.实验原理(1)常见的离散时间信号1)单位抽样序列,或称为离散时间冲激,单位冲激:?(n)???1?0n?0 n?0如果?(n)在时间轴上延迟了k个单位,得到?(n?k)即:?1n?k ?(n?k)??0n?0?2)单位阶跃序列n?0?1 u(n)?n?0?0在MATLAB中可以利用ones( )函数实现。

x?ones(1,N);3)正弦序列x(n)?Acos(?0n??)这里,A,?0,和?都是实数,它们分别称为本正弦信号x(n)的振幅,角频率和初始相位。

f0??02?为频率。

x(n)?ej?n4)复正弦序列5)实指数序列x(n)?A?n(2)MATLAB编程介绍MATLAB是一套功能强大,但使用方便的工程计算及数据处理软件。

其编程风格很简洁,没有太多的语法限制,所以使用起来非常方便,尤其对初学者来说,可以避免去阅读大量的指令系统,以便很快上手编程。

值得注意得就是,MATLAB中把所有参与处理的数据都视为矩阵,并且其函数众多,希望同学注意查看帮助,经过一段时间的训练就会慢慢熟练使用本软件了。

数字信号处理实验指导书(需印刷)

数字信号处理实验指导书(需印刷)

实验一 常见离散信号的MATLAB 产生和图形显示1、实验目的:(1)熟悉MATLAB 应用环境,常用窗口的功能和使用方法。

(2)加深对常用离散时间信号的理解。

(3)掌握简单的绘图命令。

(4)掌握线性卷积的计算机编程方法。

2、实验原理:(1)单位抽样序列⎩⎨⎧=01)(n δ0≠=n n如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ≠=n k n(2)单位阶跃序列⎩⎨⎧=01)(n u 00<≥n n(3)矩形序列 ⎩⎨⎧=01)(n R N 其他10-≤≤N n(4)正弦序列)sin()(ϕ+=wn A n x(5)复正弦序列jwnen x =)((6)指数序列na n x =)((7)线性时不变系统的响应为如下的卷积计算式:∑∞-∞=-=*=m m n h m x n h n x n y )()()()()(3、实验内容及步骤:(1)复习常用离散时间信号的有关内容。

(2)编制程序产生上述6种序列(长度可输入确定,对(4) (5) (6)中的参数可自行选择),并绘出其图形。

(3)已知系统的单位脉冲响应),(9.0)(n u n h n=输入信号)()(10n R n x =,试用卷积法求解系统的输出)(n y ,并绘出n n x ~)(、n n h ~)(及n n y ~)(图形。

4、实验用MATLAB 函数介绍(1)数字信号处理中常用到的绘图指令(只给出函数名,具体调用格式参看help)figure(); plot(); stem(); axis(); grid on; title(); xlabel(); ylabel(); text(); hold on; subplot()(2)离散时间信号产生可能涉及的函数zeros(); ones(); exp(); sin(); cos(); abs(); angle(); real(); imag(); (3)卷积计算可能涉及的函数conv(); length()注:实验过程中也可以使用自己编制的自定义函数,如impseq()、stepseq()等。

西安交通大学数字信号处理实验报告

西安交通大学数字信号处理实验报告

数字信号处理实验报告班级:硕姓名:学号:实验1 常见离散信号的MATLAB 产生和图形显示实验目的:加深对常用离散信号的理解;实验内容:(1)单位抽样序列clc;x=zeros(1,11); x(1)=1; n=0:1:10;stem(n,x, 'fill'); title('单位抽样序列'); xlabel('n'); ylabel('x[n]')延迟5个单位:clc;x=zeros(1,11); x(6)=1; n=0:1:10;stem(n,x, 'fill'); title('单位抽样序列'); xlabel('n'); ylabel('x[n]')nx [n ](2)单位阶跃序列clc;x=[zeros(1,5),ones(1,6)]; n=-5:1:5;stem(n,x,'fill'); title('单位阶跃序列'); xlabel('n'); ylabel('x[n]');nx [n ](3)正弦序列clc; N=50; n=0:1:N-1; A=1; f=1; Fs=50; fai=pi;x=A*sin(2*pi*f*n/Fs+fai); stem(n,x,'fill'); title('正弦序列'); xlabel('n'); ylabel('x[n]'); axis([0 50 -1 1]);nx [n ](4)复正弦序列clc; N=50; n=0:1:N-1; w=2*pi/50; x=exp(j*w*n); subplot(2,1,1); stem(n,real(x)); title('复正弦序列实部'); xlabel('n');ylabel('real(x[n])'); axis([0 50 -1 1]); subplot(2,1,2); stem(n,imag(x)); title('复正弦序列虚部'); xlabel('n');ylabel('imag(x[n])'); axis([0 50 -1 1]);nx [n ](5)指数序列clc; N=10; n=0:1:N-1; a=0.5; x=a.^n;stem(n,x,'fill'); title('指数序列'); xlabel('n'); ylabel('x[n]'); axis([0 10 0 1]);nr e a l (x [n ])ni m a g (x [n ])(6)复指数序列性质讨论:0(j )()enx n σω+=将复指数表示成实部与虚部为00()e cos j sin n n x n n e n σσωω=+1.当σ=0时,它的实部和虚部都是正弦序列。

数字信号处理实验总结

数字信号处理实验总结

实验一 离散信号及运算一、 实验目的1. 掌握MATLAB 语言的基本功能及实现方法;2. 掌握MATLAB 中各种常用序列的表示和显示方法;3. 熟练运用MATLAB 进行离散信号的各种运算。

二、 实验原理我们所接触的信号大多为连续信号,而计算机及其他设备处理的大多为数字信号。

为了便于处理,往往要对信号进行处理使之变成离散数字信号。

对信号进行时间上的量化(即采样)是对信号作数字化处理的第一个环节,要求理解采样的原理和采样的性质,知道采样前后信号的变化及对离散信号和系统的影响。

三、 实验内容1、用MATLAB 实现下列序列,并画出图形:① 单位采样序列移位,100),3()(≤≤-=n n n x δ; 提示:实现单位采样序列:0001{)(≠==n n n δ,可通过以下语句实现:x=zeros(1,N);x(1)=1; n=0:10;x=[zeros(1,3),1,zeros(1,7)];stem(n,x); 01234567891000.10.20.30.40.50.60.70.80.91② 单位阶跃序列移位,100),3()(≤≤-=n n u n x提示:实现单位阶跃序列:0001{)(≠==n n n u ,可通过以下语句实现:x=ones(1,N);n=0:10; x=[zeros(1,3),1,ones(1,7)]; stem(n,x) 01234567891000.10.20.30.40.50.60.70.80.91③正弦序列,100),****2sin(*)(≤≤=n T n f A n x s π,其中A=2;f=10;s T =0.005; A=2; f=10; Ts=0.005; n=0:10;x=A*sin(2*pi*f*n*Ts); stem(n,x) 01234567891000.20.40.60.811.21.41.61.82③ 指数序列,100,9.0)(≤≤=n n x n n=0:10; x=0.9.^n; stem(n,x) 01234567891000.10.20.30.40.50.60.70.80.91④ 复指数序列,0.05+j*pi/4*()e ,2020n x n n =-≤≤,画出该序列的实部、虚部,幅值和相位。

数字信号处理实验报告1-5

数字信号处理实验报告1-5

实验一时域离散信号的产生及时域处理实验目的:了解Matlab软件数字信号处理工具箱的初步使用方法。

掌握其简单的Matlab语言进行简单的时域信号分析。

实验内容:[1.1]已知两序列x1=[0,1,2,3,4,3,2,1,0];n1=[-2:6];x2=[2,2,0,0,0,-2,-2],n2=[2:8].求他们的和ya及乘积yp. 程序如下:x1=[0,1,2,3,4,3,2,1,0];ns1=-2;x2=[2,2,0,0,0,-2,-2];ns2=2;nf1=ns1+length(x1)-1;nf2=ns2+length(x2)-1;ny=min(ns1,ns2):max(nf1,nf2);xa1=zeros(1,length(ny));xa2=xa1;xa1(find((ny>=ns1)&(ny<=nf1)==1))=x1;xa2(find((ny>=ns2)&(ny<=nf2)==1))=x2;ya=xa1+xa2yp=xa1.*xa2subplot(4,4,1),stem(ny,xa1,'.')subplot(4,1,2),stem(ny,xa2,'.')line([ny(1),ny(end)],[0,0])subplot(4,1,3),stem(ny,ya,'.')line([ny(1),ny(end)],[0,0])subplot(4,1,4),stem(ny,yp,'.')line([ny(1),ny(end)],[0,0])[1.2]编写产生矩形序列的程序。

并用它截取一个复正弦序列,最后画出波形。

程序如下:clear;close alln0=input('输入序列起点:n0=');N=input('输入序列长度:N=');n1=input('输入位移:n1=');n=n0:n1+N+5;u=[(n-n1)>=0];x1=[(n-n1)>=0]-[(n-n1-N)>=0];x2=[(n>=n1)&(n<(N+n1))];x3=exp(j*n*pi/8).*x2;subplot(2,2,1);stem(n,x1,'.');xlabel('n');ylabel('x1(n)');axis([n0,max(n),0,1]);subplot(2,2,3);stem(n,x2,'.');xlabel('n');ylabel('x2(n)');axis([n0,max(n),0,1]);subplot(2,2,2);stem(n,real(x3),'.'); xlabel('n');ylabel('x3(n)的实部');line([n0,max(n)],[0,0]);axis([n0,max(n),-1,1]);subplot(2,2,4);stem(n,imag(x3),'.'); xlabel('n');ylabel('x3(n)的虚部');line([n0,max(n)],[0,0]);axis([n0,max(n),-1,1]);[1.3]利用已知条件,利用MATLAB生成图形。

实验1 常见离散信号的MATLAB产生和图形显示实验报告

实验1 常见离散信号的MATLAB产生和图形显示实验报告

实验1 常见离散信号的MATLAB 产生和图形显示实验报告2010级电信工一班 房明 201000121030MATLAB 是一套功能强大的工程计算及数据处理软件,广泛应用于工业,电子,医疗和建筑等众多领域。

它是一种面向对象的,交互式程序设计语言,其结构完整又优良的可移植性。

它在矩阵运算,数字信号处理方面有强大的功能。

另外,MATLAB 提供了方便的绘图功能,便于用户直观地输出处理结果。

实验要求:运用MATLAB 编程完成一些数字信号处理的基本功能,加深对教学内容的理解。

实验1 常见离散信号的MATLAB 产生和图形显示;实验目的:加深对常用离散信号的理解;实验原理:1. 单位抽样序列⎩⎨⎧=01)(n δ 00≠=n n 在MATLAB 中可以利用________函数实现。

如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ 0≠=n k n 2.单位阶跃序列⎩⎨⎧01)(n u 00<≥n n 在MATLAB 中可以利用_______函数实现。

3.正弦序列)/2sin()(ϕπ+=Fs fn A n x4.复正弦序列 n j e n x ϖ=)(5.指数序列n a n x =)(实验内容:编制程序产生上述5种信号(长度可输入确定),并绘出其图形。

实验要求:(1)预先阅读附录(MATLAB 基础介绍);(2)讨论复指数序列的性质。

实验结果:1、单位抽样序列:在MATLAB 中可以利用zero()函数实现。

x=zeros(1,N);x(0)=1;并且用stem()函数绘制二维离散数据的火柴杆图。

实验代码:>> n1=-20:20;>> x1=[zeros(1,20),1,zeros(1,20)];>> stem(n1,x1);>> title('单位抽样序列');>> xlabel('n');ylabel('δ(n)');图形:如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ,则将程序中语句>> x1=[zeros(1,20),1,zeros(1,20)];里面的“1”改为相应的k 即可,同时适当改变图形显示的长度。

离散信号的产生及运算

离散信号的产生及运算

离散信号的产生及运算实验一离散信号的产生及运算一.实验目的:1.复习和巩固数字信号处理中离散信号的产生和运算2.学习和掌握用MATLAB 产生离散信号的方法3.学习和掌握用MATLAB 对离散信号进行运算二.实验原理1.用MATLAB 函数产生离散信号信号是数字信号处理的最基本内容。

没有信号,数字信号处理就没了工作对象。

MATLAB7.0 内部提供了大量的函数,用来产生常用的信号波形。

例如,三角函数(sin,cos), 指数函数(exp),锯齿波函数(sawtooth), 随机数函数(rand)等。

⑴产生被噪声污染的正弦信号用随机数函数产生污染的正弦信号。

⑵产生单位脉冲序列和单位阶跃序列按定义,单位脉冲序列为0 0 0 1, ( ) 0,n n n n n n单位阶跃序列为。

0 0 0 1, ( ) 0,n n u n n n n⑶矩形脉冲信号:在MATLAB 中用rectpuls 函数来表示,其调用形式为:y=rectpuls(t,width),用以产生一个幅值为1,宽度为width,相对于t=0 点左右对称的矩形波信号,该函数的横坐标范围由向量t 决定,是以t=0 为中心向左右各展开width/2 的范围,width 的默认值为1。

例:以t=2T(即t-2×T=0)为对称中心的矩形脉冲信号的MATLAB 源程序如下:(取T=1)t=0:0.001:4;T=1;ft=rectpuls(t-2*T,2*T);plot(t,ft);grid on; axis([0 4 –0.5 1.5]);⑷周期性矩形波(方波)信号在MATLAB 中用square 函数来表示,其调用形式为:y=square(t,DUTY),用以产生一个周期为2π、幅值为±1 的周期性方波信号,其中的DUTY 参数表示占空比,即在信号的一个周期中正值所占的百分比。

例如频率为30Hz 的周期性方波信号的MATLAB 参考程序如下:t=-0.0625:0.0001:0.0625;y=square(2*pi*30*t,75);plot(t,y);axis([-0.0625 0.0625 –1.5 1.5]);grid on ;2.MATLAB 中信号的运算乘法和加法:离散信号之间的乘法和加法,是指它的同序号的序列值逐项对应相乘和相加。

1.常见离散信号的产生 - 数字信号处理实验报告

1.常见离散信号的产生 - 数字信号处理实验报告

计算机与信息工程学院验证性实验报告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 ω=;④指数序列:(),n x n a =-∞<∞<+∞⑤复指数序列:用exp 函数实现()0a jb n K e +,并给出该复指数序列的实部、虚部、幅值和相位的图形。

(其中a=-0.2;b=0.5;K0=4;N=40.)参考流程图:四、实验报告要求1. 写出实验程序,绘出单位阶跃序列、单位阶跃序列、正弦序列、指数序列的图形以及绘出复指数序列的实部、虚部、幅值和相位的图形。

2. 序列信号的实现方法。

3. 在计算机上实现正弦序列0()sin(2)x n A fn πϕ=+。

五、实验程序及结果%编写一个长度为N 的单位冲激响应序列function [x,n]=impseq1(N)n1=-5; %设置的起始时间点n2=N+n1-1; %设置的终止时间点n=n1:n2;x=[zeros(1,-n1),1,zeros(1,n2)];stem(n,x,'r*')title('长度为N 的单位冲激响应序列')xlabel('n')在MATLAB Command Window 中输入[x,n]=impseq1(40),结果如下:%编写一个长度为N 的单位阶跃序列function [x,n]=stepseq1(N)n1=-10; %设置的起始时间点n2=N+n1-1; %设置的终止时间点n=n1:n2;x=[zeros(1,-n1),ones(1,n2+1)];plot(n,x,'*')hold onplot(n,x,'r')title('长度为N 的单位阶跃序列')xlabel('n')在MATLAB Command Window中输入[x,n]=stepseq1(40),结果如下:%编写一个长度为N角频率为w的正弦序列function [y,n]=wqq_sin(N,w)n1=-5; %设置的起始时间点n2=N+n1-1; %设置的终止时间点n=n1:.01:n2;y=sin(w*n);plot(n,y,'r')hold ontitle('长度为N角频率为w的正弦序列')xlabel('n')在MATLAB Command Window中输入[x,n]=wqq_sin(40,0.2*pi),结果如下:%编写一个长度为N幂底数为a的指数序列function [y,n]=wqq_zhishu(N,a)n1=-5; %设置的起始时间点n2=N+n1-1; %设置的终止时间点n=n1:.01:n2;y=a.^n;plot(n,y,'r')title('长度为N幂底数为a的指数序列')xlabel('n')在MATLAB Command Window中输入[y,n]=wqq_zhishu(10,0.5),结果如下:%编写一个长度为N的复指数序列function [y,n]=wqq_fuzhishu(a,b,K0,N)n1=-20; %设置的起始时间点n2=N+n1-1; %设置的终止时间点n=n1:n2;y=K0.*exp((a+b*j).*n);y1=real(y); %复指数的实部y2=imag(y); %复指数的虚部y3=abs(y); %复指数的幅值y4=angle(y); %复指数的相位subplot 221stem(n,y1,'*')title('复指数序列')ylabel('实部'); gridsubplot 222stem(n,y2,'*')title('复指数序列')ylabel('虚部');gridsubplot 223stem(n,y3,'*')ylabel('幅值');xlabel('n');gridsubplot 224stem(n,y4,'*')ylabel('相位');xlabel('n');grid在MATLAB Command Window中输入[y,n]=wqq_fuzhishu(-0.2,0.5,4,40),结果如下:六、实验小节经本次实验我了解了单位阶跃序列、单位阶跃序列、正弦序列、指数序列及复指数序列的实现方法,并通过绘出它们的图形掌握了各个函数的特点,此次实验编写的均是子程序,方便以后随时调用。

数字信号处理实验报告s实验一和实验二

数字信号处理实验报告s实验一和实验二

实验一离散时间信号的产生一、实验目的数字信号处理系统中的信号都是以离散时间形态存在的,所以对离散时间信号的研究是数字信号的基本所在。

而要研究离散时间信号,首先需要产生出各种离散时间信号。

使用MATLAB软件可以很方便地产生各种常见的离散时间信号,而且它还具有强大绘图功能,便于用户直观地处理输出结果。

通过本实验,学生将学习如何用MATLAB产生一些常见的离散时间信号,实现信号的卷积运算,并通过MATLAB中的绘图工具对产生的信号进行观察,加深对常用离散信号和信号卷积和运算的理解。

二、实验原理离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。

离散序列通常用x(n)来表示,自变量必须是整数。

常见的离散信号如下:(1)单位冲激序列δ(n)如果δ(n)在时间轴上延迟了k个单位,得到δ(n-k),即长度为N的单位冲激序列δ(n)可以通过下面的MATLAB命令获得。

n=-(N-1):N-1x=[zeros(1,N-1) 1 zeros(1,N-1)];stem(n,x)延迟K个采样点的长度为N的单位冲激序列δ(n-k)(k<N)可以用下面命令获得:n=0:N-1y=[zeros(1,M) 1 zeros(1,N-M-1)];stem(n,y)(2)单位阶跃序列u(n)如果u(n)在时间轴上延迟了k个单位,得到u(n-k),即长度为N的单位阶跃序列u(n)可以通过下面的MATLAB命令获得。

n=-(N-1):N-1x=[zeros(1,N-1) ones(1,N)];stem(n,x)延迟的单位阶跃序列可以使用类似于单位冲激序列的方法获得。

(3)矩形序列矩形序列有一个重要的参数,就是序列的宽度N。

矩形序列与u(n)之间的关系为矩形序列等= u(n)— u(n-N)。

因此,用MATLAB表示矩形序列可利用上面的单位阶跃序列组合而成。

(4)正弦序列x(n)这里,正弦序列的参数都是实数。

与连续的正弦信号不同,正弦序列的自变量n 必须为整数。

实验一常见离散信号的MATLAB产生及图形显示

实验一常见离散信号的MATLAB产生及图形显示

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.掌握在计算机中生成及绘制数字信号波形的方法。

3.掌握序列的相加、相乘、移位、反褶等基本运算及计算机实现与作用。

4.掌握线性卷积软件实现的方法。

5.掌握计算机的使用方法和常用系统软件及应用软件的使用。

6.通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。

二、实验原理1.序列的基本概念离散时间信号在数学上可用时间序列来表示,其中代表序列的第n 个数字,n 代表时间的序列,n 的取值范围为∞<<∞-n 的整数,n 取其它值)(n x 没有意义。

离散时间信号可以是由模拟信号通过采样得到,例如对)(t x a 模拟信号进行等间隔采样,采样间隔为T ,得到一个{})(nT x a 有序的数字序列就是离散时间信号,简称序列。

2.常用序列常用序列有:单位脉冲序列(单位采样))(n δ、单位阶跃序列)(n u 、矩形序列)(n R N 、实指数序列、复指数序列、正弦型序列等。

3.序列的基本运算序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。

4.序列的卷积运算∑∞∞-*=-=)()()()()(n h n x m n h m x n y上式的运算关系称为卷积运算,式中代表两个序列卷积运算。

两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。

其计算的过程包括以下4个步骤。

(1)反褶:先将)(n x 和)(n h 的变量n 换成m ,变成)(m x 和)(m h ,再将)(m h 以纵轴为对称轴反褶成)(m h -。

(2)移位:将)(m h -移位n ,得)(m n h -。

当n 为正数时,右移n 位;当n 为负数时,左移n 位。

(3)相乘:将)(m n h -和)(m x 的对应点值相乘。

(4)求和:将以上所有对应点的乘积累加起来,即得)(n y 。

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

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

实验1 常见离散信号产生和实现一、实验目的1、加深对常用离散信号的理解;2、熟悉使用MATLAB 在时域中产生一些基本的离散时间信号。

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

1. 基本信号序列 1) 单位抽样序列⎩⎨⎧=01)(n δ 00≠=n n 程序:n=-10:20; %生成一个从-10到20的序列u=[zeros(1,10) 1 zeros(1,20)]; %生成一个前10位为0,第十一位为1,后20位为0的矩阵stem(n,u); %画出n 为横轴,u 为纵轴的序列xlabel('Time indexn');ylabel('Amplitude'); %添上x y 轴的标签title('Unit Sample Sequence'); %图表的标签axis([-10 20 0 1.2]); %规定横轴,纵轴的显示范围图形:如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ 0≠=n k n程序:n=-10:20;u=[zeros(1,15) 1 zeros(1,15)];stem(n,u);xlabel('Time indexn');ylabel('Amplitude');title('Unit Sample Sequence');axis([-10 20 0 1.2]);图形:2) 单位阶跃序列⎩⎨⎧01)(n u 00<≥n n 程序:n=-10:20;x=[zeros(1,10),ones(1,21)];stem(n,x);图形:3) 实指数序列 R a n a n x n∈∀=,)(程序:a1=1.1;a2=0.9;a3=-1.1;a4=-0.9;n=[-5:15];x1=(a1.^n);x2=(a2.^n);x3=(a3.^n);x4=(a4.^n); subplot(2,2,1);stem(n,x1,'.k');title('a>1');axis([-5,15,-0.5,5]);subplot(2,2,2);stem(n,x2,'.k');title('0<a<1');axis([-5,15,-0.2,1.2]);subplot(2,2,3);stem(n,x3,'.k');title('a<-1');axis([-5,15,-6,4]);subplot(2,2,4);stem(n,x4,'.k');title('<-1a<0');axis([-5,15,-1,1.2]);图形:4) 复指数序列n e n x nj ∀=+)()(ωσ程序:n=0:10;lu=0.2;w0=pi;x=exp((lu+j*w0)*n);stem(n,x);xlabel('Time indexn');ylabel('Amplitude');title('Unit Sample Sequence'); axis tight图形:5)随机序列程序:x=rand(1,20);stem(x);xlabel('Time indexn');ylabel('Amplitude');title('Unit Sample Sequence');axis tight图形:基本周期波形1)方波程序:t=0:0.1*pi:6*pi; %定义t为从0开始,间距为0.1pi,截止为6pi的序列y=square(t); %由函数生成方波axis([0 7*pi -1.5 1.5]); %规定尺度距离plot(t,y); %画出横轴为t 纵轴为y 的方波函数xlabel(‘时间 t’); % 为x 轴添加标签ylabe l(‘幅度y’); % 为y 轴添加标签axis([0 20 0 2])图形:2) 正弦波)/2sin()(ϕπ+=Fs fn A n x程序:t=0:0.1:15;A=2;x=A*sin(0.7*pi*t+0.5);plot(t,x);xlabel('Time index t');ylabel('Amplitude x');axis([0 2*pi -3 3])title('正弦波')图形:3)锯齿波程序:Fs=10000;t=0:1/Fs:2;x=sawtooth(2*pi*40*t);plot(t,x);xlabel('Time index t');ylabel('Amplitude x');axis([0 0.2 -2 2])title('锯齿波')图形:2.基本非周期波形程序:t=0:1/1000:2;x=chirp(t,0.1,80);plot(t,x);xlabel('Time index t');ylabel('Amplitude x'); specgram(x,256,100,256,250); title('基本非周期波形')图形:3.sinc信号程序:t=linspace(-5,5);x=sinc(t);plot(t,x);xlabel('Time index t');ylabel('Amplitude x');title('sinc信号')图形:4.序列的操作1)信号加x(n)=x1(n)+x2(n)MATLAB实现:x=x1+x2;注意:x1和x2序列应该具有相同的长度,位置对应,才能相加。

数字信号处理实验报告1

数字信号处理实验报告1

数字信号处理课程实验报告实验步骤与内容:一、 通过以下两个例子,了解常用离散序列的产生 1、 单位抽样序列n1=-5;n2=5;n0=0; n=n1:n2; x=[n==n0]; stem(n,x,'filled'); axis([n1,n2,0,1.1*max(x)]); title('单位脉冲序列');xlabel('时间(n )');ylabel('幅度x (n )');0.0050.010.0150.020.0250.030.0350.04-2-1012x (t )单位脉冲序列时间(n )幅度x (n )2、 已知一时域周期性正弦信号的频率为1Hz ,振幅值幅度为1v 。

在窗口上显示2个周期的信号波形,并对该信号的一个周期进行32点采样获得离散信号。

试显示原连续信号和其采样获得的离散信号波形。

f=1;Um=1;nt=2; N=32;T=1/f; dt=T/N; n=0:nt*N-1; tn=n*dt;x=Um*sin(2*f*pi*tn); subplot(2,1,1);plot(tn,x);axis([0 nt*T 1.1*min(x) 1.1*max(x)]); ylabel('x(t)');subplot(2,1,2);stem(tn,x);axis([0 nt*T 1.1*min(x) 1.1*max(x)]); ylabel('x(n)');0.20.40.60.811.21.41.61.82-1-0.500.51x (t )0.20.40.60.811.21.41.61.82x (n )实验任务:编写程序实现1.)43)(()(<<-=n n n f δ2.00.0050.010.0150.020.0250.030.0350.04-2-112x(t)单位脉冲序列时间(n)幅度x(n)2.)55)(()(<<-=nnunfn1=-5;n2=5;n=n1:n2;subplot(1,1,1);stem(n,x0,'filled','k'); axis([n1,n2,1.1*min(x0), 1.1*max(x0)]); ylabel('u(n)');u (n )3.一个连续的周期性三角波信号频率为50Hz ,信号幅度在0- +2v 之间,在窗口上显示2个周期的信号波形,对信号的一个周期进行16点采样来获得离散信号。

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

实验1 常见离散信号产生和实现
一、实验目的:
1、加深对常用离散信号的理解;
2、掌握matlab 中一些基本函数的建立方法。

二、实验原理:
1.单位抽样序列

⎨⎧=01)(n δ 00≠=n n 在MATLAB 中可以利用zeros()函数实现。

;1)1();
,1(==x N zeros x
如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:

⎨⎧=-01)(k n δ k n k n ≠= 2.单位阶跃序列

⎨⎧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、编制程序产生几种常用信号,并绘出其图形
(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 函数,并绘图。

(1)、方波绘图程序如下:
%用square
t=-2*pi:0.001:2*pi;
x=square(t);
plot(t,x);
xlabel('t'),ylabel(' x=square(t)');
(2)、三角波绘图程序如下:
%用Sawtooth
t=-2*pi:0.001:2*pi;
y=sawtooth(t);
plot(t,y);
xlabel('t'),ylabel(' y=sawtooth(t);');
(3)sinc函数绘图程序如下:>> t=-pi:0.001:pi; x=sinc(t); >> plot(t,x);
>> xlabel('t'),ylabel('sinc(t);');。

相关文档
最新文档