1、1,几种常用序列,function x,n = impseq(n0,n1,n2)% 产生 x(n) = delta(n-n0); n1 n2) | (n1 n2)error(参数必须满足 n1 = n0 = n2)endn = n1:n2;%x = zeros(1,(n0-n1), 1, zeros(1,(n2-n0);x = (n-n0) = 0;,2,几种常用序列,(2)单位阶跃函数单位阶跃序列的产生函数如下:function x,n = stepseq(n0,n1,n2)% 产生 x(n) = u(n-n0); n1 n2) | (n1 n2)error(参数必须满足 n1 = 0;,3
2、,几种常用序列,例2.1 用MATLAB产生各种离散序列。解 MATLAB程序如下:n=-5:5;x1=impseq(0,-5,5);subplot(2,2,1);stem(n,x1);title(单位脉冲序列)xlabel(n);ylabel(x(n);n=0:10;x2=stepseq(0,0,10);subplot(2,2,2);stem(n,x2);title(单位阶跃序列);xlabel(n);ylabel(x(n);,4,几种常用序列,n=0:10;x3=stepseq(0,0,10)-stepseq(5,0,10);subplot(2,2,3);stem(n,x3);title(
3、矩形序列);xlabel(n);ylabel(x(n);n=0:20;x4=sin(0.3*n);subplot(2,2,4);stem(n,x4);title(正弦序列);xlabel(n);ylabel(x(n);,5,几种常用序列,6,序列的运算,8. 用MATLAB实现序列的运算(1)两个序列相加减function y,n = sigadd(x1,n1,x2,n2)% 实现 y(n) = x1(n)+x2(n)% y,n = sigadd(x1,n1,x2,n2)% y = 在包含n1 和 n2 的n点上求序列和 % x1 = 在 n1上的第一序列% x2 = 在 n2上的第二序列(n
4、2可与 n1不等),7,序列的运算,n = min(min(n1),min(n2):max(max(n1),max(n2); % y(n)的长度y1 = zeros(1,length(n); y2 = y1; % 初始化y1(find(n=min(n1) % 序列相加.,8,序列的运算,(2)两个序列相乘function y,n = sigmult(x1,n1,x2,n2)% 实现 y(n) = x1(n)*x2(n)% y,n = sigmult(x1,n1,x2,n2)% y = 在n区间上的乘积序列,n 包含 n1 和 n2% x1 = 在 n1上的第一序列% x2 = 在 n2上的第二
5、序列(n2可与 n1不等),9,序列的运算,n = min(min(n1),min(n2):max(max(n1),max(n2); % y(n)的长度y1 = zeros(1,length(n); y2 = y1; %初始化y1(find(n=min(n1) % 序列相乘,10,序列的运算,(3)序列移位运算function y,n = sigshift(x,m,n0)% 实现 y(n) = x(n-n0)% y,n = sigshift(x,m,n0)n = m+n0; y = x;,11,序列的运算,(4)序列折叠运算function y,n = sigfold(x,n)% 实现 y(n
6、) = x(-n)% y,n = sigfold(x,n)y = fliplr(x); n = -fliplr(n);,12,序列的运算,例2.3 用MATLAB实现两序列相乘和相加。解 MATLAB程序如下:clc;clear;x1=0,1,2,3,4,3,2,1,0;n1=-2:6; x2=2,2,0,0,0,-2,-2; n2=2:8; y1,n=sigmult(x1,n1,x2,n2);y2,n=sigadd(x1,n1,x2,n2);subplot(2,2,1);stem(n1,x1);title(序列x1)xlabel(n);ylabel(x1(n);,13,序列的运算,subpl
7、ot(2,2,2);stem(n2,x2);title(序列x2)xlabel(n);ylabel(x2(n);subplot(2,2,3);stem(n,y1);title(两序列相乘)xlabel(n);ylabel(y1(n);subplot(2,2,4);stem(n,y2);title(两序列相加)xlabel(n);ylabel(y2(n);,14,序列的运算,15,序列的运算,例2.4 用MATLAB实现序列的移位和折叠。解 MATLAB程序如下:x1=0,1,2,3,4,3,2,1,0;n1=-2:6; y1,n2=sigshift(x1,n1,2);y2,n3=sigfold
8、(x1,n1);subplot(3,1,1);stem(n1,x1);title(序列x1)xlabel(n);ylabel(x1(n);subplot(3,1,2);stem(n2,y1);title(序列移位)xlabel(n);ylabel(y1(n);subplot(3,1,3);stem(n3,y2);title(序列折叠)xlabel(n);ylabel(y2(n);,16,序列的运算,17,单位脉冲响应与卷积,3. 用MATLAB实现序列的卷积用MATLAB实现序列卷积的函数如下:function y,ny = conv_m(x,nx,h,nh)% 信号处理的改进卷积程序% y,
9、ny = conv_m(x,nx,h,nh)% y = 卷积结果% ny = y 的基底(support)% x =基底 nx 上的第一个信号% nx = x 的支架% h =基底 nh上的第二个信号% nh = h 的基底nyb = nx(1)+nh(1); nye = nx(length(x) + nh(length(h);ny = nyb:nye;y = conv(x,h);,18,单位脉冲响应与卷积,例2.9 用MATLAB实现例2.8。解 MATLAB程序如下:x=0 0.5 1 1.5 0;nx=0:4; h=1 1 1 0 0; nh=0:4;y,ny=conv_m(x,nx,h
10、,nh);subplot(2,2,1);stem(nx,x);title(序列x)xlabel(n);ylabel(x(n);subplot(2,2,2);stem(nh,h);title(序列h)xlabel(n);ylabel(h(n);subplot(2,2,3);stem(ny,y);title(两序列卷积)xlabel(n);ylabel(y(n);,19,单位脉冲响应与卷积,20,线性常系数差分方程,MATLAB信号处理工具箱中提供的filter函数,可以实现线性常系数差分方程的递推解法,调用格式如下:y=filter(b,a,x,xi);其中x是输入信号向量,b和a是系统差分方程
11、的系数矩阵,即b=b0,b1,bM和a=a0,a1,aN,a0=1。xi是和初始条件有关的向量,用函数xi=filtic(b,a,ys,xs)得到,其中ys和xs是初始条件向量,即ys=y(-1),y(-2),.,xs=x(-1),x(-2),.。如果是因果序列,则xs=0。y=filter(b,a,x)求零状态响应,21,线性常系数差分方程,例2.12 用MATLAB计算差分方程当输入序列为x(n)=(n) 时的输出结果y(n),0n30 。,22,线性常系数差分方程,解 MATLAB程序如下:N=31;b=0.8 -0.44 0.36 0.22;a=1 0.7 -0.45 -0.6;x=1
12、 zeros(1,N-1);k=0:1:N-1;y=filter(b,a,x); stem(k,y)xlabel(n);ylabel(输出y(n),23,线性常系数差分方程,24,线性常系数差分方程,例2.13 用MATLAB计算差分方程当输入为x(n)=(n),初始条件y(-1)=1 ,求输出结果y(n),0n30。,25,线性常系数差分方程,解 MATLAB程序如下:N=31;a=1 -0.8;ys=1;b=1;x=1 zeros(1,N-1); xi=filtic(b,a,ys);k=0:1:N-1;y=filter(b,a,x,xi); stem(k,y)xlabel(n);ylabe
13、l(输出y(n),26,线性常系数差分方程,27,第2章 时域离散信号与系统的频域分析,2. 1 序列的傅立叶变换FT 2. 2 周期序列的离散傅立叶级数 2. 3 序列的Z变换,28,2.1 序列的傅里叶变换(FT),2.1.1 序列傅里叶变换的定义,序列x(n)的傅立叶变换为:,记为:,FT存在的充分条件是:,反变换为:,29,2.1.1 序列傅里叶变换的定义,例2.2.1 求矩形序列 的傅立叶变换解 其幅度谱和相位谱分别为,30,2.1.1 序列傅里叶变换的定义,31,离散时间信号的傅立叶变换,利用MATLAB可以实现离散时间信号的傅立叶变换,并绘出幅频特性和相频特性曲线,其MATLAB
14、函数如下function X,magX,angX = FourierTran(x,n,dot)% 计算离散序列的付立叶变换% X,magX,angX = FourierTran(x,n)% 或X,magX,angX = FourierTran(x,n,dot)if nargin 3dot=600;endk=-dot:dot;w=(pi/dot)*k;,32,离散时间信号的傅立叶变换,X=x*(exp(-j).(n*w);magX=abs(X);argX=angle(X);subplot(211);plot(w/pi,magX);xlabel(频率(单位pi);ylabel(|X(e jomeg
15、a)|);title(幅频特性);subplot(212);plot(w/pi,argX/pi);xlabel(频率(单位pi);ylabel(弧度/pi);title(相频特性);,33,离散时间信号的傅立叶变换,例2.15 用MATLAB实现例2.14序列的傅立叶变换解 MATLAB程序如下x=1,1,1,1,1;n=0:4; FourierTran(x,n);,34,离散时间信号的傅立叶变换,35,2.1.2 离散时间信号的傅立叶变换性质,36,2.1.2 离散时间信号的傅立叶变换性质,2. 序列的傅立叶变换的线性如果序列x(n)和y(n)的傅立叶变换分别为X(e j)和y(e j) ,
16、即则对任何常数a和b有,37,2.1.2 离散时间信号的傅立叶变换性质,3. 序列的移位如果:则:即时间的移位,导致频域相移,38,2.1.2 离散时间信号的傅立叶变换性质,4. 频域的相移如果:则:即频域的相移相当于对序列进行了调制,39,2.1.2 离散时间信号的傅立叶变换性质,5. 序列的反褶如果则,40,2.1.2 离散时间信号的傅立叶变换性质,6. 序列乘以n如果则,41,2.1.2 离散时间信号的傅立叶变换性质,7. 序列的共轭如果则,42,2.1.2 离散时间信号的傅立叶变换性质,8. 序列的卷积如果则,该定理说明:在求线性时不变系统的输出信号时,可以在时域用卷积来计算,也可以在
17、频域先求输出的FT,再作逆变换。,43,2.1.2 离散时间信号的傅立叶变换性质,9. 序列相乘(频域卷积)如果则,44,2.1.3 序列傅立叶变换的对称性,一. 概念:,(1) 共轭对称序列:,对于实序列来说,这一条件就变成, 即 为偶对称序列。,共轭对称序列,实部是偶函数,虚部是奇函数,45,原因:,即,共轭对称序列的实部是偶函数,虚部是奇函数。,46,(2)共轭反对称序列:,对于实序列来说,这一条件就变成:即 为奇对称序列。,共轭反对称序列,实部是奇函数,虚部是偶函数,2.1.3 序列傅立叶变换的对称性,47,即,原因:,共轭反对称序列的实部是奇函数,虚部是偶函数。,48,(3)任意序列
18、x(n)可分解为共轭对称分量和共轭反对称分量之和,即:,即,2.1.3 序列傅立叶变换的对称性,49,(4)对于频域,同样有,2.1.3 序列傅立叶变换的对称性,50,二. 傅立叶变换的对称性,若,则,2.1.3 序列傅立叶变换的对称性,51,二. 傅立叶变换的对称性,若,则,2.1.3 序列傅立叶变换的对称性,52,如果 h(n)是实序列,则其傅立叶变换 满足 共轭对称性:,即:,实序列的傅立叶变换的实部是 的偶函数, 而虚部是 的奇函数。,2.1.3 序列傅立叶变换的对称性,53,如果表示成极坐标形式,则,幅度是 的偶函数,相角是 的奇函数,2.1.3 序列傅立叶变换的对称性,54,若:
19、为实因果序列,则:,2.1.3 序列傅立叶变换的对称性,55,2.1.3 序列傅立叶变换的对称性,56,2.1.3 序列傅立叶变换的对称性,57,序列傅立叶变换的对称性,利用MATLAB可以将实信号分解为偶和奇两部分,其函数如下function xe, xo, m = evenodd(x,n)% 实信号分解为偶和奇两部分% xe, xo, m = evenodd(x,n)if any(imag(x) = 0)error(x 不是实序列)end,58,序列傅立叶变换的对称性,m = -fliplr(n);m1 = min(m,n); m2 = max(m,n); m = m1:m2;nm = n
20、(1)-m(1); n1 = 1:length(n);x1 = zeros(1,length(m);x1(n1+nm) = x; x = x1;xe = 0.5*(x + fliplr(x);xo = 0.5*(x - fliplr(x);,59,序列傅立叶变换的对称性,例2.16 用MATLAB将实信号分解为偶和奇两部分解 MATLAB程序如下n=0:10;x=stepseq(0,0,10)-stepseq(10,0,10);xe,xo,m=evenodd(x,n);subplot(2,2,1);stem(n,x);title(矩形脉冲)xlabel(n);ylabel(x(n);subpl
21、ot(2,2,2);stem(m,xe);title(偶部)xlabel(n);ylabel(xe(n);subplot(2,2,4);stem(m,xo);title(奇部)xlabel(n);ylabel(xo(n);,60,序列傅立叶变换的对称性,61,2.3.4 离散时间系统的频率响应,设输入序列是频率为 的复指数序列,即线性时不变系统的单位脉冲响应为h(n),利用卷积公式,得到输出为 其中 称为系统的频率响应。,分别称为系统的幅度响应和相位响应。,62,2.3.4 离散时间系统的频率响应,有了系统频率响应的概念,现在,对线性时不变系统,可以建立任意输入情况下,输入和输出两者的傅立叶变换间的关系。对卷积公式y(n)=x(n)h(n)两端取傅立叶变换,并利用傅立叶变换的性质得到对于线性时不变系统,其输出序列的傅立叶变换等于输入序列的傅立叶变换与系统频率响应的乘积。,63,2.3.4 离散时间系统的频率响应,例2.17 求具有下列单位脉冲响应的系统频率响应。解幅度响应相位响应,