当前位置:首页 >> 信息与通信 >>

《数字信号处理实验》


《数字信号处理》实验
实验一: 系统函数与频率响应特性

一、实验目的: 1、熟悉 MATLAB 的工作环境,学会使用 MATLAB 语言编写较复杂的程序。 2、掌握系统函数的零极点位置与系统频率响应曲线形状的关系。 二、实验内容: 1、编写程序, 作出并观察连续时间系统高通、低通和带通滤波器的零极图 与频响特性曲线。如:

H

LP ( s ) ?

1 , 2 s ? s ?1
s , 2 s ? s ?1

H HP ( s ) ?

s2 , s2 ? s ?1 s2 ? s ?1 s2 ? s ?1

H BP ( s ) ?

H AP ( s ) ?

2、编写程序,作出并观察离散时间系统的零极图与频响特性曲线。如: z ?1 z ?1 , H HP ( z ) ? , (0< a <1) H LP ( z ) ? z?a z?a

H BP ( z ) ?

1 ? az z 2 ?1 , H AP ( z ) ? 2 z?a z ?a

(|a|<1)

三、实验要求: 1、实验前,应编写出实验用程序的草稿。 2、改变数据,观察在不同零极点情况下频响曲线的形状。 3、实验报告应给出不同的系统函数,对应的频响曲线和理论分析。
H(s)的 零 极 点 图 0.8 0.6 0.4 0.2

附:1、参考程序和说明
已 知 一 因 果 系 统 的 系 统 函 数 为

虚部

s2 ? 4 。 画 出 H ( s) ? 4 s ? 2s 3 ? 3s 2 ? 2s ? 1

0 -0.2 -0.4

H ( s) 的零、极点分布图。
解:输入如下 M 文件:

-0.6

a=[1 2 -3 2 1]; b=[1 0 -4];

-0.8 -4

-3

-2

-1
实部

0

1

2

,并将结果返回给向量 p p=roots(a); %求 A(s)的根( H ( s ) 的极点) q=roots(b);%求 B(s)的根( H ( s ) 的零点) ,并将结果返回给向量 q
1

hold on plot(real(p),imag(p),'x'); plot(real(q),imag(q),'o'); title('H(s)的零极点图');grid on; ylabel('虚部');xlabel('实部')

%二阶连续时间系统频响特性: H(s)=1/(s^2+1.414s+1) , a=[1 1.4142136 1]; b=[0 0 1]; w=linspace(0,8*pi); s=j*w; A=polyval(a,s); B=polyval(b,s); subplot(2,1,1); plot(w,abs(B./A)); subplot(2,1,2); plot(w,angle(B./A)); %系统函数分母多项式系数 %分子多项式系数 %角频率范围取0~8π %s=jω %求分子多项式的值 %求分母多项式的值 %图形两行一列排列,显示上边的图形 %作幅频曲线 %显示下边的图形 %作相频曲线

1 0 .5 0 0 0 -2 -4 0 5 1 0 1 5 2 0 2 5 3 0 5 1 0 1 5 2 0 2 5 3 0

%离散系统频响特性:H(z)=(z+1)/(z-0.5), 低通滤波器 a=[1 -0.5]; b=[1 1]; w=linspace(0,2*pi); z=exp(j*w); A=polyval(a,z); B=polyval(b,z); subplot(2,1,1); plot(w,abs(B./A));title('数字低通滤波器幅频曲线'); subplot(2,1,2); plot(w,angle(B./A));title('数字低通滤波器相频曲线');

2

2、参考函数与说明: loglog(w,z) semilogx(w,z) semilogy(w,z) logspace(w1,w2) freqs(b,a)

% x-y 轴均为 log10 刻度的对数坐标。 % x 轴为对数刻度的坐标。 % y 轴为对数刻度的坐标。 % 形成 w1 起到 w2 的对数间隔的向量。 % 作以 a,b 为分母分子多项式系数的 CTS 系统的频率% 响应。 freqz(b,a) % 作以 a,b 为分母分子多项式系数的 DTS 系统的频率% 响应。 zplane(b,a) % 作以 a,b 为分母分子多项式系数的系统函数的零极 % 图,或以 b 为零点矢量、a 为极点矢量的零极图。 在 MATLAB 的命令窗中, 输入 type 函数名 即刻显示该函数的说明与程序 清单。 3、内插函数的幅度与相位
%内插函数 n=input('n='); a=ones(1,n); w=linspace(0,2*pi); z=exp(-j*w); A=polyval(a,z); subplot(2,1,1); plot(w,abs(A)); subplot(2,1,2); plot(w,angle(A));

下图为 n=8 时的图形

10 5 0 0 5 0 -5 0

1

2

3

4

5

6

7

1

2

3

4

5

6

7

3

《数字信号处理》实验
实验二:离散傅立叶变换(DFT)的认识

一、实验目的: 理解和掌握离散傅立叶变换是学习《数字信号处理》的基础。通过本实 验,应该加深理解离散傅立叶变换及其一般特性,了解利用 DFT 对信号进行 谱分析时注意的问题。 二、实验内容: 1、按定义式编写 DFT 与 IDFT 程序,输入数据,运行程序,显示信号的时间 波形和 DFT 图形。例如:序列或序列的 DFT 为: {1,1,1,1,1,1,1,1} ;{1,1,1,1,0,0,0,0} {1,1,1,0,0,0,0,0} ;{1,0,0,0,0,0,0,0} 2、应用 DFT 对离散时间信号进行谱分析。近似求信号的 DTFT,并与它的 DFT 作比较。 例如:设 x(n) ? cos(?1n) ? 0.75 cos(? 2 n) ;求当

2? 4? 2? 2? ; ⑵ ?1 ? ;N=64 点的 DFT。 ,?2 ? ,?2 ? 14 15 16 8 3、以上信号,保持 64 个样值点,用后面补零的方法做 N=128 点的 DFT;以 上信号,用 128 个样值点,作 N=128 点的 DFT 。 4、应 用 DFT 对 连 续 时 间 信 号 进 行 谱 分 析 。 例 如 : 设 连 续 时 间 信 号 :
⑴ ?1 ?
x1 (t ) ? cos(2? ? 512t ) ? 0.75 cos(2? ? 1024t ) ,将其进行抽样,

⑴ 抽样频率 f s ? 8192 Hz ,然后,按 2、3、用 DFT 进行谱分析; ⑵ 抽样频率 f s ? 2048Hz ,然后,按 2、3、用 DFT 进行谱分析; ⑶ 分别作样值点 N=64、128、256、512、1024 的 DFT,考察各种情 况下的频谱泄露和频率分辨力的变化。 三、实验要求: 1、实验前,应编写出实验用程序的草稿。 2、输入不同数据,运行程序,输出数据和图形,观察其输入和输出结果。 3、实验报告应给出输入数据及其图形,对应的变换或反变换的数据和图形。 对结果给出说明,并作出理论分析。

附:参考程序

%DFT directly operate global x; N=input('N=');
4

