Matlab代写常见表达方法及调用实例分析

对于已经接触过Matlab编程软件的留学生来说,Matlab有多么强大就不用多说了。它可以帮助我们在算法开发,数据分析和交互环境方面取得许多成果。在matlab代写中,我们可以调用不同的语句来一起执行,这就是我们所谓的函数。然而在实际操作中,我们面临许多需要使用不同算法的不同变量,我们该如何自定义函数调用呢?今天Academicphd代写为您带来一些最常见的8函数调用示例分析,不会的同学们赶紧学起来吧!

三角波产生器

t=-3:0.01:3; 
f1=tripuls(t); 
subplot(3,1,1);
plot(t,f1); 
axis([-3,3,-0.2,1.2]) 
set(gcf,'color','w');
f2=tripuls(t,4); 
subplot(3,1,2); 
plot(t,f2); axis([-3,3,-0.2,1.2]) 
set(gcf,'color','w');
f3=tripuls(t,4,-1); 
subplot(3,1,3);
plot(t,f3); 
axis([-3,3,-0.2,1.2]) 

离散序列的相加与相乘

function[x,n]=jxl(x1,x2,n1,n2) 
n=min(min(n1),min(n2)):max(max(n1),max(n2)); 
s1=zeros(1,length(n));s2=s1;
s1(find((n>=min(n1))&(n<=max(n1))==1))=x1; 
s2(find((n>=min(n2))&(n<=max(n2))==1))=x2;
x=s1+s2;//x=s1.*s2:%序列乘 
axis([(min(min(n1),min(n2))-1),(max(max(n1),max(n2))+1),(min(x)-0.5),(max(x)+0.5)]) 

序列的反摺

function[x,n]=xlfz(x1,n1) 
x=fliplr(x1);n=fliplr(n1);
stem(n,x,'filled') 
axis([min(n)-1,max(n)+1,min(x)-0.5,max(x)+0.5]) 

序列的卷积

function[x,n]=gghconv(x1,x2,n1,n2)
x=conv(x1,x2) 
ns=n1(1)+n2(1);
leg=length(x1)+length(x2)-2;
n=ns:(ns+leg) 
subplot(2,2,1) 
stem(n1,x1,'filled')
title('x1(n)')
xlabel('n') 
subplot(2,2,2)
stem(n2,x2,'filled')
title('x2(n)')
xlabel('n') 
subplot(2,2,3) 
stem(n,x,'filled')
title('x(n)=n1(n)+x2(n)') 
xlabel('n')
p=get(gca,'position'); 
p(3)=2.4*p(3);
set(gca,'position',p) 

连续函数的卷积

function[f,t]=gggfconv(f1,f2,t1,t2) 
d=input('??ê?è?2é?ù????d:'); 
f=conv(f1,f2) 
f=f*d; ts=t1(1)+t2(1); 
l=length(f1)+length(f2)-2; 
t=ts:d:(ts+l*d); 
subplot(2,2,1) 
plot(t1,f1) 
axis([min(t1),max(t1),min(f1)-min(f1)*0.2,max(f1)+max(f1)*0.2])
title('f1(t)')
xlabel('t') 
subplot(2,2,2)
plot(t2,f2) 
axis([min(t2),max(t2),min(f2)-min(f2)*0.2,max(f2)+max(f2)*0.2]) 
title('f2(t)')
xlabel('t') 
subplot(2,2,3) 
plot(t,f) 
axis([min(t),max(t),min(f)-min(f)*0.2,max(f)+max(f)*0.2]) 
p=get(gca,'position'); 
p(3)=2.4*p(3);
set(gca,'position',p) 
title('f(t)=f1(t)*f2(t)')
xlabel('t') 

周期信号傅里叶级数

display('傅里叶展开的项数') 
m=input('m='); 
t=-2*pi:0.01:2*pi; 
n=round(length(t)/4); 
f=[ones(n,1);-1*ones(n,1);ones(n,1);-1*ones(n+1,1)];
ones(314,1); 
y=zeros(m+1,max(size(t)));
figure(1); y(m+1,:)=f'; 
figure(1);
plot(t/pi,y(m+1,:)); 
grid;
axis([-2 2 -1.5 1.5]); 
title('周期方波'); 
xlabel(size(t));
xlabel('单位:pi','Fontsize',8); 
x=zeros(size(t)); 
kk='1' for k =1:2:2*m-1 pause; 
x=x+sin(k*t)/k; 
y((k+1)/2,:)=4/pi*x; plot(t/pi,y(m+1,:));
hold on; 
plot(t/pi,y((k+1)/2,:)); 
hold off; 
grid; 
axis([-2 2 -1.5 1.5]);
title(strcat('第',kk,'次谐波叠加'));
xlabel('单位:pi','Fontsize',8);
kk=strcat(kk,',',num2str(k+2));
end pause; 
plot(t/pi,y(1:m+1,:)); 
grid; axis([-2 2 -1.5 1.5]);
title('各次谐波叠加');
xlabel('单位:pi','Fontsize',8); 

cos(2/3pi*t)的采样

display('奈奎斯特周期1.5s,Ts<1.5,过采样,Ts>1.5,欠采样'); 
display('Please input the value of sample period'); 
Ts=input('Ts=');
t=0:0.01:40; 
y=cos(2/3*pi*t); 
subplot(221); 
plot(t,y); 
axis([0 6 -1.1 1.1]);
xlabel('t  单位:s','Fontsize',8'); 
title('f(t)'); 
line([0 6],[0 0],'color',[0 0 0]); 
N=300; 
k=-N:N;
W=2*pi*5; 
w=k*W/N; 
Y=0.01*y*exp(-j*t'*w);
Y=abs(Y); 
subplot(222); 
plot(w/pi,Y); 
axis([-2,2,0,pi*7+0.2]) 
xlabel(' \omega 单位:s');
title('F(j\omega)');
subplot(223);
plot(t,y,'b:');
hold on t2=0:Ts:40; 
y2=cos(2/3*pi*t2);
stem(t2,y2); 
axis([0 6 -1.1 1.1]); 
xlabel('t  单位:s','Fontsize',8'); 
title('fs(s)'); 
hold off Y2=Ts*y2*exp(-j*t2'*w);
Y2=abs(Y2); 
subplot(224); 
plot(w/pi,Y,'b') 
xlabel(' \omega 单位:s'); 
title('Fs(omega)'); 
hold on plot(w/pi,Y2,'r');
axis([-2,2,0,pi*10]); 
hold off 

Sa的采样与重构

%奈奎斯特k=1,01,欠采样
display('Please input the value of k'); 
k=input('k=');
wm=1;         %信号带宽 
Ts=k*pi/wm; %采样间隔 
ws=2*pi/Ts; %采样角频率
wc=ws/2;  %    滤波器截止频率
n=-10:10;    %采样点的数量
m=fix(length(n)/2);       %单边采样周期  fix为取整
nTs=n*Ts;           %计算每个采样点 
dt=0.05; 
t=-m*Ts:dt:m*Ts; 
f=sinc(nTs/pi); 
fa=f*Ts*wc/pi*sinc((wc/pi)*(ones(length(nTs),1)*t-nTs'*ones(1,length(t))));
f2=sinc(t/pi); 
subplot(311); 
stem(nTs,f);     %绘制采样信号
hold on plot(t,f2,'r:');         %绘制包络 
xlabel('t ');
title('对Sa(t)信号进行采样'); 
axis([-m*Ts m*Ts -0.5 1.2]); 
hold off subplot(312); 
h1=plot(t,fa);    %绘制重构信号 
hold on 
for i = -m*Ts:dt:m*Ts
ft=sinc(i/pi)*sinc(wc/pi*(t-i));       %绘制重构信号的各个风量 
h2=plot(t,ft,'m:'); 
hold on
yy=sinc(i/pi); 
yy1=yy*yy; 
plot(i,yy1,'o'); 
endxlabel('t ');
title('重构信号'); 
axis([-m*Ts m*Ts -0.5 1.2]); 
legend([h1,h2],'重构信号','分信号')
hold off
subplot(313); 
error=abs(fa-f2);
plot(t,error);
axis([-m*Ts m*Ts min(error) max(error)+0.1*max(error)]); 
xlabel('t'); 
ylabel(' error(t)'); 

我们需要根据实际的情况来选择使用不同的函数调用,让matlab能够更好的实现我们所需要的效果,在matlab当中函数的执行是能够同时间处理和返回多个输出参数,这一点各位留学生们需要好好去理解。需要matlab代写的同学们赶紧联系我们网站在线客服吧~