符号函数法与数值计算法宝典

    技术2022-07-11  84

    WELCOME!

    **一.**用MATLAB计算信号y=sint2的导数,并画出该连续信号及其导数的波形。 解:先用syms定义符号变量,然后再定义需要求导的函数(它是符号变量的函数),接着对所定义的函数求导,最后绘制图形。代码如下:

    syms t y z y = sin(t^2)%t不是向量,所以不用.^ z = diff(y)%对y求导 figure(1) subplot(211) ezplot(y, [0, 2*pi]); %plot(t,y),ezplot(y,[0,2*pi]):自动加上sin(t^2)的标题 grid hold on subplot(212) ezplot(z, [0, 2*pi]); grid

    **二.**用MATLAB计算离散信号y=sink2的差分,并画出该离散信号及其差分信号的波形。 解:离散信号的差分采用数值计算方法,代码如下:

    Ts=0.1; %定义采样间隔 t1=0:Ts:2*pi; y1=sin(t1.^2); %定义离散信号y1,与ss0_4不同,那是符号变量的函数,这是向量的函数 z1=diff(y1)./diff(t1); %对y1进行差分,导数的近似 subplot(211) stem(t1,y1,'r'); axis([0 2*pi 1.1*min(y1) 1.1*max(y1)]) subplot(212) stem(t1(1:length(y1)-1),z1,'r'); %想一下为什么长度少了一 axis([0 2*pi 1.1*min(z1) 1.1*max(z1)]) legend('derivative(black)','difference(blue)'); hold off

    三. 用MATLAB计算直线信号y=t的积分,并画出该直线及其积分信号的波形。 解:先用符号计算求连续信号y=t的积分,再绘制其曲线。代码如下:

    %连续信号的导数积分用符号函数,离散采用数值法 % 符号计算 syms t z s for k = 1:20, z = int(t, t, 0, k); %用符号函数定义t从0到k的积分 zz(k) = subs(z); % %把每一个积分值用数值型向量zz保存,subs转换函数 end % 数值计算 t1 = linspace(-4, 4); y =t1; n = 1:20; subplot(211) plot(t1, y);grid; axis([0 4 0 1.1*max(y)]); title('y(t)=t'); xlabel('t') subplot(212) stem(n(1:20), zz(1:20));hold on plot(n(1:20), zz(1:20), 'r');grid; title('信号t的积分'); xlabel('k') hold off

    **四.**用MATLAB计算f(t)=[sinc(t)]2的积分,并画出f(t)及其积分信号的波形。 解:采用符号计算求连续信号y=[sinc(t)]2的积分,再绘制其曲线。代码如下:

    syms t z s for k=1:10 z = int(sinc(t)^2, t, 0, k); zz(k) = subs(2*z); end subplot(211) ezplot(sinc(t)^2,[-3,3,-0.1,1.1]) grid subplot(212) n = 1:10; stem(n(1:10), zz(1:10)); hold on plot(n(1:10), zz(1:10), 'r'); grid; title('数值积分Ry(t)'); xlabel('k') hold off

    **

    写在后面

    ** 后面将陆续发送基于MATLAB来学习掌握信号与系统

    Processed: 0.011, SQL: 9