nv2=N/2; for k=0:N-1 for n=0:N-1 w(k+1,n+1)=exp(-j*pi*k*n/nv2); end end X=w*x'; n=0:N-1; k=0:N-1; subplot(1,2,1); stem(n,x); subplot(2,2,2); stem(k,abs(X)); subplot(2,2,4); stem(k,angle(X)); ×××××××××××××××××× function [Xk] = dft(xn,N) % 计算离散富利叶变换 % [Xk] = dft(xn,N) % Xk = 在 0 <= k <= N-1 间的 DFT 系数组 % xn = N 点有限持续时间系列 % N =DFT 的长度 n = [0:1:N-1]; % n 的行相量 k = [0:1:N-1]; % k 的列相量 WN = exp(-j*2*pi/N); % Wn 因子 nk = n'*k; % 产生一个含 nk 值的 N 乘 N 维矩阵 WNnk = WN .^ nk; % DFT 矩阵 Xk = xn * WNnk; % DFT 系数的行相量 ×××××××××××××××××× function [xn] = idft(Xk,N) % 计算逆离散富利叶变换 % [Xn] = dft(xk,N) % xn = 在 0 <= n <= N-1 间 N 点有限持续时间系列 % Xk =在 0 <= k <= N-1 间的 DFT 系数组 % N =DFT 的长度 n = [0:1:N-1]; % n 的行相量 k = [0:1:N-1]; % k 的行相量 WN = exp(-j*2*pi/N); % Wn 因子 nk = n'*k; % 产生一个含 nk 值的 N 乘 N 维矩阵 WNnk = WN .^ (-nk); % IDFT 矩阵 xn = (Xk * WNnk)/N; % IDFT 的行相量

5

《数字信号处理》实验
实验三:快速离散傅立叶变换及其应用
一、实验目的: 1、加深对 FFT 的理解,熟悉 MATLAB 中的有关函数。 2、应用 FFT 对典型信号进行频谱分析。 3、通过对 DTMF 信号的离散化和识别,掌握利用 FFT 进行频谱分析的简单 应用。 二、实验内容: 1、比较 DFT 与 FFT 运算速度。 2、利用 Matlab 库函数 FFT 快速算法,对实验二的信号进行谱分析。 3、DTMF 信号的产生与识别: ⑴ 编写程序,产生 DTMF 信号,并用 FFT 对其进行频率分析。 ⑵ 编写程序,对输入的 DTMF 信号进行识别。 ⑶ 改变记录长度和抽样频率,作出对应的频谱图,分析它们与频率分辨力 的关系。 三、实验要求: 1、编写实验用程序。 2、输入不同数据,运行程序,输出数据和图形,观察其输入和输出结果。 3、实验报告应给出输入数据及其图形,对应的变换或反变换的数据和图形。 尽可能给出理论分析。 附 1、DTMF 产生与识别原理 电话拨号方式有两种:脉冲与音频。所谓音频也称双音多频(DTMF)信号的 拨号方式。双音多频,即是电话拨号时每按一个按键,有两个音频频率叠加形成 一个双音频信号,十二个按键由七个音频频率表示和区别,其关系如下表: (ω) 0.9273 1.0247 1.1328 (Hz) 1209 1336 1477 0.5346 1 2 3 697 1 2 3 0.5906 4 5 6 770 4 5 6 0.6535 7 8 9 852 7 8 9 0.7217 * 0 # 941 * 0 # 以上右表是假定以 8192Hz 对左表中对应连续音频信号采样得到的离散时间 傅立叶变换(DTFT)频率。这样,数字 5 可以用离散时间信号表示为: d5(n) = sin(0.5906n)+sin(1.0247n) . 1、定义行向量:d0 ~ d9 取 0≤n≤999 值,利用 sound(di,Fs)可以听到电话机 上按数字 i 的声音。 2、利用 X=fft(x,2048) 分别对以上信号进行频率分析,注意幅值最大的频率 值。 3、定义 ko= zeros(1,300) , ph=[ko,d9,ko,d9,ko,d3,ko,d4] ,可以利用 sound(ph)听 到按 9934 电话号码的拨号音。 利用 fft 通过幅度检测, 判断所拨电 4、根据获得的信号 ph 截取各双音信号, 话号码。
6

附 2、参考程序 程序 1 如何使用计时函数 tic、toc;
clc; clear; REPS = 1000; tic; %启动计时器 total=0; for i=1:REPS %做累加 total = total + i; end Time =double(toc);%关闭计时器并转换浮点数,64位 REPS1 = 10000; tic;%重新启动计时器 total1=0; for i=1:REPS1 %做累加 total1 = total1 + i; end Time1 =double(toc);% 关闭计时器并转换浮点数,64位 prompt={'运算时间比'}; titla='显示窗口'; a1=num2str(Time1/Time);%num2str把非整数数组转换为字符串 def={a1}; lines=1; sita=inputdlg(prompt,titla,lines,def); 程序 2 function dtmf %DTMF generation n=[0:999]; d0=sin(0.7217*n)+sin(1.0247*n); d1=sin(0.5346*n)+sin(0.9273*n); d2=sin(0.5346*n)+sin(1.0247*n); d3=sin(0.5346*n)+sin(1.1328*n); d4=sin(0.5906*n)+sin(0.9273*n); d5=sin(0.5906*n)+sin(1.0247*n); d6=sin(0.5906*n)+sin(1.1328*n); d7=sin(0.6535*n)+sin(0.9273*n); d8=sin(0.6535*n)+sin(1.0247*n); d9=sin(0.6535*n)+sin(1.1328*n); ko=zeros(1,500); ph=[]; t=input('请输入七位电话号码:\n','s'); for i=1:7 ph=[ph ko]; switch t(i)

7

case '0' ph=[ph d0]; case '1' ph=[ph d1]; case '2' ph=[ph d2]; case '3' ph=[ph d3]; case '4' ph=[ph d4]; case '5' ph=[ph d5]; case '6' ph=[ph d6]; case '7' ph=[ph d7]; case '8' ph=[ph d8]; otherwise ph=[ph d9]; end ph=[ph 0 0]; end %produce sound of calling sound(ph,8192); %Recoded sound of calling s=[]; hm=[1 2 3;4 5 6;7 8 9;0 0 0]; %建立号码表 k=1; for i=1:7 while (ph(k)==0)&(ph(k+1)==0) k=k+1; end for n=1:1000 x(n)=ph(k+1); k=k+1; end X=abs(fft(x,2048)); XL=450; for n=160:250 %XL=450; if XL<X(n) L=n; XL=X(n); end

8

end XH=450; for n=290:380 %XH=450; if XH<X(n) H=n; XH=X(n); end end if abs(L-174)<8 r=1; elseif abs(L-192)<8 r=2; elseif abs(L-213)<8 r=3; elseif abs(L-235)<8 r=4; end if abs(H-302)<5 t=1; elseif abs(H-334)<5 t=2; elseif abs(H-369)<5 t=3; end s=[s hm(r,t)]; while (ph(k)~=0)&(ph(k+1)~=0) k=k+1; end k=k+1; end s

附 3、键 0 对应的双音信号时域波形和频谱图:
3 2 1 0 -1 -2 -3 0 1 0 2 0 30 4 0 5 0 60 7 0 80 90 10 0

60 0

40 0 20 0

0

20 0

2 50

3 00

35 0

