Matlab第 7次课
1、多项式四则运算
2、多项式求导、求根和求值
3、求线性时不变系统的频率响应
1、多项式相乘
例、设有两个多项式 a(x)=2x3+4x2+6x+8及
b(x)=3x2+6x+9,要求作如下运算:
( 1)多项式相乘
多项式相乘其实只要得到多项式相乘后的多项式的系数即可,所以令
a=[2,4,6,8];b=[3,6,9];
由于多项式相乘和离散信号的卷积的规则完全相同,所以有
c=conv(a,b)
clc
clear,close all
a=[2,4,6,8];
b=[3,6,9];
c=conv(a,b)
2、多项式加、减
Matlab规定,只有长度相同的向量才能相加。 因此,在作加减运算时,首先要将短的向量 前面 补以若干个零元素,才能用 Matlab的矩阵加减法运算。
方法 1,手工加零
如,d=a+[0,b]
得 d=2 7 12 17
方法 2,利用 m程序自动加零
function y=polyadd(x1,x2)
n1=length(x1);
n2=length(x2);
if n1>n2 x2=[zeros(1,n1-n2),x2];
elseif n1<n2 x1=[zeros(1,n2-n1),x2];
end,y=x1+x2
clc
clear all
a=[2,4,6,8];
b=[3,6,9];
c=conv(a,b)
cd=polyadd(a,b)
cd2=polyadd(a,-b)
3、多项式相除
两个多项式相除,可能存在余式。
格式,[q,r]=deconv(c,a)
练习 1:
clc
clear,close all
a=[2,4,6,8];
b=[3,6,9];
c=conv(a,b)
[q,r]=deconv(c,a)
得到,q = 3 6 9
r = 0 0 0 0 0 0
练习 2:
令 a1=3 6 8 9
clc
clear,close all
a=[2,4,6,8];
b=[3,6,9];
c=conv(a,b)
a1=[3 6 8 9]
[q,r]=deconv(c,a1)
得到
q = 2.0000 4.0000 6.6667
r = 0 0 0 6.0000 12.6667 12.0000
练习 3 验证结果
用 商式乘以除式 再加上 余式 的方法进行验证。
clc
clear,close all
a=[2,4,6,8];
b=[3,6,9];
c=conv(a,b)
a1=[3 6 8 9]
[q,r]=deconv(c,a1)
c1=conv(q,a1)+r
c = 6 24 60 96 102 72
a1 = 3 6 8
c1 = 6 24 60 96 102 72
2、多项式求导、求根和求值
1)求根
设多项式 a(x)=x2+3x+2;b(x)= x2+2x+4;求其根。
格式,ra=roots(a),a=[1,3,2];
clc
clear,close all
a=[1,3,2];
b=[1,2,4];
ra=roots(a)
rb=roots(b)
2)求导
设多项式 a(x)=x2+3x+2;b(x)=3x3 +x2+2x+4;求其根。
格式,re=polyder(a),a=[1,3,2];
clc
clear,close all
a=[1,3,2];
b=[3,1,2,4];
da=polyder(a)
db=polyder(b)
得到 da= 2 3
db= 9 2 2
3)由根求多项式
格式,aa=poly(ra)
clc
Clear all
a=[1,3,2];
b=[1,2,4];
ra=roots(a)
rb=roots(b)
aa=poly(ra)
bb=poly(rb)
得到,aa = 1 3 2
bb =1.0000 2.0000 4.0000
4)多项式求值
指的是将多项式中的自变量 x赋予值 xv时,该多项式的值;
格式,F=polyval(a,xv)
clc
clear,close all
a=[1,3,2];
b=[1,2,4];
fa1=polyval(a,0)
fa2=polyval(a,1)
fb1=polyval(b,0)
fb2=polyval(b,1)
结果:
fa1 = 2
fa2 = 6
fb1 = 4
fb2 = 7
3、求线性时不变系统的频率响应
可以结合 polyval函数以及 Fourier变换的时域微分特性求系统的频率响应 H(j?)
接着求 H(j?)的幅频特性和相频特性
设系统的微分方程为
9638642 2
2
2
2
3
3

dt
dx
dt
xd
dt
dy
dt
yd
dt
yd
H(j?)的表达式
2)用线性常系数微分方程描述的 H(j?)
dtethjH tj )()(
1) h(t)的 Fourier变换


N
0 0
)()( )()(
k
M
k
k
k
k
i txbtya
Y(j?)=X(j?)*H(j?)
)(
)()(

jX
jYjH?
5,时域的微分和积分
x(t) X(j?)F 若
1)微分特性
)()]([ jXjtxdtdF?则
2)积分特性
)()0()(1])([
XjX
j
dttxF
t





N
0 0
)()()(
k
M
k
k
k
k jXjbjYja )(

N
k
k
k
M
k
k
k
ja
jb
jX
jY
jH
0
0
)(
)(
)(
)(
)(

可见,H(j?)是一个关于?的函数根据傅立叶变换的时域微分性质,对方程两边同时求傅立叶变换,得:
练习
clc
clear,close all
a=[2,4,6,8];
b=[3,6,9];
w=linspace(0,10);
A=polyval(a,j*w);
B=polyval(b,j*w);
subplot(2,1,1);
plot(w,abs(B./A))
subplot(2,1,2);
plot(w,angle(B./A))
w1=logspace(-1,1);
H=polyval(b,j*w1)./polyval(a,j*w1);
figure
subplot(2,1,1);
loglog(w1,abs(H))
subplot(2,1,2);
semilogx(w1,angle(H))
作业
4.13
自己编程,下节课检查