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

实验一 常见离散信号的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点采样获得离散信号并显示该连续信号和离散信号的波形。
一、基本离散信号的MATLAB产生和图形实现

n=0:n-1;a=0.6;x3=a.^n; %实指数序列
w0=pi/3; ang=pi/15; x4=sin(n*w0+ang);%正弦序列
x5=exp((a+j*w0)*n); %复指数序列
figure(1); %建立一个绘制框
subplot(3,1,1);stem(x1); %绘制单位冲激序列
ylabel('x_1(n)=\delta(n)'); %在Y轴上描述
subplot(3,1,2);stem(x2); %绘制单位阶跃序列
ylabel('x_2(n)=u(n)');
subplot(3,1,3);stem(x3); %绘制实指数序列
ylabel('x_3(n)=0.6^n');xlabel('n');
5、变量名可以由字母、数字和下划线组成。但必须以字母开头。变量名区分大小写。字符长度不超过63。
6、可以编写以.m为扩展名的文件:有两种形式,一是命令叠加;二是function定义函数形式,不需要end结尾。
3、直接表达法描述序列:
n=50; %序列长度
x1=[1,zeros(1,n-1)]; %单位冲激序列
figure(2);
subplot(2,1,1);stem(x4); %绘制正弦序列
ylabel('x_4(n)=sin(\pin/3+\pi/15)');
subplot(2,1,2);stem(abs(x5)); %绘制复指数序列
ylabel('x_5(n)=e^(^0^.^6^+^j^*^\pi^/^3^)^*^n');xlabel('n');%结果1-1和1-2
常见离散信号的MATLAB产生和图形显示实验报告