4 00

9

《数字信号处理》实验
实验四:数字滤波器的设计

一、实验目的: 1、掌握 IIR 滤波器的设计方法。利用冲激不变法和双线性变换法设计 IIR 滤 波器。 2、 掌握 FIR 滤波器的设计方法。 利用窗函数法和频率抽样法设计 FIR 滤波器。 二、实验内容: 1、根据要求设计模拟低通滤波器;采用不同的变换方法,设计低通数字滤波 器。例如: ⑴ 试利用巴特沃兹低通滤波器,设计一数字滤波器。要求截止频率: fp=5000Hz,通带最大衰减:αp=3dB,阻带起始频率:fs=10000Hz,阻带最 小衰减: αs=30dB ,抽样间隔:Ts=20μs。 ⑵ 试设计一高通数字滤波器,要求 ωp=0.6π , αp=1dB , ωs=0.4586π , αs=15dB ,自选抽样间隔。 2、编写程序,采用不同方法,设计满足要求的 FIR 数字滤波器。例如: 试设计一低通 FIR 滤波器。要求:ωp=0.2π,通带最大衰减 αp=0.25dB,ωs=0.3π,阻带最小衰减 αs=50dB。 三、实验要求: 1、编写实验用程序。 2、输入不同数据,运行程序,输出滤波器的频响曲线和单位样值响应的图形, 观察采用不同设计方法的输出结果。 3、对设计结果给出理论分析和评价。 function [db,mag,pha,grd,w] = freqz_m(b,a); [H,w] = freqz(b,a,1000,'whole'); H = (H(1:1:501))'; w = (w(1:1:501))'; mag = abs(H); db = 20*log10((mag+eps)/max(mag)); pha = angle(H); grd = grpdelay(b,a,w); ^^^^^^^^^^^^^^^^^^^^^^ function hd = ideal_lp(wc,M); alpha = (M-1)/2; n = [0:1:(M-1)]; m = n - alpha + eps; hd = sin(wc*m) ./ (pi*m); ………………………………………………………………………… %实验4(1)巴特沃斯低通滤波器 clear;clc; fp=5000;fs=10000;rp=3;rs=30;Fs=1/(20*10^(-6));
10

wp=2*pi*fp/Fs; ws=2*pi*fs/Fs; Omeigap=wp*Fs; Omeigas=ws*Fs; Omeigap1=2*Fs*tan(wp/2); %预畸变模拟滤波器边界频率 Omeigas1=2*Fs*tan(ws/2); %预畸变模拟滤波器边界频率 [N,Wn]=buttord(Omeigap,Omeigas,rp,rs,'s'); [B,A]=butter(N,Wn,'s'); [N1,Wn1]=buttord(Omeigap1,Omeigas1,rp,rs,'s'); [B1,A1]=butter(N1,Wn1,'s'); %[b,a]=butter(n,Wn,‘s’)n为滤波器的阶数Wn为边界频率 % 脉冲响应不变法 [num,den]=impinvar(B,A,Fs);%Fs为抽样频率 [h,w]=freqz(num,den); %双线性法 [num1,den1]=bilinear(B1,A1,Fs); [h1,w1]=freqz(num1,den1); f=w/pi*20000;f1=w1/pi*20000; plot(f,20*log10(abs(h)),'r-.',f1,20*log10(abs(h1)),'g-'); axis([0,21000,-80,10]); grid; grid;xlabel('频率/Hz');ylabel('幅值/dB'); ………………………………………………

实验报告范例
11

基本信号的产生与运算
一、 实验目的 学习使用 MATLAB 产生基本信号、绘制信号波形、实现信号的基本运算。 二、 实验原理 MATLAB 提供了许多函数用于产生常用的基本信号:如阶跃信号、脉冲信号、 指数信号、正弦信号和周期方波等等。这些信号是信号处理的基础。 1、 利用 MATLAB 产生下列连续信号并作图。 (1) x(t ) ? ?2u (t ? 1),?1 ? t ? 5 (2) x(t ) ? e ?0.3t sin( t ),0 ? t ? 30 (3) x(t ) ? cos 100t ? cos 3000t ,?0.1 ? t ? 0.1 (4) x(t ) ? cos(0.1?t ) cos(0.8?t ),0 ? t ? 200 答: (1) 、
t=-1:0.02:5; x=(t>1); plot(t,-2*x); axis([-1,5,-3,1]); title('张三'); xlabel('x(t)=-2u(t-1)');
张 三

2 3

1 0.5 0 -0.5 -1 -1.5 -2 -2.5 -3 -1

(2) 、 t=0:0.02:30; x=exp(-0.3*t).*s in(2/3*t); plot(t,x);

0

1

2 x(t)=-2u(t-1)

3

4

5

title('张三'); xlabel('x(t)=exp(-0.3*t).*sin(2/3*t)');

12

张三
0.6 0.5 0.4 0.3 0.2

因为 x(t) 将横 看得

原 取 坐 更

0.1 0 -0.1 -0.2

函 数 在 t=15 后 值接近于零, 所以 标改成 0 到 15, 清晰
0 5 10 15 20 x(t)=exp(-0.3*t).*sin(2/3*t) 25 30

axis([0,15,-0.2,0.6]);
张三
0.6 0.5 0.4 0.3 0.2 0.1 0 -0.1 -0.2



3



0

5 10 x(t)=exp(-0.3*t).*sin(2/3*t)

15

t=-0.1:0.01:0.1;x=cos(100*t)+cos(3000*t);plot(t,x); title('张三'); xlabel('x=cos(100*t)+cos(3000*t)');
张三

2

1.5

1

0.5

0

因为 t 的间隔 数不够准确,

-0.5

取太大, 以至于函 缩小 t 的间隔:

-1

-1.5 -0.1

-0.08

-0.06

-0.04 -0.02 0 0.02 0.04 x=cos(100*t)+cos(3000*t)

0.06

0.08

0.1

t=-0.1:0.002:0.2;x=cos(100*t)+cos(3000*t);
13

plot(t,x);title('张三')
张三

2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -0.1

-0.05

0

0.05

0.1

0.15

0.2

0.25

t=-0.1:0.0001:0.1; x=cos(100*t)+cos(3000*t); plot(t,x);title('张三'); xlabel('x=cos(100*t)+cos(3000*t)');
张三

2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -0.1

-0.08

-0.06

-0.04 -0.02 0 0.02 0.04 x=cos(100*t)+cos(3000*t)

0.06

0.08

0.1

(4) 、 t=0:0.01:200; x=cos(0.1*pi*t).*cos(0.8*pi*t); plot(t,x); title('张三'); xlabel('x=cos(0.1*pi*t).*cos(0.8*pi*t)');

14

张三

1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 20 40 60 80 100 120 140 x=cos(0.1*pi*t).*cos(0.8*pi*t) 160 180 200

因为为周期函数,可以将横坐标 t 间隔扩大以便于观察图像 >> axis([0,30,-1,1]);
张三

1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 5 10 15 20 x=cos(0.1*pi*t).*cos(0.8*pi*t) 25 30

2、

利用 MATLAB 产生下列离散序列并作图。
?1, ?0, ?5?n?5
? 15 ? n ? 15

