comparison Problems/AudioDeclipping_reconstruct.m @ 136:1334d2302dd9 ivand_dev

Added Audio declipping problem (problem, reconstruct and example function)
author Ivan Damnjanovic lnx <ivan.damnjanovic@eecs.qmul.ac.uk>
date Thu, 14 Jul 2011 16:26:07 +0100
parents
children 31d2864dfdd4
comparison
equal deleted inserted replaced
134:10343fb66448 136:1334d2302dd9
1 function reconstructed=AudioDeclipping_reconstruct(y, Problem, SparseDict)
2 %% Audio declipping Problem reconstruction function
3 %
4 % This reconstruction function is using sparse representation y
5 % in dictionary Problem.A to reconstruct the patches of the denoised
6 % image.
7
8 %
9 % Centre for Digital Music, Queen Mary, University of London.
10 % This file copyright 2009 Ivan Damnjanovic.
11 %
12 % This program is free software; you can redistribute it and/or
13 % modify it under the terms of the GNU General Public License as
14 % published by the Free Software Foundation; either version 2 of the
15 % License, or (at your option) any later version. See the file
16 % COPYING included with this distribution for more information.
17 %%
18
19 windowSize = Problem.windowSize;
20 overlap = Problem.overlap;
21 ws = Problem.ws(windowSize);
22 wa = Problem.wa(windowSize);
23 A = Problem.B;
24
25 orig = Problem.original;
26 clipped = Problem.clipped;
27 clipMask = Problem.clipMask;
28
29 % reconstruct audio frames
30
31 xFrames = diag(ws)*(A*y);
32 wNormFrames = (ws.*wa)'*ones(1,size(xFrames,2));
33
34 % overlap and add
35
36 rec = col2imstep(xFrames, size(clipped), [windowSize 1], [windowSize*overlap 1]);
37 wNorm = col2imstep(wNormFrames, size(clipped), [windowSize 1], [windowSize*overlap 1]);
38 wNorm(find(wNorm==0)) = 1;
39 recN = rec./wNorm;
40
41 % change only clipped samples
42
43 recSignal = orig.*double(~clipMask) + recN.*double(clipMask);
44
45 %% output structure image+psnr %%
46 reconstructed.audioAllSamples = recN;
47 reconstructed.audioOnlyClipped = recSignal;
48 [reconstructed.snrAll , reconstructed.snrMiss] = SNRInpaintingPerformance(orig, clipped, recSignal, clipMask, 1);
49
50 end