常见离散信号的MATLAB产⽣和图形显⽰实验报告实验⼀常见离散信号的MATLAB 产⽣和图形显⽰⼀实验⽬的加深对常⽤离散信号的理解⼆实验原理及实验内容1.单位抽样序列=01)(n δ 00≠=n nMATLAB 程序:%单位抽样序列t=-20:20; %产⽣⼀个-20到20的矩阵 x=zeros(1,41); %产⽣⼀个全为1的矩阵 x(21)=1; %x 的第21个元素为1 stem(t,x); %绘制x 的序列图 grid on; %画⽹格线 title('单位抽样序列') %加标题绘图:2.单位阶越序列01)(n u 00<≥n nMATLAB 程序: %单位阶越序列x=[zeros(1,20),ones(1,21)]; %产⽣⼀个前20个元素为0,后21个元素为1的数组 stem(t,x); %绘制x 的序列图 grid on; %画⽹格线title('单位阶越序列') %加标题绘图:3.正弦序列)/2sin()(?π+=Fs fn A n xMATLAB 程序: %正弦序列n=0:100; %产⽣⼀个0到100的矩阵 fai=pi/4; %相位赋值 A=2; %振幅赋值 f=1/50; %频率赋值Fs=1; %采样频率赋值 x=A*sin(2*pi*f*n/Fs+fai) ; %⽣成正弦序列x stem(n,x); %绘制x 的序列图 axis([0 50 -3 3]); %限定坐标轴范围 title('正弦序列'); %加标题绘图:4.复正弦序列jn)(=enx?MATLAB程序:%复正弦序列n=0:20;%产⽣⼀个0到20的矩阵x=exp(j*pi/20*n);%⽣成复正弦序列subplot(1,2,1),stem(n,real(x));%绘制x的实数部分title('复正弦序列实部');%加标题grid on; %画⽹格线subplot(1,2,2),stem(n,imag(x),'filled');%绘制x的虚部部分title('复正弦序列虚部');%加标题grid on%画⽹格线5.指数序列n)x=(naMATLAB程序:%指数序列n=0:10;%产⽣⼀个0到10的矩阵x=(0.6).^n;%⽣成⼀个底数为0.6的指数序列stem(n,x);%绘制x的序列图grid on%画⽹格线三.思考题1讨论复指数序列的性质(1)正交性,复指数序列⽤欧拉公式展开可得:e^jωn=cosωn+jsinωn其可表⽰⼀个余弦信号与⼀个正弦信号的叠加,这两个信号呈正交关系。
MATLAB离散信号的产生和频谱分析实验报告

MATLAB离散信号的产⽣和频谱分析实验报告实验⼀离散信号的产⽣和频谱分析⼀、实验⽬的仿真掌握采样定理。
学会⽤FFT 进⾏数字谱分析。
掌握FFT 进⾏数字谱分析的计算机编程实现⽅法。
培养学⽣综合分析、解决问题的能⼒,加深对课堂内容的理解。
⼆、实验要求掌握采样定理和数字谱分析⽅法;编制FFT 程序;完成正弦信号、线性调频信号等模拟⽔声信号的数字谱分析;三、实验内容单频脉冲(CWP )为)2e xp()()(0t f j T t rec t t s π=。
式中,)(Ttrect 是矩形包络,T 是脉冲持续时间,0f 是中⼼频率。
矩形包络线性调频脉冲信号(LFM )为)]21(2exp[)()(20Mt t f j Ttrect t s +=π。
式中,M 是线性调频指数。
瞬时频率Mt f +0是时间的线性函数,频率调制宽度为MT B =。
设参数为kHz f 200=,ms T 50=,kHz B 10=,采样频率kHz f s 100=。
1.编程产⽣单频脉冲、矩形包络线性调频脉冲。
2.编程实现这些信号的谱分析。
3.编程实现快速傅⽴叶变换的逆变换。
四、实验原理1、采样定理所谓抽样,就是对连续信号隔⼀段时间T 抽取⼀个瞬时幅度值。
在进⾏模拟/数字信号的转换过程中,当采样频率fs ⼤于信号中最⾼频率f 的2倍时(fs>=2f),采样之后的数字信号完整地保留了原始信号中的信息,⼀般实际应⽤中保证采样频率为信号最⾼频率的5~10倍;采样定理⼜称奈奎斯特定理。
2、离散傅⾥叶变换(FFT )长度为N 的序列()x n 的离散傅⽴叶变换()X k 为:10()(),0,....,1N nkN n X k x n W k N -===-∑N 点的DFT 可以分解为两个N/2点的DFT ,每个N/2点的DFT ⼜可以分解为两个N/4点的DFT 。
依此类推,当N 为2的整数次幂时(2MN =),由于每分解⼀次降低⼀阶幂次,所以通过M 次的分解,最后全部成为⼀系列2点DFT 运算。
常见离散信号的MATLAB产生和图形显示

实验一 常见离散信号的MATLAB 产生和图形显示一、 实验目的加深对常见离散信号的理解二、实验内容及步骤编制程序产生以下信号,并绘出其图形。
1)产生64点的单位抽样序列)(n δN=64x=[1,zeros(1,N-1)]stem(x)2)产生64点并移位20位的单位抽样序列)20(-n δN=64x=[0,zeros(1,N-1)]x(20)=1stem(x)3)任意序列)5(7.0)4(9.2)3(6.5)2(8.1)1(4.3)(0.8)(-+-+-+-+-+=n n n n n n n f δδδδδδ4)产生幅度A=3,频率f=100,初始相位ϕ=1.2,点数为32 点的正弦序列。
n=0:31;x=3*exp(j*314*n)figure(1)stem(n,x)5)产生幅度A=3,角频率ω=314,点数为32 点的复正弦序列。
n=0:31A=3;w=314;x=A*exp(w*j*n)stem(x)6)产生幅度A=3,a=0.7,点数为32 点的实指数序列。
n=0:31;A=3;a=0.7;x=A*a.^nstem(x)实验二 离散系统的时域分析一、 实验目的(1)熟悉并掌握离散系统的差分方程表示方法(2)加深对冲激响应和卷积方法的理解二、 实验内容与要求编制程序求解下列两个系统的单位冲激响应和阶跃响应,并绘出其图形。
要求分别用 filter 、conv 、impz 三种函数完成。
y [n ]+ 0.75y [n −1]+ 0.125y [n − 2] = x [n ]− x [n −1]y [n ] = 0.25{x [n −1]+ x [n − 2]+ x [n −3]+ x [n − 4]}给出理论计算结果和程序计算结果并讨论。
三、实验原理系统响应为如下的卷积计算公式:][][][*][][m n h m x n h n x n y m -==∑∞-∞=h[n]是有限长度的(n:0,M),称系统为FIR系统;反之,称系统为IIR系统。
基本离散信号的MATLAB产生和图形显示

实验报告实验题目:基本离散信号的MATLAB产生和图形显示姓名:杨全任伟院别:电气工程学院专业:电子信息工程班级:电子一班指导教师:许春和时间: 2014 年10 月 31 日电气工程学院一、实验目的:(1)熟悉MATLAB应用环境,常用窗口的功能和使用方法。
(2)加深对常用离散时间信号的理解。
(3)掌握简单的绘图命令。
二、实验仪器:PC机一台MATLAB软件三、实验用MATLAB函数介绍:(1)数字信号处理中常用到的绘图指令(具体调用格式参看help) close all; %关闭所有图形窗口clear; %清除工作空间中的所有变量clc; %清除命令窗口显示figure( ); %新建一个图形窗口并给定序号stem( ); %函数序列柄状图形绘制plot( ); % 线性坐标图形绘制subplot( ); %将图形窗口分成若干个区域grid on(off); %给图形加网格线hold on(off); %当前图形保护模式linde([xmin,xmax],[0,0])%绘制X轴线axis([xmin,xmax,ymin,ymax]) %设置X\Y坐标轴刻度title (‘‘); % 给图形加标题ylabel (‘‘); %给图形加y坐标说明(2)离散时间信号产生可能涉及的函数zeros(); ones(); exp(); sin();length(); real();imag();四、实验内容:(1)产生冲击%单位冲击序列的产生n=0:6;%定义序列长度xn=[zeros(1,1),1,zeros(1,5)];%产生序列stem(n,xn,'k.');%绘制图形grid on; %图形添加网格axis([-2,2,0,1]);%定义X,Y轴xlabel ('时间n'); %X轴注释ylabel('幅度');%Y轴注释title('单位冲击序列\delta(n-1)');%添加标题(2)绘出单位阶跃序列、矩形序列序列的图形长度任意设定并给出程序。
离散信号及其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 实现下列序列:①()n n x 8.0= 150≤≤n ②()()n j e n x 32.0+= 150≤≤n③()()()ππππ1.025.0sin 22.0125.0cos 3+++=n n n x 150≤≤n (3) 编写函数如()2,1,0n n n stepshift 实现()n u 的移位序列()0n n u -,21n n n ≤≤,绘出该函数的图形。
设n1=0,n2=9,n0=2(4) ()]5,3,1,1[-=n x , 起点n=0, 产生并绘出下列序列的样本:()()()()n x n x n x n x 21221---+=三、实验图形记录(1)序列的加、减、乘、除和乘方运算输入序列,和输出序列图形分别如下图所示nAnBnCnD00.511.522.53nE序列的运算00.511.522.53nFnG(2)序列的表示051015nx 1序列的表示051015nx 2051015nx 3(3)序列的移位0123456789nx阶跃序列nx 1阶跃序列的移位(4)序列相加-2-101234nx 1序列相加四、实验小结通过本次实验学会了编写M文件实现离散信号的运算图像绘制等;更加熟练地掌握了序列的几个基本运算:加法、乘法、移位、翻转和尺度变换;知道了模拟信号经过等间隔采样可以得到时域离散信号,如()nx32.0+=、nx8.0n=、()()n je()()()ππππ1.0++=n3+x等模拟信号经过16点等间隔采nnsincos252.02.0125.0样可得到上述所示16点离散序列;熟悉了stepshift的编写来实现序列的移位;熟悉了MATLAB的主要操作命令,同时掌握了离散信号的表示方法及基本运算和绘制命令。
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),结果如下:六、实验小节经本次实验我了解了单位阶跃序列、单位阶跃序列、正弦序列、指数序列及复指数序列的实现方法,并通过绘出它们的图形掌握了各个函数的特点,此次实验编写的均是子程序,方便以后随时调用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 常见离散信号的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 alln1=-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 u00<≥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点采样获得离散信号并显示该连续信号和离散信号的波形。
参考程序:clear f=1; A=1;nt=2;N=32;T=1/f;%输入信号频率,振幅和显示周期数 dt=T/N;%采样时间间隔n=0:nt*N-1;%建立离信号的时间序列tn=n*dt;%确定时间序列阳电在时间轴上的位置。
x=A*sin(2*pi*f*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)');④ 复指数序列jwn e n x =)(例1-4;6.01.0-==ωσ、,求jwne n x =)(n1=30; a=-0.1; w=0.6; n=0:n1;x=exp((a+j*w)*n);stem(n,x);xlabel('n');ylabel('x(n)');title('复指数序列');⑤指数序列nax n)(u)(n=例1-5:n a(,其中a为实数)nx=clearn1=-10;n2=10;a1=0.5;a2=2;na1=n1:0;x1=a1.^na1;na2=0:n2;x2=a2.^na2;subplot(2,2,1),plot(na1,x1);title('实指数信号(a<1)');subplot(2,2,3),stem(na1,x1);title('实指数序列(a<1)');subplot(2,2,2),plot(na2,x2);title('实指数信号(a>1)');subplot(2,2,4),stem(na2,x2);title('实指数序列(a>1)');(二)序列的基本运算对离散时间序列实行基本运算可得到新的序列,这些基本运算主要包括加、减、乘、除、移位、反折等。
两个序列的加减乘除是对应离散样点值的加减乘除,因此,可通过MATLAB 的点乘和点除、序列移位和反折来实现,与连续时间信号处理方法基本一样。
a)序列的相加与相乘设两离散序列x1(n),x2(n),序列相加为x(n)=x1(n)+x2(n),相乘为x(n)=x1(n).x2(n),实际上是对应的序列值相加或相乘。
在MATLAB 中可以用运算符“+”实现,但相加的两个序列必须有相同的长度,且应该保证它们是相同的采样位置相加或相乘,因此在计算时,必须格外注意序列下标的计算。
例1-6:求)100()4()2()(<<-+-=n n n n x δδclear alln1=0;n2=10;n01=2;n02=4;%赋初值 n=n1:n2; x1=[(n-n01)==0]; x2=[(n-n02)==0]; x3=x1+x2;subplot(3,1,1);stem(n,x1); title('x1');subplot(3,1,2);stem(n,x2); title('x2');subplot(3,1,3);stem(n,x3);title('x3'); 例1-7:)85()4()(2)64()2()(1<<--=<<-+=n n u n x n n u n x 求x1(n)+x2(n )clear all n1=-4:6;n01=-2;x1=[(n1-n01)>=0];%建立x1信号n2=-5:8;n02=4;x2=[(n2-n02)>=0];%建立x2信号n=min([n1,n2]):max([n1,n2]);%为x信号建立时间序列nN=length(n);%求出时间序列n的点数Ny1=zeros(1,N);y2=zeros(1,N);%新建一维N列y1、y2全零数组y1(find((n>=min(n1))&(n<=max(n1))))=x1;%对y1赋值y2(find((n>=min(n2))&(n<=max(n2))))=x2;%对y2赋值x=y1+y2;stem(n,x);b)序列的移位将一个离散信号序列进行移位,形成新的序列:x1(n)=x(n-m) m>0时,原序列x(n)向右移m位,m<0,原序列x(n)向左移m位。
例1-8:序列x1 = [1 1 1 0 1],求x1(n),x1(n-1),x1(n+1)%shiftclear allx1 = [1 1 1 0 1];n1 = -3:1;%设定范围n = n1 + 1;%范围右移m = n1 -1;%左移x = x1;subplot(3,1,1);stem(n,x);%右移ylabel('x1(n-1)');subplot(3,1,2);stem(n1,x);%原序列ylabel('x1(n)');subplot(3,1,3);stem(m,x);%左移ylabel('x1(n+1)')c)序列的反褶x(-n)Matlab提供了fliplr函数,可以实现序列的反褶。
例1-9::将序列x1 ={1 2 1 0 3},-3<=n<=1,求x1(-n) %fanzheclearx1 = [1 2 1 0 3];n1 = [-3:1:1];subplot(1,2,1);stem(n1,x1);ylabel('x(n)');xlabel('n');n = -fliplr(n1);x = fliplr(x1);subplot(1,2,2);stem(n,x); ylabel('x(-n)'); xlabel('n');d)序列的尺度变换原序列x(n),y(n)=x(mn)就是对原序列每隔m 点取样形成的,相当于将时间轴压缩或扩展了m 倍。
例1-10:)2/(),2(),2sin()(n x n x n n x 求π=clear alln = (0:20)/20;%归一化 x =sin(2*pi*n);%x(n) x1 =sin(2*pi*n*2);%x(2n) x2 =sin(2*pi*n/2);%x(3n) subplot(3,1,1); stem(n,x); ylabel('x(n)'); subplot(3,1,2); stem(n,x1); ylabel('x(2n)'); subplot(3,1,3); stem(n,x2); ylabel('x(n/2)');三、实验内容及步骤:(1)复习常用离散时间信号的有关内容,阅读并输入实验原理中介绍的例题程序,理解其语句含义。
(2)编写程序,产生下列离散序列,并绘出其图形. a))55(),4(2)3()(<<--++=n n n n x δδ; b))55(),2()3()(<<-++-=n n u n u n xc))(1-2)(nn u n x )(=(3).已知两序列如下:x[n]={-4 5 1 -2 -3 0 2}, -4<n<4;y[n]={6 -3 -1 0 8 7 -2}; -2<n<6; 编程计算两序列的和、积,以及y (n-2),y(-n)。
四、实验用MATLAB 函数介绍1.涉及到的MATLAB 子函数其中在信号的产生和表示的实验过程中常用到的MATLAB 指令(函数名)有:stem(),zeros(),ones(),length(),linspace(),axis(),square(),rand(),title(),xlable(),ylable(),s ubplot()等,具体调用格式参看“help ”或者查阅相关书籍。
另外,在具体的实验过程中也可以根据实际需要自己定义函数例如:impseq.m,stepseq.m,sigadd.m 等。
举例:function [x,n]=impseq(n0,ns,nf) n=[ns:nf];x=[(n-n0)==0];在序列的基本运算的实验过程中常用到的MATLAB 指令(函数名)有:find ,fliplr 等,调用格式:find(n>=min(n1)&(n<=max(n1)):在符合关系运算条件的范围内寻找非零元素的索引号。