(1) x(n) ? ?

(2) x(n) ? (0.9) n [sin(0.25?n) ? cos(0.25?n)] , ? 20 ? n ? 20 答: (1) 、
k=-15:15; x=[zeros(1,10),ones(1,11),zeros(1,10)]; stem(k,x); axis([-15,15,-0.2,1.2]); title('张三');xlabel('x(n)');

15

张三

1

0.8

0.6

0.4

0.2

0

-0.2 -15

-10

-5

0 x(n)

5

10

15

(2) 、
k=-20:20; x=(0.9).^k.*(sin(0.25*pi*k)+cos(0.25*pi*k)); stem(k,x);title('张三'); xlabel(' x=(0.9)^k*(sin(0.25*pi*k)+cos(0.25*pi*k))');

张三

8 6 4 2 0 -2 -4 -6 -8 -10 -12 -20 -15 -10 -5 0 5 10 15 20

x=(0.9)k*(sin(0.25*pi*k)+cos(0.25*pi*k))

将横坐标变小以便于观察 axis([-20,10,-12,8]);

16

张三

8 6 4 2 0 -2 -4 -6 -8 -10 -12 -20 -15 -10 -5 0 5 10

x=(0.9)k*(sin(0.25*pi*k)+cos(0.25*pi*k))

3、

已知序列:x(n) ? [1,2, 0,?1,3,2] ,h(n) ? [1,?1,1] , 计算离散卷积 y (n) ? x(n) ? h(n) ,
? ?

并绘出其波形。 答:
x=[1,2,0,-1,3,2]; h=[1,-1,1]; y=conv(x,h); stem([-2:length(y)-3],y); ylabel('y[k]');xlabel('k'); title('张三');

4

张三

3

2

y[k]

1

0

-1

-2 -2

-1

0

1 k

2

3

4

5

三、 实验思考题 1、 两个连续信号的卷积定义是什么?两个序列的卷积定义是什么?卷积的作用是 什么?

17

答:连续信号的卷积的定义: ? x(? ) y (t ? ? )d?
??

?

序列的卷积定义: ? x(m) y (n ? m) 。
m?0

利用作图法即将其中一个信号图翻转,平移,两信号相乘,再相加。 傅立叶变换的卷积性质涵盖着时域相乘、频域卷积、频域相乘,时域卷积的 对偶关系。前者若代表两个信号相乘,则因发生调制作用,在频域一定出现频谱 搬家(频移) 。后者若一个是信号,另一个代表系统,则系统起着加工处理的滤波 作用。任何信号与冲激函数相卷积,其结果是在冲激出现的时刻(位置)再生原 信号。 卷积在实际中的应用有实现幅度调制与解调,实现多路频分复用,实现单边 带调幅(SSB-AM) 。 2、什么是单位冲激信号 ? (t ) ?能够用 MATLAB 产生单位冲激信号吗? 答:出现过程极短,能量极大的信号为冲激信号 ? (t ) ,其定义式为:
? (t ) =0,t ? 0

?

?

??

? (t )dt ? 1 ;上式表明,在 t=0 无定义,因为不能作为数学函

数的取值。 而且表示 ? (t ) 与时间覆盖的面积或称 ? (t ) 的强度始终等于 1。 因为 ? (t ) 属 于奇异函数一类的信号, 能量无限大, 用 MATLAB 不能产生该信号.函数 ones(1,n) 可以生成单位脉冲序列。 3、 产生连续信号时, 首先要定义时间向量 t=0: T: Tp。 其中 T 和 Tp 是什么意思? 答:每两点之间的时间间隔为 T,即步长为 T。连续信号的时间从 0 到 Tp。

附录一

MATLAB 环境
表 1.1 命令窗口中行编辑的常用操作键

18

键名 ↑ ↓ ← → PageUp Page Down

作用 向前调回已输入过的命令行 向后调回已输入过的命令行 在当前行中左移光标 在当前行中右移光标 向前翻阅当前窗口中的内容 向后翻阅当前窗口中的内容 表 1.2

键名 Home End Delete Backspace Esc CTRL+C

作用 使光标移到当前行的开头 使光标移到当前行的末尾 删去光标右边的字符 删去光标左边的字符 清除当前行的全部内容 中断 MATLAB 命令的运行

MATLAB 常用标点符号的功能 功能

名称 空格 逗号 点号 分号

符号

用于输入变量之间的分隔符以及数组行元素之间的分隔符。 , . ; 用于要显示计算结果的命令之间的分隔符;用于输入变量之间的分隔符;用于数 组行元素之间的分隔符。 用于数值中的小数点。 用于不显示计算结果命令行的结尾;用于不显示计算结果命令之间的分隔符;用 于数组元素行之间的分隔符。 用于生成一维数值数组, 表示一维数组的全部元素或多维数组的某一维的全部元 素。 用于注释的前面,在它后面的命令不需要执行。 用于括住字符串。 用于引用数组元素;用于函数输入变量列表;用于确定算术运算的先后次序。 用于构成向量和矩阵;用于函数输出列表。 用于构成元胞数组。 用于一个变量、函数或文件名中的连字符。 用于把后面的行与该行连接以构成一个较长的命令。

冒号 百分号 单引号 圆括号 方括号 花括号 下划线 续行号

: % ‘’ () [] {} …

注意:以上的符号一定要在英文状态下输入,因为 MATLAB 不能识别中文标点符号。 ? clc:用于清空命令窗口中的显示内容。 表 1.3 数据显示的 Format 格式 命令格式 format format short(默认) format short e format short g format long format long e 命令格式 format long g format rat format hex format + 含义 通常保证小数点后四位有效;大于 1000 的实 数,用 5 位有效数字的科学计数法显示 5 位科学计数法表示 从 format short 和 format short e 中自动选择最 佳计数方式 15 位数字表示 15 位科学计数法表示 含义 从 format long 和 format long e 中自动选择最 佳计数方式 近似有理数表示 十六进制表示 正数、负数、零分别用+、-、空格 π显示为 355/113 π显示为 400921fb54442dl8 π显示为+ π显示为 3.14159265358979 π显示为 3.141592653589793e+000 例子 π显示为 3.1415926358979 例子 314.159 显示为 314.1590 3141.59 显示为 3.1416e+003 π显示为 3.1416e+000 π显示为 3.1416

19

format bank format compact format loose

表示(金融)元、角、分 在显示结果之间没有空行的压缩格式 在显示结果之间有空行的稀疏格式 表 1.4 特殊变量表

π显示为 3.14

特殊变量 ans pi eps flops inf NaN 或 nan

取值 运算结果的默认变量名 圆周率 π 计算机的最小数 浮点运算数 无穷大,如 1/0 非数,如 0/0、∞/∞、0×∞

特殊变量 i或 j nargin nargout realmin realmax

取值 i=j= 函数的输入变量数目 函数的输出变量数目 最小的可用正实数 最大的可用正实数

