基于MATLAB下取样定理的验证精品资料.doc
用MATLAB验证时域采样定理与频域采样定理姓名:郭晶 专业:通信一班 学号:0967119130【设计目的】 1 掌握MATLAB基本操作及应用。 2时域采样理论与频域采样理论是数字信号处理中的重要理论。掌握模拟信号采样前后频谱的变化,以及如何选择采样频率才能使采样后的信号不丢失信息。3 掌握频率域采样会引起时域周期化的概念,以及频率域采样定理及其对频域采样点数选择的指导作用。【设计原理】取样定理论述了在一定条件下,一个连续时间信号完全可以用该信号在等时间间隔的瞬时值(或称样本值)表示。这些样本值包含了该连续时间信号的全部信息,利用这些样本值可以恢复原信号。可以说,取样定理在连续信号与离散信号之间架起了一座桥梁。由于离散时间信号(或数字信号)的处理更为灵活、方便,在许多世纪应用中(如数字通信系统等),首先将连续信号转换为相应的离散信号,并进行加工处理,然后再将处理后的离散信号转换为连续信号。取样定理为连续时间信号与离散时间信号的相互转换提供了理论依据。取样定理指的是,取样频率要大于信号最高频率的2倍,才能无失真的保留信号的完整信息。在进行模拟/数字信号的转换过程中 当取样频率fs不小于信号中最高频率fmax的2倍 即 fs>=2fmax 时 取样之后的数字信号完整地保留了原始信号中的信息。 在进行模拟/数字信号的转换过程中,当取样频率fs.max大于信号中,最高频率fmax的2倍时,fs.max>=2fmax,则取样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证取样频率为信号最高频率的510倍;取样定理又称奈奎斯特定理。当对一个信号进行取样时, 取样频率必须大于该信号带宽的两倍以上才能确保从取样值完全重构原来的信号。时域采样定理的要点是:(a)对模拟信号以间隔T进行时域等间隔理想采样,形成的采样信号的频谱是原模拟信号频谱以采样角频率()为周期进行周期延拓。公式为: (b)采样频率必须大于等于模拟信号最高频率的两倍以上,才能使采样信号的 频谱不产生频谱混叠。 利用计算机计算上式并不方便,下面我们导出另外一个公式,以便用计算机上进行实验。 理想采样信号和模拟信号之间的关系为: 对上式进行傅立叶变换,得到: 在上式的积分号内只有当时,才有非零值,因此: 上式中,在数值上,再将代入,得到: 上式的右边就是序列的傅立叶变换,即 上式说明理想采样信号的傅立叶变换可用相应的采样序列的傅立叶变换得到,只要将自变量用代替即可。频域采样定理的要点是:a) 对信号x(n)的频谱函数X(ej)在0,2上等间隔采样N点,得到则N点IDFT得到的序列就是原序列x(n)以N为周期进行周期延拓后的主值区序列,公式为: (b)由上式可知,频域采样点数N必须大于等于时域离散信号的长度M(即NM),才能使时域不产生混叠,则N点IDFT得到的序列就是原序列x(n),即=x(n)。如果N>M,比原序列尾部多N-M个零点;如果N<M,z则=IDFT发生了时域混叠失真,而且的长度N也比x(n)的长度M短,因此。与x(n)不相同。 在数字信号处理的应用中,只要涉及时域或者频域采样,都必须服从这两个采样理论的要点。 对比上面叙述的时域采样原理和频域采样原理,得到一个有用的结论,这两个采样理论具有对偶性:“时域采样频谱周期延拓,频域采样时域信号周期延拓”。因此放在一起进行实验。【设计思想】(1)时域采样理论的验证。给定模拟信号, 式中A=444.128,=50,=50rad/s,它的幅频特性曲线如图10.2.1 图10.2.1 的幅频特性曲线现用DFT(FFT)求该模拟信号的幅频特性,以验证时域采样理论。安照的幅频特性曲线,选取三种采样频率,即=1kHz,300Hz,200Hz。观测时间选。为使用DFT,首先用下面公式产生时域离散信号,对三种采样频率,采样序列按顺序用,表示。 因为采样频率不同,得到的,的长度不同, 长度(点数)用公式计算。选FFT的变换点数为M=64,序列长度不够64的尾部加零。X(k)=FFTx(n) , k=0,1,2,3,-,M-1 式中k代表的频率为 。要求: 编写实验程序,计算、和的幅度特性,并绘图显示。观察分析频谱混叠失真。(2)频域采样理论的验证。给定信号如下: 编写程序分别对频谱函数在区间上等间隔采样32和16点,得到: 再分别对进行32点和16点IFFT,得到: 分别画出、的幅度谱,并绘图显示x(n)、的波形,进行对比和分析,验证总结频域采样理论。提示:频域采样用以下方法容易变程序实现。 直接调用MATLAB函数fft计算就得到在的32点频率域采样 抽取的偶数点即可得到在的16点频率域采样,即。 当然也可以按照频域采样理论,先将信号x(n)以16为周期进行周期延拓,取其主值区(16点),再对其进行16点DFT(FFT),得到的就是在的16点频率域采样。【工具介绍】M文件编辑器图像编辑器Length: 个数figure(n) : 指定n号图形窗口subplot(n,m,t) : 当前窗口分为n行m列n*m个子图,指定t号子图plot: 绘制向量或矩阵各队向量的图形axis: 设置坐标范围grid on: 绘制坐标分格线box on: 使当前坐标呈封闭形式title:给图形加标题xlabel:给x轴加标记ylabel:给y轴加标记legend:给图形加注解end: 向量的最后元素sin(t)正弦函数 cos(t)余弦函数 exp(t)指数函数【设计程序】1 时域采样定理验证% 时域采样理论验证程序Tp=64/1000;%观察时间Tp=64微秒%产生M长采样序列x(n)% Fs=1000;T=1/Fs;Fs=1000;T=1/Fs;M=Tp*Fs;n=0:M-1;f=n*Fs/M;A=444.128;alph=pi*50*20.5;omega=pi*50*20.5;xn=A*exp(-alph*n*T).*sin(omega*n*T);Xk=T*fft(xn,M);%M点FFTxnt)subplot(3,1,1);plot(f,abs(Xk);xlabel('f/Hz');ylabel('|x1(jf)|');title('x1(n)的幅度特性');%=%Fs=300HzTp=64/1000;%观察时间Tp=64微秒%产生M长采样序列x(n)% Fs=1000;T=1/Fs;Fs=300;T=1/Fs;M=Tp*Fs;n=0:M-1;f=n*Fs/M;A=444.128;alph=pi*50*20.5;omega=pi*50*20.5;xn=A*exp(-alph*n*T).*sin(omega*n*T);Xk=T*fft(xn,M);%M点FFTxnt)subplot(3,1,1);plot(f,abs(Xk);xlabel('f/Hz');ylabel('|x1(jf)|');title('x1(n)的幅度特性');%=%Fs=200HzTp=64/1000;Fs=200;T=1/Fs;M=Tp*Fs;n=0:M-1;A=444.128;alph=pi*50*20.5;omega=pi*50*20.5;xnt=A*exp(-alph*n*T).*sin(omega*n*T);Xk=T*fft(xnt,M);yn='xa(nT)'subplot(3,2,5);tstem(xnt,yn);box on; title('(a) Fs=1000Hz');k=0:M-1;fk=k/Tp;subplot(3,2,6);plot(fk,abs(Xk);title('(a) T*FTxa(nT),Fs=1000Hz');xlabel('f(Hz)');ylabel('幅度');axis(0,Fs,0,1.2*max(abs(Xk);2、 频域采样理论的验证M=27;N=32;n=0:M;%产生M长三角波序列x(n)xa=0:floor(M/2); xb= ceil(M/2)-1:-1:0; xn=xa,xb;Xk=fft(xn,1024);%1024点FFTx(n), 用于近似序列x(n)的TFX32k=fft(xn,32);%32点FFTx(n)x32n=ifft(X32k);%32点IFFTX32(k)得到x32(n)X16k=X32k(1:2:N);%隔点抽取X32k得到X16(K)x16n=ifft(X16k,N/2);%16点IFFTX16(k)得到x16(n)subplot(3,2,2);stem(n,xn,'.');box ontitle('(b) 三角波序列x(n)');xlabel('n');ylabel('x(n)');axis(0,32,0,20)k=0:1023;wk=2*k/1024;%subplot(3,2,1);plot(wk,abs(Xk);title('(a)FTx(n)');xlabel('omega/pi');ylabel('|X(ejomega)|');axis(0,1,0,200)k=0:N/2-1;subplot(3,2,3);stem(k,abs(X16k),'.');box ontitle('(c) 16点频域采样');xlabel('k');ylabel('|X_1_6(k)|');axis(0,8,0,200)n1=0:N/2-1;subplot(3,2,4);stem(n1,x16n,'.');box ontitle('(d) 16点IDFTX_1_6(k)');xlabel('n');ylabel('x_1_6(n)');axis(0,32,0,20)k=0:N-1;subplot(3,2,5);stem(k,abs(X32k),'.');box ontitle('(e) 32点频域采样');xlabel('k');ylabel('|X_3_2(k)|');axis(0,16,0,200)n1=0:N-1;subplot(3,2,6);stem(n1,x32n,'.');box ontitle('(f) 32点IDFTX_3_2(k)');xlabel('n');ylabel('x_3_2(n)');axis(0,32,0,20)【设计结果】信号波形:【设计分析】1由图可见,采样序列的频谱的确是以采样频率为周期对模拟信号频谱的周期延拓。当采样频率为1000Hz时频谱混叠很小;当采样频率为300Hz时,在折叠频率150Hz附近频谱混叠很严重;当采样频率为200Hz时,在折叠频率110Hz附近频谱混叠更很严重。2频域采样定理的图验证了频域采样理论和频域采样定理。对信号x(n)的频谱函数X(ej)在0,2上等间隔采样N=16时, N点IDFT得到的序列正是原序列x(n)以16为周期进行周期延拓后的主值区序列MATLAB结课论文姓名:郭晶学号:0967119130班级:通信一班附录资料:matlab画二次曲面一、螺旋线1.静态螺旋线a=0:0.1:20*pi;h=plot3(a.*cos(a),a.*sin(a),2.*a,'b','linewidth',2);axis(-50,50,-50,50,0,150);grid onset(h,'erasemode','none','markersize',22);xlabel('x轴');ylabel('y轴');zlabel('z轴');title('静态螺旋线'); 2.动态螺旋线t=0:0.1:10*pi;i=1;h=plot3(sin(t(i),cos(t(i),t(i),'*','erasemode','none');grid onaxis(-2 2 -2 2 0 35)for i=2:length(t) set(h,'xdata',sin(t(i),'ydata',cos(t(i),'zdata',t(i); drawnow pause(0.01)endtitle('动态螺旋线');(图略) 3.圆柱螺旋线t=0:0.1:10*pi;x=r.*cos(t);y=r.*sin(t);z=t;plot3(x,y,z,'h','linewidth',2);grid onaxis('square')xlabel('x轴');ylabel('y轴');zlabel('z轴');title('圆柱螺旋线') 二、旋转抛物面b=0:0.2:2*pi;X,Y=meshgrid(-6:0.1:6);Z=(X.2+Y.2)./4;meshc(X,Y,Z);axis('square')xlabel('x轴');ylabel('y轴');zlabel('z轴');shading flat;title('旋转抛物面')或直接用:ezsurfc('(X.2+Y.2)./4') 三、椭圆柱面load clownezsurf('(2*cos(u)','4*sin(u)','v',0,2*pi,0,2*pi)view(-105,40) %视角处理shading interp %灯光处理colormap(map) %颜色处理grid on %添加网格线axis equal %使x,y轴比例一致xlabel('x轴');ylabel('y轴');zlabel('z轴');shading flat;title('椭圆柱面') %添加标题四、椭圆抛物面b=0:0.2:2*pi;X,Y=meshgrid(-6:0.1:6);Z=X.2./9+Y.2./4;meshc(X,Y,Z);axis('square')xlabel('x轴');ylabel('y轴');zlabel('z轴');shading flat;title('椭圆抛物面')或直接用:ezsurfc('X.2./9+Y.2./4')五、'双叶双曲面ezsurf('8*tan(u)*cos(v)','8.*tan(u)*sin(v)','2.*sec(u)',-pi./2,3*pi./2,0,2*pi)axis equalgrid onaxis squarexlabel('x轴');ylabel('y轴');zlabel('z轴');shading flat;title('双叶双曲面')六、双曲柱面load clownezsurf('2*sec(u)','2*tan(u)','v',-pi/2,pi/2,-3*pi,3*pi)hold on %在原来的图上继续作图ezsurf('2*sec(u)','2*tan(u)','v',pi/2,3*pi/2,-3*pi,3*pi)colormap(map)shading interpview(-15,30)axis equalgrid onaxis equalxlabel('x轴');ylabel('y轴');zlabel('z轴');shading flat;title('双曲柱面')七、双曲抛物面(马鞍面)X,Y=meshgrid(-7:0.1:7);Z=X.2./8-Y.2./6;meshc(X,Y,Z);view(85,20)axis('square')xlabel('x轴');ylabel('y轴');zlabel('z轴');shading flat;title('双曲抛物面')或直接用:ezsurfc('X.2./8-Y.2./6') 八、抛物柱面X,Y=meshgrid(-7:0.1:7);Z=Y.2./8;h=mesh(Z);rotate(h,1 0 1,180) %旋转处理%axis(-8,8,-8,8,-2,6);axis('square')xlabel('x轴');ylabel('y轴');zlabel('z轴');shading flat;title('抛物柱面')或直接用:ezsurfc('Y.2./8') 九、环面ezmesh('(5+2*cos(u)*cos(v)','(5+2*cos(u)*sin(v)','2*sin(u)',0,2*pi,0,2*pi)axis equalgrid onxlabel('x轴');ylabel('y轴');zlabel('z轴');shading flat;title('环面')十、椭球ezsurfc('(5*cos(u)*sin(v)','(3*sin(u)*sin(v)','4*cos(v)',0,2*pi,0,2*pi)axis equalgrid onxlabel('x轴');ylabel('y轴');zlabel('z轴');shading flat;title('椭球')十一、单叶双曲面ezsurf('4*sec(u)*cos(v)','2.*sec(u)*sin(v)','3.*tan(u)',-pi./2,pi./2,0,2*pi)axis equalgrid onxlabel('x轴');ylabel('y轴');zlabel('z轴');shading flat;title('单叶双曲面')十二、旋转单叶双曲面load clownezsurf('8*sec(u)*cos(v)','8.*sec(u)*sin(v)','2.*tan(u)',-pi./2,pi./2,0,2*pi)colormap(map)view(-175,30)%alpha(.2) %透明处理axis equalgrid onaxis squarexlabel('x轴');ylabel('y轴');zlabel('z轴');shading flat;title('旋转单叶双曲面')十三、圆柱面subplot(1,2,1)ezsurf('(2*cos(u)','2*sin(u)','v',0,2*pi,0,2*pi)grid onshading interpaxis equalxlabel('x轴');ylabel('y轴');zlabel('z轴');title('圆柱面')subplot(1,2,2)cylinder(30)shading interpaxis squaretitle('调用cylinder函数所得圆柱面')十四、二次锥面clc,clear;P=1,0,0; 0,cos(45*pi/180),sin(45*pi/180); 0,-sin(45*pi/180),cos(45*pi/180);for k2 = 1:31 for k1 = 1:31 x(k1,k2) = (k2-1)*cos ( (k1-1)*12*pi/180); y(k1,k2) = (k2-1)*sin ( (k1-1)*12*pi/180); z(k1,k2) = sqrt(x(k1,k2)2+y(k1,k2)2); Vxyz = P*x(k1,k2),y(k1,k2),z(k1,k2)' x1(k1,k2)=Vxyz(1); y1(k1,k2)=Vxyz(2); z1(k1,k2)=Vxyz(3); endendsurf(x,y,z)hold on;surf(x1,y1,z1);shading flat;