clear % simple testing CS reconstruction capabilities % parametry N=128; %liczba próbek sygnału rekonstruowanego K=20; %liczba niezerowych próbek sygnału rekonstruowanego P=3.5; %mnożnik liczby pomiarów % sygnał (informacja) x=[rand(1,K) zeros(1,N-K)]'; x=x(randperm(N)); % generacja sygnału X (losowo rozrzucone K wartości niezerowe figure; plot(x); % pomiar m=floor(P*K); %liczba pomiarów Phi=randn(m,N)/sqrt(m);aPhi=Phi'; %ustalenie losowej macierzy pomiarowej y=Phi*x; %symulacja pomiarów; y - wektor wielkości pomiarzonej % rekonstrukcja określoną metodą nx=cspocs_K(Phi,aPhi,K,y,10000); %CS_L0 niewypukła symulacja z twardym progowaniem (zachłanny) mx=cspocs_l1(Phi,aPhi,norm(x,1),y,10000); %CS_L1 wypukła optymalizacja (programowanie, miękkie progowanie) lx = lp_re(Phi,y,1); %CS_LS iteracyjnie ważona metoda najmniejszych kwadratów (zachłanny) [fx,That]=SPnew(K, Phi, y); hold on; plot(nx,'ro'); plot(mx,'bo'); plot(lx,'go'); plot(fx,'mo'); RMSEn = sqrt(mean((x - nx).^2)) RMSEm = sqrt(mean((x - mx).^2)) RMSEl = sqrt(mean((x - lx).^2)) RMSEf = sqrt(mean((x - fx).^2))