Matlab 脚本文件和函数文件
M 文件有两种形式:M 脚本文件和 M 函数文件。 M 函数文件的基本格式: 函数声明行 H1 行(用%开头的注释行) 在线帮助文本(用%开头) 编写和修改记录(用%开头) 函数体 函数文件的特点: (1) 第一行总是以“function”引导的函数声明行; 函数声明行的格式: function [输出变量列表] = 函数名(输入变量列表) (2) 函数文件在运行过程中产生的变量都存放在函数本身的工作空间; (3) 当文件执行完最后一条命令或遇到“return”命令时,就结束函数文件的运行,同时函数工作空间的 变量就被清除; (4) 函数的工作空间随具体的 M 函数文件调用而产生,随调用结束而删除,是独立的、临时的,在 MATLAB 运行过程中可以产生任意多个临时的函数空间。

20

附录二

MATLAB 常用命令函数表
表 2.1 矩阵生成函数 函数名 zeros(m,n) ones(m,n) rand(m,n) randn(m,n) magic(N) eye(m,n) 功能 产生 m×n 的全 0 矩阵 产生 m×n 的全 1 矩阵 产生均匀分布的随机矩阵,元素取值范围 0.0~1.0。 产生正态分布的随机矩阵 产生 N 阶魔方矩阵(矩阵的行、列和对角线上元素的和相等) 产生 m×n 的单位矩阵

zeros、ones、rand、randn 和 eye 函数当只有一个参数 n 时,则为 n×n 的方阵; 当 eye(m,n)函数的 m 和 n 参数不相等时则单位矩阵会出现全 0 行或列。 表 2.2 常用矩阵翻转函数 函数名 triu(X) tril(X) flipud(X) fliplr(X) flipdim(X,dim) rot90(X) 功 能

产生 X 矩阵的上三角矩阵,其余元素补 0。 产生 X 矩阵的下三角矩阵,其余元素补 0。 使矩阵 X 沿水平轴上下翻转 使矩阵 X 沿垂直轴左右翻转 使矩阵 X 沿特定轴翻转。dim=1,按行维翻转;dim=2,按列维翻转。 使矩阵 X 逆时针旋转 900 表 2.3 常用矩阵运算函数

函数名 det(X) rank(X) inv(X) [v,d]=eig(X) diag(X) [l,u]=lu(X) [q,r]=qr(X) 计算方阵行列式





求矩阵的秩,得出的行列式不为零的最大方阵边长。 求矩阵的逆阵,当方阵 X 的 det(X)不等于零,逆阵 X-1 才存在。X 与 X-1 相乘 为单位矩阵。 计算矩阵特征值和特征向量。如果方程 Xv=vd 存在非零解,则 v 为特征向量, d 为特征值。 产生 X 矩阵的对角阵 方阵分解为一个准下三角方阵和一个上三角方阵的乘积。l 为准下三角阵,必 须交换两行才能成为真的下三角阵。 m×n 阶矩阵 X 分解为一个正交方阵 q 和一个与 X 同阶的上三角矩阵 r 的乘积。 方阵 q 的边长为矩阵 X 的 n 和 m 中较小者,且其行列式的值为 1。 m×n 阶矩阵 X 分解为三个矩阵的乘积, 其中 u,v 为 n×n 阶和 m×m 阶正交方阵, s 为 m×n 阶的对角阵,对角线上的元素就是矩阵 X 的奇异值,其长度为 n 和 m 中的较小者。 表 2.4 基本函数

[u,s,v]=svd(X)

函数名 abs sqrt real

含义 绝对值或者复数模 平方根 实部

函数名 atan atan2 sinh

含义 反正切 第四象限反正切 双曲正弦 21

函数名 ceil sign rem

含义 向最接近-∞取整 符号函数 求余数留数

imag conj sin cos tan asin acos

虚部 复数共轭 正弦 余弦 正切 反正弦 反余弦

cosh tanh rat mod round fix floor

双曲余弦 双曲正切 有理数近似 模除求余 4 舍 5 入到整数 向最接近 0 取整 向最接近-∞取整

pow2 exp log log10 gamma bessel

2 的幂 自然指数 自然对数 以 10 为底的对数 伽吗函数 贝赛尔函数

表 2.5 矩阵和数组运算对比表 数组运算 命令 A+B A-B S.*B A.*B S./B A./B B.\A A.^S A.^S S.^B A.’ exp(A) log(A) sqrt(A) f(A) 对应元素相加 对应元素相减 标量 S 分别与 B 元素的积 数组对应元素相乘 S 分别被 B 的元素左除 A 的元素被 B 的对应元素除 结果一定与上行相同 A 的每个元素自乘 S 次 S 为小数时,对 A 各元素分别求非整 数幂,得出矩阵 分别以 B 的元素为指数求幂值 非共轭转置,相当于 conj(A’) 以自然数 e 为底, 分别以 A 的元素为 指数求幂 对 A 的各元素求对数 对 A 的各元素求平方根 求 A 各个元素的函数值 含义 命令 A+B A-B S*B A*B S\B A/B B\A A^S A^S S^B A’ expm(A) logm(A) sqrtm(A) funm(A,’ FUN’) 矩阵运算 含义 与数组运算相同 与数组运算相同 与数组运算相同 内维相同矩阵的乘积 B 矩阵分别左除 S 矩阵 A 右除 B 即 A 的逆阵与 B 相乘 A 左除 B(一般与上行不同) A 矩阵为方阵时,自乘 S 次 S 为小数时,方阵 A 的非整数乘方 B 为方阵时,标量 S 的矩阵乘方 共轭转置 A 的矩阵指数函数 A 的矩阵对数函数 A 的矩阵平方根函数 矩阵的函数运算

22

附录三

基本绘图命令

1. 基本绘图命令 plot plot(x) 绘制 x 向量曲线 plot 命令是 MATLAB 中最简单而且使用最广泛的一个绘图命令,用来绘制二维曲线。 语法: plot(x) plot(x,y) %绘制以 x 为纵坐标的二维曲线 %绘制以 x 为横坐标 y 为纵坐标的二维曲线

说明:x 和 y 可以是向量或矩阵。 plot(x1,y1,x2,y2,…)绘制多条曲线 plot 命令还可以同时绘制多条曲线,用多个矩阵对为参数,MATLAB 自动以不同的颜色绘制不同曲线。 每一对矩阵(xi,yi)均按照前面的方式解释,不同的矩阵对之间,其维数可以不同。 2 多个图形绘制的方法 1. 指定图形窗口 如果需要多个图形窗口同时打开时,可以使用 figure 语句。 语法: figure(n) 不关闭其它窗口。 1. 2. 同一窗口多个子图 如果需要在同一个图形窗口中布置几幅独立的子图,可以在 plot 命令前加上 subplot 命令来将一个图形 窗口划分为多个区域,每个区域一幅子图。 语法: subplot(m,n,k) %使(m×n)幅子图中的第 k 幅成为当前图 说明:将图形窗口划分为 m×n 幅子图,k 是当前子图的编号,“,”可以省略。子图的序号编排原则是: 左上方为第 1 幅,先向右后向下依次排列,子图彼此之间独立。 3. 同一窗口多次叠绘 为了在一个坐标系中增加新的图形对象,可以用“hold”命令来保留原图形对象。 语法: hold on hold off hold %使当前坐标系和图形保留 %使当前坐标系和图形不保留 %在以上两个命令中切换 %产生新图形窗口 说明:如果该窗口不存在,则产生新图形窗口并设置为当前图形窗口,该窗口名为“Figure No.n”,而

