数字信号处理实验
( z q1 )( z q2 )L ( z qM ) H ( z) = k ( z p1 )( z p2 ) L ( z pN )
第 4 章 MATLAB在信号处理中的应用
4.极点留数模型 . 连续系统: 离散系统:
H (s) =
H ( z) =
r r1 r + 2 +L + N s p1 s p 2 s pN
4.2 信号的基本运算
4.2.1信号的相加与相乘 4.2.1信号的相加与相乘
y(n)=x1(n)+x2(n) y(n)=x1(n)×x2(n) × MATLAB实现:y=x1+x2; y=x1.*x2 实现: 实现
4.2.2序列移位与周期延拓运算 4.2.2序列移位与周期延拓运算
序列移位:y(n)=x(n-m).MATLAB实现:y=x; ny=nx-m 实现: 实现 序列周期延拓:y(n)=x((n))M,MATLAB实现:ny=nxs:nxf;y=x(mod(ny,M)+1) 实现: 实现 ;
H (s) = num( s ) num1( s )den2( s) + num2( s )den1( s ) = H 1 (s) + H 2 (s) = den( s ) den1( s )den2( s)
3. 两个系统的反馈连接
函数feedback 格式: 格式:[A,B,C,D]=feedback(A1,B1,C1,D1,A2,B2,C2,D2,sign) 或 [num,den]=feedback(num1,den1,num2,den2,sign) 将系统1和系统2进行反馈连接,sign表示反馈方式(默认值为-1); 当sig=+1时表示正反馈;当sig=-1时表示负反馈.
x
p
=
∑
i
x
p i
p
第 4 章 MATLAB在信号处理中的应用
4.1 信号及其表示
4.1.1连续时间信号的表示
连续时间信号: 连续时间信号:时间变化连续.如y=x(t) 离散时间信号(序列) 离散时间信号(序列):时间离散,如x(nT)=x(t)|t=nT.
4.1.2工具箱中的信号产生函数
L
b0 k + b1k z 1 + b2 k z 2 H ( z) = g∏ 1 + a2 k z 2 k =1 1 + a1k z
L
x' = Ax + Bu y = Cx + Du
x[n + 1] = A x[n] + B u[n] y[n] = C x[n] + D u[ n]
H ( s) = num( s) num1( s )num2( s) = H 1 (s) H 2 (s) = den( s ) den1( s )den2( s)
第 4 章 MATLAB在信号处理中的应用
2. 系统的并联
MATLAB实现函数parallel( ) 格式: 格式:[A,B,C,D]=parallel(A1,B1,C1,D1,A2,B2,C2,D2) 或 [num,den]=parallel(num1,den1,num2,den2) 将系统1,系统2并联,可得到并联连接的传递函数形式为:
第 4 章 MATLAB在信号处理中的应用
[例4-18] 求离散时间系统
2 + 3z 1 H ( z) = 1 + 0.4 z 1 + z 2
的零,极点向量和增益系数. 在命令窗口输入: 在命令窗口输入: >> num=[2,3]; den=[1,0.4,1]; >> [num,den]=eqtflength(num,den); >> [z,p,k]=tf2zp(num,den) 屏幕显示为 z= 0 -1.5000 p = -0.2000 + 0.9798i -0.2000 - 0.9798i k= 2
4.2.3 序列翻褶与序列累加运算
序列翻褶:y(n)=x(-n).MATLAB可实现: y=fliplr(x) 序列累加的数学描述为:y (n) = MATLAB实现:y=cumsum(x) 实现: 实现
i = ns
∑ x(i)
n
第 4 章 MATLAB在信号处理中的应用
4.2.4 两序列的卷积运算
第 4 章 MATLAB在信号处理中的应用
[例4-19] 求两个单输入单输出子系统 例
2 s+2 的级联,并联和反馈后系统的传递函数.MATLAB源程序为: num1=1; den1=[1,1]; %系统1 num2=2; den2=[1,2]; %系统2 [nums,dens]=series(num1,den1,num2,den2) %实现两个系统级联 [nump,denp]=parallel(num1,den1,num2,den2) %实现两个系统并联 % [numf,denf]=feedback(num1,den1,num2,den2) %实现两个系统反馈 程序运行结果为: 程序运行结果为 nums = 0 0 2 ; dens = 1 3 2 nump = 0 3 4 ; denp = 1 3 2 numf = 0 1 2 ; denf = 1 3 4 因此,各系统的传递函数分别为:
Y ( z ) b0 + b1 z 1 + L + bM z M H ( z) = = X ( z ) a0 + a1 z 1 + L + a M z N
H (s) = k ( s q1 )( s q2 )L ( s qM ) ( s p1 )( s p2 )L ( s pN )
3.零-极点增益模型 . 连续系统: 离散系统:
n
x1 ( n ) x 2 ( n m ).MATLAB实现:y=xcorr(x1,x2). 实现: 实现 .
第 4 章 MATLAB在信号处理中的应用
4.3 信号的能量和功率
1.信号能量
数字定义:
E = ∑ x[ n] x * [ n]
n =0 N
MATLAB实现 E=sum(x.*conj(x)); 或 E=sum(abs(x).^2); 实现: 实现
%使长度相等
第 4 章 MATLAቤተ መጻሕፍቲ ባይዱ在信号处理中的应用
4.4.3 系统互联与系统结构 1. 系统的级联
MATLAB实现函数series( ) 格式: 格式:[A,B,C,D]=series(A1,B1,C1,D1,A2,B2,C2,D2) 或 [num,den]=series(num1,den1,num2,den2) 将系统1,系统2级联,可得到级联连接的传递函数形式为:
1 u ( n n0 ) = 0 n ≥ n0 n < n0
直接实现: 直接实现:n=[ns:nf]; x=[(n-n0)>=0];
第 4 章 MATLAB在信号处理中的应用
3.实指数序列 .
x ( n) = a n
n
a∈R
直接实现: 直接实现:n=[ns:nf]; x=a.^n; 4.复指数序列 .
图 4.11 离散时间信号图形
第 4 章 MATLAB在信号处理中的应用
4.1.4几种常用离散时间信号的表示 几种常用离散时间信号的表示
1.单位脉冲序列 .
1 δ( n n0 ) = 0 n = n0 n ≠ n0
直接实现: 直接实现:x=zeros(1,N); x(1,n0)=1; 2.单位阶跃序列 .
2. 信号功率
数字定义:
1 P= N
N 1 n =0
∑
x[n]
2
MATLAB实现: P=sum(x.*conj(x))/N; 或 E=sum(abs(x).^2)/N;
第 4 章 MATLAB在信号处理中的应用
4.4 线性时不变系统
4.4.1 系统的描述
1.常系数线性微分/差分方程 .常系数线性微分 差分方程
第 4 章 MATLAB在信号处理中的应用
第4章 MATLAB在信号处理中的应用 章 在信号处理中的应用
4.1 信号及其表示 4.2 信号的基本运算 4.3 信号的能量和功率 4.4 线性时不变系统 4.5 线性时不变系统的响应 4.6 线性时不变系统的频率响应 4.7 傅里叶 傅里叶(Fourier)变换 变换 4.8 IIR数字滤波器的设计方法 数字滤波器的设计方法 4.9 FIR数字滤波器设计 数字滤波器设计
第 4 章 MATLAB在信号处理中的应用
线性系统模型的变换函数
函数名 ss2tf ss2zp ss2sos tf2ss tf2zp tf2sos 功能说明 状态空间模型转换为传 递函数模型 状态空间模型转换为零 -极点增益模型 状态空间模型转换为二 次分式模型 传递函数模型转换为状 态空间模型 传递函数模型转换为零 -极点增益模型 传递函数模型转换为二 次分式模型 函数名 zp2tf zp2ss zp2sos sos2tf sos2zp sos2ss 功能说明 零-极点增益模型转换为传递 函数模型 零-极点增益模型转换为状态 空间模型 零-极点增益模型转换为二次 分式模型 二次分式模型转换为传递函数 模型 二次分式模型转换为零- 二次分式模型转换为零-极点 增益模型 二次分式模型转换为状态空间 模型
函数名 sawtooth square sinc chirp gauspuls vco 功能 产生锯齿波或三角波信号 产生方波信号 产生sinc函数波形 函数波形 产生 产生调频余弦信号 产生高斯正弦脉冲信号 电压控制振荡器 函数名 pulstran rectpule tripuls diric gmonopuls 产生冲激串 产生非周期的方波信号 产生非周期的三角波信号 产生Dirichlet或周期 或周期sinc函数 产生 或周期 函数 产生高斯单脉冲信号 功能