function [u,x] = entrausch(n,pn,mu)

% das Gitter
    h  = 2/n;                                      % Zellenbreite
    x  = -1.0 + 0.5*h + h*(0:(n-1))';              % Zellzentren

% verrauschte Funktion
    k  = fix(n/2);
    v0 = [zeros(k,1);ones(n-k,1)];                 % Treppenfunktion

%   v0 = sin(10*x);                                % mehrere Treppen
%   v0 = double(v0 > 0) - double(v0 <= 0);

    randn('seed',0);                               % init randn
    v  = v0 + pn*randn(n,1);                       % verrauschte Funktion

% Diskretisierung des entrauschenden Operators
    D  = diag([ones(n-1,1);0])...                  % Diskretisierung
       + diag([0;ones(n-1,1)])...                  %   der zweiten
       - diag(ones(n-1,1),1)...                    %   Ableitung mit
       - diag(ones(n-1,1),-1);                     %   Randbedingungen
    A  = eye(n) + mu*D/h^2;                        % entrauschender Operator

% loese das System
    u  = A\v;                                      % entrauschte Funktion

% zeige exakt, verrauscht und entrauscht zusammen
    plot(x,v0,'b',x,v,'r',x,u,'g');                % grafisch darstellen