说明:在设置了“hold on”后,如果画多个图形对象,则在生成新的图形时保留当前坐标系中已存在的 图形对象,MATLAB 会根据新图形的大小,重新改变坐标系的比例。 4. 双纵坐标图 语法: plotyy(x1,y1,x2,y2) %以左、右不同纵轴绘制两条曲线 说明:左纵轴用于(x1,y1)数据,右纵轴用于(x2,y2)数据来绘制两条曲线。坐标轴的范围、刻度都自动产 生。 3 曲线的线型、颜色和数据点形 plot 命令还可以设置曲线的线段类型、颜色和数据点形等,如表所示。

23

表 3.1 线段、颜色与数据点形 颜色 类型 黄色 品红色(紫色) 青色 红色 绿色 蓝色 白色 黑色 语法: plot(x,y,s) 说明:x 为横坐标矩阵,y 为纵坐标矩阵,s 为类型说明字符串参数;s 字符串可以是线段类型、颜色和 数据点形三种类型的符号之一,也可以是三种类型符号的组合。 4. 坐标轴的控制 用坐标控制命令 axis 来控制坐标轴的特性,下表列出其常用控制命令。 表 3.2 常用的坐标控制命令 命令 axis auto axis manual axis off axis on axis ij axis xy axis([xmin,xmax, ymin,ymax]) 含义 使用默认设置 使当前坐标范围不变 取消轴背景 使用轴背景 矩阵式坐标,原点在左上方 普通直角坐标,原点在左下方 设定坐标范围,必须满足 xmin<xmax,ymin<ymax ,可以取 inf 或-inf。 5. 分格线和坐标框 (1) 使用 grid 命令显示分格线 语法: grid on grid off grid 密,必须先定义坐标刻度。 (2) 使用 box 命令显示坐标框 语法: box on box off box %使当前坐标框呈封闭形式 %使当前坐标框呈开启形式 %在以上两个命令间切换 %显示分格线 %不显示分格线 %在以上两个命令间切换 命令 axis equal axis fill axis image axis normal axis square axis tight axis vis3d 含义 纵、横轴采用等长刻度 在 manual 方式下起作用,使坐标充 满整个绘图区 纵、 横轴采用等长刻度, 且坐标框紧 贴数据范围 默认矩形坐标系 产生正方形坐标系 把数据范围直接设为坐标范围 保持高宽比不变, 用于三维旋转时避 免图形大小变化 符号 y(Yellow) m(Magenta) c(Cyan) r(Red) g(Green) b(Blue) w(White) k(Black) 数据点间连线 类型 实线(默认) 点线 点划线 虚线 符号 : -. -数据点形 类型 实点标记 圆圈标记 叉号形× 十字形+ 星号标记* 方块标记□ 钻石形标记◇ 符号 . o x + * s d h 类型 向下的三角形标记 向上的三角形标记 向左的三角形标记 向右的三角形标记 五角星标记☆ 符号 v ^ < > p

六连形标记

说明:不显示分格线是 MATLAB 的默认设置。分格线的疏密取决于坐标刻度,如果要改变分格线的疏

24

6. 文字标注 (1) 添加图名 语法: title(s) %书写图名 说明:s 为图名,为字符串,可以是英文或中文。 (2) 添加坐标轴名 语法: xlabel(s) ylabel(s) (3) 添加图例 语法: legend(s,pos) legend off 位置的指定符,它的取值如表所示。 pos 取值所对应的图例位置 pos 取值 图例位置 0 自动取最佳位置 1 右上角(默认) 2 左上角 3 左下角 4 右下角 -1 图右侧 %在指定位置建立图例 %擦除当前图中的图例 %横坐标轴名 %纵坐标轴名

说明:参数 s 是图例中的文字注释,如果多个注释则可以用’s1’,’s2’,…的方式;参数 pos 是图例在图上

用 legend 命令在图形窗口中产生图例后,还可以用鼠标对其进行拖拉操作,将图例拖到满意的位置。 (4) 添加文字注释 语法: text(xt,yt,s) 7. 特殊符号 图形标识用的希腊字母、数学符号和特殊字符 类别 希 腊 字 母 命令 \ alpha \ beta \ epsilon \ gamma \ Gamma \ delta \ Delta \ omega \ Omega 数 学 符 号 \approx \geq \int \sim \cup \surd 箭 头 \uparrow \leftrightarrow 字符 α β ε γ Γ δ Δ ω Ω ≈ ≥ ∫ ≌ ∪ √ ↑ \ eta \ theta \ Theta \ iota \ zeta \ kappa \ mu \ lambda \ Lambda \oplus \pm \exists \forall \cap \otimes \downarrow \updownarrow ↓ 命令 字符 η θ Θ ι ζ κ μ λ Λ ≡ ± ∝ ~ ∩ 命令 \ nu \ xi \ Xi \ pi \ Pi \ rho \ tau \ sigma \ Sigma \neq \times \infty \angle \vee \oplus \rightarrow → \leftarrow ← 字符 ν ξ Ε π Π ρ τ σ Σ ≠ × ∞ ∠ ∨ \leq \div \in \perp \wedge ≤ ÷ ∈ ⊥ ∧ 命令 \ upsilon \ Upsilon \ phi \ Phi \ chi \ psi \ Psi 字符 υ Υ φ Φ χ ψ Ψ %在图形的(xt,yt)坐标处书写文字注释

25

附录四

多项式的求值、求根和部分分式展开

1. 多项式求值 函数 polyval 可以用来计算多项式在给定变量时的值,是按数组运算规则进行计算的。 语法: polyval(p,s) 说明:p 为多项式, s 为给定矩阵。 2. 多项式求根 ? roots 用来计算多项式的根。 语法:r=roots(p) 说明:p 为多项式;r 为计算的多项式的根,以列向量的形式保存。 ? 与函数 roots 相反,根据多项式的根来计算多项式的系数可以用 poly 函数来实现。 语法:p=poly (r) 3. 特征多项式 对于一个方阵 s, 可以用函数 poly 来计算矩阵的特征多项式的系数。 特征多项式的根即为特征值, 用 roots 函数来计算。 语法:p=poly (s) 说明:s 必须为方阵;p 为特征多项式。 4. 部分分式展开 用 residue 函数来实现将分式表达式进行多项式的部分分式展开。

r r r B(s) ? 1 ? 2 ? ? ? n ? k(s) A(s) s ? p1 s ? p 2 s ? pn
语法:[r,p,k]=residue(b,a) 说明:b 和 a 分别是分子和分母多项式系数行向量;r 是[r1 r2 …rn]留数行向量;p 为[p1 p2 …pn]极点行向 量;k 为直项行向量。 5. 多项式的乘法和除法 ? 多项式的乘法 语法:p=conv(pl,p2) 说明:p 是多项式 p1 和 p2 的乘积多项式。 ? 多项式的除法 语法:[q,r]=deconv(pl,p2) 说明:除法不一定会除尽,会有余子式。多项式 p1 被 p2 除的商为多项式 q,而余子式是 r。 6. 卷积 卷积和解卷是信号与系统中常用的数学工具。函数 conv 和 deconv 分别为卷积和解卷函数,同时也是多 项式乘法和除法函数。 ? conv:计算向量的卷积。 语法:conv(x,y) 如果 x 是输入信号,y 是线性系统的脉冲过渡函数,则 x 和 y 的卷积为系统的输出信号。 ? ? conv2:计算二维卷积。 deconv:解卷积运算。

