数字信号处理实验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. 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);');。

相关文档
最新文档