Dekonvoluce

Ukázka špatné rozlišitelnosti frekvencí ve spektru.

Zvolíme si signal konečné délky na intervalu < -T, T > , s(t) = cos(2pi v1 t) + cos(2pi v2 t)

s[t_]=Cos[2 π v1 t]+Cos[2 π v2 t];

Vypočítáme S(v) spektrum signálu s(t)

S[v_]=Simplify[ComplexExpand[(∫_(-T)^T)Exp[-2 π I v t] s[t]\[DifferentialD]t]]

T=2;
v1=3.0;
v2=3.5;

N[(1/(2 T))]

Plot[s[t],{t,-T,T}]

Plot[S[v],{v,1.,5},PlotRange->{-1,2.5}]

T=1.5;

N[(1/(2 T))]

Plot[s[t],{t,-T,T}]

Plot[S[v],{v,1.,5},PlotRange->{-0.5,1.5}]

T=1;

N[(1/(2 T))]

Plot[s[t],{t,-T,T}]

Plot[S[v],{v,1.,5},PlotRange->{-0.5,1.5}]

Dekonvoluce - metoda, kterou lze zvýšit rozlišitelnost spektrálních čar ve spektru daného signálu .

S(v) ja spektrum signálu  s(t) , snaíme se spektrum vyjádřit ve tvaru:
                             
                                                     S(v) = S1(v) * L(v) ,
 
součin dekonvolučního spektra S1(v) a spektra L(v) . Chceme, aby spektrum S1(v) mělo co nejuší píky.

Platí tedy:
 
                                                      s(t) = s1(t) . l(t) ,   

l(t) je sloka signálu , která je odpovedná za rozlišování spektralních čar  .
       
Jestlie místo signálu s(t) vezmeme signál  s1(t) = (1/ l(t) ) s(t) a vhodně zvolíme funkci l(t) , potom
mueme dostat spektrum S1(v) s lepší rozlišitelností.  Volba funkce l(t) je předmětem experimentování.

Příklad

Zvolíme signál  s(t) = cos(11pi t)+0.95sin(10pi t)+0.5sin(11.6pi t)

s[t_]=Cos[11 π t]+0.95 Sin[10.0 π t]+0.5 Sin[11.6 π t];

Plot[s[t],{t,-1,1}]

Vypočteme spektrum S(v) signálu s(t)

(∫_(-1)^1)s[t] Exp[-2 π I v t]\[DifferentialD]t;

S[v_/;v≠5&&v≠5.5&&v≠5.8]=Map[N,%,{5}]

S[5.]=Chop[N[S[5.00000001]],0.0000001];
S[5.5]=Chop[N[S[5.500000001]],0.0000001];
S[5.8]=Chop[N[S[5.800000001]],0.0000001];

Plot[Abs[S[v]],{v,4.5,6.5}]

Vypočet jednotlivých frekvencí a zakreslení do jednoho grafu

v1=(∫_(-1)^1)Cos[10 π t] Exp[-2 π I v t]\[DifferentialD]t;
v2=(∫_(-1)^1)0.95 Sin[11 π t] Exp[-2 π I v t]\[DifferentialD]t;
v3=(∫_(-1)^1)0.5 Sin[11.6 π t] Exp[-2 π I v t]\[DifferentialD]t;

g1=Plot[Abs[v1],{v,4.5,6.5},DisplayFunction->Identity]

g2=Plot[Abs[v2],{v,4.5,6.5},DisplayFunction->Identity]

g3=Plot[Abs[v3],{v,4.5,6.5},DisplayFunction->Identity]

Show[{g1,g2,g3},DisplayFunction->$DisplayFunction]

Zvolíme vhodnou funkci  l(t)

l[t_/;t≥0.0&&t≤0.975]=6 (t^3)-5.85 (t^2)+1.0;
l[t_/;t<0.0||t>0.975]=1.0;

Plot[l[t],{t,-1,1},PlotRange->{0,1}]

Plot[(1/(l[t])),{t,-1,1},PlotRange->{0,6}]

Vypočteme signál  s1(t) = s(t) / l(t)

s1[t_]=((s[t])/(l[t]));

Plot[s1[t],{t,-1,1}]

Vypočteme dekonvoluční spektrum  S1(v)

S1[v_]:=NIntegrate[s1[t] Exp[-2 π I v t],{t,-1,1}]

data=Table[{v,S1[v]},{v,4.5,6.5,0.1}];

ListPlot[Abs[data],Joined->True,PlotRange->{0,1.6`}]

Jiné příklady funkcí  l(t) :

l[t_/;t≥0.0&&t≤1]=2 (t^2)-2 t+1.0;
l[t_/;t<0.0||t>1]=1.0;

Plot[l[t],{t,-1,1},PlotRange->{0,1}]

Plot[(1/(l[t])),{t,-1,1},PlotRange->{0,2}]

s1[t_]=((s[t])/(l[t]));

Plot[s1[t],{t,-1,1}]

S1[v_]:=NIntegrate[s1[t] Exp[-2 π I v t],{t,-1,1},MaxRecursion->10]

data=Table[{v,S1[v]},{v,4.5,6.5,0.1}];

ListPlot[Abs[data],Joined->True,PlotRange->{0,1.6`}]

l[t_/;t≥0.0&&t≤0.75]=10 (t^3)-7.5 (t^2)+1.0;
l[t_/;t<0.0||t>0.75]=1.0;

Plot[l[t],{t,-1,1},PlotRange->{0,1}]

Plot[(1/(l[t])),{t,-1,1},PlotRange->{0,3}]

s1[t_]=((s[t])/(l[t]));

Plot[s1[t],{t,-1,1}]

S1[v_]:=NIntegrate[s1[t] Exp[-2 π I v t],{t,-1,1},MaxRecursion->10]

data=Table[{v,S1[v]},{v,4.5,6.5,0.1}];

ListPlot[Abs[data],Joined->True,PlotRange->{0,1.3`}]