太原理工大学matlab课程设计一到五
设计一 离散系统的matlab实现
一.设计目的
通过该设计,理解系统的单位抽、抽样响应及零极点增益的概念及意义。
二.设计内容及其主要Matlab函数
如图所示的一个离散系统
该离散系统对应输入输出差分方程为:
y(n)-0.4y(n-1)-0.5y(n-2)=0.2x(n)+0.1x(n-1)
求该系统的单位抽样响应,频率响应及零点增益。
1. 单位抽样响应
系统的单位抽样响应是当输入信号为单位抽样信号是系统的输出响应。
Matlab中有两个函数可以计算系统的单位抽样响应:filter函数和IMpz函数。
1) filter函数
filter函数是利用递归滤波器或非递归滤波器对数据进行滤波。因为一个离散系统可以看做一个滤波器。系统的输出就是输入进过滤波器滤波的结果。Filter函数的格式为: y=filter(b,a,x)
此函数是对有a和b组成的函数对输入进行滤波,如果输入为单位抽样信号g(n),纳闷输出就是系统的单位抽样响应。
2)impz函数
Impz函数的格式为;
Impz(b,a)可直接给出系统的单位抽样响应
2. 频率响应H(ejw)
由向量a和b组成的系统的频率响应为
∑b(r)e^
H(e^jw)= ——————————
1+∑a(k)e^-jw
MATLAB中的freqz函数使用给予FFTd suanfa 来计算由向量a和b组成的系统的频率响应。其一般用法为:
[h,f]=freqz(b,a,n,Fs)
其中向量a和b由离散系统决定,FS为采样频率,在[0,Fs/2]频率范围内选取n个频率点,并记录在f中,由于freqz函数是采用基2的FFT算法,n常取2
的幂次方,这样可以提高运算速度。
3. 零极点增益
利用MATLAB中roots的函数可以求得系统的零,极点,从而得到系统的零极点增益表示,其一般用法为:
Zr=roots(b)
Zp=roots(a)