How to recover the original signal from a noisy signal?
18 ビュー (過去 30 日間)
古いコメントを表示
I am trying to recover the original signal as shown in (3,1,1). I have represented the signal using 10 discrete numerical values in (3,1,2). After adding some noise using randn(), I have received the "noisy" signal in (3,1,3). Now, I want to retrieve the original data (3,1,1) from the noisy signal. I am confused here on how to implement the logic.
The same concept goes for the (3,1,2) as well. The only difference is the noise (randn()) function. I don't know to get the (3,1,1) from either (3,1,2) or (3,1,3).
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/488293/image.png)
The code I've written:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/488298/image.png)
0 件のコメント
採用された回答
Jon
2021 年 1 月 14 日
編集済み: Jon
2021 年 1 月 14 日
You need to low pass filter the data and then downsample it.
If you have the Signal Processing Toolbox you can do these together using the decimate function.
Otherwise you need to first low pass filter your data (at least in the case where the data is noisy) and then downsample it.
The downsampling part, can be done without the Signal Processing Toolbox simply by indexing. So for example for a vector x to select every 10th value
idx = 1:10:numel(x)
xds = x(idx)
or more compactly
xds = x(1:10:numel(x))
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Multirate Signal Processing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!