利用MATLAB实现拉普拉斯变换及其逆变换

2020-04-03 11:48

信号与系统实践报告

有MATLAB实现连续时间周期函数

学 院:通信与电子信息工程学院 班 级:电子042班 姓 名:李瑞改 学 号:2004023082 指导教师:朱恒军 秦月

2006年10月19日

摘要 :本例的CTFShchsym.m函数文件有一定的通用性,用户只需编写好子函数time_fun_即可,但要注意,该函数是用符号表达式写成的。若要画出时间函数图形,用户需要另外编写一个子函数 y=time_fun_e(t)。因为在 MATLAB中,只定义了单位阶跃信号 Heavisid作为一个符号对象,而不能把 Heaviside 看作 MATLAB 的函数加以调用。 同理,在信号与系统中,另一个十分重要的函数——单位脉冲函数 Dirac(t)。它的使 用方法可参照 Heaviside 进行。 最后给出的数值是由完全准确解取 32位有效数字后的简洁表示。

关键字:单位阶跃信号 MATLAB 连续信号 脉冲宽度

目的: 1. 函数文件 CTFStpshsym.m编写源程序

2. 有MATLAB实现连续时间周期函数

1

一:函数 step()将绘出连续系统的阶跃响应

函数 step()将绘出由向量 a 和 b 表示的连续系统的阶跃响应g(t)在指定时间范围内的波形图,并能求出其数值解。和 impulse()函数一样,step()函数也有如下四种调用格式: (1) step(b,a) (2) step(b,a,t) (3) step(b,a,t1:p:t2) (4) y=step(b,a,t1:p:t2)

上述调用格式的功能和 impulse()函数完全相同,所不同的是命令绘制的是系统的阶跃响应g(t)的曲线而不冲激响应h(t)的曲线。对上例,若执行命令 step(b,a)

则绘制的系统阶跃响应时域波形如图所示。

连续系统的冲激响应 连续系统的阶跃响应

二: 函数文件 CTFStpshsym.m编写源程序

2

编写函数文件 CTFStpshsym.m [CTFStpshsym.m]

function [A_sym,B_sym]= CTFStpshsym

% 采用符号计算求[0,T]内时间函数的三角级数展开系数,并绘制其双边频谱。

% 函数的输出为数值量 % Nn 输出数据的准确位数

% A_sym 第 1元素是直流项,其后元素依次是 1,2,3...次谐波 cos项展开系数

% B_sym 第 2,3,4,...元素依次是 1,2,3...次谐波 sin项展开系数 % T T=m*tao, 信号周期 % Nf 谐波的阶数

% Nn 输出数据的准确位数

% m (m=T/tao)周期与脉冲宽度之比,如 m=4,8,16,100等 % tao 脉宽:tao=T/m syms t n y

if nargin<3;Nf=input('pleas Input 所需展开的最高谐波次数:Nf=');end T=input('pleas Input 信号的周期 T='); if nargin<5;Nn=32;end y=time_fun_s(t); A0=2*int(y,t,0,T)/T;

As=int(2*y*cos(2*pi*n*t/T)/T,t,0,T); Bs=int(2*y*sin(2*pi*n*t/T)/T,t,0,T); A_sym(1)=double(vpa(A0,Nn)); for k=1:Nf

A_sym(k+1)=double(vpa(subs(As,n,k),Nn)); B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn)); end

3

if nargout==0

S1=fliplr(A_sym) %对 A_sym阵左右对称交换 S1(1,k+1)=A_sym(1) %A_sym的 1*k阵扩展为 1*(k+1)阵 S2=fliplr(1/2*S1) %对扩展后的 S1阵左右对称交换回原位置 S3=fliplr(1/2*B_sym) %对 B_sym阵左右对称交换 S3(1,k+1)=0 %B_sym的 1*k阵扩展为 1*(k+1)阵 S4=fliplr(S3) %对扩展后的 S3阵左右对称交换回原位置 S5=S2-i*S4; % 用三角函数展开系数 A、B值合成付里叶指数系数 S6=fliplr(S5); N=Nf*2*pi/T; k2=-N:2*pi/T:N;

S7=[S6,S5(2:end)]; % 形成-N:N的付里叶复指数对称系数 subplot(3,3,3)

x=time_fun_e % 调用连续时间函数-周期矩形脉冲 subplot(3,1,3)

stem(k2,abs(S7)); % 画出周期矩形脉冲的频谱(T=M*tao) title('连续时间函数周期矩形脉冲的双边幅度谱') axis([-80,80,0,0.12]) line([-80,80],[0,0]) line([0,0],[0,0.12]) end

%------------------------------------------- function y=time_fun_s(t)

% 该函数是 CTFStpshsym.m的子函数。它由符号变量和表达式写成。 syms a a1

T=input('pleas Input 信号的周期 T='); M=input('周期与脉冲宽度之比 M=');

4


利用MATLAB实现拉普拉斯变换及其逆变换.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《宝贝平安自护行》教学设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: