matlab在信号与线性系统下的应用(1)
作者:互联网
matlab在信号与线性系统下的应用
前言
matlab和信号与线性系统的结合:符号运算和数值仿真计算。
一、matlab的数值计算
1.算术运算
加减乘除等同正常的操作符,复数可以用直角坐标或者极坐标的形式来表示,也可以用极坐标形式来表示
A = 1+i
B = 2*exp(i*pi/6)
同时,复数的实部,虚部,模,幅角等值都可以通过matlab函数总结得到
real(A)
imag(A)
abs(A) sqrt(A*conj(A))
angle(A) angle(A)*180/pi
2.向量运算
直接输入向量的话用;分隔生成列向量 , 分隔生成行向量
a =[1,2,3]
b=[1;2;3]
还可以按照起始位置:步长:结束位置来形成向量
t = 0:2:10
s = 0:10
在连续时间信号和离散时间信号的表示过程中,经常会用到冒号表达式。比如下面用到的再图形绘制方面的应用。
向量和数进行正常的运算,但向量和向量之间采用的运算有两种:
- 采用向量运算法则 ,乘法要保证第一个的列数等于第二个行数。
- 采用数之间的运算法则 ,点运算,相同矩阵位置进行相同的算术运算,标量常数可以进行任何点运算。符号是由一个点和加减乘除组成。
在使用过程中要注意区分这两种类别,在特定场景下适合用那种。
t=0:0.01:1;
y=(sin(t).*exp(-2*t)+5)./(cos(t)+t.^2+1);
这里两个地方就是都用点乘。理解为不需要做矩阵运算。
3.符号运算
较解析式由更好的通用性,但注意在使用前要先定义符号变量。并创建符号表达式。
sys 变量名
syms x y z
whos %查看定义的变量
sym('变量名') %定义符号变量
sym('表达式')
sym('x+1');
并且,在符号运算中,可以使用simple,simplify函数来化简运算结果。
syms x
f1 = sin(x)^2;
f2 = cos(x)^2;
y = f1+f2;
y=simplify(y); %化简步骤
4.matlab绘图
这里主要是采用plot完成基本绘图和subplot来进行分平面 绘图,还有是一个是ezplot(y,[a,b])命令来绘制符号表达式的曲线
t = 0:0.01:5;
y = sin(5*pi*t)+1./(cos(pi*t)+2;
plot(x,y)
axis([0,5,-1,2.5)
xlabel('t'),ylabel('y'),
grid on
subplot(mnp) %行列,第几个图像区域
ezplot(y,[a,b]) %符号函数
5.m文件
其中m文件由m函数文件和m脚本文件
m脚本文件就是由若干命令或函数的集合,用于执行特定的功能。m函数文件不同于脚本文件,是一种封装结构,通过外界提供输入量得到函数文件的输出结果。
6.流程控制
for循环结构 ,while循环,if分支结构,switch分支结构
for 循环变量 =初值:增量:终值
循环体
end
while 逻辑表达式
循环体
end
if 逻辑表达式
程序模块1
elseif 逻辑表达式2
程序模块2
else
程序模块n
end
switch 表达式
case 常量1
程序模块1
case 常量2
程序模块2
otherwise
程序模块n
end
二、信号的matlab表示
1.典型型号的 表示
y=K*exp(a*t)
y=K*sin(w*t+phi)
y=K*e^(st)
real() imag() abs() angle() %实部,虚部,模,相角
y=sinc(t)=sin(pi*t)/(pi*t) %抽样信号!!!
y=rectpuls(t,width) %幅度为1,宽度width,t=0为对称轴,
y=square(t,DUTY) %DUTY占空比,周期2Π,幅值为t
y=tripuls(t,width,skew) %幅度为1,宽度为width,以t=0为中心,width/2大小,斜度为skew的三角波,skew取值在-1到1
y=sawtooth(t,width) %周期为2Π,峰值为1的周期三角波或锯齿波信号,width是y最大值出现的位置,在0到1取值。
ft=(t>=0); %阶跃信号
2.实例学习
K=2;w=3;phi=pi/4;
t=0:0.01:3;
ft=K*cos(w*t+phi);
plot(t,ft),grid on;
axis([0,3,-3,3])
title('余弦信号')
t = -10:0.01:10;
ft = 2+exp(i*(pi/4)*t)+exp(i*(pi/2)*t);
subplot(2,2,1);plot(t,real(ft));title('实部');axis([-10,10,0,5]);grid on;
subplot(2,2,2);plot(t,imag(ft));title('虚部');axis([-10,10,-5,5]);grid on;
subplot(2,2,3);plot(t,abs(ft));title('模');axis([-10,10,0,5]);grid on;
subplot(2,2,4);plot(t,angle(ft));title('相角');axis([-10,10,-5,5]);grid on;
t=0:0.01:3;
y = square(2*pi*t,50);
plot(t,y),grid on;
axis([0,3,-1.2,1.2]);
title('周期方波信号')
总结
在信号与线性系统学到的函数可以通过matlab相对简单实现,在平时的学习中也起到很好的辅助作用。
标签:10,线性系统,运算,plot,matlab,信号,ft,pi 来源: https://blog.csdn.net/qq_45494369/article/details/111180189