一、信号的matlab表示与绘图
1、连续信号绘图,例:
t=0:0.0001:5;
a=5;
b=-0.8;
x=a*exp(b*t).*sin(pi*t); %注意是“.*”
plot(t,x); %绘制出信号关于变量t的波形
图形绘制如下:
2、离散信号的绘制,例:
k=-5:5;
c=2;
d=0.8;
y=c*d.^k; %注意是“.^”
stem(k,y); %从k轴到数据值按茎状形式画出,以圆圈终止
图像绘制如下:
二、matlab求解系统的响应
对于LTI(线性时不变系统)
%求连续系统的零状态响应,t表示因变量时间,f表示输入信号,sys是系统模型
y=lsim(sys,f,t);
%计算由差分方程描述的系统的零状态响应,a,b是差分方程左右端的系数向量,x表示输入序列
y=filter(b,a,x);
%系统模型要借助tf函数获得,b和a分别为微分方程左右端各项系数
sys=tf(b,a);
例:
在t>=0时接入激励,求零状态响应
sys=tf([1],[1,2,77]); %系统
t=0:0.001:5;
f=10*sin(2*pi*t); %信号
y=lsim(sys,f,t);
plot(t,y);
图像绘制如下:
三、matlab求解冲激响应与阶跃响应
对于LTI(线性时不变系统)
%a和b表示系统方程左端和右端的系数向量
连续系统的冲激响应:impulse(b,a)
离散系统的冲激响应:impz(b,a,k) %k表示输出序列的取值范围
阶跃响应:step(b,a)
例:求以下系统的冲激响应和阶跃响应
a=[7 4 6];
b=[1 1];
subplot(2,1,1) %subplot(m,n,p) m表示图排成m行,n表示图在一行上排n列,p表示图所在的位置(从左到右从上到下)
impulse(b,a);
subplot(2,1,2)
step(b,a);
四、卷积的matlab求解
%处理离散卷积的函数:conv(f1,f2),对序列做卷积运算
t1=0:0.001:1
ft1=2*rectpuls(t1-0.5,1); %rectpuls可产生高度为1、宽度为w、关于t=0对称的矩形脉冲信号
t2=0:0.001:2
ft2=t2;
t3=0:0.001:3
ft3=conv(ft1,ft2);
ft3=ft3*0.001; %因为前面取了一千个样点,卷积的数值变多,要乘以0.001缩下来相当于取均了值
plot(t3,ft3)
五、信号的频域分析
%周期信号的频谱Cn为离散信号,可以用stem画其频谱图
stem(k,abs(Cn)) %获得其幅度频谱,k为取值范围
stem(k,angle(Cn)) %获得其相位频谱
%离散周期信号的频谱分析,快速傅里叶变换
Y=fft(x) %x是一个周期序列,Y是周期信号在频谱上的相应值
例 :
N=32; M=4;
x=[ones(1,M+1) zeros(1,N-2*M-1) ones(1,M)]; %输入信号
% plot(x);
X=fft(x);
m=0:N-1;
subplot(2,1,1);
plot(m,abs(X)) %画出幅值
subplot(2,1,2);
plot(m,angle(X)) %画出相位
得到结果
六、系统的频域分析
%连续系统的频率响应
H=freqs(b,a,w) %b表示分子多项式系数,a表示分母多项式系数,w表示需计算的抽样点
plot(w,abs(H)) %画出幅值
plot(w,angle(H)) %画出相位
%离散系统的频率响应
H=freqz(b,a,w) %b表示分子多项式系数,a表示分母多项式系数,w表示需计算的抽样点
plot(w,abs(H)) %画出幅值
plot(w,angle(H)) %画出相位