Recovering a sinusoidal wave through sparse optimization.

Consider we have this Signal that is corrupted by noise. How to obtain the original signal ( assuming that we don't know the frequency of the actual signal) through sparse recovery?
%Sine wave generation
freq=400;
Amp=1;
t_samp=1/8000;
T=0.01;
t=0:t_samp:T;
y=Amp*sin(2*pi*freq*t);
subplot(2,1,1);
plot(t,y)
ylabel ('Amplitude');
xlabel ('Time');
title ('Sine wave');
%Add noise to signal
noisy = y + 0.1 * randn(1, length(y));
subplot(2,1,2);
plot(t,noisy)
ylabel ('Amplitude');
xlabel ('Time');
title ('Signal corrupted by noise');
Feel free to use SPOPT, SPGL solvers, SPASM, plain code or whatever you would prefer.
Thanks for your time and patience!

Answers (0)

Products

Asked:

on 25 Aug 2017

Edited:

on 27 Aug 2017

Community Treasure Hunt

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

Start Hunting!