11/21/2023 0 Comments Piezo electric accelerometer![]() Basically, the noisy signal (signal + noise) is attenuated over the frequencies where the noise is expected to be grater than your signal, and it is amplified where your signal is expected be grater than your noise. One answer to this question is the Wiener filter, which requires knowledge of the statistics of your noise and your desired signal. What would be your cut-off frequencies since your noise is all over the spectrum? ![]() ![]() DFT or low-pass filters, is not a good one. Roughly speaking, it means that your noise contains all frequencies. If you assume white Gaussian noise (which turns out to be a good assumption) its power spectrum density is constant. The problem is that your noise has a flat spectrum. If $y$ is the noisy signal and $x$ is the signal to be estimated, the function to be minimized is $\mu\|\|_1$, where $D$ is the finite differences operator. The parameters $\mu$ and $\rho$ have to be adjusted according to the noise level and signal characteristics. The code is based on the paper An Augmented Lagrangian Method for Total Variation Video Restoration. This may be the case for the accelerometer data, if your signal keeps varying between different plateaux.īelow is a Matlab code that performs TV denoising in such a signal. Then ive use omega arithmetic on the FFT of the data.Īlso thanks very much to datageist for adding my images into my post :)Īs pointed out by in Bag of Tricks for Denoising Signals While Maintaining Sharp Transitions, Total Variaton (TV) denoising is another good alternative if your signal is piece-wise constant. So essentially, ive performed a FFT on my accelerometer data, giving Sz, filtered high frequencies out using a simple brick wall filter (I know its not ideal). I have also tired using a low pass filter on the original accelerometer data, which has done a great job of smoothing it, but I'm not really sure where to go from here.Īny guidance on where to go from here would be really helpful!ĮDIT: A little bit of code: for i in range(len(fz)): Is this a good way to go about things? I am trying to remove the overall noisy nature of the signal but obvious peaks such as at around 80 seconds need to be identified. Then I used omega arithmetic and inverse FFT to gain a plot for velocity. One of my attempts was to FFT the acceleration signal, then render low frequencies to have a absolute FFT value of 0. I dont think I can use a Kalman filter at the moment because I cant get hold of the device to reference the noise produced by the data (I read that its essential to place the device flat and find the amount of noise from those readings?)įFT has produced some interesting results. I understand that accelerometers from mobile phones are extremely noisy. An example of the type of data Ill be experiencing can be seen in the following image:Įssentially, I am looking for advice as to smooth this data to eventually convert it into velocity and displacement. I am fairly new to DSP, and have done some research on possible filters for smoothing accelerometer data in python.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |