1、 中南大学信号与系统中南大学信号与系统 matlab 实验报告实验报告 中南大学-信号与系统 matlab实验报告 实验一 基本信号的生成 1实验目的 学会使用 MATLAB 产生各种常见的连续时间信号与离散时间信号;通过 MATLAB中的绘图工具对产生的信号进行观察,加深对常用信号的理解;熟悉 MATLAB的基本操作,以及一些基本函数的使用,为以后的实验奠定基础。2实验内容 运行以上九个例子程序,掌握一些常用基本信号的特点及其 MATLAB实现方法;改变有关参数,进一步观察信号波形的变化。在 范围内产生并画出以下信号:a);b);c);d)。源程序:k=-10:10;f1k=zeros(1,
2、10),1,zeros(1,10);subplot(2,2,1)stem(k,f1k)title(f1k)f2k=zeros(1,8),1,zeros(1,12);subplot(2,2,2)stem(k,f2k)title(f2k)f3k=zeros(1,14),1,zeros(1,6);subplot(2,2,3)stem(k,f3k)title(f3k)f4k=2*f2k-f3k;subplot(2,2,4)a)用 MATLAB编程复现上图;%作业题 2 a:t=-6:0.001:6;ft1=tripuls(t,6,0.5);subplot(2,1,1)plot(t,ft1)title(
3、f(t)b)画出 的波形;%b t=-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)画出 的波形;%c h=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)画出 的波形。%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(in
4、tegral of f(t)实验三 系统的时域分析 1实验目的 学习并掌握连续时间系统的零状态响应、冲激响应和阶跃响应的 MATLAB 求解方法;学习并掌握离散时间系统的零状态响应、冲激响应和阶跃响应的 MATLAB 求解方法;进一步深刻理解连续时间系统和离散时间系统的系统函数零极点对系统特性的影响;学习并掌握卷积的 MATLAB计算方法。2实验内容 运行以上五个例题程序,掌握求解系统响应的 MATLAB分析方法;改变模型参数,考察系统响应的变化特点与规律。设离散系统可由下列差分方程表示:计算 时的系统冲激响应。源程序:k=-20:100;a=1-1 0.9;b=1;h=impz(b,a,k)
5、;stem(k,h);xlabel(Time(sec)ylabel(y(t)设,输入,求系统输出。(取)源程序: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);已知滤波器的传递函数:输入信号为 为随机信号。试绘出滤波器的输出信号波形。(取)源程序: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
6、,d,g-.,t,s,b-,t,f,r-);xlabel(Time index t);legend(dt,st,ft);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(st,yt);title(滤波器输出波形)实验四 周期信号的频域分析 1实验目的 掌握周期信号傅立叶级数分解与合成的计算公式 掌握利用 MATLAB 实现周期信号傅立叶级数分解与综合方法 理解并掌握周期信号频谱特点 2.实验内容 1、仿照例程,实现下述周期信号的
7、傅立叶级数分解与合成:1-3-4 5 4 1 O 要求:(a)首先,推导出求解,的公式,计算出前 10次系数;(b)利用 MATLAB 求解,的值,其中,求解前 10次系数,并给出利用这些系数合成的信号波形。(a)设周期信号 的周期为,角频率,且满足狄里赫利条件,则该周期信号可以展开成傅立叶级数。(1)三角形式傅立叶级数 (2)指数形式傅立叶级数 (b)求解,及合成信号波形所用程序:function A_sym,B_sym=CTFShchsym%采用符号计算求一个周期内连续时间函数 f 的三角级数展开系数,再用这些%展开系数合成连续时间函数 f.傅立叶级数%函数的输入输出都是数值量%Nf=6
8、谐波的阶数%Nn 输出数据的准确位数%A_sym 第 1元素是直流项,其后元素依次是 1,2,3.次谐波 cos 项展开系数%B_sym 第 2,3,4,.元素依次是 1,2,3.次谐波 sin 项展开系数%tao=1 tao/T=0.2 syms t n k x T=4;tao=T/4;a=-1.5;if nargin4 Nf=10;end if nargin5 Nn=32;end x=time_fun_x(t);A0=int(x,t,a,T+a)/T;%求出三角函数展开系数 A0 As=2/T*int(x*cos(2*pi*n*t/T),t,a,T+a);%求出三角函数展开系数 As Bs
9、=2/T*int(x*sin(2*pi*n*t/T),t,a,T+a);%求出三角函数展开系数 Bs A_sym(1)=double(vpa(A0,Nn);%获取串数组 A0所对应的 ASC2 码数值数组 for k=1:Nf A_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=0 c=A_sym;disp(c);%输出 c 为三角级数展开系数:第 1 元素是直流项,
10、其后元素依次是 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*
11、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);%
12、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;%010 次 subplot(2,2,1)plot(t,f0+f1),hold on y=time_fun_e(t);%调用连续时间函数-周期矩形脉冲 plot(t,y,r:)title(直流+基波)axis(-8
13、,8,-0.5,1.5)subplot(2,2,2)plot(t,f12),hold on y=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 on y=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 on y=time_fun_e(t);plot(t,y,r:)title(1-10次谐波+直流)axis(-8,8,-0.5,
14、1.5)hold off end function 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的子函数。它由符号变量和表达式写成。h=1;x1=sym(Heaviside(t)*h;x=x1-sym(Heav
15、iside(t-1)*h;源程序修改: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.2 syms t n k x T=5;tao=0.2*T;a=0.5;if nargin4 Nf=6;end i
16、f nargin5 Nn=32;end x=time_fun_x(t);A0=int(x,t,-a,T-a)/T;%求出三角函数展开系数 A0 As=2/T*int(x*cos(2*pi*n*t/T),t,-a,T-a);%求出三角函数展开系数 As Bs=2/T*int(x*sin(2*pi*n*t/T),t,-a,T-a);%求出三角函数展开系数 Bs A_sym(1)=double(vpa(A0,Nn);%获取串数组 A0所对应的 ASC2 码数值数组 for k=1:Nf A_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=0 c=A_sym;disp(c)%输出 c 为三角级数展开系数:第 1元素是直流项,其后元素依次是 1,2,3.次谐波 cos 项展开系数 d=B_sym;disp(d)%输出 d 为三角级数展开系数:第 2,3,4,.元素依次是
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1