【问题标题】:Simple low/high filtering matlab简单的低/高过滤matlab
【发布时间】:2015-03-09 11:53:46
【问题描述】:

谁能帮我做另一个matlab项目:

是否可以像在 RC 电路中一样创建一个简单的低通滤波器?例如,如果我们创建一个像 y=10*sin(2*pift) 这样的正弦波。

我可以只用截止频率对信号进行滤波,以便能够看到滤波后的信号是什么样子(幅度衰减)?

所以当我输入一些信息,例如 f = cutoff 并绘制滤波后的信号时,这必须将幅度降低到输入信号的 30% 处吗?

我一直在寻找像 butter 和 cheby 这样的函数,但它们似乎做了其他类型的过滤,比如从信号中去除噪声。我只想要一些简单的图(输入和输出)来展示 RC、RL 低通和高通滤波器的原理。

【问题讨论】:

  • 可能更适合dsp.stackexchange.com。您正在使用计算机,因此您必须使用数字滤波器。数字滤波器只能近似 RC 滤波器的行为,因此问题的答案取决于您的目标。

标签: matlab filter


【解决方案1】:

RC 电路是一阶滤波器。为了近似一阶硬件滤波器,我通常使用 IIR 滤波器。巴特沃斯滤波器通常是 IIR 的首选,但对于一阶响应,这并不重要。

这是一个截止频率与信号频率相同的示例,因此滤波后的信号应降低 3 dB...

%first, make signal
fs = 1000;    %your sample rate, Hz
dur_sec = 1;  %what is the duration of your signal, seconds
t_sec = ([1:dur_sec*fs]-1)/fs;  %here is a vctor of time
freq_Hz = 25;       %what frequency do you want your sign wave
y = sin(2*pi*freq_Hz*t_sec);  %make your sine wave

%Second, make your filter
N = 1;  %first order
cutoff_Hz = 25;  %should be 3dB down at the cutoff
[b,a]=butter(N,cutoff_Hz/(fs/2),'lowpass');  %this makes a lowpass filter

%Third, apply the filter
y_filt = filter(b,a,y);

%Last, plot the results
figure;
plot(t_sec,y,t_sec,y_filt);
xlabel('Time (sec)');
ylabel('Amplitude');
ylim([-1 1]);
legend('Raw','Filtered');
title(['1st-Order Filter with Cutoff at ' num2str(cutoff_Hz) ' Hz']);

作为使用内置滤波器设计功能(如butter)的替代方法,您可以选择电路本身的模型。一个简单的一阶 RC(或 RL)电路将产生一阶微分方程。对于 RC 电路,您可以通过时间积分方程,给定您的正弦波作为刺激。这可以正常工作,但可能会更麻烦,具体取决于您的背景。

对于一个由 RC 两端的运算放大器正确缓冲的简单一阶硬件滤波器,我认为您会发现使用一阶黄油滤波器的结果将非常接近(相同?)作为电路建模。黄油过滤器更容易在软件中实现(因为我刚刚给了你上面的代码),所以我会走那条路。

但是,当您使用二阶硬件过滤器时,您必须更加小心。您有几个选择:

1) 继续使用内置过滤器功能之一为您的二阶硬件建模。二阶butter 实现起来很简单(更改上面代码中的N),但这可能无法模拟您创建的特定硬件过滤器。您必须选择正确类型的 IIR 滤波器以匹配您的硬件滤波器的架构。

2) 如果您还没有为您的硬件过滤器选择架构,您可以选择遵循规范过滤器类型之一的架构,以便通过buttercheby1 或任何。

3) 您可以返回使用微分方程对电路进行建模。这将使您可以对任何滤波器电路进行建模,无论它是否遵循规范类型。如果需要,您也可以在此处放置非线性效果。

不过,对于一阶 RC 滤波器,我认为任何内置滤波器类型对于 RC 滤波器来说都是一个不错的模型。我建议您使用上面的示例代码。我认为它会满足您的需求。

芯片

【讨论】:

    猜你喜欢
    • 2013-04-12
    • 2012-06-06
    • 1970-01-01
    • 2017-09-17
    • 2011-06-18
    • 2012-12-02
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多