MATLAB基础和应用教程人民邮电出版社蔡旭辉a.ppt





《MATLAB基础和应用教程人民邮电出版社蔡旭辉a.ppt》由会员分享,可在线阅读,更多相关《MATLAB基础和应用教程人民邮电出版社蔡旭辉a.ppt(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、27.1 时域离散信号的产生及时域处理时域离散信号的产生及时域处理 时域离散信号用时域离散信号用x(n)表示,时间变量表示,时间变量n(表示采样位置)(表示采样位置)只能取整数。因此,只能取整数。因此,x(n)是一个离散序列,以后简称序列。是一个离散序列,以后简称序列。用一个向量用一个向量x不足以表示序列值不足以表示序列值x(n)。必须再用另一个等。必须再用另一个等长的定位时间变量长的定位时间变量n。x和和n同时使用才能完整地表示一个同时使用才能完整地表示一个序列序列,由于,由于n序列是按整数递增的,可简单地用其初值序列是按整数递增的,可简单地用其初值ns决定,因为它的终值决定,因为它的终值n
2、f取决于取决于ns 和和x的长度的长度length(x),故,故可写成:可写成: n = ns:nf 或或n = ns: ns length(x) 13 单位脉冲序列单位脉冲序列(n-n0)的生成函数的生成函数impseq function x,n=impseq(n0,ns,nf) n=ns:nf;x=(n-n0)=0; 单位阶跃序列单位阶跃序列u(n-n0)的生成函数的生成函数stepseq function x,n=stepseq(n0,ns,nf) n=ns:nf; x=(n-n0)=0; P173表表7.14例例7.1 序列的相加和相乘序列的相加和相乘 给出两个序列给出两个序列x1(n
3、)和和x2(n)。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。 解:编程的思路是把序列长度延拓到覆盖解:编程的思路是把序列长度延拓到覆盖n1和和n2的的范围,这样才能把两序列的时间变量对应起来,范围,这样才能把两序列的时间变量对应起来,然后进行对应元素的运算。然后进行对应元素的运算。 5 %第七章例第七章例7.1q701离散信号序列的相加和相乘离散信号序列的相加和相乘 x1=0,1,2,3,4,3,2,1,0;ns1=-2;% 给定给定x1及及ns1 x2=2,2
4、,0,0,0,-2,-2; ns2=2;% 给定给定x2及及ns2 nf1=ns1+length(x1)-1; nf2=ns2+length(x2)-1; ny= min(ns1,ns2):max(nf1,nf2) % y(n)的时间变量的时间变量 xa1 = zeros(1,length(ny); xa2 = xa1; % 延拓序列初始化延拓序列初始化 xa1(find(ny=ns1)&(ny=ns2)&(ny=0; % 产生单位阶跃序列(产生单位阶跃序列(u(n-n1)) x1=(n-n1)=0-(n-n1-N)=0; % 用阶跃序列差产生矩形序列用阶跃序列差产生矩形序列 x2=(n=n1
5、)&(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);%定坐标范围定坐标范围9 subplot(2,2,2);stem(n,real
6、(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);%定坐标范围定坐标范围 结果结果 输入序列起点输入序列起点:n0=-6 输入序列长度输入序列长度:N=15 输入位移输入位移:n1=3101
7、1例例7.3 序列的移位和周期延拓序列的移位和周期延拓已知已知,利用,利用MATLAB生成并图示生成并图示 表示表示x(n)以以8为周为周期的延拓)和期的延拓)和 ,其中,其中N=24。解:周期延拓解:周期延拓方法方法1:利用矩阵乘法和冒号运算:利用矩阵乘法和冒号运算 x=1 2 3 4;y=x*ones(1,3);y1=(y(:) P176方法方法2:采用求余函数:采用求余函数mod y = x(mod(n, M)+1)可实现对可实现对x(n) 以以M为周期的周期延拓。为周期的周期延拓。加加1是因为是因为MATLAB向量下标只能从向量下标只能从1开始。开始。 )(8 .0)(8nRnxn8N
8、8( ),(),( )( ), ( ( )x nx nmx nRnx n)()(N8nRmnx12 %第七章例第七章例7.3程序程序q703 序列序列x(n)的移位与周期延拓的移位与周期延拓 %N: 观察窗口长度观察窗口长度%M: 序列序列x(n)长度长度%m: 移位样点数移位样点数 clear;close all N=24;M=8;m=input(输入移位值:输入移位值:m=); if (m=N-M+1)% 检验输入参数检验输入参数m是否合理是否合理 error(输入数据不在规定范围内!输入数据不在规定范围内!); end n=0:N-1; x1=(0.8).n; x2=(n=0)&(n=0
9、; % 产生输入信号产生输入信号x3(n) y3=filter(B,A,x3); % 对对x3(n)的响应的响应 x4=(n=0)&(n=0)&(n=nsx)&(n=nfx)=1)=x; %在对应的在对应的n处把处把xe赋值赋值xsubplot(2,1,1),stem(n,xe,.),line(min(n(1),0),nf,0,0) %绘图绘图subplot(2,1,2),stem(n,y,.),line(min(n(1),0),nf,0,0)36由程序算出由程序算出nsy =-1留数:留数:r = -57.7581 204.7581极点:极点:p = 0.7791 0.3209直接项:直接项
10、:k = -150 -30代入代入得得如果不需要求出表达式,可用如果不需要求出表达式,可用filter函数求解。函数求解。111(1)(2)( )(1)(2)1(1)1(2)rrY zzkkzpzpz 11( )57.7581 0.7791(1)204.7581 0.3209(1)150 (n+1)-30 (n)nny nu nu n 37x(n)y(n)38例例7.9 离散时间傅里叶变换离散时间傅里叶变换 取一个周期的正弦信号,作取一个周期的正弦信号,作8点采样,求它的连续频谱。然点采样,求它的连续频谱。然后对该信号进行后对该信号进行N个周期延拓,再求它的连续频谱。把个周期延拓,再求它的连续
11、频谱。把N无无限增大,比较分析其结果。限增大,比较分析其结果。 解:离散时间傅里叶变换的定义:解:离散时间傅里叶变换的定义: MATLAB实现:设置一系列较密频率实现:设置一系列较密频率wi,求出一系列,求出一系列X(wi ) X = x*exp(-j*n*w)。 先把离散时间傅立叶变换写成一个子程序先把离散时间傅立叶变换写成一个子程序dtft.m,有了子程,有了子程序,本例就没有什么难度了。序,本例就没有什么难度了。1 12 111 22 2212121(),(),()( ), ()KKNNK NjnjnjnjnjnjnKNjnjnjneeeeeeXXXx nx neee ( )( )j n
12、nXx n e 39计算离散时间傅里叶变换的函数文件计算离散时间傅里叶变换的函数文件dtft.m: function X=dtft(x,w) % 计算离散时间傅立叶变换计算离散时间傅立叶变换 % X 为在为在w频率点上的频率点上的DTFT数组数组 % x 为输入离散序列,时间数组为增序整数,可用下标表示为输入离散序列,时间数组为增序整数,可用下标表示 % w 为频率数组,由于为频率数组,由于exp(-j*n *w)以以2为周期,为周期, % 所以其范围通常选为所以其范围通常选为-, 或或0, 2 n=1:length(x); X=x*exp(-j*n*w);*注意:要恢复原来量纲,应把无量纲时
13、间注意:要恢复原来量纲,应把无量纲时间n乘以采样周期乘以采样周期Ts,把无量纲频率把无量纲频率w(数字频率)乘以采样频率(数字频率)乘以采样频率Fs。40 %第七章例第七章例7.9程序程序q709 % 离散时间傅立叶变换离散时间傅立叶变换 clear all; close all; disp(八点时间信号的离散时间傅立叶变换八点时间信号的离散时间傅立叶变换) x0=sin(2*pi* 1:8/8) *5;% x0是是8点行向量点行向量 dt=2*pi/8; %采样周期采样周期 w=linspace(-2*pi,2*pi,1000)/dt; % w是是1000点行向量点行向量 X0 = dtft
14、(x0,w)*dt;% 求得频率响应求得频率响应X0 subplot(3,1,1),plot(w,abs(X0),grid,shg% 画图画图 disp(重复重复N次的八点时间信号的离散时间傅立叶变换次的八点时间信号的离散时间傅立叶变换) N=input(N= );% 用键盘输入延拓周期数用键盘输入延拓周期数 x1=reshape(x0*ones(1,N),1,N*length(x0);% 延拓后的时域信号延拓后的时域信号x1 X1 = dtft(x1,w)*dt;% 求求x1的频率响应的频率响应X1 subplot(3,1,2),plot(w,abs(X1),grid,shg% 画图画图 d
15、isp(重复无穷次的八点信号的离散时间傅立叶变换重复无穷次的八点信号的离散时间傅立叶变换-傅立叶级数傅立叶级数) pause,X2=fft(x0) *dt;% 离散傅立叶变换离散傅立叶变换 w1=2*pi* 0:length(x0)-1/length(x0); % 离散频点向量离散频点向量 subplot(3,1,3),stem(-w1,w1,abs(X2),abs(X2),grid,shg axis(min(w),max(w),0,max(abs(X2),grid,shg41 程序运行结果程序运行结果执行程序执行程序q709并按提示键入并按提示键入N = 4,所得图形如图,所得图形如图7.1
16、0所示。所示。N取得愈大,其峰值愈大,宽度愈窄。当取得愈大,其峰值愈大,宽度愈窄。当N取取得很大时,会出现内存不足的问题,这是用矩阵乘法得很大时,会出现内存不足的问题,这是用矩阵乘法做傅里叶变换的缺点。另外,因为那时峰值点处的宽做傅里叶变换的缺点。另外,因为那时峰值点处的宽度很窄,也会出现所选频点对不上峰值点的问题。所度很窄,也会出现所选频点对不上峰值点的问题。所以对于以对于N无限增大的情况,必须用无限增大的情况,必须用fft函数来求。这时函数来求。这时用连续频谱也没有意义了。这里用同样的横坐标把几用连续频谱也没有意义了。这里用同样的横坐标把几种频谱进行对比,使读者更好地理解其关系。种频谱进行
17、对比,使读者更好地理解其关系。 42图图7.1043例例7.10 时域采样频率与频谱混叠时域采样频率与频谱混叠 分别以采样频率分别以采样频率fs=1000Hz,400Hz和和200Hz对对xa(t)进行等间隔采样,计算并图示三种采样频率下的采进行等间隔采样,计算并图示三种采样频率下的采样信号及其幅频特性。样信号及其幅频特性。 解:程序分别设定解:程序分别设定4种采样频率种采样频率fs=10kHz,1kHz,400Hz和和200Hz,对,对xa(t)进行采样,得到采样序列进行采样,得到采样序列xa(t),xa1(n),xa2(n),xa3(n),画出其幅度频谱。,画出其幅度频谱。采样时间区间均为
18、采样时间区间均为0.1秒。为了便于比较,画出了幅秒。为了便于比较,画出了幅度归一化的幅频曲线,如图度归一化的幅频曲线,如图7.11所示。所示。 44例例7.10 采样频率与频谱混叠采样频率与频谱混叠(续续)由于由于由以上关系式可见,由以上关系式可见,采样信号的频谱函数是原模拟采样信号的频谱函数是原模拟信号频谱函数的周期延拓,延拓周期为信号频谱函数的周期延拓,延拓周期为2 /T。如果如果以频率以频率f为自变量(为自变量( = 2 f),则以采样频率),则以采样频率fs = 1/T为延拓周期。为延拓周期。对频带限于对频带限于fc的模拟信号的模拟信号xa(t),只,只有当有当fs2fc时,采样后时,
19、采样后 才不会发生频谱混才不会发生频谱混叠失真。这就是著名的叠失真。这就是著名的采样定理采样定理 knTTTkXTnxnxXn2j1e )()(FT)e (ajj)e (j TX45 %第七章例第七章例7.10程序程序q710% 时域采样及其频谱时域采样及其频谱 clear;close all; fs=10000; fs1=1000; fs2=400; fs3=200; % 设置四种采样频率设置四种采样频率 t=0:1/fs:0.1;% 采集信号长度为采集信号长度为0.1秒秒 A=444.128; a=50*sqrt(2)*pi; b=a; xa=A*exp(-a*t).*sin(b*t);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 基础 应用 教程 人民邮电 出版社 蔡旭辉

限制150内