
一、在MATLAB中用square函数来表示,其调用形式为 y=square(t,DUTY) ,其作用类似于sin(t),用以产生一个时长为t、幅值为±1的周期性方波信号,其中的DUTY参数表示占空比,即在信号的一个周期中正值所占的百分比。例如频率为30Hz的周期性方波信号的MATLAB程序和图形如下:
1、在MATLAB的命令框内输入方波程序,如下图所示:
2、在输入完成图形显示函数plot后,会显示出来图形,grid,ylim意思是对图形显示的y坐标进行限制。该程序是将图形y坐标限制在(-15,15)。
二、y=square(t,DUTY) 函数默认的幅值是±1,想要改变幅值,只需要乘以一个系数即可,改变周期的话,将频率30改成其他即可。如y=2square(t,DUTY)。程序和图形如下图所示:
扩展资料:
MATLAB系统由MATLAB开发环境、MATLAB数学函数库、MATLAB语言、MATLAB图形处理系统和MATLAB应用程序接口(API)五大部分构成。
1、开发环境
MATLAB开发环境是一套方便用户使用的MATLAB函数和文件工具集,其中许多工具是图形化用户接口。它是一个集成的 用户工作空间,允许用户输入输出数据,并提供了M文件的集成编译和调试环境,包括MATLAB桌面、命令窗口、M文件编辑调试器、MATLAB工作空间和在线帮助文档。
2、数学函数
MATLAB数学函数库包括了大量的计算算法。从基本算法如四则运算、三角函数,到复杂算法如矩阵求逆、快速傅里叶变换等。
3、语言
MATLAB语言是一种高级的基于矩阵/数组的语言,它有程序流控制、函数、数据结构、输入/输出和面向对象编程等特色。用这种语言能够方便快捷建立起简单运行快的程序,也能建立复杂的程序。
4、图形处理
图形处理系统使得MATLAB能方便的图形化显示向量和矩阵,而且能对图形添加标注和打印。它包括强大的二维三维图形函数、图像处理和动画显示等函数。
5、程序接口
MATLAB应用程序接口(API)是一个使MATLAB语言能与C、Fortran等其它高级编程语言进行交互的函数库。该函数库的函数通过调用动态链接库(DLL)实现与MATLAB文件的数据交换,其主要功能包括在MATLAB中调用C和Fortran程序,以及在MATLAB与其它应用程序间建立客户、服务器关系。
-MATLAB
你把画图函数plot(t1,x1,t2,x2)
放在循环里,而t1,
x1,
t2,x2
都是只有两个元素的数组
每次都只会话2个点
所以是两条线段
1、下图所示为MATLAB的工作界面。
2、需要定义x变量(在工作命令窗口输入下述命令)x=0:001:4pi。
3、定义y与x之间的函数关系,输入:>>y=cos(x)。
4、可以观察到MATLAB的workspace窗口出现如下图所示的两个变量,变量中分别存储这x和y的数值信息。
5、输入:>>plot(x,y,'r-');即可出现如下图所示的y = cos(x) 在 [0, 4π] 上的图像。
6、如果对plot函数不熟悉的话,我们可以输入:>>doc plot,命令,来调用帮助对话框,查看帮助文档。
function rectexpd(T1,T0,m)
%矩形信号串信号分解与合成
%T1:矩形信号区间为(-T1/2,T1/2)
%T0:矩形信号串周期
%m:傅里叶级数展开项次数
t1=-T1/2:001:T1/2;
t2=T1/2:001:(T0-T1/2);
t=[(t1-T0)';(t2-T0)';t1';t2';(t1+T0)'];
n1=length(t1);n2=length(t2); %根据周期矩形信号函数周期,计算点数
f=[ones(n1,1);zeros(n2,1);ones(n1,1);zeros(n2,1);ones(n1,1)]; %构造周期矩形信号串
y=zeros(m+1,length(t));y(m+1,:)=f';
figure(1);
plot(t,y(m+1,:)); %绘制周期矩形信号串
axis([-(T0+T1/2)-05,(T0+T1/2)+05,0,12]);
set(gca,'XTick',[-T0,-T1/2,T1/2,T0]);
set(gca,'XTickLabel',{'-T0','-T1/2','T1/2','T0'});
title('矩形信号串');grid on;
a=T1/T0;
pause; %绘制离散幅度谱
freq=[-20:1:20];
mag=abs(asinc(afreq));
stem(freq,mag);
x=aones(size(t)); %T1f0
for k=1:m %循环显示谐波叠加图形
pause;
x=x+2asinc(ak)cos(2pitk/T0);
y(k,:)=x;
plot(t,y(m+1,:));hold on;
plot(t,y(k,:));hold off;grid on;
axis([-(T0+T1/2)-05,[T0+T1/2]+05,-05,15]);
title(strcat(num2str(k),'次谐波叠加'));
xlabel('t');end %同一级对齐
pause;
plot(t,y(1:m+1,:));grid on;
axis([-T0/2,T0/2,-05,15]);
title('各次谐波叠加');xlabel('t');
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)