一阶RC低通滤波器(巴特沃斯滤波)

前言

一种ADC采样算法,中位值平均滤波+递推平均滤波_递推中位值滤波法-CSDN博客

之前对数字信号滤波有了很浅的接触。

最近稍微研究了滤波器,想用模拟和数字的形式来简单理解一下,记录在这里。

有纰漏请指出,转载请说明。

学习交流请发邮件 1280253714@qq.com

参考

【动态系统的建模与分析】9_一阶系统的频率响应_低通滤波器_Matlab/Simulink分析_哔哩哔哩_bilibili

从最基本的单元开始:模拟滤波器设计--无源RC滤波器_哔哩哔哩_bilibili

[5.4.1]--一阶滞后滤波_哔哩哔哩_bilibili

滤波器设计工具 | 滤波器设计向导 | Analog Devices

一阶滤波器的定义

一阶滤波器(First-Order Filter)是滤波器的一种基本类型,其特点是在连续时间域或离散时间域中,滤波器的传递函数或差分方程具有一阶的形式。

连续时间域:在连续时间域中,一阶滤波器的传递函数通常具有如下形式:

其中,s 是复频率变量,a0​ 和 a1​ 是常数。

离散时间域:在离散时间域中,一阶滤波器的差分方程或传递函数通常具有如下形式:

或者

其中,y[n] 是输出信号,x[n] 是输入信号,α 和 a1​ 是常数,z 是复频率变量。

为什么需要一阶滤波器

一阶滤波器在信号处理和控制系统中有多种应用,其主要原因包括:

  1. 简单性:一阶滤波器具有简单的数学模型,容易实现和分析。
  2. 平滑性:一阶滤波器能够平滑输入信号中的高频噪声或变化,使输出信号更加平滑。
  3. 延迟性:一阶滤波器引入了一定的时间延迟,这在某些应用中是有益的,例如用于稳定控制系统或模拟某些物理系统的行为。
  4. 可调性:通过调整一阶滤波器的参数(如 α 或 a1​),可以控制滤波器的截止频率、带宽或响应时间等特性。
  5. 稳定性:一阶滤波器在设计和实现时,容易确保其稳定性。

一阶滤波器通常用于各种实际应用中,如音频处理、图像处理、控制系统、传感器数据预处理等。它们可以是低通滤波器(允许低频信号通过,抑制高频信号)、高通滤波器(允许高频信号通过,抑制低频信号)、带通滤波器(允许特定频率范围内的信号通过)或带阻滤波器(抑制特定频率范围内的信号)。

一阶RC滤波器的电路模型与推导

模型搭建与仿真 

这里选取τ=RC=1时的传递函数

带高频噪声的信号
带高频噪声的信号

滤波前与滤波后的对比
原始信号与滤波后的信号,可以发现滤波后相位滞后了

 幅相特性曲线

% 定义传函
numerator = [1]; % 分子系数
denominator = [1 1]; % 分母系数
sys = tf(numerator, denominator); % 创建传函模型
 
% 绘制幅相特性曲线
bode(sys);

伯德图 

从一阶RC低通滤波器的伯德图(Bode Plot)中,我们可以观察到以下几个关键的信息和特性:

  1. 截止频率(Cutoff Frequency):伯德图中的幅值曲线(Magnitude Plot)从0dB开始下降,当达到某个频率时,其幅值下降3dB(即下降一半,因为20log(0.5) = -6dB)。这个点就是滤波器的截止频率。对于一阶RC低通滤波器,截止频率(fc)的计算公式为:fc = 1 / (2πRC),其中R是电阻值,C是电容值。在截止频率之前,信号基本不受衰减地通过;而在截止频率之后,信号的幅度随频率的增加而逐渐减小。

  2. 相位延迟(Phase Shift):伯德图的相位曲线(Phase Plot)显示了信号通过滤波器后相对于原始信号的相位延迟。对于一阶RC低通滤波器,随着频率的增加,相位延迟逐渐增加,但永远不会超过90度。

  3. 滤波器类型:伯德图清晰地表明滤波器是低通滤波器,因为随着频率的增加,幅值响应逐渐减小。

  4. 滤波器性能:通过伯德图,我们可以评估滤波器的性能,例如过渡带宽(即幅值从0dB下降到-3dB的频率范围)和阻带衰减(即高频信号的抑制程度)。这些信息对于选择合适的滤波器参数以满足特定应用需求非常重要。

离散信号的代码实现

 

% 采样频率(Hz)  
Fs = 1000;   
  
% 时间向量(秒)  
t = 0:1/Fs:1-1/Fs;  
  
% 只取时间向量的前1/3  
t_third = t(1:floor(length(t)/3));  
  
% 正弦波频率(Hz)  
f_signal = 50;   
  
% 生成没有噪声的正弦波信号  
x_signal = sin(2*pi*f_signal*t);  
x_signal_third = x_signal(1:floor(length(t)/3));  
  
% 添加高频噪声(例如使用随机噪声)  
x_noise = 0.3 * randn(size(t));  
x_noisy = x_signal + x_noise;  
x_noisy_third = x_noisy(1:floor(length(t)/3));  
  
% 截止频率(Hz),例如80Hz(低于噪声频率但高于信号频率)  
fc = 80;   
  
% 计算归一化截止频率(Nyquist频率的一半为1)  
Wn = fc / (Fs / 2);  
  
% 一阶滤波器的系数(对于离散时间系统,我们使用差分方程)  
% alpha 是差分方程中的系数  
alpha = exp(-Wn);  
  
% 初始化输出信号和之前的样本(用于差分方程)  
y_filtered = zeros(size(x_noisy));  
y_prev = 0;  
  
% 滤波过程(使用差分方程)  
for n = 1:length(x_noisy)  
    y_filtered(n) = alpha * y_prev + (1 - alpha) * x_noisy(n);  
    y_prev = y_filtered(n);  
end  
  
% 滤波后的信号也只取前1/3  
y_filtered_third = y_filtered(1:floor(length(t)/3));  
  
% 绘制原始信号、带噪声的信号和滤波后的信号的前1/3部分  
figure;  
subplot(3,1,1);  
plot(t_third, x_signal_third);  
title('Original Signal (Sine Wave) - First Third');  
xlabel('Time (s)');  
ylabel('Amplitude');  
grid on;  
  
subplot(3,1,2);  
plot(t_third, x_noisy_third);  
title('Signal with Noise - First Third');  
xlabel('Time (s)');  
ylabel('Amplitude');  
grid on;  
  
subplot(3,1,3);  
plot(t_third, y_filtered_third);  
title('Filtered Signal (1st Order Lowpass) - First Third');  
xlabel('Time (s)');  
ylabel('Amplitude');  
grid on;

EXCEL的仿真 

signal(n) = 1-(EXP(-An/1)) ,时间常数τ=1

signal(n) = SIN(2*PI()*An/100)

  • 34
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值