您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 数字信号处理书上实验1.2.3.4
-1-实验一熟悉Matlab环境一、实验目的1.熟悉MATLAB的主要操作命令。2.学会简单的矩阵输入和数据读写。3.掌握简单的绘图命令。4.用MATLAB编程并学会创建函数。5.观察离散系统的频率响应。二、实验内容认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。在熟悉了MATLAB基本命令的基础上,完成以下实验。上机实验内容:(1)数组的加、减、乘、除和乘方运算。输入A=[1234],B=[3456],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出A、B、C、D、E、F、G。clearall;a=[1234];b=[3456];c=a+b;d=a-b;e=a.*b;f=a./b;g=a.^b;n=1:4;subplot(4,2,1);stem(n,a);xlabel('n');xlim([05]);ylabel('A');subplot(4,2,2);stem(n,b);xlabel('n');xlim([05]);ylabel('B');subplot(4,2,3);stem(n,c);xlabel('n');xlim([05]);ylabel('C');subplot(4,2,4);stem(n,d);xlabel('n');xlim([05]);ylabel('D');subplot(4,2,5);stem(n,e);xlabel('n');xlim([05]);ylabel('E');subplot(4,2,6);stem(n,f);xlabel('n');xlim([05]);ylabel('F');subplot(4,2,7);stem(n,g);xlabel('n');xlim([05]);ylabel('G');(2)用MATLAB实现下列序列:a)x(n)=0.8n0≤n≤15b)x(n)=e(0.2+3j)n0≤n≤15c)x(n)=3cos(0.125πn+0.2π)+2sin(0.25πn+0.1π)0≤n≤15d)将c)中的x(n)扩展为以16为周期的函数x16(n)=x(n+16),绘出四个周期。e)将c)中的x(n)扩展为以10为周期的函数x10(n)=x(n+10),绘出四个周期。clearall;N=0:15;%a)x(n)=0.8n0≤n≤15xa=0.8.^N;-2-figure;subplot(2,1,1);stem(N,xa);xlabel('n');xlim([016]);ylabel('xa');%b)x(n)=e(0.2+3j)n0≤n≤15xb=exp((0.2+3*j)*N);subplot(2,1,2);stem(N,xb);xlabel('n');xlim([016]);ylabel('xb');figure;%c)x(n)=3cos(0.125πn+0.2π)+2sin(0.25πn+0.1π)0≤n≤15xc=3*cos(0.125*pi*N+0.2*pi)+2*sin(0.25*pi*N+0.1*pi);subplot(3,1,1);stem(N,xc);xlabel('n');xlim([016]);ylabel('xc');%d)将c)中的x(n)扩展为以16为周期的函数x16(n)=x(n+16),绘出四个周期。k=0:3;m=0;fori=1:4forj=1:16m=m+1;n(m)=N(j)+16*k(i);x16(m)=3*cos(0.125*pi*n(m)+0.2*pi)+2*sin(0.25*pi*n(m)+0.1*pi);endendsubplot(3,1,2);stem(n,x16);xlabel('n');ylabel('x16');%e)将c)中的x(n)扩展为以10为周期的函数x10(n)=x(n+10),绘出四个周期。forj=1:10x10(j)=x16(j);endfori=1:3form=1:10x10(i*10+m)=x10(m);endendn=1:40;subplot(3,1,3);stem(n,x10);xlabel('n');ylabel('x10');-3-(3)x(n)=[1,-1,3,5],产生并绘出下列序列的样本:a)x1(n)=2x(n+2)-x(n-1)-2x(n)b)51k2)kn(nx(n)xclearalln=1:4;T=4;x=[1-135];x(5:8)=x(1:4);subplot(2,1,1);stem(1:8,x);grid;fori=1:4ifi-10x1(i)=2*x(i+2)-x(i-1)-2*x(i);elsex1(i)=2*x(i+2)-x(i-1+T)-2*x(i);endendx1(5:8)=x1(1:4);subplot(2,1,2);stem(1:8,x1);grid;(4)绘出下列时间函数的图形,对x轴、y轴以及图形上方均须加上适当的标注:a)x(t)=sin(2πt)0≤t≤10sb)x(t)=cos(100πt)sin(πt)0≤t≤4sta=0:0.05:10;xa=sin(2*pi*ta);subplot(2,1,1);plot(ta,xa);xlabel('t');ylabel('幅度');tb=0:0.01:4;-4-xb=cos(100*pi*tb).*sin(pi*tb);subplot(2,1,2);plot(tb,xb);xlabel('t');ylabel('幅度');(5)编写函数stepshift(n0,n1,n2)实现u(n-n0),n1n0n2,绘出该函数的图形,起点为n1,终点为n2。n0=5;ns=1;nf=10;%ns为起点;nf为终点;在=n=n0处生成单位阶跃序列n=[ns:nf];x=[(n-n0)=0];stem(n,x);(6)给一定因果系统)0.9z0.67z-1)/(1z2(1H(z)-2-1-1求出并绘制H(z)的幅频响应与相频响应。clearall;b=[1,sqrt(2),1];a=[1,-0.67,0.9];[h,w]=freqz(b,a);am=20*log10(abs(h));subplot(2,1,1);plot(w,am);-5-ph=angle(h);subplot(2,1,2);plot(w,ph);(7)计算序列{8-2-123}和序列{23-1-3}的离散卷积,并作图表示卷积结果。clearall;a=[8-2-123];b=[23-1-3];c=conv(a,b);%计算卷积M=length(c)-1;n=0:1:M;stem(n,c);xlabel('n');ylabel('幅度');(8)求以下差分方程所描述系统的单位脉冲响应h(n),0≤n≤50y(n)+0.1y(n-1)-0.06y(n-2)=x(n)-2x(n-1)clearall;N=50;a=[1-2];b=[10.1-0.06];x=[1zeros(1,N-1)];k=0:1:N-1;y=filter(a,b,x);stem(k,y);xlabel('n');ylabel('幅度');-6-实验二快速Fourier变换(FFT)及其应用一、实验目的1.在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉FFT子程序。2.熟悉应用FFT对典型信号进行频谱分析的方法。3.了解应用FFT进行信号频谱分析过程中可能出现的问题以便在实际中正确应用FFT。4.熟悉应用FFT实现两个序列的线性卷积的方法。5.初步了解用周期图法作随机信号谱分析的方法。二、实验原理与方法在各种信号序列中,有限长序列信号处理占有很重要地位,对有限长序列,我们可以使用离散Fouier变换(DFT)。这一变换不但可以很好的反映序列的频谱特性,而且易于用快速算法在计算机上实现,当序列x(n)的长度为N时,它的DFT定义为:反变换为:有限长序列的DFT是其Z变换在单位圆上的等距采样,或者说是序列Fourier变换的等距采样,因此可以用于序列的谱分析。FFT并不是与DFT不同的另一种变换,而是为了减少DFT运算次数的一种快速算法。它是对变换式进行一次次分解,使其成为若干小点数的组合,从而减少运算量。常用的FFT是以2为基数的,其长度。它的效率高,程序简单,使用非常方便,当要变换的序列长度不等于2的整数次方时,为了使用以2为基数的FFT,可以用末位补零的方法,使其长度延长至2的整数次方。(一)、在运用DFT进行频谱分析的过程中可能产生三种误差:(1)混叠序列的频谱时被采样信号的周期延拓,当采样速率不满足Nyquist定理时,就会发生频谱混叠,使得采样后的信号序列频谱不能真实的反映原信号的频谱。避免混叠现象的唯一方法是保证采样速率足够高,使频谱混叠现象不致出现,即在确定采样频率之前,必须对频谱的性质有所了解,在一般情况下,为了保证高于折叠频率的分量不会出现,在采样前,先用低通模拟滤波器对信号进行滤波。(2)泄漏实际中我们往往用截短的序列来近似很长的甚至是无限长的序列,这样可以使用较短的DFT来对信号进行频谱分析,这种截短等价于给原信号序列乘以一个矩形窗函数,也相当于在频域将信号的频谱和矩形窗函数的频谱卷积,所得的频谱是原序列频谱的扩展。泄漏不能与混叠完全分开,因为泄漏导致频谱的扩展,从而造成混叠。为了减少泄漏的影响,可以选择适当的窗函数使频谱的扩散减至最小。(3)栅栏效应DFT是对单位圆上Z变换的均匀采样,所以它不可能将频谱视为一个连续函数,就一定意义上看,用DFT来观察频谱就好像通过一个栅栏来观看一个图景一样,只能在离散点上看到真实的频谱,这样就有可能发生一些频谱的峰点或谷点被“尖桩的栅栏”所拦住,不能别我们观察到。减小栅栏效应的一个方法就是借助于在原序列的末端填补一些零值,从而变动DFT的点数,这一方法实际上是人为地改变了对真实频谱采样的点数和位置,相当于搬动了每一根“尖-7-桩栅栏”的位置,从而使得频谱的峰点或谷点暴露出来。(二)、用FFT计算线性卷积用FFT可以实现两个序列的圆周卷积。在一定的条件下,可以使圆周卷积等于线性卷积。一般情况,设两个序列的长度分别为N1和N2,要使圆周卷积等于线性卷积的充要条件是FFT的长度N≥N1+N2对于长度不足N的两个序列,分别将他们补零延长到N。当两个序列中有一个序列比较长的时候,我们可以采用分段卷积的方法。有两种方法:重叠相加法。将长序列分成与短序列相仿的片段,分别用FFT对它们作线性卷积,再将分段卷积各段重叠的部分相加构成总的卷积输出。重叠保留法。这种方法在长序列分段时,段与段之间保留有互相重叠的部分,在构成总的卷积输出时只需将各段线性卷积部分直接连接起来,省掉了输出段的直接相加。(三)、用周期图法(平滑周期图的平均法)对随机信号作谱分析实际中许多信号往往既不具有有限能量,由非周期性的。无限能量信号的基本概念是随机过程,也就是说无限能量信号是一随机信号。周期图法是随机信号作谱分析的一种方法,它特别适用于用FFT直接计算功率谱的估值。将长度为N的实平稳随机序列的样本x(n)再次分割成K段,每段长度为L,即L=N/K。每段序列仍可表示为:xi(n)=x(n+(i-1)L),0≤n≤L-1,1≤i≤K但是这里在计算周期图之前,先用窗函数w(n)给每段序列xi(n)加权,K个修正的周期图定义为其中U表示窗口序列的能量,它等于在此情况下,功率谱估计量可表示为三、实验内容及步骤实验中用到的信号序列:a)Gaussian序列b)衰减正弦序列-8-c)三角波序列d)反三角波序列上机实验内容:(1)、观察高斯序列的时域和幅频特性,固定信号xa(n)中参数p=8,改变q的值,使q分别等于2,4,8,观察它们的时域和幅频特性,了解当q取不同值时,对信号序列的时域幅频特性的影响;固定q=8,改变p,使p分别等于8,13,14,观察参数p变化对信号序列的时域及幅频特性的影响,观察p等于多少时,会发生明显的泄漏现象,混叠是否也随之出现?记录实验
本文标题:数字信号处理书上实验1.2.3.4
链接地址:https://www.777doc.com/doc-7277216 .html