Restore sinusoid signal data

1 回表示 (過去 30 日間)
Robert Worm
Robert Worm 2018 年 9 月 10 日
My data consists of a discrete time periodic signal. At certain points I have to remove corrupted samples.
I want to restore the sinusodial signal in this region. Maybe take an area before or after the fault region and match it to where samples are removed.
Is there a smart way to do this?
  1 件のコメント
Robert Worm
Robert Worm 2018 年 9 月 10 日
編集済み: Robert Worm 2018 年 9 月 10 日
This is an exemplary dataset.

サインインしてコメントする。

回答 (2 件)

Naman Chaturvedi
Naman Chaturvedi 2018 年 9 月 14 日
One way would be to find the frequency of the signal from the clean part of the signal by calculating the distance between the first min and max point and then, use the first value of sinusoid wave to find the phase. Using the frequency and phase, you can recover your signal.
Other method can be to use an appropriate filter. But, there will still remain some noise in the signal.
You can also use a filter like the savitzky gola filter to filter out noise by estimating your signal as a polynomial the way we do in taylor series expansion. Check out this MATLAB ans for the same.
Hope this helps.
  1 件のコメント
Robert Worm
Robert Worm 2018 年 9 月 17 日
Thanks.
Finding phase and frequency seems to be the best approach.
However the signal usually contains multiple frequency components. A suitable duration is selected beforehand and a convolution applied next.
With maxima and minimal the suitable time slot is determined. Still working on the code for matching the phase precisely.
Savitzky gola filtering also seems promising.

サインインしてコメントする。


Camiglia Anomi Perera Raigama Vidanalage
How can I find the phase of the signal?

カテゴリ

Help Center および File ExchangeMultirate Signal Processing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by