任务描述:使用MATLAB编程语言来模拟一个高频小信号放大器的系统。在这个模拟中,需要考虑到信号源的内部阻抗、电感的损耗以及负载电阻的影响。模拟的输入信号应由至少三个频率和幅度各不相同的正弦波组合而成。你需要提供输入和输出信号的波形图,展示放大器的通频带特性曲线,并探究负载的变化是如何影响电压放大倍数、有载品质因素以及通频带宽度的。
matlab代码:
% 重置matlab环境
clear all;
% 定义信号的幅度
amp1 = 15; amp2 = 10; amp3 = 5;
% 定义信号的基础频率
base_freq = 2e6;
% 定义其他参数
offset = 75e-3;
scale1 = 0.35; scale2 = 0.35;
% 定义电感和电容值
inductance = 3.5e-6;
capacitance = 120e-12;
% 获取用户输入的负载电阻值
load_resistance = input('负载电阻值=');
% 计算谐振频率
resonant_freq = 1 / (sqrt(inductance * capacitance));
% 计算品质因数
quality_factor = load_resistance / (resonant_freq * inductance);
% 计算带宽
bandwidth = resonant_freq / quality_factor;
% 定义频率范围
frequency = (resonant_freq - 2 * bandwidth) : (bandwidth / 20) : (resonant_freq + 2 * bandwidth);
% 转换为时间域
time_domain = frequency / (2 * pi);
period = 1 ./ time_domain;
time = 0:period / 20:2 * period;
% 生成输入信号
input_signal = amp1 * sin(frequency' * time) + amp2 * cos(2 * frequency' * time) + amp3 * sin(3 * frequency' * time);
% 计算增益
gain = 40e-4 + (3e-3 + 1 / load_resistance) / 16;
amplification_factor = offset * scale1 * scale2 / gain;
% 重新计算品质因数和带宽
quality_factor = load_resistance / (resonant_freq * 1);
bandwidth = resonant_freq / quality_factor;
% 计算归一化频率
normalized_freq = (frequency - resonant_freq) / resonant_freq;
normalized_response = sqrt(1 + (quality_factor .* normalized_freq).^2);
% 计算放大信号
amplified_signal = amplification_factor ./ normalized_response;
for k = 1 : length(amplified_signal)
output_signal(k, :) = amplified_signal(k) .* input_signal(k, :);
end
% 绘制输入和输出信号
subplot(3, 1, 1); plot(time, input_signal, 'c-');
xlabel('时间 t'); ylabel('输入信号');
subplot(3, 1, 2); plot(time, output_signal, 'm-');
xlabel('时间 t'); ylabel('输出信号');
% 绘制通频带曲线
subplot(3, 1, 3); plot(time_domain, 1 ./ normalized_response, 'k-');
波形图:自己下matlab自己截
结论:自己编吧
恭喜你选了这个学期最坑爹的一门课之一,事又多分又少