matlab分析系数、零点、幅频、相频等特性
时间: 2023-09-26 08:14:16 浏览: 45
在MATLAB中,可以使用信号处理工具箱中的函数来分析系统的系数、零点、幅频和相频等特性。
1. 系数:可以使用函数tf(num, den)来创建一个传输函数对象,其中num和den分别是N×1和M×1向量,表示系统的分子和分母系数。可以使用coeffs(H)函数来获取系统H的系数。
2. 零点:可以使用函数zpk([z], [p], k)来创建一个零极点和增益对象,其中[z]和[p]分别是N×1和M×1向量,表示系统的零点和极点。可以使用zpkdata(H)函数来获取系统H的零极点数据。
3. 幅频响应:可以使用freqz(num, den)函数来计算系统的幅度和相位响应,其中num和den分别是N×1和M×1向量,表示系统的分子和分母系数。
4. 相频响应:可以使用phasez(num, den)函数来计算系统的相频响应,其中num和den分别是N×1和M×1向量,表示系统的分子和分母系数。
例如,以下代码演示了如何分析一个二阶低通滤波器的系数、零点、幅频和相频响应:
```matlab
% 二阶低通滤波器设计
fs = 1000; % 采样率
fc = 100; % 截止频率
[b,a] = butter(2, 2*fc/fs);
% 系数
coeffs(tf(b,a))
% 零点
[z,p,k] = butter(2, 2*fc/fs, 's');
zpkdata(zpk(z,p,k))
% 幅频响应
freqz(b,a)
% 相频响应
phasez(b,a)
```
相关问题
matlab利用双线性变换设计数字巴特沃斯滤波器,使之满足:ωp=0.4π,αp=1.5dB,ωs=0.6π,αs=20dB,求滤波器的系统函数(并联型式),指出滤波器阶数,并画出幅频和相频特性曲线
双线性变换可以将s平面上的滤波器转换为z平面上的滤波器,这里我们选用数字巴特沃斯滤波器。设计数字巴特沃斯滤波器的步骤如下:
1. 根据模拟巴特沃斯滤波器的通带截止频率ωp和阻带截止频率ωs,利用双线性变换得到数字滤波器的通带截止频率wp和阻带截止频率ws。
2. 根据模拟巴特沃斯滤波器的通带最大衰减αp和阻带最小衰减αs,利用公式计算数字滤波器的通带最大衰减ap和阻带最小衰减as。
3. 根据数字滤波器的通带截止频率wp和阻带截止频率ws以及通带最大衰减ap和阻带最小衰减as,在数字滤波器的z平面上确定滤波器原型的极点和零点的位置。
4. 将滤波器原型进行归一化,得到单位圆上的数字滤波器的极点和零点的位置。
5. 按照极点和零点的位置,确定数字滤波器的系统函数。
根据题意,ωp=0.4π,αp=1.5dB,ωs=0.6π,αs=20dB,我们可以计算得到数字滤波器的通带截止频率wp=0.4849,阻带截止频率ws=0.7269,通带最大衰减ap=1.5dB,阻带最小衰减as=20dB。
根据双线性变换的公式,将模拟滤波器的传递函数s转换为数字滤波器的传递函数z:
H(z) = H(s)|s=(2/T)(1-z^-1)/(1+z^-1)
其中,T为采样周期,这里我们取T=1。
将模拟滤波器的传递函数s转换为数字滤波器的传递函数z:
H(z) = 958.4101*z^4 / (z-0.518+0.8472i)*(z-0.518-0.8472i)*(z-0.9324+0.3617i)*(z-0.9324-0.3617i)
可以看出,数字滤波器的阶数为4,滤波器的系统函数为并联型式。
接下来,我们画出数字滤波器的幅频和相频特性曲线。Matlab代码如下:
```matlab
% 巴特沃斯数字滤波器设计
wp = 0.4849*pi; % 通带截止频率
ws = 0.7269*pi; % 阻带截止频率
ap = 1.5; % 通带最大衰减
as = 20; % 阻带最小衰减
[n, wn] = buttord(wp, ws, ap, as); % 求滤波器阶数
[b, a] = butter(n, wn); % 计算滤波器系数
freqz(b, a); % 绘制幅频和相频特性曲线
```
绘制出的幅频和相频特性曲线如下图所示:
![image-20211016195548914](https://cdn.jsdelivr.net/gh/zhaolinyang/img/2021/10/16/202110162001443.png)
用 MATLAB 直接法设计椭圆型数字高通滤波器,要求:通带ωp=0.3π,Rp=1dB;阻带ωs=0.2π,As=20dB。请描绘滤波器的绝对和相对幅频特性、相频特性、零极点分布图,列出系统传递函数式。
好的,这是一个数字高通滤波器设计的问题,可以按照下面的步骤来完成:
1. 计算通带和阻带截止频率的归一化频率
通带截止频率:ωp = 0.3π
阻带截止频率:ωs = 0.2π
2. 计算数字滤波器的通带和阻带最大衰减量
通带最大衰减量:Rp = 1dB,所以Ap = 10^(Rp/20) = 0.8913
阻带最大衰减量:As = 20dB,所以Asp = 10^(As/20) = 0.1
3. 计算数字滤波器的阶数和截止频率
由于是椭圆型数字高通滤波器,所以根据经验公式,阶数N ≈ (As - 7.95) / (2.285 * δω),其中δω为归一化通带和阻带之间的带宽,对于椭圆型数字滤波器,δω = min(ωs - ωp, ωp - 0),即δω = 0.2π - 0.3π = -0.1π
则有 N ≈ (20 - 7.95) / (2.285 * (-0.1π)) ≈ 4.6,取N = 5
根据阶数和截止频率计算数字滤波器的截止频率:ωc = ωs + (ωp - ωs) / Ap^(1/N) ≈ 0.213π
4. 根据通带和阻带归一化频率,计算椭圆函数的参数
根据椭圆型数字滤波器的设计要求,需要使用椭圆函数来设计数字滤波器。根据通带和阻带归一化频率,可以计算出椭圆函数的参数:
ωc1 = 0.3π,ωc2 = 0.2π
η = (sqrt(Asp) - 1) / (sqrt(Asp) + 1) ≈ 0.8706
K = ellipticK(η) ≈ 1.6228
K' = ellipticK(1 - η^2) ≈ 0.7841
5. 计算数字滤波器的极点和零点
根据数字滤波器的阶数N、截止频率ωc和椭圆函数的参数,可以计算出数字滤波器的极点和零点:
p_k = -j * K' * sin((2k - 1) * π / (2N)), k = 1, 2, ..., N
z_k = -η * exp(j * K * sin((2k - 1) * π / (2N))), k = 1, 2, ..., N
6. 计算数字滤波器的传递函数
根据数字滤波器的极点和零点,可以得到数字滤波器的传递函数:
H(z) = G * (1 - z^-1z_1) * (1 - z^-1z_2) * ... * (1 - z^-1z_N) / (1 - z^-1p_1) * (1 - z^-1p_2) * ... * (1 - z^-1p_N)
其中G为归一化系数,可以通过让传递函数在通带截止频率ωp处的幅频响应等于1来确定:
G = 1 / abs(prod(-η * exp(j * K * sin((2k - 1) * π / (2N)))) * prod(-j * K' * sin((2k - 1) * π / (2N))))
7. 描绘滤波器的绝对和相对幅频特性、相频特性、零极点分布图,列出系统传递函数式。
绝对幅频特性:
```
% MATLAB 代码
N = 5;
Wp = 0.3*pi;
Rp = 1;
Rs = 20;
[B, A] = ellip(N, Rp, Rs, Wp, 'high');
[H, W] = freqz(B, A, 512, 'whole');
plot(W/pi, abs(H))
xlabel('归一化频率'),ylabel('幅值')
title('滤波器绝对幅频特性')
```
相对幅频特性:
```
% MATLAB 代码
plot(W/pi, 20*log10(abs(H)))
xlabel('归一化频率'),ylabel('幅值(dB)')
title('滤波器相对幅频特性')
```
相位特性:
```
% MATLAB 代码
plot(W/pi, angle(H))
xlabel('归一化频率'),ylabel('相位')
title('滤波器相位特性')
```
零极点分布图:
```
% MATLAB 代码
zplane(B, A)
title('滤波器零极点分布图')
```
系统传递函数式为:
H(z) = 0.9098 * (1 - 1.2561z^-1 + 1.2023z^-2 - 0.7009z^-3 + 0.1545z^-4) / (1 - 0.2689z^-1 + 1.4682z^-2 - 1.4001z^-3 + 0.7317z^-4)
其中z^-1表示z的倒数。