实验1常见离散信号产生和实现一、实验目的1、加深对常用离散信号的理解;2、熟悉使用MATLAB在时域中产生一些基本的离散时间信号。二、实验原理MATLAB语言提供了一系列函数用来产生信号,如exp,sin,cos,square,sawtooth,ones,zeros等函数。1.基本信号序列1)单位抽样序列01)(n00nn在MATLAB中可以利用zeros()函数实现。x=[1zeros(1,n-1)]示范程序:%ProgramP1_1%GenerationofaUnitSampleSequenceclf;%Generateavectorfrom-10to20n=-10:20;%Generatetheunitsamplesequenceu=[zeros(1,10)1zeros(1,20)];%Plottheunitsamplesequencestem(n,u);xlabel('Timeindexn');ylabel('Amplitude');title('UnitSampleSequence');axis([-102001.2]);如果)(n在时间轴上延迟了k个单位,得到)(kn即:01)(kn0nknRequest1:编写一个)(kn的函数。2)单位阶跃序列01)(nu00nn在MATLAB中可以利用ones()函数实现。);,1(NonesxRequest2:编写一个)(knu的函数。3)实指数序列Rananxn,)(MATLAB实现:naxNn.^1:04)复指数序列nenxnj)()(MATLAB实现:))0exp((1:0nwjluxNn5)随机序列MATLAB提供了两种随机信号:rand(1,N)产生[0,1]上均匀分布的随机矢量。randn(1,N)产生均值为0,方差为1的高斯随机序列,即白噪声序列。2.基本周期波形1)方波MATLAB工具箱函数square可以产生方波;t=0:0.1*pi:6*pi;y=square(t);plot(t,y);xlabel(‘时间t’);ylabel(‘幅度y’);axis([07*pi-1.51.5]);2)正弦波)/2sin()(FsfnAnx在MATLAB中)/***2sin(*1:0faiFsnfpiAxNn3)锯齿波工具箱函数sawtooth函数可以产生锯齿波Fs=10000;t=0:1/Fs:1.5;%抽样长度1.5s,抽样频率为10kHzx=sawtooth(2*pi*50*t);%信号频率为50Hzplot(t,x);axis()[00.2-11];%画出0.2秒的波形3.基本非周期波形工具箱函数chirp能产生一种扫射频率信号,其特点是信号的瞬时频率随时间按照一定规律变化t=0:1/1000:2%抽样频率1kHz,抽样时间2s.x=chirp(t,0.1,150)%0时刻为DC信号,1s时频率为150Hz。specgram(x,256,1000,256,250);4.sinc信号MATLAB实现:t=linspace(-5,5);x=sinc(t);plot(t,x);5.序列的操作1)信号加x(n)=x1(n)+x2(n)MATLAB实现:x=x1+x2;注意:x1和x2序列应该具有相同的长度,位置对应,才能相加。2)信号乘x(n)=x1(n)*x2(n)MATLAB实现:x=x1.*x2;%数组乘法3)改变比例y(n)=k*x(n)MATLAB实现:y=k*x;4)折叠y(n)=x(-n);MATLAB实现:y=fliplr(x);5)抽样和21)(nnnnxyMATLAB实现:y=sum(x(n1:n2));6)抽样积21)(nnnnxyMATLAB实现:y=prod(x(n1:n2));7)信号能量2|)(|nnxExMATLAB实现:Ex=sum(abs(x).^2);8)信号功率210|)(|1NnnxNPxMATLAB实现:Px=sum(abs(x).^2)/N;三、预习要求1、预先阅读附录A(MATLAB基础介绍);2、熟悉实验内容,预先编写好程序,准备好预习报告。四、实验内容编制程序产生上述5种信号,长度可输入确定,函数需要的参数可输入确定,并绘出其图形。五、实验报告要求(1)简述实验目的及实验原理。(2)解释示范程序中MATLAB各个语句的功能(3)按实验步骤附上实验过程中的实验程序和信号序列曲线,并对所得结果进行分析和解释。(4)Request3:讨论复指数序列的性质。绘出信号,当、时、、时的信号实部和虚部图;当时呢?此时信号周期为多少?实验2离散系统的时域分析一、实验目的1、熟悉并掌握离散系统的差分方程表示法;2、加深对冲激响应和卷积分析方法的理解。二、实验原理在时域中,离散时间系统对输入信号或者延迟信号进行运算处理,生成具有所需特性的输出信号,具体框图如下:其输入、输出关系可用以下差分方程描述:输入信号分解为冲激信号,记系统单位冲激响应,则系统响应为如下的卷积计算式:当时,h[n]是有限长度的(),称系统为FIR系统;反之,称系统为IIR系统。三、预习要求1、在MATLAB中,熟悉利用函数实现差分方程的仿真;2、在MATLAB中,熟悉用函数计算卷积,用求系统冲激响应的过程。四、实验内容1、用MATLAB求系统响应1)卷积的实现线性移不变系统可由它的单位脉冲响应来表征。若已知了单位脉冲响应和系统激励就可通过卷积运算来求取系统响应,即)(*)()(nhnxny程序:%IllustrationofConvolutionx=input(‘Typeintheinputsequence=’);h=input(‘Typeintheimpulseresponsesequence=’);y=conv(x,h);N=length(y-1);n=0:1:N;disp(‘outputsequence=’);disp(y);stem(n,y);xlabel(‘Timeindexn’);ylable(‘Amplitude’);输入为:x=[-201-13]h=[120-1]2)单位脉冲响应的求取线性时不变因果系统可用MATLAB的函数filter来仿真y=filter(b,a,x);其中,x和y是长度相等的两个矢量。矢量x表示激励,矢量a,b表示系统函数形式滤波器的分子和分母系数,得到的响应为矢量y。例如计算以下系统的单位脉冲响应y(n)+0.7y(n-1)-0.45y(y-2)-0.6y(y-3)=0.8x(n)-0.44x(n-1)+0.36x(n-2)+0.02x(n-3)程序实现:%IllustrationofImpulseResponseComputationN=input(‘Desiredimpuseresponselength=’);b=input(‘Typeinthevectorb=’);a=input(‘Typeinthevectora=’);x=[1zeros(1,N-1)];y=filter(b,a,x);k=0:1:N-1;stem(k,y);xlabel(’Timeindexn’);ylable(‘Amplitude’);输入数据:N=41b=[0.8-0.440.360.02]a=[10.7-0.45-0.6]2、以下程序中分别使用conv和filter函数计算h和x的卷积y和y1,运行程序,并分析y和y1是否有差别,为什么要使用x[n]补零后的x1来产生y1;具体分析当h[n]有i个值,x[n]有j个值,使用filter完成卷积功能,需要如何补零?clf;h=[321-210-403];%impulseresponsex=[1-23-4321];%inputsequencey=conv(h,x);n=0:14;subplot(2,1,1);stem(n,y);xlabel('Timeindexn');ylabel('Amplitude');title('OutputObtainedbyConvolution');grid;x1=[xzeros(1,8)];y1=filter(h,1,x1);subplot(2,1,2);stem(n,y1);xlabel('Timeindexn');ylabel('Amplitude');title('OutputGeneratedbyFiltering');grid;3、编制程序求解下列两个系统的单位冲激响应,分别用filter和impz实现,并绘出其图形。给出理论计算结果和程序计算结果并讨论。五、实验报告要求(1)简述实验目的及实验原理。(2)按实验步骤附上实验过程及结果。(3)总结实验中的主要结论。实验3离散系统的变换域分析一、实验目的1、熟悉对离散系统的频率响应分析方法;2、加深对零、极点分布的概念理解。二、实验原理离散系统的时域方程为其变换域分析方法如下:频域:系统的频率响应为:Z域:系统函数为:分解因式:,其中和称为零、极点。三、预习要求1.在MATLAB中,熟悉函数tf2zp、zplane、freqz、residuez、zp2sos的使用,其中:[z,p,K]=tf2zp(num,den)求得有理分式形式的系统函数的零、极点;zplane(z,p)绘制零、极点分布图;h=freqz(num,den,w)求系统的单位频率响应;[r,p,k]=residuez(num,den)完成部分分式展开计算;sos=zp2sos(z,p,K)完成将高阶系统分解为2阶系统的串联。2.阅读扩展练习中的实例,学习频率分析法在MATLAB中的实现;3.编程实现系统参数输入,绘出幅度频率响应和相位响应曲线和零、极点分布图。四、实验内容求系统的零、极点和幅度频率响应和相位响应。五、扩展练习例1:求下列直接型系统函数的零、极点,并将它转换成二阶节形式解:用MATLAB计算程序如下:num=[1-0.1-0.3-0.3-0.2];den=[10.10.20.20.5];[z,p,k]=tf2zp(num,den);m=abs(p);disp('零点');disp(z);disp('极点');disp(p);disp('增益系数');disp(k);sos=zp2sos(z,p,k);disp('二阶节');disp(real(sos));zplane(num,den)输入到“num”和“den”的分别为分子和分母多项式的系数。计算求得零、极点增益系数和二阶节的系数:零点:0.9615-0.5730-0.1443+0.5850i-0.1443-0.5850i极点:0.5276+0.6997i0.5276-0.6997i-0.5776+0.5635i-0.5776-0.5635i增益系数:1二阶节:1.0000-0.3885-0.55091.00001.155200.65111.00000.288500.363001.0000-1.05520.7679系统函数的二阶节形式为:极点图见图3.1:图3.1系统函数的零、极点图例2:求差分方程所对应的系统的频率响应。解:差分方程所对应的系统函数为:用MATLAB计算的程序如下:k=256;%采样频率为256Hznum=[0.8-0.440.360.02];den=[10.7-0.45-0.6];w=0:pi/k:pi;h=freqz(num,den,w);subplot(2,2,1);plot(w/pi,real(h));grid;title('实部');xlabel('\omega/\pi');ylabel('幅度');subplot(2,2,2);plot(w/pi,imag(h));grid;title('虚部');xlabel('\omega/\pi');ylabel('Amplitude');subplot(2,2,3);plot(w/pi,abs(h));grid;title('幅度谱');xlabel('\o