中南大学信号与系统试验报告姓名:学号:专业班级:自动化实验一 基本信号的生成1.实验目的● 学会使用MATLAB 产生各种常见的连续时间信号与离散时间信号; ● 通过MATLAB 中的绘图工具对产生的信号进行观察,加深对常用信号的理解;● 熟悉MATLAB 的基本操作,以及一些基本函数的使用,为以后的实验奠定基础。
2.实验内容⑴ 运行以上九个例子程序,掌握一些常用基本信号的特点及其MATLAB 实现方法;改变有关参数,进一步观察信号波形的变化。
⑵ 在 k [10:10]=- 范围内产生并画出以下信号:a) 1f [k][k]δ=; b) 2f [k][k+2]δ=; c) 3f [k][k-4]δ=;d) 4f [k]2[k+2][k-4]δδ=-。
源程序:k=-10:10;f1k=[zeros(1,10),1,zeros(1,10)]; subplot(2,2,1) stem(k,f1k) title('f1[k]')f2k=[zeros(1,8),1,zeros(1,12)]; subplot(2,2,2) stem(k,f2k) title('f2[k]')f3k=[zeros(1,14),1,zeros(1,6)]; subplot(2,2,3) stem(k,f3k) title('f3[k]') f4k=2*f2k-f3k; subplot(2,2,4) stem(k,f4k) title('f4[k]')⑶ 在 k [0:31]=范围内产生并画出以下信号:a) ()()k k 144f [k]sin cos ππ=; b) ()2k 24f [k]cos π=; c) ()()k k 348f [k]sin cos ππ=。
请问这三个信号的基波周期分别是多少?源程序:k=0:31;f1k=sin(pi/4*k).*cos(pi/4*k);subplot(3,1,1)stem(k,f1k)title('f1[k]')f2k=(cos(pi/4*k)).^2;subplot(3,1,2)stem(k,f2k)title('f2[k]')f3k=sin(pi/4*k).*cos(pi/8*k);subplot(3,1,3)stem(k,f3k)title('f3[k]')其中f1[k]的基波周期是4, f2[k]的基波周期是4, f3[k]的基波周期是16。
实验二信号的基本运算1.实验目的学会使用MATLAB完成信号的一些基本运算;● 了解复杂信号由基本信号通过尺度变换、翻转、平移、相加、相乘、差分、求和、微分及积分等运算来表达的方法;● 进一步熟悉MATLAB 的基本操作与编程,掌握其在信号分析中的运用特点与使用方式。
2.实验内容⑴ 运行以上三个例题程序,掌握信号基本运算的MATLAB 实现方法;改变有关参数,考察相应信号运算结果的变化特点与规律。
⑵ 已知信号()f t 如下图所示:a) 用MATLAB 编程复现上图; %作业题2 a : t=-6:0.001:6; ft1=tripuls(t,6,0.5); subplot(2,1,1) plot(t,ft1) title('f(t)')tf (t )给定信号f(t)b)画出(22)的波形;f t%bt=-6:0.001:6;ft1=tripuls(2*(1-t),6,0.5); %subplot(1,1,1)plot(t,ft1)title('f(2*(1-t)')的波形;c)画出df(t)dt%ch=0.001;t=-6:h:6;yt=tripuls(t,6,0.5);y1=diff(yt)*1/h;plot(t(1:length(t)-1),y1)title('df(t)/dt')d) 画出tf ()d ττ-∞⎰的波形。
%d t=-6:0.1:6; for x=1:length(t)y2(x)=quad('tripuls(t,6,0.5)',-3,t(x)); end plot(t,y2)title('integral of f(t)')实验三系统的时域分析1.实验目的●学习并掌握连续时间系统的零状态响应、冲激响应和阶跃响应的MATLAB求解方法;●学习并掌握离散时间系统的零状态响应、冲激响应和阶跃响应的MATLAB求解方法;●进一步深刻理解连续时间系统和离散时间系统的系统函数零极点对系统特性的影响;学习并掌握卷积的MATLAB计算方法。
2.实验内容⑴运行以上五个例题程序,掌握求解系统响应的MATLAB分析方法;改变模型参数,考察系统响应的变化特点与规律。
⑵设离散系统可由下列差分方程表示:=y[k]-y[k-1]+0.9y[k-2]f[k]计算[20:100]k=-时的系统冲激响应。
源程序:k=-20:100;a=[1 -1 0.9];b=[1];h=impz(b,a,k);stem(k,h);xlabel('Time(sec)')ylabel('y(t)')⑶ 设[](0.9)()k h k u k =,输入[][][10]f k u k u k =--,求系统输出[][][]y k f k h k =*。
(取[10:50]k =-)源程序:k=-10:50;uk=[zeros(1,10),ones(1,51)]; u1k=[zeros(1,20),ones(1,41)]; hk=0.9.^k.*uk; fk=uk-u1k;yk=conv(hk,fk);stem(0:length(yk)-1,yk);⑷ 已知滤波器的传递函数:10.22()10.8H z z-=- 输入信号为()2sin(0.05)(),()f t t t t πωω=+为随机信号。
试绘出滤波器的输出信号波形。
(取[0:100]t )源程序:R=101;d=rand(1,R)-0.5;t=0:100;s=2*sin(0.05*pi*t);f=s+d;subplot(2,1,1);plot(t,d,'g-.',t,s,'b--',t,f,'r-');xlabel('Time index t');legend('d[t]','s[t]','f[t]');title('处理前的波形')b=[0.22 0];a=[1 -0.8];y=filter(b,a,f);subplot(2,1,2);plot(t,s,'b--',t,y,'r-');xlabel('Time index t');legend('s[t]','y[t]');title('滤波器输出波形')实验四周期信号的频域分析1.实验目的●掌握周期信号傅立叶级数分解与合成的计算公式●掌握利用MATLAB实现周期信号傅立叶级数分解与综合方法●理解并掌握周期信号频谱特点2.实验内容1、仿照例程,实现下述周期信号的傅立叶级数分解与合成:要求:(a )首先,推导出求解0a ,n a ,n b 的公式,计算出前10次系数;(b )利用MATLAB 求解0a ,n a ,n b 的值,其中n a ,n b 求解前10次系数,并给出利用这些系数合成的信号波形。
(a )设周期信号)(t f 的周期为1T ,角频率11122T f ππω==,且满足狄里赫利条件,则该周期信号可以展开成傅立叶级数。
(1)三角形式傅立叶级数dtt n t f T b dt t n t f T a dt t f T a t n b t n a a t b t a t b t a t b t a a t f T T n T T n T T n n n n n n n n ⎰⎰⎰∑∑---∞=∞====++=++++++++=22112211221011110222211110111111sin )(2cos )(2)(1)sin()cos(...sin cos ...sin cos sin cos )(ωωωωωωωωωω(2)指数形式傅立叶级数∑+∞-∞=±±±==n t jn n n eF t f ,3,2,1,0,)(1ω dt et f T F T T tjn n ⎰--=212111)(1ω(b )求解0a ,n a ,n b 及合成信号波形所用程序:function [A_sym,B_sym]=CTFShchsym% 采用符号计算求一个周期内连续时间函数f 的三角级数展开系数,再用这些% 展开系数合成连续时间函数f.傅立叶级数% 函数的输入输出都是数值量% Nf=6 谐波的阶数% Nn 输出数据的准确位数% A_sym 第1元素是直流项,其后元素依次是1,2,3...次谐波cos项展开系数% B_sym 第2,3,4,...元素依次是1,2,3...次谐波sin项展开系数% tao=1 tao/T=0.2syms t n k xT=4;tao=T/4;a=-1.5;if nargin<4Nf=10;endif nargin<5Nn=32;endx=time_fun_x(t);A0=int(x,t,a,T+a)/T; %求出三角函数展开系数A0As=2/T*int(x*cos(2*pi*n*t/T),t,a,T+a); %求出三角函数展开系数AsBs=2/T*int(x*sin(2*pi*n*t/T),t,a,T+a); %求出三角函数展开系数BsA_sym(1)=double(vpa(A0,Nn)); %获取串数组A0所对应的ASC2码数值数组for k=1:NfA_sym(k+1)=double(vpa(subs(As,n,k),Nn)); %获取串数组A所对应的ASC2码数值数组B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn)); %获取串数组B所对应的ASC2码数值数组end ;if nargout==0c=A_sym;disp(c); %输出c为三角级数展开系数:第1元素是直流项,其后元素依次是1,2,3...次谐波cos项展开系数d=B_sym;disp(d); %输出d为三角级数展开系数: 第2,3,4,...元素依次是1,2,3...次谐波sin项展开系数t=-3*T:0.01:3*T;f0=c(1); %直流f1=c(2).*cos(2*pi*1*t/T)+d(2).*sin(2*pi*1*t/T); % 基波f2=c(3).*cos(2*pi*2*t/T)+d(3).*sin(2*pi*2*t/T); % 2次谐波f3=c(4).*cos(2*pi*3*t/T)+d(4).*sin(2*pi*3*t/T); % 3次谐波f4=c(5).*cos(2*pi*4*t/T)+d(5).*sin(2*pi*4*t/T); % 4次谐波f5=c(6).*cos(2*pi*5*t/T)+d(6).*sin(2*pi*5*t/T); % 5次谐波f6=c(7).*cos(2*pi*6*t/T)+d(7).*sin(2*pi*6*t/T); % 6次谐波f7=c(8).*cos(2*pi*7*t/T)+d(8).*sin(2*pi*7*t/T); % 7次谐波f8=c(9).*cos(2*pi*8*t/T)+d(9).*sin(2*pi*8*t/T); % 8次谐波f9=c(10).*cos(2*pi*9*t/T)+d(10).*sin(2*pi*9*t/T); % 9次谐波f10=c(11).*cos(2*pi*10*t/T)+d(11).*sin(2*pi*10*t/T); % 10次谐波f11=f0+f1+f2; % 直流+基波+2次谐波f12=f11+f3; % 直流+基波+2次谐波+3次谐波f13=f12+f4+f5+f6; % 直流+基波+2次谐波+3次谐波+4次谐波+5次谐波+6次谐波f14=f13+f7+f8+f9+f10; %0~10次subplot(2,2,1)plot(t,f0+f1),hold ony=time_fun_e(t); %调用连续时间函数-周期矩形脉冲plot(t,y,'r:')title('直流+基波')axis([-8,8,-0.5,1.5])subplot(2,2,2)plot(t,f12),hold ony=time_fun_e(t);plot(t,y,'r:')title('1-3次谐波+直流')axis([-8,8,-0.5,1.5])subplot(2,2,3)plot(t,f13),hold ony=time_fun_e(t);plot(t,y,'r:')title('1-6次谐波+直流')axis([-8,8,-0.5,1.5])subplot(2,2,4)plot(t,f14),hold ony=time_fun_e(t);plot(t,y,'r:')title('1-10次谐波+直流')axis([-8,8,-0.5,1.5])hold offendfunction y=time_fun_e(t)% 该函数是CTFShchsym.m的子函它由符号函数和表达式写成a=1.5;T=4;h=1;tao=T/4;t=-3*T:0.01:3*T;e1=1/2+1/2.*sign(t-0.5+tao/2);e2=1/2+1/2.*sign(t-0.5-tao/2);y=h.*(e1-e2); %连续时间函数-周期矩形脉冲function x=time_fun_x(t)% 该函数是CTFShchsym.m 的子函数。