信号与系统常用matlab函数
2017-12-10 21:42
302 查看
一、连续信号的matlab表示
1.抽样函数:sinc(t)=sin(pi*t)/(pi*t)
2.矩形脉冲信号:
rectpuls(t,width)
产生一个幅值为1(0~1),宽度为width,相对于t=0点左右对称的矩形波信号,横坐标范围由向量t决定,以t=0为中心向左右各展开width/2的范围。width默认值为1,
t=0:0.001:4;
T=1;
ft=rectpuls(t-2T,2*T);
plot(t,ft);
相当于把矩形函数右移了2T,矩形宽度是2T
周期性矩形波(方波)信号在matlab中用square函数来表示,调用形式为
y=square(2*pi*f*t,DUTY)
幅值为±1,占空比为duty,
>> t=-0.0625:.0001:.0625;
>> y=square(2*pi*30*t,75);%占空比为75%,频率为30Hz
三角波脉冲信号
y=sawtooth(2*pi*f*t,width)
幅值±1,width参数介于0-1之间,表示最大幅度出现的位置
一般周期性脉冲信号
pulstran(T,d,’func‘,,)后面接了func的相关参数
T表示了横坐标范围,d表示信号周期,基于一个名为func的连续函数并以之为一个周期,从而产生一串周期性的连续函数。
二、离散信号的Matlab表示
k=-2:4;f=[2,1,1,-1,3,0,2];
若序列是从k=0开始的,只用一个向量f就可以表示该序列了。由于内存限制,matlab不能表示一个任意的无穷序列
1.指数序列
>> k=0:10;
>> A=1;
>> a=-0.6;
>> fk=A*a.^k;由于k是一个矩阵,fk也应该是一个矩阵,对矩阵的元素进行运算,使用.^
>> stem(k,fk);
>> grid on
>> fk=A*a^k;
注意使用.^
2.正弦序列
3.单位冲激序列
只在k=0的位置是1,其他是0
借助全零矩阵函数:zeros
>> k=-50:50;
>> delta=[zeros(1,50),1,zeros(1,50)];
>> stem(k,delta)
101个数,两个矩阵合并成一个,中间的数是1,实现单位冲激序列
4.单位阶跃
利用ones函数ones(
4000
1,N)
三、信号运算的Matlab实现
1.信号的尺度变换、翻转、平移
直接对信号函数的x参数改改就好了
2.离散序列的差分与求和
y=diff(y);%意思是f[k]=f[k]-f[k-1]
y=sum(f(k1:k2));%意思是从k1到k2求和
3.连续信号的微分和积分
微分:
h=0.001;x=0:h:pi;
y=diff(sin(x.^2))/h;
积分:
quad('function_name',a,b)
function_name为被积函数名(也是.m文件的文件名),a和b是指定的积分区间
function yt=functri(t)
yt=tripuls(t,4,0.5);
>> h=0.001;
>> t=-3:h:3;
>> y1=diff(functri(t))/h;
>> figure(1);
>> plot(t(1:length(t)-1),y1);
在求微分之后,x的维数会减小1,
求积分:
t=-3:0.1:3;
for x=1:length(t)
y2(x)=quad('functri',-3,t(x));
end
figure(2);plot2(t,y2);
由于是积分图像,每一个位置都要有,所以采用循环的方式
也可以使用 integral函数
1.抽样函数:sinc(t)=sin(pi*t)/(pi*t)
2.矩形脉冲信号:
rectpuls(t,width)
产生一个幅值为1(0~1),宽度为width,相对于t=0点左右对称的矩形波信号,横坐标范围由向量t决定,以t=0为中心向左右各展开width/2的范围。width默认值为1,
t=0:0.001:4;
T=1;
ft=rectpuls(t-2T,2*T);
plot(t,ft);
相当于把矩形函数右移了2T,矩形宽度是2T
周期性矩形波(方波)信号在matlab中用square函数来表示,调用形式为
y=square(2*pi*f*t,DUTY)
幅值为±1,占空比为duty,
>> t=-0.0625:.0001:.0625;
>> y=square(2*pi*30*t,75);%占空比为75%,频率为30Hz
三角波脉冲信号
y=sawtooth(2*pi*f*t,width)
幅值±1,width参数介于0-1之间,表示最大幅度出现的位置
一般周期性脉冲信号
pulstran(T,d,’func‘,,)后面接了func的相关参数
T表示了横坐标范围,d表示信号周期,基于一个名为func的连续函数并以之为一个周期,从而产生一串周期性的连续函数。
二、离散信号的Matlab表示
k=-2:4;f=[2,1,1,-1,3,0,2];
若序列是从k=0开始的,只用一个向量f就可以表示该序列了。由于内存限制,matlab不能表示一个任意的无穷序列
1.指数序列
>> k=0:10;
>> A=1;
>> a=-0.6;
>> fk=A*a.^k;由于k是一个矩阵,fk也应该是一个矩阵,对矩阵的元素进行运算,使用.^
>> stem(k,fk);
>> grid on
>> fk=A*a^k;
注意使用.^
2.正弦序列
3.单位冲激序列
只在k=0的位置是1,其他是0
借助全零矩阵函数:zeros
>> k=-50:50;
>> delta=[zeros(1,50),1,zeros(1,50)];
>> stem(k,delta)
101个数,两个矩阵合并成一个,中间的数是1,实现单位冲激序列
4.单位阶跃
利用ones函数ones(
4000
1,N)
三、信号运算的Matlab实现
1.信号的尺度变换、翻转、平移
直接对信号函数的x参数改改就好了
2.离散序列的差分与求和
y=diff(y);%意思是f[k]=f[k]-f[k-1]
y=sum(f(k1:k2));%意思是从k1到k2求和
3.连续信号的微分和积分
微分:
h=0.001;x=0:h:pi;
y=diff(sin(x.^2))/h;
积分:
quad('function_name',a,b)
function_name为被积函数名(也是.m文件的文件名),a和b是指定的积分区间
function yt=functri(t)
yt=tripuls(t,4,0.5);
>> h=0.001;
>> t=-3:h:3;
>> y1=diff(functri(t))/h;
>> figure(1);
>> plot(t(1:length(t)-1),y1);
在求微分之后,x的维数会减小1,
求积分:
t=-3:0.1:3;
for x=1:length(t)
y2(x)=quad('functri',-3,t(x));
end
figure(2);plot2(t,y2);
由于是积分图像,每一个位置都要有,所以采用循环的方式
也可以使用 integral函数
相关文章推荐
- Unix系统中常用的信号含义
- Unix系统的常用信号
- Unix系统中常用的信号含义
- linux系统常用命令
- Linux系统/proc目录下常用文件介绍
- mysql常用操作命令 linux系统环境
- 你不常用却常见的matlab函数
- 机器人系统常用仿真软件工具介绍、效果与评价指标
- windows 系统常用 dll
- C#中常用的系统内置委托
- 常用系统信息API [转]
- 常用的系统存储过程
- solaris常用系统管理命令(一)
- 一步一步学习Linux(2):Linux常用根文件系统
- win10系统隐藏最近使用的文件和常用文件夹方法图解
- Linux 性能调优,网络开发,系统诊断常用命令总结
- windows系统常用服务及端口
- Python常用模块种类的系统介绍及与操作系统相关的调用和操作
- android系统的常用权限
- 时域中的离散信号和系统