第5章 CHAPTER 5 傅里叶分析和拉普拉斯 分析的应用 5.1引言 通信是傅里叶分析的典型应用领域。本章用实例说明信号和系统的频率表示如何应用在通信中,并介绍在通信中使用的调制、带宽和频谱等概念。通信系统由三部分组成: 发射机、信道和接收机。通信的目的是将消息通过信道由发射机传送至接收机。消息是一个信号,例如语音或音乐信号,一般包含的是低频率信号。消息的传输可以通过无线电波来完成,也可以通过一根连接发射机和接收机的导线来完成,或将二者结合起来,由此构成具有不同特性的信道。电话通信可以用导线,也可以不用导线,而无线电广播和电视都采用无线方式。在通信系统的分析和设计中,通过傅里叶变换建立起来的频率及带宽、频谱和调制等概念是最基础的内容。本章涉及的第一个课题是介绍有关通信中的问题,并将它与傅里叶分析联系起来,对这个课题的进一步分析,读者可参考通信领域方面的优秀书籍。本章涉及的另一个课题是模拟滤波器的设计。滤波是LTI系统在通信、控制和信号处理中非常重要的应用。本章介绍的这个课题的内容只是基础部分,我们将举例说明滤波器在设计和实现中与信号和系统有关的重要问题。 拉普拉斯变换在许多工程领域都有应用,尤其是在控制领域,本章将阐明拉普拉斯变换是如何与经典控制理论和现代控制理论相联系的。经典控制理论的目的是利用频域的方法改变已知系统的动力学特性,从而达到所期望的响应。这通常是由一个控制器反馈连接到一个装置上来完成的,该装置是一个系统,例如一台发动机、一个化学装置或一辆汽车,总之我们想要控制该系统使之以某种方式产生响应。控制器也是一个系统,它需要被设计成使该装置能够跟随一个预定的参考输入信号,通过将装置的响应反馈至输入端,就可以判断该装置如何对控制器作出响应。常用负反馈产生一个误差信号,根据这个误差信号能够对控制器的性能作出评价。传输函数、系统稳定性和利用拉普拉斯变换获得各种不同的响应类型等概念在经典控制系统的分析和设计中非常有用。 现代控制理论与此不同,它用时域的方法来表征和控制系统。状态变量的表示是一种比转移函数更通用的表示方法,因为它允许包含初始条件,而且能够方便地推广到多输入多输出的一般情况中。状态变量理论与线性代数和微分方程有着密切的联系。本章将介绍状态变量的概念、状态变量与转移函数的关系、拉普拉斯变换在求全响应中的应用及拉普拉斯变换在由状态方程和输出方程求转移函数中的应用。本章的目的是引出经典控制理论和现代控制理论中的一些问题,并将它们与拉普拉斯分析相关联。关于其更深入的分析可以在很多控制论的优秀著作中找到。 信号的时域 抽样定理 5.2连续信号的抽样定理 前面各章讨论的连续时间信号也称为模拟信号,此类信号实际上是模拟欲传输的信息而得到的一种电流或电压。由于受诸多因素的限制,一般模拟信号的加工处理质量不高。而数字信号仅用0、1来表示,它的加工处理相较于模拟信号有着无可比拟的优越性,因而受到广泛重视。随着数字技术及电子计算机技术的迅速发展,数字信号处理得到越来越广泛的应用,电子设备的数字化也已成为一种发展方向。 要得到数字信号,往往首先要对表示信息的模拟信号进行抽样,从而得到一系列离散时刻的样值信号,然后对此离散时刻的样值信号进行量化、编码,就可得到数字信号。可见,这里的一个关键环节就是抽样。现在的问题是,从模拟信号f(t)中经抽样得到的离散时刻的样值信号fs(t)是否包含了f(t)的全部信息,即从离散时刻的样值信号fs(t)能否恢复原来的模拟信号f(t)?抽样定理正是说明这样一个重要问题的定理,它在通信理论中占有相当重要的地位。 信号f(t)抽样的工作原理可用图51表述。抽样器相当于一个定时开关,它每隔Ts秒闭合一次,每次闭合时间为τ秒,从而得到样值信号fs(t)。 图51连续信号的抽样 图51所示的抽样原理从理论上分析可表述为f(t)与抽样脉冲序列PTs(t)的乘积,即 图52抽样脉冲序列 fs(t)=f(t)·PTs(t)(51) 式中的抽样脉冲序列PTs(t)如图52所示。它实际上就是以前所讨论过的周期矩形脉冲函数,可表示为 PTs(t)=∑∞n=-∞gτ(t-nTs)(52) 如果抽样脉冲序列是周期冲激函数序列δTs(t),则抽样得到的样值函数也为一个冲激函数序列,其各个冲激函数的冲激强度为该时刻f(t)的瞬时值。这种抽样称为理想抽样,理想抽样的过程及有关波形如图53所示。 图53周期冲激函数序列抽样 1. 抽样定理 连续时间信号f(t)的时域抽样定理可表述为: 最高频率为fm(Hz)的带限信号,由它在均匀间隔上的抽样值唯一决定,只要其抽样间隔Ts小于或等于12fm(s)。 由抽样定理可知,要求被抽样的信号f(t)为带限信号,即频带有限的信号,其最高频率为fm,最高角频率ωm=2πfm,即当|ω|>ωm时,F(jω)=0。带限信号及其频谱示意图如图54所示。 图54带限信号及其频谱 设信号f(t)为带限信号,其最高频率为fm,最高角频率为ωm=2πfm,即当|ω|>ωm时,F(jω)=0。带限信号f(t)经过理想抽样后的时域及频域波形如图55所示。 fs(t)=f(t)·δTs(t)=f(t)·∑∞n=-∞δ(t-nTs)=∑∞n=-∞f(nTs)δ(t-nTs)(53) fs(t)为每隔Ts秒均匀抽样而得到的样值函数,它是一个冲激函数序列,各冲激函数的冲激强度为该时刻f(t)的值。 图55信号抽样分别在时域和频域的过程 由前面章节的内容可知,周期冲激函数δTs(t)的频谱密度函数为 ω0δω0(ω)=ω0∑∞n=-∞δ(ω-nω0),ω0=2λTs(54) 由于fs(t)=f(t)·δTs(t),根据傅里叶变换的频域卷积性质,有 F[fs(t)]=12π[F(jω)*ω0∑∞n=-∞δ(ω-nω0)]=ω02π∑∞n=-∞[F(jω)*δ(ω-nω0)] =1Ts∑∞n=-∞F(j(ω-nω0))(55) 如图55所示,只要ω0≥2ωm,样值函数fs(t)的频谱Fs(jω)就周期性地重复着F(jω),而不会发生重叠。 由于要求ω0≥2ωm,即2πTs≥4πfm,可得等效条件为Ts≤12fm,我们把最大允许的抽样间隔Ts=12fm称为奈奎斯特间隔,把最低允许的抽样频率fs=2fm称为奈奎斯特频率。 上面的分析表明,只要以小于奈奎斯特间隔12fm秒的间隔对信号f(t)均匀抽样,那么得到的样值函数fs(t)的频谱密度函数Fs(jω)就是F(jω)的周期性复制,因而样值函数Fs(jω)就包含了f(t)的全部信息。 2. f(t)的恢复 当样值函数fs(t)经过一个截止频率为ωm的理想低通滤波器,就可从Fs(jω)中取出F(jω),从时域来说,这样就恢复了连续时间信号f(t),即 F(jω)=Fs(jω)·H(jω)(56) 式中,H(jω)为理想低通滤波器的频率特性。H(jω)的特性为 H(jω)=Ts,0,|ω|≤ωm|ω|>ωm(57) 信号的恢复过程如图56所示。 图56信号的恢复过程 3. 周期矩形脉冲抽样 周期矩形脉冲抽样可表示为 fs(t)=f(t)·PTs(t)(58) PTs(t)2πτTs∑∞n=-∞Sanω0τ2δ(ω-nω0)(59) 由于fs(t)=f(t)·PTs(t),同样,根据傅里叶变换的频域卷积性质,可得 F[fs(t)]=12πF(jω)*∑∞n=-∞2πτTsSanω0τ2δ(ω-nω0) =τTs∑∞n=-∞Sanω0τ2F[j(ω-nω0)](510) 周期矩形脉冲抽样原理如图57所示。 图57周期矩形脉冲抽样 5.3傅里叶分析在通信系统中的应用 本节涉及滤波器的设计。滤波是LTI系统在通信、控制和信号处理中非常重要的应用。本节将举例说明滤波器设计和实现中与信号和系统有关的重要问题。 5.3.1信号的调制和解调 两个信号在时域的乘法运算通常用来实现信号的调制,即由一个信号去控制另一个信号的某一个参量。信号的调制在通信领域的应用非常广泛。例如用一个低频的正弦波信号去控制另一个频率较高的正弦波信号的幅值,则产生一个振幅调制信号,又称调幅波。与产生调幅波的原理相似,还可以产生调频波、调相波和脉冲调制波等。 使用Modulate函数来实现信号的调制。有下面两种调用格式: (1) Y=Modulate(X,Fc,Fs,METHOD,OPT): 其中频率为Fc,采样频率为Fs,载波调制原信号为X,且Fs>2×Fc+BW,BW为原信号X的带宽,METHOD为调制方法,例如调频FM、调幅AM、调相PM,OPT为额外可选的参数,具体由调制方法而定。 (2) [Y,T]=Modulate(X,Fc,Fs,METHOD,OPT): 这里多出的T为与Y同长的时间向量。 相关MATLAB程序如下: %产生调制信号(AM) clf; n=[0:256];Fc=100000;Fs=1000000;N=1000; xn=abs(sin(2*pi*n/256)); xf=abs(fft(xn,N));y2=modulate(xn,Fc,Fs,'am'); subplot(211); plot(n(1:200),y2(1:200)); xlabel('时间(s)');ylabel('幅值');title('调幅信号'); yf=abs(fft(y2,N)); subplot(212);stem(yf(1:200)); xlabel('频率(Hz)');ylabel('幅值'); 调制信号产生的调幅信号结果如图58所示。 图58调幅信号及其频谱 在上面程序的基础之上加上以下程序段可以实现解调的操作。 %解调(AM) xo=demod(y2,Fc,Fs,'am'); figure; subplot(211); plot(n(1:200),xn(1:200)); title('原信号'); subplot(212) plot(n(1:200),2*xo(1:200)); title('解调信号'); axis([1 200 0 1]); 解调结果如图59所示。 图59原信号与解调信号 %产生调制信号(FM) clc;close all;clear; n=[0:256];Fc=100000;Fs=1000000;N=1000; xn=abs(sin(2*pi*n/256)); xf=abs(fft(xn,N)); y2=modulate(xn,Fc,Fs,'fm'); subplot(211); plot(n(1:200),y2(1:200)); xlabel('时间(s)');ylabel('幅值'); title('调频信号'); yf=abs(fft(y2,N)); subplot(212);stem(yf(1:200)); xlabel('频率(Hz)');ylabel('幅值'); 调制信号产生的调频信号结果如图510所示。 图510调频信号及其频谱 在上面程序的基础之上加上以下程序段可以实现信号解调的操作。 %解调(FM) xo=demod(y2,Fc,Fs,'fm'); figure subplot(211) plot(n(1:200),xn(1:200)); title('原信号');subplot(212) plot(n(1:200),1.6*xo(1:200)); title('解调信号');axis([1 200 0 1]); 程序产生的图形和AM解调类似,这里不再给出。 %产生调制信号(PM) clc;close all;clear; n=[0:256];Fc=100000;Fs=1000000;N=1000; xn=abs(sin(2*pi*n/256)); xf=abs(fft(xn,N)); y2=modulate(xn,Fc,Fs,'pm'); subplot(211);plot(n(1:200),y2(1:200)); xlabel('时间(s)');ylabel('幅值'); title('调相信号'); yf=abs(fft(y2,N)); subplot(212);stem(yf(1:200));xlabel('频率(Hz)');ylabel('幅值'); 调制信号产生的调相信号及其频谱结果如图511所示。 图511调相信号及其频谱 在上面程序的基础之上加上以下程序段可以实现解调的操作。 %解调(PM) xo=demod(y2,Fc,Fs,'pm'); figure subplot(211) plot(n(1:200),xn(1:200)); title('原信号');subplot(212);x0=x0/3.15 plot(n(1:200),xo(1:200)); title('解调信号');axis([1 200 0 1]); 程序产生的图形和AM解调类似,这里不再给出。 5.3.2信号的抽样和恢复 信号抽样和恢复的原理在5.2节中已经描述清楚,这里不再重复。为了便于描述,我们采用单一频率的正弦信号作为带限信号进行抽样和恢复。 相关MATLAB程序如下: %正弦信号采样 t=0:0.0005:1; f=13; xa=cos(2*pi*f*t); subplot(2,1,1); plot(t,xa); xlabel('时间(ms) ');ylabel('幅值'); title('连续时间信号xa(t) '); axis([0 1 -1.2 1.2]) subplot(2,1,2); T=0.1;n=0:T:1; xs=cos(2*pi*f*n); k=0:length(n)-1; stem(k,xs); xlabel('时间(ms) ');ylabel('幅值'); title('离散时间信号x(n)'); axis([0 (length(n)-1) -1.2 1.2]); 正弦信号的采样结果如图512所示。 图512正弦信号及其样值信号 %采样与重构 T=0.1;f=13; n=(0:T:1)'; xs=cos(2*pi*f*n); t=linspace(-0.5,1.5,500)'; ya=sinc((1/T)*t(:,ones(size(n)))-(1/T)*n(:,ones(size(t)))')*xs; plot(n,xs, 'o ',t,ya); xlabel('时间(ms)'); ylabel('幅值'); title('重构连续信号y_{a}(t)'); axis([0 1 -1.2 1.2]); 正弦信号的采样与重构结果如图513所示。 图513重构信号的波形 % 采样的性质 t=0:0.005:10; xa=2*t.*exp(-t); subplot(2,2,1) plot(t,xa); xlabel('时间(ms)');ylabel('幅值'); title('连续时间信号 x_{a}(t) '); subplot(2,2,2) wa=0:10/511:10; ha=freqs(2,[1 2 1],wa); plot(wa/(2*pi),abs(ha)); xlabel('频率(kHz)'); ylabel('幅值'); title('|X_{a}(jw)| '); axis([0 5/pi 0 2]); subplot(2,2,3) T=1; n=0:T:10; xs=2*n.*exp(-n); k=0:length(n)-1; stem(k,xs); xlabel('时间(ms)');ylabel('幅值'); title('离散时间信号 x(n)'); subplot(2,2,4) wd=0:pi/255:pi; hd=freqz(xs,1,wd); plot(wd/(T*pi),T*abs(hd)); xlabel('频率(kHz)'); ylabel('幅值'); title('|X(e^{jw})|'); axis([0 1/T 0 2]) 信号采样的性质仿真如图514所示。 图514信号采样的性质仿真 %模拟低通滤波器设计 Fp=3500; Fs=4500; Wp=2*pi*Fp; Ws=2*pi*Fs; [N,Wn]=buttord(Wp,Ws,0.5,30, 's'); [b,a]=butter(N,Wn, 's'); wa=0:(3*Ws)/511:3*Ws; h=freqs(b,a,wa); plot(wa/(2*pi),20*log10(abs(h)));grid xlabel('Frequency(Hz)'); ylabel('Gain(dB)'); title('Gain Response'); axis([0 3*Fs -60 5]); 模拟低通滤波器的设计结果如图515所示。 图515模拟低通滤波器 5.3.3数字滤波器设计 对于数字信号滤波来说,模拟其过程,就是通过将输入数值序列和代表滤波器本身性质的冲激响应序列做卷积。根据冲激响应序列有限长或无限长,分为有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器。 FIR的差分方程为 a(1)×y(k)=b(1)×f(k)+b(2)×f(k-1)+…+b(nb+1)×f(k-nb)(511) IIR的差分方程为 a(1)×y(k)+a(2)×y(k-1)+…+a(na+1)×y(k-na) =b(1)×f(k)+b(2)×f(k-1)+…+b(nb+1)×f(k-nb)(512) 在MATLAB中,可以用[b,a]=butter(N,Wn)等函数辅助设计IIR数字滤波器,也可以用b=fir1(N,Wn,′ftype′)等函数辅助设计FIR数字滤波器。 涉及函数有 [B,A]=butter(3,2/0.00025,′s′) [num2,den2]=bilinear(B,A,4000) Wn=kaiser(30,4.55) 以下是某个FIR滤波器设计的MATLAB程序。 %文件:FIRFilterExample.m fscale=1;fshift=0.0;dscale=1000;%比例参数 c9_Filter_Data;%载入数据 Freq_Resp=data;fs=900;filtsize=512;ts=1/fs; [himptime]=FIR_Filter_AMP_Delay(Freq_Resp,fs,filtsize,fscale,fshift,dscale); %使用窗[HJ2.4mm] nw=256;window1=hamming(nw);window=zeros(filtsize,1); %确保这个窗是个合适的中心窗 wstart=(filtsize/2)-(nw/2);wend=(filtsize/2)+(nw/2)-1; window(wstart:wend)=window1; impw=himp.*window'; figure;subplot(1,2,1);plot(abs(himp));grid; xlabel('TimeSampleIndex');ylabel('FilterImpulseResponse'); subplot(1,2,2);plot(abs(impw));grid; xlabel('TimeSampleIndex');ylabel('WindowedFilterImpulseResponse'); [logpsd,freq,ptotal,pmax]=log_psd(himp,filtsize,ts); [logpsdw,freq,ptotal,pmax]=log_psd(impw,filtsize,ts); figure;subplot(1,2,1) plot(freq(128:384),logpsd(128:384));grid; xlabel('FrequencySampleIndex');ylabel('FrequencyResponse'); subplot(1,2,2) plot(freq(128:384),logpsdw(128:384));grid; xlabel('FrequencySampleIndex'); ylabel('WindowedFrequencyResponse'); %函数文件结束 %文件:FIR_Filter_AMP_Delay.m function[h,times]=FIR_Filter_AMP_Delay(H,fs,n,fscale,fshift,dscale) %这个函数返回FIR滤波器的脉冲响应 %h为脉冲响应值在t=times时的行向量 %h被平移到中心,脉冲响应阵列为n/2*ts %假设在给定的频率响应里没有固定时延 %H是频率响应的一个阵列 %Column1:[JP3]平移和比例缩放使频率f必须在-fs/2~fs/2,然后频率fk顺序上升 %Column2:20*log(|H(fk)|); %Column3:群时延单位1/frequency %(i.e:如果频率的单位是MHz,那么时延的单位应该是ms) %另外用dscale来调节时延delay=delay/dscale %Ex:如果delay以ns来定义,那么delayms=delayns/1000 %相位响应在f=0通过积分时延来获得 %Phase((k+1)df)=phase(kdf)+2*pi*(fs/nfft)delay(kdf)[HJ2.2mm] %=phase(kdf)+(2*pi*/nfft)(delay(kdf)/ts) %fscaleandfshift:f=(f-fshift)/fscale %fs:抽样率 %n:脉冲响应持续周期;频率响应从(-fs/2)+df/2到fs/2-df/2,使用df=fs/n再次抽样 ts=1/fs;df=fs/n; %获得频率、幅度和相位响应阵列 %转换dbs为实数;重置频率 Hfreq=H(:,1);Hmag=H(:,2);Hdelay=H(:,3); nn=max(size(Hmag));Hreal=10.^(Hmag/20); Hfreq=(Hfreq-fshift)/fscale;Hdelay=Hdelay/dscale; %给频率和时间设置阵列索引 index1=[0:1:(n/2)];index2=[-(n/2)+1:1:-1];index=[index1index2]'; frequencies=(index*df);times=index*ts; %用FFT循环移位来改变平移时间索引 times=shift_ifft(times,n); %内插过程中给频率响应数据在-fs/2和fs/2端加上两个以上的输入 fmin=min(min(frequencies));fmax=max(max(frequencies)); %通过扩展频率和其他阵列的变换使其位于-fs/2+df和fs/2+df之间 Hfreq1=Hfreq;Hreal1=Hreal;Hdelay1=Hdelay; if fmin<Hfreq(1,1)%如果低级结果没有扩展到-fs/2,就加一个点 Hfreq1=[fmin;Hfreq]; Hreal1=[1e-10;Hreal]; Hdelay1=[Hdelay(1,1);Hdelay]; end if fmax>Hfreq(nn,1)%如果高级结果没有扩展到fs/2,就加一个点 Hfreq1=[Hfreq1;fmax]; Hreal1=[Hreal1;1e-10]; Hdelay1=[Hdelay1;Hdelay(nn,1)]; end %插入频率响应数据并计算复数 %转移函数mag*exp(i*phase) Hreal_interpolated=interp1(Hfreq1,Hreal1,frequencies); Hdelay_interpolated=interp1(Hfreq1,Hdelay1,frequencies); %积分时延来得到相位响应 sum=0.; Hphase(1)=0.;%载波相位的频率为0 for k=2:(n/2)+1%从f>0求积分 sum=sum-(Hdelay_interpolated(k,1)/ts)*(2*pi/n); Hphase(k,1)=sum; end sum=0.0; for k=n:-1:(n/2)+2%从f<0求积分 sum=sum+(Hdelay_interpolated(k,1)/ts)*(2*pi/n); Hphase(k,1)=sum; end Hcomplex=Hreal_interpolated.*exp(i*Hphase); %得出逆FFT并进行平移 hh=ifft(Hcomplex);h=(shift_ifft(hh,n)); %滤波器的设计及函数文件结束 %函数文件:shift_ifft.m functiony=shift_ifft(x,n) %循环移位IFFT阵列 for k=1:(n/2)-1 y(k)=x((n/2)+k+1); end for k=1:n/2+1 y((n/2)-1+k)=x(k); end %函数文件结束 %函数文件:log_psd.m function[logpsd,freq,ptotal,pmax]=log_psd(x,n,ts) %这个函数进行n点时域抽样(实数或者复数)并且通过执行(fft/n)^2找出psd,这个双边谱是由 %psd的移位产生的;阵列频率给绘图提供了合适的频率值,通过计算10*log10(psd/max(psd)), %psd被归一化;值低于60dB时,被设置为-60dB %n必须是一个偶数,最好是2的幂 y=zeros(1,n);%初始化y向量 h=waitbar(0,'ForLoopinPSDCalculation'); for k=1:n freq(k)=(k-1-(n/2))/(n*ts); y(k)=x(k)*((-1.0)^k); waitbar(k/n) end; v=fft(y)/n; psd=abs(v).^2; pmax=max(psd); ptotal=sum(psd); logpsd=10*log10(psd/pmax); %在-60dB处截断负值 for k=1:n if(logpsd(k)<-60.0) logpsd(k)=-60.0; end end close(h) %函数文件结束 5.4拉普拉斯分析在经典控制系统中的应用 5.4.1控制系统的数学模型 设单输入单输出线性时不变连续系统的输入信号为f(t),输出信号为y(t),则其微分方程的一般形式为 andny(t)dtn+an-1dn-1y(t)dtn-1+…+a1dy(t)dt+a0 =bmdmf(t)dtm+bm-1dm-1f(t)dtm-1+…+b1df(t)dt+b0(513) 式中,系数a0,a1,…,an和b0,b1,…,bm为实常数,且m≤n。 对式(513)在零初始条件下求拉普拉斯变换,并根据传递函数的定义可得单输入单输出系统传递函数的一般形式为 H(s)=L[y(t)]L[f(t)]=bmsm+bm-1sm-1+…+b1s+b0ansn+an-1sn-1+…+a1s+a0=B(s)A(s)(514) 式中: B(s)=bmsm+bm-1sm-1+…+b1s+b0为传递函数的分子多项式; A(s)=ansn+an-1sn-1+…+a1s+a0为传递函数的分母多项式,也称为系统的特征多项式。 在MATLAB中,控制系统的分子多项式系数和分母多项式系数分别用num和den表示,即 num=[bm,bm-1,…,b1,b0],den=[an,an-1,…,a1,a0] 以传递函数表示系统的形式叫作传递函数模型。 5.4.2控制系统数学模型的建立 在MATLAB中,使用函数tf()建立或转换控制系统的传递函数模型。其功能和主要格式如下。 功能: 生成线性定常连续/离散系统的传递函数模型,或者将状态空间模型或零极点增益模型转换成传递函数模型。 格式: sys=tf(num, den)生成传递函数模型sys。 sys=tf(num,den,'Property1',Value1, …,'PropertyN',ValueN)生成传递函数模型sys。模型sys的属性(Property)及属性值(Value)用'Property'及Value指定。 sys=tf(num, den, Ts)生成离散时间系统的脉冲传递函数模型sys。 sys=tf(num,den,Ts,'Property1',Value1,…,'PropertyN',ValueN)生成离散时间系统的脉冲传递函数模型sys。 sys=tf('s')指定传递函数模型以拉普拉斯变换算子s为自变量。 sys=tf('z',Ts)指定脉冲传递函数模型以Z变换算子z为自变量,以Ts为采样周期。 tfsys=tf(sys)将任意线性定常系统sys转换为传递函数模型tfsys。 说明: ①对于单输入单输出系统,num和den分别为传递函数的分子向量和分母向量,对于多输入多输出系统,num和den为行向量的元胞数组,其行数与输出向量的维数相同,列数与输入向量的维数相同; ②Ts为采样周期,若系统的采样周期未定义,则设置Ts=-1或者Ts=[ ]; ③缺省情况下,生成连续时间系统的传递函数模型,且以拉普拉斯变换算子s为自变量。 5.4.3控制系统数学模型参数的获取 应用MATLAB建立了系统模型后,MATLAB会以单个变量形式存储该模型的数据,包括模型参数(如状态空间模型的A,B,C,D矩阵)等属性,例如输入/输出变量名称、采样周期、输入/输出延迟等。有时需要从已经建立的线性定常系统模型(如传递函数模型、零极点增益模型、状态空间模型或频率响应数据模型)中获取模型参数等信息,此时除了使用函数set()和函数get()以外,还可以采用模型参数来达到目的。由线性定常系统的一种模型可以直接得到其他几种模型的参数,而不必进行模型之间的转换。 下面以函数zpkdata()为例,说明模型参数获取函数的使用方法。该函数的调用格式如下: [z, p, k]=zpkdata(sys)返回由sys所示线性定常系统零极点增益模型的零点向量z,极点向量p和增益k。 说明: ① 为了方便多输入多输出模型或模型数组数据的获取,缺省情况下,函数tfdata()和zpkdata()以元胞数组形式返回参数(例如num,den,z,p等); ② 对于单输入单输出模型而言,可在调用函数时应用第二个输入变量'v',指定调用该函数时返回的是向量(Vector)数据而不是元胞数组。 也可以采用一条MATLAB命令直接显示零点向量和极点向量,即 >>[z1,p1,k]=zpkdata(tf(num,den),'v') 运行后,得到系统的零点向量z1、极点向量p1和增益k与前述相同。 习题 51对下列信号求奈奎斯特间隔和频率: (1) Sa(100t);(2) Sa2(100t);(3) Sa(100t)+Sa(50t);(4) Sa(100t)+Sa2(60t)。 52已知信号f(t)=sin(4πt)πt,当对该信号取样时,求能恢复原信号的最大取样周期。设计MATLAB程序进行分析并给出结果。 53设计一模拟信号: x(t)=3sin(2πft)。采样频率fs为5120Hz,取信号频率f=150Hz(正常采样)和f=3000Hz(欠采样)两种情况进行采样分析。设计MATLAB程序进行分析并给出结果。 54已知H(s)=s+2s3+2s2+2s+1,分别利用(1)求系统响应的方法; (2)求系统特征值的方法,确定系统的稳定性。设计MATLAB程序进行分析并给出结果。 55已知控制系统的传递函数为H(s)=10(s+1)s(s+2)(s+5),用MATLAB建立其数学模型。 56线性定常连续系统的传递函数为H(s)=s2+3s+2s3+5s2+7s+3,应用MATLAB建立其零极点增益模型。