matlab根据转移函数绘制放大器幅频响应和相频响应

**

康华光-《电子学技术基础-模拟部分》第367页

**

(1)增加主极点
在反馈环路中增加一个主极点(参见图 7.9.2) ,并使它远离第二个极点,从而改变环路增益的频率特性,实现频率补偿。
例 7.8.1
设一电压放大电路的开环电压增益表达式为

A ˙ v = 1 0 5 ( 1 + j f / 1 0 5 ) ( 1 + j f / 1 0 6 ) ( 1 + j f / 1 0 7 ) \dot{A}_{v}=\frac{10^{5}}{\left(1+\mathrm{j} f / 10^{5}\right)\left(1+\mathrm{j} f / 10^{6}\right)\left(1+\mathrm{j} f / 10^{7}\right)} A˙v=(1+jf/105)(1+jf/106)(1+jf/107)105
式中 1 0 5 10^5 105是低频电压增益。 A ˙ v \dot{A}_{v} A˙v 的频率响应波特图如图 7.8.4 所示,其主极点频率是 1 0 5 10^5 105Hz 。将它组成负反馈放大电路,反馈网络由纯电阻组成,反馈系数 F v = 0.02 F_v=0.02 Fv=0.02试分析该电路的工作稳定性,若不稳定,请用增加主极点的方法,
实现频率补偿。
书上的图是这样的,上面的转移函数对应下面波特图中的红线。
在这里插入图片描述
我们尝试用matlab代码来实现
首先转化上述式子:
j f = s 2 π jf=\frac{s}{2\pi} jf=2πs
所以上述式子转化为:

A ˙ v = 1 0 5 ( 1 + j f / 1 0 5 ) ( 1 + j f / 1 0 6 ) ( 1 + j f / 1 0 7 ) \dot{A}_{v}=\frac{10^{5}}{\left(1+\mathrm{j} f / 10^{5}\right)\left(1+\mathrm{j} f / 10^{6}\right)\left(1+\mathrm{j} f / 10^{7}\right)} A˙v=(1+jf/105)(1+jf/106)(1+jf/107)105

三个极点:

z 1 = − 2 π ∗ 1 0 5 z_1=-2π*10^5 z1=2π105
z 2 = − 2 π ∗ 1 0 6 z_2=-2π*10^6 z2=2π106
z 3 = − 2 π ∗ 1 0 7 z_3=-2π*10^7 z3=2π107
所以
A ˙ v = 1 0 23 ( 2 π ) 3 ( z + z 1 ) ( z + z 2 ) ( z + z 3 ) \dot{A}_{v}=\frac{10^{23}(2π)^3}{(z+z_1)(z+z_2)(z+z_3)} A˙v=(z+z1)(z+z2)(z+z3)1023(2π)3
Matlab代码如下:

z=[]'
p=[-2*pi*10^5 -2*pi*10^6 -2*pi*10^7]'
k=10^23*(2*pi)^3

[num,den]=zp2tf(z,p,k)
P=bodeoptions;
P.FreqUnits='Hz';

g=tf(num,den)
bode(g,P)

在这里插入图片描述
根据上面读数可以看出,每经过一个极点,幅频下降斜率就会增加约
-20db/10倍频
因此可以验证书上的幅频图是正确的。

这里写matlab的时候需要注意两点:
①虽然代码中把频率单位调整为Hz,
但是输入的频率依然是角频率w,而不是 f f f
②调整单位后,matlab已经自动帮你计算了 20 l o g ∣ A ˙ v ∣ 20log|\dot{A}_{v}| 20logA˙v
可以看到幅频图低通区域数值是100dB,与书上完全一致。

心电传递函数是用于描述心电信号在传递过程中的幅频相频特性的函数幅频响应描述了信号在不同频率下的幅度变化情况,相频响应描述了信号在不同频率下的相位变化情况。 在Matlab中,可以使用信号处理工具箱中的函数来分析心电传递函数幅频相频特性。具体步骤如下: 1. 导入心电信号数据:首先,需要将心电信号数据导入到Matlab中。可以使用`load`函数或其他适合的函数来加载数据。 2. 心电信号滤波:为了分析心电传递函数幅频相频特性,通常需要对信号进行滤波。可以使用`filter`函数或其他滤波函数来实现。 3. 计算幅频响应:使用`freqz`函数可以计算滤波器的幅频响应。该函数会返回频率响应的幅度和相位信息。 4. 绘制幅频响应曲线:使用`plot`函数可以将幅频响应的幅度和相位信息绘制成曲线图。 5. 计算相频响应:使用`angle`函数可以计算滤波器的相频响应。该函数会返回频率响应的相位信息。 6. 绘制相频响应曲线:使用`plot`函数可以将相频响应的相位信息绘制成曲线图。 以下是一个示例代码,演示了如何使用Matlab分析心电传递函数幅频相频特性: ```matlab % 导入心电信号数据 load('ecg_data.mat'); % 心电信号滤波 fs = 1000; % 采样率 fc = 50; % 截止频率 [b, a] = butter(4, fc/(fs/2), 'low'); % 低通滤波器设计 filtered_ecg = filter(b, a, ecg_data); % 滤波 % 计算幅频响应 N = 1024; % FFT点数 [H, f] = freqz(b, a, N, fs); % 计算频率响应 % 绘制幅频响应曲线 figure; subplot(2, 1, 1); plot(f, abs(H)); xlabel('频率 (Hz)'); ylabel('幅度'); title('幅频响应'); % 计算相频响应 phase = angle(H); % 计算相位 % 绘制相频响应曲线 subplot(2, 1, 2); plot(f, phase); xlabel('频率 (Hz)'); ylabel('相位'); title('相频响应'); ``` 请注意,上述代码仅为示例,具体的实现方式可能会根据实际情况有所不同。你可以根据自己的需求进行调整和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值