数字信号处理实验报告实验1常见离散信号的MATLAB产生和图形显示1.程序(1)单位抽样序列1()0n00nn如果()n在时间轴上延迟了k个单位,得到()nk即:1()0nk0nkn程序如下:N=20;k=9;x=zeros(1,N);x(10)=1;n=[k-9:N+k-10];stem(n,x);(2)单位阶跃序列1()0un00nn程序如下:N=20;x=ones(1,N);x(1:3)=0;n=[-3:N-4];stem(n,x);title('单位阶跃序列');(3)正弦序列()sin(2/)xnAfnFs程序如下:N=50;n=0:N-1;A=1;f=50;Fs=f*N;fai=0.5*pi;x=A*sin(2*pi*f*n/Fs+fai);stem(n,x);(4)复正弦序列()jnxne程序如下:N=50;n=0:N-1;w=2*pi/N;x=exp(j*w*n);plot(x,'*');复指数序列0()()jnxne或0()jnxne,它具有实部与虚部,0是复正弦的数字域频率。对第一种表示形式,可以写成0000()(cossin)cossinnnnxnenjnenjen。如果用极坐标表示,则0arg[()]()|()|jwnjxnnxnxneee|()|nxne,0arg[()]xnn若0ne,则x(n)为衰减的复正弦,其实部和虚部分别为衰减振荡的正弦分量;若实部0ne,则实部和虚部分别为增大的正弦分量;若0ne,则实部和虚部分别为等幅振荡。本实验中使用的信号为0ne时的情况,即等幅振荡信号。实验图示为极坐标下的复指数序列图。横坐标表示实部,纵坐标表示虚部。从图中明显看出,序列各点幅值相等,只有相角的周期性变化。(5)指数序列()nxna程序如下:N=50;a=1.1;n=0:N-1;x=a.^n;plot(n,x,'*');实验2离散系统的差分方程、冲激响应和卷积分析实验目的:加深对离散系统的差分方程、单位脉冲响应和卷积分析方法的理解。实验原理:离散系统其输入、输出关系可用以下差分方程描述:输入信号分解为单位脉冲序列,。记系统单位脉冲响应,则系统响应为如下的卷积计算式:当时,h[n]是有限长度的(n:[0,M]),称系统为FIR系统;反之,称系统为IIR系统。在MATLAB中,可以用函数y=Filter(p,d,x)求解差分方程,也可以用函数y=Conv(x,h)计算卷积。1.IIR的冲激响应和阶跃响应:[]0.6[1]0.08[2][][1]ynynynxnxn2.FIR的冲激响应和阶跃响应:[]0.2{[1][2][3][4][5]}ynxnxnxnxnxn1.程序N=20;p1=[1,-1];d1=[1,0.6,0.08];p2=[0,0.2,0.2,0.2,0.2,0.2];d2=1;delta=[1,zeros(1,N-1)];u=ones(1,N);labelx=0:N-1;h1=filter(p1,d1,delta);y1=filter(p1,d1,u);h2=filter(p2,d2,delta);y2=filter(p2,d2,u);subplot(2,2,1);stem(labelx,h1);title('系统1单位冲激响应','fontsize',15);subplot(2,2,2);stem(labelx,y1);title('系统1单位阶跃响应','fontsize',15);subplot(2,2,3);stem(labelx,h2);title('系统2单位冲激响应','fontsize',15);subplot(2,2,4);stem(labelx,y2);title('系统2单位阶跃响应','fontsize',15);2.程序计算结果计算结果精确到小数点后四位,只计算前20个点。1)系统1单位冲激响应:1-1.60.88-0.40.1696-0.06980.0283-0.01140.0046-0.00180.0007-0.00030.00010000000单位阶跃响应:1-0.60.28-0.120.0496-0.02020.0081-0.00330.0013-0.00050.0002-0.0001000000002)系统2单位冲激响应:00.20.20.20.20.200000000000000单位阶跃响应:00.20.40.60.81111111111111113.两系统单位冲激响应和单位阶跃响应图形4.理论计算结果求取单位冲激响应时,()()xnn求取单位阶跃响应时,()()xnun系统为因果系统,有()0,0ynn1)对系统1:[]0.6[1]0.08[2][][1]ynynynxnxn,单位冲激响应:(0)0.6(1)0.08(2)(0)(1)1hyyxx(1)0.6(0)0.08(1)(1)(0)1.6hyyxx(2)0.6(1)0.08(0)(2)(1)0.88hyyxx(3)0.6(2)0.08(1)(3)(2)0.4hyyxx(4)0.6(3)0.08(2)(4)(3)0.1696hyyxx单位阶跃响应:(0)0.6(1)0.08(2)(0)(1)1yyyxx(1)0.6(0)0.08(1)(1)(0)0.6yyyxx(2)0.6(1)0.08(0)(2)(1)0.28yyyxx(3)0.6(2)0.08(1)(3)(2)0.12yyyxx(4)0.6(3)0.08(2)(4)(3)0.0496yyyxx2)对系统2:[]0.2{[1][2][3][4][5]}ynxnxnxnxnxn单位冲激响应:(0)0.2{(1)(2)(3)(4)(5)}0hxxxxx(1)0.2{(0)(1)(2)(3)(4)}0.2hxxxxx(2)0.2{(1)(0)(1)(2)(3)}0.2hxxxxx(3)0.2{(2)(1)(0)(1)(2)}0.2hxxxxx(4)0.2{(3)(2)(1)(0)(1)}0.2hxxxxx(5)0.2{(4)(3)(2)(1)(0)}0.2hxxxxx(6)0.2{(5)(4)(3)(2)(1)}0hxxxxx05101520-2-1.5-1-0.500.51系统1单位冲激响应05101520-1-0.500.51系统1单位阶跃响应0510152000.050.10.150.2系统2单位冲激响应0510152000.20.40.60.81系统2单位阶跃响应()0,6hnn单位阶跃响应:(0)0.2{(1)(2)(3)(4)(5)}0yxxxxx(1)0.2{(0)(1)(2)(3)(4)}0.2yxxxxx(2)0.2{(1)(0)(1)(2)(3)}0.4yxxxxx(3)0.2{(2)(1)(0)(1)(2)}0.6yxxxxx(4)0.2{(3)(2)(1)(0)(1)}0.8yxxxxx(5)0.2{(4)(3)(2)(1)(0)}1yxxxxx()1,5ynn对比理论计算结果和计算机程序计算结果,两者保持一致。对不同的系统,因其系统函数不同和收敛域不同,单位冲激响应和单位阶跃响也不同。实验3离散系统的频率响应分析和零、极点分布求12345123450.05280.7970.12950.12950.7970.0528()11.80072.49471.88210.95370.2336zzzzzHzzzzzz的零、极点和幅度频率响应。1.程序num=[0.0528,0.797,0.1295,0.1295,0.797,0.0528];den=[1,-1.8107,2.4947,-1.8801,0.9537,-0.2336];subplot(2,1,1);zplane(num,den);title('系统零极点图');[h,w]=freqz(num,den,'whole');h=abs(h);subplot(2,1,2);plot(w,h);title('系统幅度频率响应');实验4离散信号的DTFT和DFT分别计算16点序列150,165cos)(nnnx的16点和32点DFT,绘出幅度谱图形,并绘出该序列的DTFT图形1.程序N1=16;n1=0:N1-1;N2=32;n2=0:N2-1;x=cos(5*pi*n1/16);x1=fft(x,N1);x2=fft(x,N2);subplot(2,2,1);stem(n1,abs(x1));title('16点DFT幅度谱图');subplot(2,2,2);stem(n2,abs(x2));title('32点DFT幅度谱图');num=x;den=1;[h,w]=freqz(num,den,'whole');subplot(2,2,3);plot(w,abs(h));title('DTFT幅度谱图');subplot(2,2,4);plot(w,angle(h)*180/pi);title('DTFT相位谱图');3.讨论若()xn为N点有限长序列,其DTFT及DFT分别是:jj()()nnXexne,2j()()nkNnXkxne显然,当2kN时,两者是相等的,这说明DFT是对离散时间序列在频域以2N的整数倍频率上的抽样。即DFT是对DTFT的频率离散化的结果,从图中可以看出,实验结果与理论分析一致。从实验还可以看出:在时域内增加序列的长度(“补零”以增大周期),相当于在频域序列进行插值。这也就是实验现象产生的原因。实验5FFT算法的应用(1)2N点实数序列nNnnNnNnx其它,012,...,2,1,0),192cos(21)72cos()(N=64。用一个64点的复数FFT程序,一次算出NnxDFTkX2)]([)(,并绘出)(kX。(2)已知某序列)(nx在单位圆上的N=64等分样点的Z变换为2/1()(),0,1,2,...,6310.6kjkNXzXkke。用N点IFFT程序计算)]([)(_kXIDFTnx,绘出和)(_nx。1.程序1)N=64;n=[0:2*N-1];xn1=cos(2*pi/N*7*n)+1/2*cos(2*pi/N*19*n);xk1=fft(xn1);xk2=abs(xk1);stem(n,xk2);xlabel('k');ylabel('x(k)')2)N=64;n=[0:N-1];xk=1./(1-0.8.*exp(-j*2*pi*n/N));xn=fft(xk,N);stem(n,xn);xlabel('k');ylabel('x(n)')3.讨论从2N点FFT结果可以看出,频域序列X(k)含有4条谱线,但事实上只对应有两个不同的频率(根据奈奎斯特采样定理,另外两条谱线没有实际意义),即f=7Hz和f=19Hz,但从图1中却观察到,|X(k)|在f=14Hz和f=38Hz处有不为零频谱分量,且为给出的离散时间信号x(n)所含的对应频率的两倍。另外,虽然序列x(n)总共有2N=128点,但实际上从n=64到127这N点是对上一个周期的重复,由于计算FFT时只需要一个完整周期的信号即可,而2N点的FFT用的序列x(n)在时域却有两个周期,因此出现了“频谱移动”的现象。从而实际的不为零的频率分量应为f=14/2=7Hz,