语法:[q,r]=deconv(x,y) 解卷积和卷积的关系是:x=conv(y,q)+r。 7. 快速傅立叶变换 ? fft:一维快速傅立叶变换。

26

语法:X=fft(x,N)

%对离散序列进行离散傅立叶变换

说明:x 可以是向量、矩阵和多维数组;N 为输入变量 x 的序列长度,可省略,如果 X 的长度小于 N, 则会自动补零;如果 X 的长度大于 N,则会自动截断;当 N 取 2 的整数幂时,傅立叶变换的计算速度最快。 通常取大于又最靠近 x 长度的幂次。 一般情况下,fft 求出的函数为复数,可用 abs 及 angle 分别求其幅值和相位。 ? ifft:一维快速傅立叶逆变换。 %对离散序列进行离散傅立叶逆变换 语法:X=ifft(x,N)

附录五
1. 符号常量

符号积分变换

符号常量是不含变量的符号表达式,用 sym 命令来创建符号常量。 语法:sym(‘常量’) 语法:sym(‘变量’,参数) %创建符号常量 %把变量定义为符号对象 2. 使用 sym 命令创建符号变量和表达式 说明:参数用来设置限定符号变量的数学特性,可以选择为’positive’、’real’和’unreal’, ’positive’ 表示 为“正、实”符号变量,’real’表示为“实”符号变量,’unreal’ 表示为“非实”符号变量。如果不限定则参 数可省略。 语法:sym(‘表达式’) 语法:syms(‘arg1’, ‘arg2’, …,参数) syms arg1 arg2 …,参数 %创建符号表达式 %把字符变量定义为符号变量 %把字符变量定义为符号变量的简洁形式 3. 使用 syms 命令创建符号变量和符号表达式

说明:syms 用来创建多个符号变量,这两种方式创建的符号对象是相同的。参数设置和前面的 sym 命 令相同,省略时符号表达式直接由各符号变量组成。 1. 傅里叶(Fourier)变换及其反变换 fourier 变换和反变换可以利用积分函数 int 来实现,也可以直接使用 fourier 或 ifourier 函数实现。 1. fourier 变换 语法:F=fourier(f,t ,w) 参数 t 省略,默认自由变量为 x。 2. fourier 反变换 语法:f=ifourier (F) f=ifourier (F,w,t) 说明:ifourier 函数的用法与 fourier 函数相同。 2. 拉普拉斯(Laplace)变换及其反变换 1. Laplace 变换 语法:F=laplace(f,t,s) 略,默认自由变量为't'。 2. Laplace 反变换 语法:f=ilaplace(F,s,t) 3. Z 变换及其反变换 1. ztrans 函数 语法:F=ztrans(f,n, z) %求时域序列 f 的 Z 变换 F %求 F 的 Laplace 反变换 f %求时域函数 f 的 Laplace 变换 F 说明:返回结果 F 为 s 的函数,当参数 s 省略,返回结果 F 默认为's'的函数;f 为 t 的函数,当参数 t 省 %求频域函数 F 的 fourier 反变换 f(t) %求时域函数 f(t)的 fourier 变换 F 说明:返回结果 F 是符号变量 w 的函数,当参数 w 省略,默认返回结果为 w 的函数;f 为 t 的函数,当

27

说明:返回结果 F 是以符号变量 z 为自变量;当参数 n 省略,默认自变量为'n';当参数 z 省略,返回结 果默认为'z'的函数。 2. iztrans 函数 语法:f=iztrans(F,z,n) 4. 符号函数的绘图命令 1. ezplot 和 ezplot3 命令 ezplot 命令是绘制符号表达式的自变量和对应各函数值的二维曲线,ezplot3 命令用于绘制三维曲线。 语法: ezplot(F,[xmin,xmax],fig) 指定的图形窗口,省略时默认为当前图形窗口。 表 4.1 符号表达式和字符串的绘图命令 命令名 ezmesh ezmeshc ezpolar ezsurf ezsurfc 含义 画三维网线图 画带等高线的三维网线图 画极坐标图 画三维曲面图 画带等高线的三维曲面图 举例 ezmesh('sin(x)*exp(-t)','cos(x)*exp(-t)','x',[0,2*pi]) ezmeshc('sin(x)*t',[-pi,pi]) ezpolar('sin(t)',[0,pi/2]) ezsurf('x*sin(t)','x*cos(t)','t',[0,10*pi]) ezsurfc('x*sin(t)','x*cos(t)','t',[0,pi,0,2*pi]) %画符号表达式的图形 说明:F 是将要画的符号函数;[xmin,xmax]是绘图的自变量范围,省略时默认值为[-2л,2л];fig 是 %求 F 的 z 反变换 f

28

附录六

信号与系统分析常用函数

1.传递函数描述法
MATLAB 中使用 tf 命令来建立传递函数。 语法: G=tf(num,den) %由传递函数分子分母得出 说明:num 为分子向量,num=[b1,b2,…,bm,bm+1];den 为分母向量,den=[a1,a2,…,an-1,an]。

2.零极点描述法
MATLAB 中使用 zpk 命令可以来实现由零极点得到传递函数模型。 语法: G=zpk(z,p,k) %由零点、极点和增益获得 说明:z 为零点列向量;p 为极点列向量;k 为增益。 部分分式法是将传递函数表示成部分分式或留数形式:

G(s) ?

r1 r r ? 2 ? ? ? n ? k(s) s ? p1 s ? p 2 s ? pn
线性系统模型转换函数表 函数 tf2ss tf2zp ss2tf ss2zp zp2ss zp2tf 调用格式 [a,b,c,d]=tf2ss(num,den) [z,p,k]=tf2zp(num,den) [num,den]=ss2tf(a,b,c,d,iu) [z,p,k]=ss2zp(a,b,c,d,iu) [a,b,c,d]=zp2ss(z,p,k) [num,den]=zp2tf(z,p,k) 功能 传递函数转换为状态空间 传递函数转换为零极点描述 状态空间转换为传递函数 状态空间转换为零极点描述 零极点描述转换为状态空间 零极点描述转换为传递函数

3.零输入响应分析
1. 连续系统的零输入响应 MATLAB 中使用 initial 命令来计算和显示连续系统的零输入响应。 语法: initial(G,x0, Ts) initial(G1,G2,…,x0, Ts) [y,t,x]=initial(G,x0, Ts) %绘制系统的零输入响应曲线 %绘制系统多个系统的零输入响应曲线 %得出零输入响应、时间和状态变量响应

29

