过滤振动引起的噪音所需的算法
例如,您测量来自某些设备的数据,它可以是在桥上移动的物体的质量。因为它正在移动,质量将提供数据,这些数据将根据物体的质量以一定的幅度振动。质量越大,振动越大。 有没有什么方法可以从数据中过滤掉这种噪音? 可能正在使用一些振动公式?不知道这里可以使用什么样的公式或算法(过滤器)。请提出任何建议。 编辑2: 更好的图,我只是为了更好地理解而画出来的:
图片不太好。从该图中您可以看到每次的频率都是相同的 时间,但振幅会周期性变化。当移动的道路上没有物体时,我就会遇到类似的情况。 (传送带)。振动接近零值。 当物体移动时,会出现相同的波,但幅度会发生变化。 该图可以看出可能有一些力施加到系统上并产生强迫振荡。所以我对消除这种噪音很感兴趣。我不知道是什么力量导致了这种变化。很快我希望能得到一些关于有物体和没有物体的非移动道路的数据,以便与移动道路的情况进行比较。
For example you measure the data coming from some device, it can be a mass of the object moving on the bridge. Because it is moving the mass will give data which will vibrate in some amplitude depending on the mass of the object. Bigger the mass - bigger the vibrations.
Are there any methods for filtering such kind of noise from that data?
May be using some formulas of vibrations? Have no idea what kind of formulas or algorithms (filters) can be used here. Please suggest anything.
EDIT 2:
Better picture, I just draw it for better understanding:
Not very good picture. From that graph you can see that the frequency is the same every
time, but the amplitude chanbges periodically. Something like that I have when there are no objects on the moving road. (conveyer belt). vibrating near zero value.
When the object moves, I there are the same waves with changing amplitude.
The graph can tell that there may be some force applying to the system and which produces forced occilations. So I am interested in removing such kind of noise. I do not know what force causes such occilations. Soon I hope I will get some data on the non moving road with and without object on it for comparison with moving road case.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
最后一个图中的基本上是来自以下函数的调幅振荡:
已选择常数来匹配您的图(仅使用经验法则)
该函数的图为
这不是“噪音”(尽管也可能存在一些噪音),但可以轻松过滤。
让我们看看您的静态和移动有效负载的数据......
编辑
根据您对几条评论的回复,并根据我之前使用称重设备的经验:
正如我之前所说,您需要大量信息,但似乎无法获得。我总是与设计该设备的工程师作为一个团队合作。
请随时添加更多信息...
What you have in your last plot is basically an amplitude modulated oscillation coming from a function like:
The constants have been chosen to match your plot (using just a rule of thumb)
The Plot of this function is
That isn't "noise" (although may be some noise is there too), but can be filtered easily.
Let's see your data for the static and moving payloads ....
Edit
Based on your response to several comments, and based in my previous experience with weighting devices:
As I said before, you need a lot of info, and it seems that is not available. I always worked as a team with the engineers designing the device.
Don't hesitate to add more info ...
您是否尝试过具有低通特性的滤波器?平滑数据的方法有多种(即 Savitzky-Golay、高斯、移动平均),但通常,简单的 N 点中值滤波器就足够了。
这实际上取决于你想要什么。
Have you tried filters with lowpass characteristics? There are different approaches for smoothing data (i.e. Savitzky-Golay, Gauss, moving average) but often, a simple N-point median filter is already sufficient.
It really depends on what you're after.
看看这本书:
科学家和工程师数字信号处理指南
您可以免费下载。特别是,请查看第 14 章和第 15 章。
Take a look at this book:
The Scientist and Engineer's Guide to Digital Signal Processing
You can download it for free. In particular, check chapters 14 and 15.
如果频率随质量变化并且您正在尝试测量质量,为什么不测量振荡频率并将其用作主要测量方法呢?
否则,您需要一个可调谐的陷波滤波器 - 找出“噪声”的频率并将陷波滤波器调整到该频率。
另一本值得尝试的书是 Lyons 理解数字信号处理
If the frequency changes with mass and you're trying to measure mass, why not measure the frequency of the oscillations and use that as your primary measure?
Otherwise you need a notch filter which is tunable - figure out the frequency of the "noise" and tune the notch filter to that.
Another book to try is Lyons Understanding Digital Signal Processing
为了平滑信号,我会对之前的
2 * n
样本进行平均,其中n
是振动的最大预期波长。这应该会消除大部分噪音。
In order to smooth the signal, I'd average the previous
2 * n
samples wheren
is the maximum expected wavelength of the vibrations.This should cause most of the noise to be eliminated.
如果您对频率范围有所了解,则可以进行简单的平均,只要测量周期足够长,足以达到您想要达到的精度水平。平均数据的波长越多,部分波长造成的误差的比率就越小。
我建议首先在 Matlab 等软件中对此进行模拟/建模。
您需要考虑的数据:
振动频率的预期范围
您想要达到的测量精度
您想要测量的预期质量范围
质量与振动幅度的函数
If you have some idea of the range of frequencies, you could do a simple average as long as the measurement period were sufficiently long to give you the level of accuracy you want to achieve. The more wavelengths worth of data you average against, the smaller the ratio of contributed error from a partial wavelength.
I'd suggest first simulating/modeling this in software like Matlab.
Data you'll need to consider:
The expected range of vibration frequencies
The measurement accuracy you want to achieve
The expected range of mass you'll want to measure
The function of mass to vibration amplitude
您应该能够应用与降噪麦克风相同的原理:放置两个传感器,然后从主传感器(靠近良好信号源)的信号中减去辅助传感器(远离良好信号源)的信号。
显然,如果“噪声”相当均匀地到达两个传感器,而“信号”更强烈地到达主传感器,则效果最佳。
对于声音之类的东西,这在传感器本身中很容易做到,这使得您的软件更加简单且性能更高。根据您测量的内容,使用多组硬件并在软件中进行取消可能更容易完成。
You should be able to apply the same principles as noise-cancelling microphones: put two sensors out, then subtract the secondary sensor's (farther away from the good signal source) signal from the primary sensor's (closer to the good signal source) signal.
Obviously, this works best if the "noise" will reach both sensors fairly equally while the "signal" reaches the primary sensor much more strongly.
For things like sound, this is pretty easy to do in the sensor itself, which makes your software a lot easier and more performant. Depending on what you're measuring, this might be easier to do with multiple sets of hardware and doing the cancellation in software.
如果您可以表征不需要的振动噪声的频谱,您也许能够合成一组(接近)最小相位陷波或带阻滤波器,以允许您以所需的信噪比获取所需的信号具有最小化的延迟或数据集大小。
If you can characterize the frequency spectra of the unwanted vibration noise, you might be able to synthesize a set of (near) minimum phase notch or band reject filter(s) to allow you to acquire your desired signal at your desired S/N ratio with minimized latency or data set size.
正如之前的海报所指出的,过滤嘈杂的数字信号非常简单。有很多参考资料。然而,您还没有明确说明您的目标,因此我们无法为您指出一个好的方向。您是否正在寻找桥梁上单个物体的单一测量? [然后查看其他答案]。
您是否正在监控这座桥上的交通并在每个实体经过时对其进行称重?然后,您需要确定实体何时位于传感器上以及何时不在传感器上。通常,只要传感器的本底噪声明显低于您正在测量的信号,就可以通过简单的阈值处理来实现。
您是否正在尝试测量其他车辆引起的桥梁振动?在这种情况下,如果您在执行此操作时遇到问题,则需要更昂贵的传感器,或者更清晰的测量目标。
Filtering noisy digital signals is straight forward, as previous posters have noted. There are lots of references. You have not however stated what your objectives are clearly, so we cannot point you into a good direction. Are you looking for a single measurement of a single object on a bridge? [Then see other answers].
Are you monitoring traffic on this bridge and weighing each entity as it passes by? Then you need to determine when entities are on the sensor and when they are not. Typically, as long as the sensor's noise floor is significantly lower than the signal you're measuring this can be accomplished by simple thresholding.
Are you trying to measure the vibrations of the bridge caused by other vehicles? In which case you need either a more expensive sensor if you're having problems doing this, or a clearer measuring objective.