当前位置:文档之家› 中南大学 信号与系统matlab实验报告

中南大学 信号与系统matlab实验报告

实验一基本信号的生成1.实验目的⚫学会使用 MATLAB 产生各种常见的连续时间信号与离散时间信号;⚫通过 MATLAB 中的绘图工具对产生的信号进行观察,加深对常用信号的理解;⚫熟悉 MATLAB 的基本操作,以及一些基本函数的使用,为以后的实验奠定基础。

2.实验内容⑴ 运行以上九个例子程序,掌握一些常用基本信号的特点及其MATLAB 实现方法;改变有关参数,进一步观察信号波形的变化。

⑵ 在k = [-10:10] 范围内产生并画出以下信号:a)f1[k] =[k];b)f2[k]=[k+2];c)f3[k]=[k-4];d) f [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)⑶ 在k =[0:31] 范围内产生并画出以下信号:a) f1[k]=sin(4k)cos(4k);b) f2[k]=cos2(4k);c) f3[k] = sin(4k)cos(8k) 。

请问这三个信号的基波周期分别是多少?源程序: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)其中 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)')b) 画出f(2- 2t) 的波形;%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 d(t t)的波形;%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) 画出f()d的波形。

-%dt=-6:0.1:6;for x=1:length(t)y2(x)=quad('tripuls(t,6,0.5)',-3,t(x));endplot(t,y2)title('integral of f(t)')实验三系统的时域分析1.实验目的⚫学习并掌握连续时间系统的零状态响应、冲激响应和阶跃响应的 MATLAB 求解方法;⚫学习并掌握离散时间系统的零状态响应、冲激响应和阶跃响应的 MATLAB 求解方法;⚫进一步深刻理解连续时间系统和离散时间系统的系统函数零极点对系统特性的影响;学习并掌握卷积的 MATLAB 计算方法。

2.实验内容⑴ 运行以上五个例题程序,掌握求解系统响应的 MATLAB 分析方法;改变模型参数,考察系统响应的变化特点与规律。

⑵ 设离散系统可由下列差分方程表示:y[k]-y[k-1]+0.9y[k-2] = f[k]计算k =[-20:100]时的系统冲激响应。

源程序:k=-20:100; a=[1 -1 0.9]; b=[1]; h=impz(b,a,k);stem(k,h);xlabel('Time(sec)')⑶ 设h[k]=(0.9)k u(k),输入f[k]=u[k]-u[k-10],求系统输出y[k]=f[k]h[k]。

(取k =[-10:50])源程序: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);输入信号为 f (t ) =2sin(0.05t )+(t ), (t ) 为随机信号。

试绘出滤波器的输出信号波形。

(取t =[0:100]) 源程序: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('滤波器输出波形')⑷ 已知滤波器的传递函数:H (z )= 0.22 1 - 0.8z -1实验四周期信号的频域分析1.实验目的⚫掌握周期信号傅立叶级数分解与合成的计算公式⚫掌握利用MATLAB 实现周期信号傅立叶级数分解与综合方法⚫理解并掌握周期信号频谱特点2.实验内容1、仿照例程,实现下述周期信号的傅立叶级数分解与合成:a)首先,推导出求解a,a,b的公式,计算出前10 次系数;b)利用MATLAB求解a,a,b的值,其中a,b求解前10次系数,并给出利用这些系数合成的信号波形。

2a )设周期信号 f (t )的周期为T ,角频率= 2f = 2,且满足狄里赫利条件,则该周期信号可以展开成傅立叶级数。

(1)三角形式傅立叶级数 f (t )=a 0 +a 1cos 1t +b 1sin 1t +a 2cos 2t +b 2sin 2t +...+a n cos n t +b n sin n t +...= a +a cos(n t )+ b sin(n t ) n =1 n =1a 0 = 1 2T f (t )dtT 1 - 22)指数形式傅立叶级数f (t )= F n e jn 1t , n = 0,1,2,3, (b )求解 a , a ,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; %求出三角函数展开系数 A0 1 T 1 F n = 1 -2T 1 f (t )e -jn 1t dtT - 2% 求出三角函数展开系数 Bs%获取串数组 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==0 c=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 on y=time_fun_e(t); % 调用连续时间函数 - 周期矩形脉冲plot(t,y,'r:') title('直流+基波') axis([-8,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 onAs=2/T*int(x*cos(2*pi*n*t/T),t,a,T+a); Bs=2/T*int(x*sin(2*pi*n*t/T),t,a,T+a); A_sym(1)=double(vpa(A0,Nn)); %求出三角函数展开系数 Asy=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,1.5]) hold offend 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 的子函数。

相关主题