说明:G 为系统模型,必须是状态空间模型;x0 是初始条件;Ts 为时间点,如果是标量则为终止时间, 如果是数组,则为计算的时刻,可省略;y 为输出响应;t 为时间向量,可省略;x 为状态变量响应,可省略。 2. 离散系统的零输入响应 离散系统的零输入响应使用 dinitial 命令实现。 语法: dinitial(a,b,c,d,x0) y= dinitial (a,b,c,d,x0) [y,x,n]= dinitial (a,b,c,d,x0) 量响应;n 为点数。 3 连续系统的脉冲响应 连续系统的脉冲响应由 impluse 命令来得出。 语法: impulse(G, Ts) [y,t,x]=impulse(G, Ts) %绘制系统的脉冲响应曲线 %得出脉冲响应 %绘制离散系统零输入响应 %得出离散系统的零输入响应 %得出离散系统 n 点的零输入响应

说明:a、b、c、d 为状态空间的系数矩阵;x0 为初始条件;y 为输出响应;t 为时间向量;x 为状态变

说明:G 为系统模型,可以是传递函数、状态方程、零极点增益的形式;y 为时间响应;t 为时间向量; x 为状态变量响应,t 和 x 可省略;Ts 为时间点可省略。 4. 离散系统的脉冲响应 离散系统的脉冲响应使用 dimpulse 命令实现。 语法: dimpluse(a,b,c,d,iu) [y,x]=dimpluse(a,b,c,d,iu,n) [y,x]=dimpluse(num,den,iu,n) 5. 连续阶跃响应 阶跃响应可以用 step 命令来实现。 语法: step(G, Ts) [y,t,x]=step(G, Ts) 6. 离散系统的阶跃响应 离散系统阶跃响应使用 dstep 命令来实现,语法规则与 dimpluse 相同。 7. 连续系统的任意输入响应 连续系统对任意输入的响应用 lsim 命令来实现。 语法: lsim(G,U,Ts) lsim(G1,G2,…U,Ts) [y,t,x]=lsim(G,U,Ts) 8. 离散系统的任意输入响应 离散系统的任意输入响应用 dlsim 命令来实现。 语法: dlsim(a,b,c,d,U) [y,x]=dlsim(num,den,U) [y,x]=dlsim(a,b,c,d,U) %绘制离散系统的任意响应曲线 %得出离散系统任意响应和状态变量响应 %得出离散系统响应和状态变量响应 %绘制系统的任意响应曲线 %绘制多个系统任意响应曲线 %得出任意响应 %绘制系统的阶跃响应曲线 %得出阶跃响应 %绘制离散系统脉冲响应曲线 %得出 n 点离散系统的脉冲响应 %由传递函数得出 n 点离散系统的脉冲响应

说明:iu 为第几个输入信号;n 为要计算脉冲响应的点数;y 的列数与 n 对应;x 为状态变量,可省略。

说明:参数设置与 impulse 命令相同。

说明:U 为输入序列,每一列对应一个输入;Ts 为时间点,U 的行数和 Ts 相对应;参数 t 和 x 可省略。

30

说明:U 为任意序列输入信号。

4. 极点和零点
1. pole 命令计算极点 语法: p=pole(G) 说明:当系统有重极点时,计算结果不一定准确。 (2) tzero 命令计算零点和增益 语法: z=tzero(G) [z,gain]=tzero(G) %得出连续和离散系统的零点 %获得零点和零极点增益

说明:对于单输入单输出系统, tzero 命令也用来计算零极点增益。

5.系统频域特性
频域特性由下式求出: Gw=polyval(num,j*w)./polyval(den,j*w) mag=abs(Gw) pha=angle(Gw) 说明:j 为虚部变量。 1. bode 图 bode 图是对数幅频和对数相频特性曲线。 语法: bode(G,w) [mag,pha]=bode(G,w) [mag,pha,w]=bode(G) 2. nyquist 曲线 nyquist 曲线是幅相频率特性曲线,使用 nyquist 命令绘制和计算。 语法: nyquist (G,w) nyquist (G1,G2,…w) [Re,Im]= nyquist (G,w) [Re,Im,w]= nyquist (G) Im 为频率特性的虚部。 %绘制 nyquist 曲线 %绘制多条 nyquist 曲线 %由 w 得出对应的实部和虚部 %得出实部、虚部和频率 %绘制 bode 图 %得出 w 对应的幅值和相角 %得出幅值、相角和频率 %幅频特性 %相频特性

说明:G 为系统模型,w 为频率向量,mag 为系统的幅值,pha 为系统的相角。

说明:G 为系统模型;w 为频率向量,也可以用{wmin,wmax}表示频率的范围;Re 为频率特性的实部,

31


相关文章:
数字信号处理实验
1 《数字信号处理》 评分 大理大学实验报告 课程名称 专业班级 姓学名号 数字信号处理 13 级生物医学工程 1 班 杨飞 2013166141 2015—2016 学年度第 3 学期 ...
数字信号处理实验5
数字信号处理实验5_数学_自然科学_专业资料。实验五 连续时间信号的数字处理 实验室名称: 计算机基础实验室 (信息学院 2202) 31 日姓名: 王凤琼 指导教师:柏正尧...
数字信号处理实验实验一
数字信号处理实验报告 实验名称:离散时间系统的时域特性分析 学生姓名: 学生学号: 学生班级: 上课时间: 指导老师: 周二上午 z 一、 实验目的线性时不变离散时间...
数字信号处理实验报告
物理与电子电气工程学院 实验报告 课程名称: 院专班学姓系: 业: 级: 号: 名: 数字信号处理 物电学院 电子信息工程 1307 171313199 董宝坤 实验报告(1)实验...
数字信号处理实验一
数字信号处理实验一_数学_自然科学_专业资料。实验一:熟悉 MATLAB 环境一、思考题: 1、比较实验内容第 2 题中的第 4 和第 5 小题的结果,试说明对于周期性信...
数字信号处理实验
为此,我们在原 来的《信号与系统》和《数字信号处理》课程的实验指导书的基础上,编写了配套的《信号与 系统实验》和《数字信号处理实验》 。根据“电子信息类专业...
数字信号处理实验
根据程序中的注释很容易分析编程 思想和处理算法。 %《数字信号处理(第三版) 》第十章实验 6 程序:exp6.m % DTMF 双频拨号信号的生成和检测程序 %clear all...
蒋朝晖数字信号处理实验
蒋朝晖数字信号处理实验_信息与通信_工程科技_专业资料 暂无评价|0人阅读|0次下载|举报文档蒋朝晖数字信号处理实验_信息与通信_工程科技_专业资料。《数字信号处理》...
数字信号处理实验报告实验三
数字信号处理实验报告实验三_信息与通信_工程科技_专业资料。数字信号处理实验报告实验三物理与电子信息工程学院 实验报告 实验课程名称:数字信号处理 实验名称: 班姓...
北理工数字信号处理实验报告
北理工数字信号处理实验报告_数学_自然科学_专业资料。北京理工大学数字信号处理实验报告 全数字信号处理 学号:1120121159 班号:05111251 姓名:任科飞 专业:信息工程 ...
更多相关标签:
数字信号处理实验报告 | 数字信号处理 | 数字信号处理上机实验 | 数字信号处理实验一 | 数字信号处理实验答案 | 数字信号处理实验三 | 数字信号处理实验二 | 数字信号处理实验四 |