Doubts about digital signal processing methodology

1 次查看(过去 30 天)
Disclaimer: This is question is more about signal processing and less about the code that does said processing. I'm a beginner at all of this.
I am working with vibration data from accelerometers recorded at a sampling rate of 1600 Hz and the vibrations are induced by a source within the range of 20-40 Hz. I snip out about 60-80 seconds of data and use it for analysis.I have the following work flow to perform some basic analysis on this vibration data, where I run the data through a series of digital band passes (all 5Hz - 500Hz) and integrate it:
I am able to generate plots that look this this:
My questions are:
  1. The strange peaks in the overview at the extreme ends : I understand from a bit of reading around, that this is due to passing my snipped signal through a digital band pass filter without padding it on both sides. Another method that I have read which could solve this is - subtract the mean value of the input signal, pass it through the DBP and then add the average back to the output from the filter. Is this the correct solution? Can someone explain why this happens, from a mathematical PoV please?
  2. When I snip my main signal into chunks of 60-80s, am I already kind of performing a window function? If not, is it always essential to use a window function before I perform an FFT? Because, the smaller chunks that I snip out are already fully relevant for performing an FFT and I don't see how a window function would be relevant in this case.
Thank You!
  2 个评论
Sharmin Kibria
Sharmin Kibria 2022-9-25
Yes, by snipping you are performing a window operation with a rectangular window. As the rectangular window has a very sharp edge you are losing some data at the edges. That is causing the issues at the edges. One way of reducing the edge effects will be to use windows like hamming, hanning, etc that do not have sharp edges. As these windows have gradual roll-off, they won't cause any increase in value at the edges.
I do not see think adding of subtracting the mean is going to solve the problem. The mean is just the value you get at the DC frequency. Adding and subtracting will impact what you see at the zero frequency.
Chiranjeevi Viswa Teja Jupudi
Thanks for your answer!
Just a small follow-up question about the windowing:
Is it mathematically ok to first snip my data like I have been doing (i.e. effectively a rectangular window), and then using an appropriate windowing function suitable for the data that I have?

请先登录,再进行评论。

回答(1 个)

William Rose
William Rose 2022-9-25
@Chiranjeevi Viswa Teja Jupudi, Is the first time-domain Acc signal which you plotted the raw signal? Or is the plotted Acc signal the signal which you get after the initial digital band pass (DBP) filter? I suspect it is the latter. A DBP uses past values of the signal (and future values, if it is a non-causal filter) to compute the output. I suspect your DBP is using both past and future values, because you have transients at both ends. At the ends, the DBP filter in essence subsitutes an input value of 0, when the filter window extends beyond the edges of the recording. This produces transients, if the mean value of the raw signal is not zero. The duration of the transient can be suprisingly long it the filter is an IIR filter rather than an FIR filter. I used to see this when applying a 60 Hz band-reject filter to get rid of power-line-frequency frequency noise. (Power line frequency=60 Hz in USA. I was using a band-reject filter, not band-pass, but the principle is the same.) Two options for fixing this problem are:
  1. Remove the mean before applying the DBP filter, then add the mean back in later.
  2. Apply the filter to the raw signal without removing the mean. Chop off the edges of the filtered signal to remove the transients.
The transients in the velocity and displacement signals are due to integration of the transients in the Accel signal. If you fix the Accel signal, then you should not have transients in the volocity or displacement.
Double integration of acceleration can lead to interesting reslts, if the recording is long and if there is any baseline offset or drift in the acceleration signal. When I double-integrated acceleration signals from ice skaters, the results indicated that they had skated to an adjoining town by the end of practice, even though they were in fact still on the same ice rink :).
  4 个评论
Chiranjeevi Viswa Teja Jupudi
Thanks again for your comments. Incidentally, I just did what you suggested and it turns out integrating the filtered (bandpassed) signal works better for me. I also found that the solution no.2 from your answer works better for me than the first one.
You're right about the drift, which I already observed when I first roughly integrated my data as a prelim analysis. I did work around it by detrending the output signal before plotting. And it looks quite acceptable, so far. Besides, the relevant length of the signal in my case is about 60-80 seconds, which could also be why I see the drift.
That's a nice littel tip about accelerometer axis orientation. Because I do use 3 axis sensors, which are placed pretty much unsupported in a matrix of other solid bodies. But luckily, I already know what are the approximate nature of accelerations I am expecting to see in each direction. Some of these accelerometers which are susciptible to rotation also have a gyro recording the angular displacements that I can fetch and correlate with any discepancies that I find in acceleration data. Further, I also have a record of the orentation of each sensor at the start and end of the observation which helps as another way of check, esp for the sensors that have no gyro.
All in all, I thank you very much for your insightful comments and answers! It was very kind of you to contextualise everything for me at each step!
William Rose
William Rose 2022-9-28
@Chiranjeevi Viswa Teja Jupudi, you're welcome, and thank you for your kind comments. Good luck with your work!

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Spectral Measurements 的更多信息

产品


版本

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by