% script natural

%% Sätt upp en del parameterar

clear all
close all

fs = 44100;                 % Sampelfrekvens

%% Läs in ljuden och spela upp

load Ljud
figure(3);
for p=1:10,
  subplot(10,1,p);plot(ljud1{p});
  sound(ljud1{p},fs);
  pause(1);
end,

%% Ändra kvantisering

b=15;
figure(4);
for p=1:10,
  kv_ljud=liu_quantize(ljud1{p},0.5,b,'bipolar');
  subplot(10,1,p);plot(kv_ljud);
  sound(kv_ljud,fs);
  pause(1);
end,

%% Hur beror kvantiseringsbruset av b?

for b=1:16
  kv_ljud=liu_quantize(ljud1{10},1.0,b,'bipolar');
  sigma(b)=norm(ljud1{10}-kv_ljud);
end,
figure(5);subplot(2,1,1);plot(sigma);
subplot(2,1,2);plot(log(sigma));

%% nedsampling och interpolation: närmsta granne interpolation

n=2^4;
rekfilt=ones(1,n);
figure(7);plot(rekfilt,'Linewidth',2);
figure(6);
for p=1:10,
  signal=ljud1{p};
  nedsampl=zeros(1,length(signal));
  nedsampl(1:n:end)=signal(1:n:end);
  rekon=conv(nedsampl,rekfilt);
  subplot(10,1,p);plot(rekon,'o-');
  sound(rekon,fs);
  pause(1)
end,

%% nedsampling och interpolation: linjär interpolation

n=2^2;
rekfilt=(n-abs(-n:(n-1)))/n;
figure(7);plot(rekfilt,'Linewidth',2);
figure(6);
for p=10:10,
  signal=ljud1{p};
  nedsampl=zeros(1,length(signal));
  nedsampl(1:n:end)=signal(1:n:end);
  rekon=conv(nedsampl,rekfilt);
  subplot(10,1,p);plot(rekon,'o-');
  sound(rekon,fs);
  pause(1)
end,

%% Hur beror felet av n?

signal=ljud1{10};
sigma=[];
for p=1:10,
  n=2^p;
  rekfilt=(n-abs(-n:(n-1)))/n;
  nedsampl=zeros(1,length(signal));
  nedsampl(1:n:end)=signal(1:n:end);
  rekon=conv(nedsampl,rekfilt,'same');
  sigma(p)=norm(signal-rekon);
end,
figure(8);plot(rekfilt,'Linewidth',2);
figure(9);subplot(2,1,1);plot(sigma,'o-');
subplot(2,1,2);plot(log(sigma),'o-');

%% Lineariet

gamma=1.0;
x=-1:0.01:1;
distf=sign(x).*(abs(x).^gamma);
figure(10);plot(x,distf);

figure(3);
%s=s1;
s=ljud1{10};
dist_s=sign(s).*(abs(s).^gamma);
plot(dist_s);
sound(dist_s,fs);
pause(1);

%%
