Matlab Simulink 采样

信息处理 matlab 过滤器
2022-02-19 01:22:36

首先,我为模糊的标题道歉,老实说,我什至不知道如何在标题中描述我的问题。如果有人想编辑它以使其更能反映我的要求,那么请这样做。

我有实时运行的 simulink 模型收集数据并实时处理(1ms)。

它所做的一件事是从外部源读取信号。当信号进来时,它的形状很糟糕,但如果你仔细观察,你会发现它“有点”类似于我们所期望的信号。所以一些过滤应该照顾它!

我收集了一些数据,然后开始使用 matlab 提供的各种过滤器选项,并且我在信号处理工具箱中发现了一个名为 filtfilt 的工具,效果非常好。它几乎可以从杂乱的输入信号中提取出我正在寻找的信号。它与参考信号非常匹配。赢!(所有这些都是通过脚本完成的)。

由于我们的模型在 simulink 中,因此我希望能够模拟滤波器在 simulink 环境中的工作方式,因此我创建了一个带有抽头延迟的功能块,以一次“模拟”一个样本中的数据,它。 ..不起作用。这意味着通过脚本运行时输出看起来不像我的过滤器。

如何让我的 simulink 表现得像我的脚本?

这实际上是我第一次使用 simulink。我过去曾使用 matlab 编写脚本,但从未使用过 simulink。

我的过滤器只是

fc = 32; %cutoff freq
fs = 1000; %sample freq
fn = fc /(fs /2 ); %nyquist freq
pole = 12; %pole 
Av =7.6; %gain for butteworth
[b,a] = butter(pole,fn,'low'); %10 pole butterworth
lpf_out = Av*filtfilt(b,a,data); %apply filter

参考信号 参考信号

输入信号 输入信号

滤波信号 滤波信号

0个回答
没有发现任何回复~