Smoothing a roughly sinusoidal signal
6 次查看(过去 30 天)
显示 更早的评论
Hi,
I have position data coming from a high resolution angular position sensor and I need to improve the accuracy of the data by removing a regular sinusoid from it.
The below graph shows three plots of angular position error against time:
- The brown plot is the position error which needs to be corrected (ideal is a zero error horizontal line).
- The blue plot is the position error of a very high accuracy reference angular position sensor (for testing only and not present in the deployed application).
- The green plot is the difference between the brown and blue plots.
Common to both the brown and blue plot is a fast in phase ~2 sec error which can be ignored.
In the brown plot there's a ~24 sec error which I need to remove (the green difference plot more clearly shows this as it removes the faster ~2 sec error). The solution algorithm eventually needs to be deployed to run in realtime on a 32 bit microcontroller.
The dataset is in .csv format which I can post for analysis.
I've Googled various examples which lead me to believe a solution to this problem should be possible. The issue is I don't have sufficient signal processing experience to know how to implement a solution and would be very grateful for any help in solving this problem.
Best wishes,
Richard
0 个评论
回答(1 个)
Daniel M
2019-11-8
So are you saying you want to remove the frequency of the blue signal from the brown signal? Fairly easy, just use a notch/bandstop filter. You can find examples on these pages
7 个评论
Daniel M
2019-11-9
Are you using the DSP System toolbox? They have real time filters that you can do on individual samples at a time. But you'll have to look more into it, because I'm not too familiar.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Digital Filtering 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!