Průběh analogového a digitálního signálu

Následující aplet ukazuje rozdíly mezi analogovým a digitálním signálem. Pomocí posuvníků lze nastavit:
	- parametry analogového signálu, tj. amplitudu (Subscript[y, m]), frekvenci f a počáteční fázi (Subscript[φ, 0]);
	- počet úseků, na který se má při vzorkování analogový signál rozdělit (tj. vzorkovací frekvenci).

Tlačítkem Ulož obrázek se uloží právě zobrazené "bílé" okno do aktuální složky (složka, v níž je uložen tento notebook) pod jménem, které je uloženo v proměnné jmenosouboru. K tomuto jménu souboru je při opakovaném ukládání grafu přidáváno pořadové číslo.
Pozor! Při každém spuštění tohoto apletu se začínají soubory číslovat opět od jedné! Tak může dojít k přepsání minule uložených obrázků.

© Jaroslav Reichl, 2008

Příprava pro vykreslení grafu

jmenosouboru="analog_digital_.jpg";
cesta=NotebookDirectory[];
pocetulozeni=0;

(*x1=0;x2=10;
y1=-10;y2=-y1;*)

f0=1;fmin=0.1;fmax=2;deltaf=0.1;
fi0=0;fimin=0;fimax=2π;deltafi=0.1π;
ym0=1;ymmin=0.1;ymmax=5;deltaym=0.1;
pocet0=2;pocetmin=1;pocetmax=40;deltapocet=1;

t1=0;t2=(2/fmin);

tloustka=0.005;
velikostbodu=0.17;

barva=Black;
barvaanalog=Blue;
barvadigital=Red;
barvauseku=Black;

AnalogDigital=Manipulate[Deploy[
y[t_]=ym Sin[2π f t+fi];
useky=Table[
Line[{{t1+(i/pocetuseku)(t2-t1),1.5ymmax},{t1+(i/pocetuseku)(t2-t1),-1.5ymmax}}],
{i,0,pocetuseku,1}];
aproximace=Table[
Disk[{t1+(i/pocetuseku)(t2-t1),y[t1+(i/pocetuseku)(t2-t1)]},velikostbodu],
{i,0,pocetuseku-1,1}];

grafik=Show[
If[zobrazitanalog,
Plot[y[t],{t,t1,1.05t2},PlotStyle->{barvaanalog,Thickness[tloustka]},AspectRatio->Automatic,PlotRange->{{t1,t2},{-ymmax,ymmax}},Ticks->None,PerformanceGoal->"Quality",AxesLabel->{"t","y"}],
Plot[0,{t,t1,1.05t2},PlotStyle->{barva,Thickness[0.1tloustka]},AspectRatio->Automatic,PlotRange->{{t1,t2},{-ymmax,ymmax}},Ticks->None,AxesLabel->{"t","y"}]],
Graphics[{
If[zobrazitdigital,
{{barvauseku,Dotted,Thickness[0.5tloustka],useky},
{barvadigital,aproximace}},
Text[""]]
}],
FormatType->StandardForm,AspectRatio->Automatic,PlotRange->{{t1,1.05t2},{-1.5ymmax,1.5ymmax}},ImageSize->490
]],

{{zobrazitanalog,True,Style["analogový signál",15,barvaanalog,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{ym,ym0,Style["(Subscript[y, m])",15,barva,FontFamily->Times]},ymmin,ymmax,deltaym},
{{f,f0,Style["f",15,barva,FontFamily->Times]},fmin,fmax,deltaf},
{{fi,fi0,Style["(Subscript[φ, 0])",15,barva,FontFamily->Times]},fimin,fimax,deltafi},
Delimiter,
{{zobrazitdigital,True,Style["digitální signál",15,barvadigital,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{pocetuseku,pocet0,Style["vzorkovací frekvence",15,barva,FontFamily->Times]},pocetmin,pocetmax,deltapocet},
Delimiter,
Button[" Ulož obrázek ",{pocetulozeni=pocetulozeni+1,Export[StringInsert[StringJoin[cesta,jmenosouboru],ToString[pocetulozeni],-5],grafik]},ImageSize->{100,Automatic}],
ControlPlacement->Left,
FrameLabel->{Style["© Jaroslav Reichl, 2008",10,Black,FontFamily->Times],"",Style[StringJoin["Průběh ",ToString[Style["analogového",barvaanalog],StandardForm]," a ",ToString[Style["digitálního",barvadigital],StandardForm],ToString[Style[" signálu",barva],StandardForm]],25,barva,FontFamily->Times],""}];

Spuštění animace
Zpracujte běžným způsobem následující buňku a na dotaz, který se objeví, odpovězte ANO.

AnalogDigital