中南大学信号与系统matlab实验报告
- 格式:docx
- 大小:104.49 KB
- 文档页数:18
中南大学信号与系统matlab实验报告
Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】 实验一 基本信号的生成 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) kk144f[k]sincos; b) 2k24f[k]cos; c) kk348f[k]sincos。 请问这三个信号的基波周期分别是多少
源程序: 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实现方法;改变有关参数,考察相应信号运算结果的变化特点与规律。 ⑵ 已知信号()ft如下图所示: a) 用MATLAB编程复现上图; %作业题2 a: t=-6::6; ft1=tripuls(t,6,; subplot(2,1,1) plot(t,ft1) title('f(t)') b) 画出(22)ft的波形; %b t=-6::6; ft1=tripuls(2*(1-t),6,; %subplot(1,1,1) plot(t,ft1) title('f(2*(1-t)') c) 画出df(t)dt的波形;
%c h=;t=-6:h:6; yt=tripuls(t,6,; y1=diff(yt)*1/h; plot(t(1:length(t)-1),y1) title('df(t)/dt') d) 画出tf()d
的波形。
%d t=-6::6; for x=1:length(t) y2(x)=quad('tripuls(t,6,',-3,t(x)); end plot(t,y2) title('integral of f(t)') 实验三 系统的时域分析
1.实验目的 学习并掌握连续时间系统的零状态响应、冲激响应和阶跃响应的MATLAB求解方法; 学习并掌握离散时间系统的零状态响应、冲激响应和阶跃响应的MATLAB求解方法; 进一步深刻理解连续时间系统和离散时间系统的系统函数零极点对系统特性的影响; 学习并掌握卷积的MATLAB计算方法。 2.实验内容 ⑴ 运行以上五个例题程序,掌握求解系统响应的MATLAB分析方法;改变模型参数,考察系统响应的变化特点与规律。 ⑵ 设离散系统可由下列差分方程表示: 计算[20:100]k时的系统冲激响应。 源程序: k=-20:100; a=[1 -1 ]; b=[1]; h=impz(b,a,k); stem(k,h); xlabel('Time(sec)') ylabel('y(t)')
⑶ 设[](0.9)()
khkuk,输入[][][10]fkukuk,求系统输出
[][][]ykfkhk。 (取[10:50]k) 源程序: k=-10:50; uk=[zeros(1,10),ones(1,51)]; u1k=[zeros(1,20),ones(1,41)]; hk=.^k.*uk; fk=uk-u1k; yk=conv(hk,fk); stem(0:length(yk)-1,yk);
⑷ 已知滤波器的传递函数:
输入信号为()2sin(0.05)(),()ftttt为随机信号。试绘出滤波器的输出信号波形。(取[0:100]t) 源程序: R=101; d=rand(1,R); t=0:100; s=2*sin*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];a=[1 ]; 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,na,nb的公式,计算出前10次系数; (b)利用MATLAB求解0a,na,nb的值,其中na,nb求解前10次系数,并给出利用这些系数合成的信号波形。 (a)设周期信号)(tf的周期为1T,角频率11122Tf,且满足狄里赫利条
件,则该周期信号可以展开成傅立叶级数。
(1)三角形式傅立叶级数 (2)指数形式傅立叶级数
(b)求解0a,na,nb及合成信号波形所用程序:
function [A_sym,B_sym]=CTFShchsym % 采用符号计算求一个周期内连续时间函数f的三角级数展开系数,再用这些
% 展开系数合成连续时间函数f.傅立叶级数 % 函数的输入输出都是数值量
1 -3 -4 5 4 1 O % Nf=6 谐波的阶数 % Nn 输出数据的准确位数 % A_sym 第1元素是直流项,其后元素依次是1,2,3...次谐波cos项展开系数 % B_sym 第2,3,4,...元素依次是1,2,3...次谐波sin项展开系数 % tao=1 tao/T= syms t n k x T=4; tao=T/4; a=; if nargin<4 Nf=10; end if nargin<5 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;