Difference between revisions of "Applets:Spektrum"

From LNTwww
m (Tasnad verschob die Seite Spektrum nach Spektrum)
 
(85 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<html>
+
==Zeitfunktion und zugehörige Spektralfunktion==
<head>
 
  <meta charset="utf-8" />
 
  <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jsxgraph/0.99.6/jsxgraphcore.js"></script>
 
  <script type="text/javascript" src="https://cdn.rawgit.com/mathjax/MathJax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
 
  <style>
 
  .button1{
 
    background-color: black;
 
    border: none;
 
    color: white;
 
    font-family: arial;
 
    padding: 8px 20px;
 
    text-align: center;
 
    text-decoration: none;
 
    display: inline-block;
 
    font-size: 16px;
 
    border-radius: 15px;
 
    position:relative;
 
    top: 750px;
 
    left: 830px;
 
  }
 
  
  .button1:active {
+
{{LntAppletLink|spektrum}}
    background-color: #939393;}
 
  
  </style>
+
==Theoretischer Hintergrund==
</head>
+
*Der Zusammenhang zwischen Zeitfunktion $x(t)$ und dem Spektrum $X(f)$ ist durch die Fouriertransformation (FT) $$X(f)=\int_{-\infty}^{+\infty}x(t)\cdot e^{-j2\pi f t}\hspace{0.15cm} {\rm d}t$$ und deren Inversen (IFT) $$x(t)=\int_{-\infty}^{+\infty}X(f)\cdot e^{j2\pi f t} \hspace{0.15cm} {\rm d}f$$ gegeben.
<body>
+
*In allen Beispielen verwenden wir reelle und gerade Funktionen. Somit gilt:
 +
$$X(f)=\int_{-\infty}^{+\infty}x(t)\cdot \cos(2\pi ft) \hspace{0.15cm} {\rm d}t$$  und
 +
$$x(t)=\int_{-\infty}^{+\infty}X(f)\cdot \cos(2\pi ft) \hspace{0.15cm} {\rm d}f.$$
 +
*$x(t)$ und $X(f)$ haben unterschiedliche Einheiten, z. B. $x(t)$ in V, $X(f)$ in V/Hz.
 +
*Alle Zeiten sind auf eine Normierungszeit $T$ und alle Frequenzen auf $1/T \Rightarrow$ das Spektrum $X(f)$ muss noch mit $T$ multipliziert werden.
 +
*Der Zusammenhang zwischen Impulse und deren Spektren und der ähnlich aufgebauten Animation &bdquo;Tiefpass&ldquo; basiert auf dem Vertauschungssatz.
  
<p><B><span style="position:absolute; top:55px; left:80px; font-family:arial; font-size:0.750em; color:red;">Impuls 1
+
==Gaußimpuls==  
  <select class="dropdown1" id ="Impuls 1" onchange ="change1(this)">
+
*Die Zeitfunktion mit der Höhe $K$ und der (äquivalenten) Dauer $\Delta t$ lautet:
    <option selected value='0'>Gau&szlig;</option>
+
$$x(t)=K\cdot e^{-\pi\cdot(t/\Delta t)^2}.$$
    <option value='1'>Rechteck</option>
+
*Die äquivalente Zeitdauer $\Delta t$ ergibt sich aus dem flächengleichen Rechteck.
    <option value='2'>Dreieck</option>
+
*Der Wert bei t=$\Delta t/2$ ist um den Faktor 0.456 kleiner als der Wert bei $t=0$.
    <option value='3'>Trapez</option>
+
*Für die Spektralfunktion erhält man gemäß der Fouriertransformation:
    <option value='4'>Cos-Rolloff</option>
+
$$X(f)=K\cdot \Delta t \cdot e^{-\pi(f\cdot \Delta t)^2} .$$
    <option value='5'>Inaktiv</option>
+
*Je kleiner die äquivalente Zeitdauer $\Delta t$ ist, um so breiter und niedriger ist das Spektrum (Reziprozitätsgesetz von Bandbreite und Impulsdauer).
  </select>
+
*Sowohl $x(t)$ als auch $X(f)$ sind zu keinem $ f$- bzw. $t$-Wert exakt gleich Null.
</span></B></p>
+
*Praktisch ist der Gaußimpuls in Zeit und Frequenz begrenzt. Zum Beispiel ist $x(t)$ bereits bei $t=1.5 \Delta \cdot t$ auf $1\% $ des Maximums abgefallen.
 +
==Rechteckimpuls==
 +
*Die Zeitfunktion mit der Höhe $K$ und der (äquivalenten) Dauer $\Delta t$ lautet:
  
<p><B><span style="position:absolute; top:55px; left:900px; font-family:arial; font-size:0.750em; color:blue;">Impuls 2
+
$$x(t) = \left\{ \begin{array}{l} \hspace{0.25cm}K  \\  K /2 \\ \hspace{0.25cm} 0 \\  \end{array} \right.\quad \quad \begin{array}{*{20}c}  {\rm{f\ddot{u}r}}  \\  {\rm{f\ddot{u}r}}  \\  {\rm{f\ddot{u}r}}  \\ \end{array}\begin{array}{*{20}c}   {\left| \hspace{0.05cm} t\hspace{0.05cm} \right| < T/2,}  \\  {\left| \hspace{0.05cm}t\hspace{0.05cm} \right| = T/2,}  \\   {\left|\hspace{0.05cm} t \hspace{0.05cm} \right| > T/2.}  \\ \end{array}$$
   <select class="dropdown2" id ="Impuls 2" onchange ="change2(this)">
 
    <option value='0'>Gau&szlig;</option>
 
    <option value='1'>Rechteck</option>
 
    <option value='2'>Dreieck</option>
 
    <option selected value='3'>Trapez</option>
 
    <option value='4'>Cos-Rolloff</option>
 
    <option value='5'>Inaktiv</option>
 
   </select>
 
</span></B></p>
 
  
<form id="myForm">
+
*Der $\pm \Delta t/2$ - Wert liegt mittig zwischen links- und rechtsseitigem Grenzwert.
<button class="button1" style="font-size:0.750em" onclick="zurueck()">Reset</button>
+
*Für die Spektralfunktion erhält man entsprechend den Gesetzmäßigkeiten der Fouriertransformation (1. Fourierintegral):
<p><span style="position:absolute; top:730px; left:840px; font-family:arial; font-size:0.750em;">mit Gitter<input name="gridbox" id="gridbox" type="checkbox" onclick="showgrid();" checked="checked"></span></p>
+
$$X(f)=K\cdot \Delta t \cdot si(\pi\cdot \Delta t \cdot f) \quad \text{mit} \ si(x)=\frac{sin(x)}{x}.$$
 +
*Der Spektralwert bei $f=0$ ist gleich der Rechteckfläche der Zeitfunktion.
 +
*Die Spektralfunktion besitzt Nullstellen in äquidistanten Abständen $1/\Delta t$.
 +
*Das Integral über der Spektralfunktion $X(f)$ ist gleich dem Signalwert zum Zeitpunkt $t=0$, also der Impulsamplitude $K$.
  
<div id="pltBox1" class="jxgbox" style="width:600px; height:300px; border:1px solid black; margin:-40px 20px 100px 220px;"></div>
+
==Dreieckimpuls==  
<div id="pltBox2" class="jxgbox" style="width:600px; height:300px; border:1px solid black; margin:50px 20px 100px 220px;"></div>
+
*Die Zeitfunktion mit der Höhe $K$ und der (äquivalenten) Dauer $\Delta t$ lautet:
<div id="cnfBox1" class="jxgbox" style="width:200px; height:600px; border:1px solid black; margin:-805px 10px 100px 10px;"></div>
 
<div id="cnfBox2" class="jxgbox" style="width:200px; height:600px; border:1px solid black; margin:-700px 800px 100px 830px;"></div>
 
<div id="cnfBox3" class="jxgbox" style="width:600px; height:50px; border:1px solid black; margin:-380px 800px 100px 220px;"></div>
 
  
 +
$$x(t) = \left\{ \begin{array}{l} \hspace{0.25cm}K\cdot \Big(1-\frac{|t|}{\Delta t}\Big)  \\ \hspace{0.25cm} 0 \\  \end{array} \right.\quad \quad \begin{array}{*{20}c}  {\rm{f\ddot{u}r}}  \\    {\rm{f\ddot{u}r}}  \\ \end{array}\begin{array}{*{20}c}  {\left| \hspace{0.05cm} t\hspace{0.05cm} \right| < \Delta t,}  \\  {\left| \hspace{0.05cm}t\hspace{0.05cm} \right| \ge \Delta t.}  \\ \end{array}$$
  
<script type="text/javascript">
+
*Die absolute Zeitdauer ist $2 \cdot \Delta t$, d.h. doppelt so groß als die des Rechtecks.
 +
*Für die Spektralfunktion erhält man gemäß der Fouriertransformation:
 +
$$X(f)=K\cdot \Delta f \cdot si^2(\pi\cdot \Delta t \cdot f) \quad \text{mit} \ si(x)=\frac{sin(x)}{x}.$$
 +
*Obige Zeitfunktion ist gleich der Faltung zweier Rechteckimpulse, jeweils mit Breite $\Delta t \Rightarrow X(f)$ beinhaltet anstelle der $si$-Funktion die $si^2$-Funktion.
 +
*$X(f)$ weist somit ebenfalls Nullstellen im äquidistanten Abständen $1/\Delta f$ auf.
 +
*Der asymptotische Abfall von $X(f)$ erfolgt hier mit $1/f^2$, während zum Vergleich der Rechteckimpuls mit $1/f$ abfällt.
  
//Grundeinstellungen der beiden Applets
+
==Trapezimpuls==  
JXG.Options.text.useMathJax = true;
+
Die Zeitfunktion mit der Höhe $K$ und den Zeitparametern $t_1$ und $t_2$ lautet:
pltBox1 = JXG.JSXGraph.initBoard('pltBox1', {
 
            showCopyright:false, axis:false,
 
            zoom:{factorX:1.1, factorY:1.1, wheel:true, needshift:true, eps: 0.1},
 
            grid:false,
 
            boundingbox: [-1.1, 1.1, 1.1, -0.3]
 
});
 
pltBox2 = JXG.JSXGraph.initBoard('pltBox2', {
 
            showCopyright:false, axis:false,
 
            zoom:{factorX:1.1, factorY:1.1, wheel:true, needshift:true, eps: 0.1},
 
            grid:false,
 
            boundingbox: [-3.1, 1.1, 3.1, -0.3]
 
});
 
cnfBox1 = JXG.JSXGraph.initBoard('cnfBox1', {
 
            showCopyright:false, axis:false, ShowNavigation:false,
 
            zoom:{enabled:false}, pan:{enabled:false}, grid:false,
 
            boundingbox: [-3.1, 1.1, 3.1, -0.3]
 
});
 
cnfBox2 = JXG.JSXGraph.initBoard('cnfBox2', {
 
            showCopyright:false, axis:false, ShowNavigation:false,
 
            zoom:{enabled:false}, pan:{enabled:false}, grid:false,
 
            boundingbox: [-3.1, 1.1, 3.1, -0.3]
 
});
 
cnfBox3 = JXG.JSXGraph.initBoard('cnfBox3', {
 
            showCopyright:false, axis:false, ShowNavigation:false,
 
            zoom:{enabled:false}, pan:{enabled:false}, grid:false,
 
            boundingbox: [-3.1, 1.1, 3.1, -0.3]
 
});
 
  
cnfBox1.addChild(pltBox1);
+
$$x(t) = \left\{ \begin{array}{l} \hspace{0.25cm}K  \\  K\cdot \frac{t_2-|t|}{t_2-t_1} \\ \hspace{0.25cm} 0 \\  \end{array} \right.\quad \quad \begin{array}{*{20}c}  {\rm{f\ddot{u}r}}  \\  {\rm{f\ddot{u}r}}  \\  {\rm{f\ddot{u}r}}  \\ \end{array}\begin{array}{*{20}c}  {\left| \hspace{0.05cm} t\hspace{0.05cm} \right| \le t_1,}  \\  {t_1\le \left| \hspace{0.05cm}t\hspace{0.05cm} \right| \le t_2,}  \\  {\left|\hspace{0.05cm} t \hspace{0.05cm} \right| \ge t_2.}  \\ \end{array}$$
cnfBox2.addChild(pltBox1);
 
cnfBox1.addChild(pltBox2);
 
cnfBox2.addChild(pltBox2);
 
cnfBox3.addChild(cnfBox1);
 
cnfBox3.addChild(cnfBox2);
 
  
 +
*Für die äquivalente Zeitdauer (flächengleiches Rechteck) gilt: $\Delta t = t_1+t_2$.
 +
*Der Rolloff-Faktor (im Zeitbereich) kennzeichnet die Flankensteilheit:
 +
$$r=\frac{t_2-t_1}{t_2+t_1}.$$
 +
*Sonderfall $r=0$: Rechteckimpuls. Sonderfall $r=1$: Dreieckimpuls.
 +
*Für die Spektralfunktion erhält man gemäß der Fouriertransformation:
 +
$$X(f)=K\cdot \Delta t \cdot si(\pi\cdot \Delta t \cdot f)\cdot si(\pi \cdot r \cdot \Delta t \cdot f) \quad \text{mit} \ si(x)=\frac{sin(x)}{x}.$$
 +
*Der asymptotische Abfall von $X(f)$ liegt zwischen $1/f$ (für Rechteck, $r=0$) und $1/f^2$ (für Dreieck, $r=1$).
  
//Einstellungen der Achsen
+
==Cosinus-Rolloff-Impuls==  
xaxis1 = pltBox1.create('axis', [[0, 0], [1,0]], {
+
Die Zeitfunktion mit der Höhe $K$ und den Zeitparametern $t_1$ und $t_2$ lautet:
            name:'\\[t\\]',
 
            withLabel:true, label:{position:'rt', offset:[-25, 15]}
 
});
 
yaxis1 = pltBox1.create('axis', [[0, 0], [0, 1]], {
 
            name:'\\[x(t)\\]',
 
            withLabel:true, label:{position:'rt', offset:[10, -5]}
 
});
 
xaxis2 = pltBox2.create('axis', [[0, 0], [1,0]], {
 
            name:'\\[f\\]',
 
            withLabel:true, label:{position:'rt', offset:[-25, 15]}
 
});
 
yaxis2 = pltBox2.create('axis', [[0, 0], [0, 1]], {
 
            name:'\\[X(f)\\]',
 
            withLabel:true, label:{position:'rt', offset:[10, -5]}
 
});
 
  
//Festlegen der Schieberegler
+
$$x(t) = \left\{ \begin{array}{l} \hspace{0.25cm}K  \\  K\cdot \cos^2\Big(\frac{|t|-t_1}{t_2-t_1}\cdot \frac{\pi}{2}\Big) \\ \hspace{0.25cm} 0 \\  \end{array} \right.\quad \quad \begin{array}{*{20}c}  {\rm{f\ddot{u}r}}  \\  {\rm{f\ddot{u}r}}  \\  {\rm{f\ddot{u}r}}  \\ \end{array}\begin{array}{*{20}c}  {\left| \hspace{0.05cm} t\hspace{0.05cm} \right| \le t_1,}  \\  {t_1\le \left| \hspace{0.05cm}t\hspace{0.05cm} \right| \le t_2,}  \\  {\left|\hspace{0.05cm} t \hspace{0.05cm} \right| \ge t_2.}  \\ \end{array}$$
sldA1 = cnfBox1.create('slider',[[-2.8,1],[0.8,1],[0,1,2]], {
 
            suffixlabel:' <I>A</I>_1=',
 
            snapWidth:0.05
 
}),
 
sldDT1 = cnfBox1.create('slider',[[-2.8,0.9],[0.8,0.9],[0,1,2]], {
 
            suffixlabel:' <I>&#916;t</I>_1=',
 
            snapWidth:0.01
 
}),
 
sldR1 = cnfBox1.create('slider',[[-2.8,0.8],[0.8,0.8],[0,0.5,1]], {
 
            suffixlabel:' <I>r</I>_1=',
 
            snapWidth:0.05
 
}),
 
sldA2 = cnfBox2.create('slider',[[-2.8,1],[0.8,1],[0,1,2]], {
 
            suffixlabel:' <I>A</I>_2=',
 
            snapWidth:0.05
 
}),
 
sldDT2 = cnfBox2.create('slider',[[-2.8,0.9],[0.8,0.9],[0,1,2]], {
 
            suffixlabel:' <I>&#916;t</I>_2=',
 
            snapWidth:0.05
 
}),
 
sldR2 = cnfBox2.create('slider',[[-2.8,0.8],[0.8,0.8],[0,0.5,1]], {
 
            suffixlabel:' <I>r</I>_2=',
 
            snapWidth:0.05
 
}),
 
sldT = cnfBox3.create('slider',[[-2.8,0.4],[-1.6,0.4],[-1,0.5,1]], {
 
            suffixlabel:' <I>t</I>=',
 
            snapWidth:0.05
 
}),
 
sldF = cnfBox3.create('slider',[[1,0.4],[2.2,0.4],[-3,0.5,3]], {
 
            suffixlabel:' <I>f</I>=',
 
            snapWidth:0.05
 
}),
 
  
 +
*Für die äquivalente Zeitdauer (flächengleiches Rechteck) gilt: $\Delta t = t_1+t_2$.
 +
*Der Rolloff-Faktor (im Zeitbereich) kennzeichnet die Flankensteilheit:
 +
$$r=\frac{t_2-t_1}{t_2+t_1}.$$
 +
*Sonderfall $r=0$: Rechteckimpuls. Sonderfall $r=1$: Cosinus$^2$-Impuls.
 +
*Für die Spektralfunktion erhält man gemäß der Fouriertransformation:
 +
$$X(f)=K\cdot \Delta t \cdot \frac{\cos(\pi \cdot r\cdot \Delta t \cdot f)}{1-(2\cdot r\cdot \Delta t \cdot f)^2} \cdot si(\pi \cdot \Delta t \cdot f).$$
 +
*Je größer der Rolloff-Faktor $r$ ist, desto schneller nimmt $X(f)$ asymptotisch mit $f$ ab.
  
//Substituierte Hilfswerte
+
==Cosinus-Quadrat-Impuls==
t1=sldDT1.Value()/2-(sldR1.Value()*sldDT1.Value())/2
+
*Dies ist ein Sonderfall des Cosinus-Rolloff-Impuls und ergibt sich für $r=1 \ (t_1=0, t_2= \Delta t)$:
t2=(sldR1.Value()*sldDT1.Value())/2+sldDT1.Value()/2
 
  
//Definition der Texte für die Funktionswerte von Impuls 1
+
$$x(t) = \left\{ \begin{array}{l} \hspace{0.25cm}K\cdot \cos^2\Big(\frac{|t|\cdot \pi}{2\cdot \Delta t}\Big) \\ \hspace{0.25cm} 0 \\ \end{array} \right.\quad \quad \begin{array}{*{20}c}  {\rm{f\ddot{u}r}} \\    {\rm{f\ddot{u}r}}  \\ \end{array}\begin{array}{*{20}c}   {\left| \hspace{0.05cm} t\hspace{0.05cm} \right| < \Delta t,}  \\  {\left| \hspace{0.05cm}t\hspace{0.05cm} \right| \ge \Delta t.}  \\ \end{array}$$
var txtG1=cnfBox1.create('text',[0,0.1, function()
 
                          {return '\\[x(t)= '+ Math.round((sldA1.Value()*Math.exp(-1*Math.PI*(sldT.Value()/sldDT1.Value())*(sldT.Value()/sldDT1.Value())))*1000)/1000 +' \\]';}],
 
            {fixed:true, strokeColor:'red', visible:true});
 
var txtR1=cnfBox1.create('text',[0,0.1, function(){
 
            if (Math.abs(sldT.Value())<sldDT1.Value()/2)
 
                          {return '\\[x(t)= '+ Math.round((sldA1.Value())*1000)/1000 +' \\]';}
 
            else if(Math.abs(sldT.Value())==sldDT1.Value()/2)
 
                          {return '\\[x(t)= '+ Math.round((sldA1.Value()/2)*1000)/1000 +' \\]';}
 
            else
 
                          {return '\\[x(t)= '+ Math.round((0)*1000)/1000 +' \\]';}}],
 
            {fixed:true, strokeColor:'red', visible:false});
 
var txtD1=cnfBox1.create('text',[0,0.1, function(){
 
        if (Math.abs(sldT.Value())<sldDT1.Value())
 
                          {return '\\[x(t)= '+ Math.round((sldA1.Value()*(1-Math.abs(sldT.Value())/sldDT1.Value()))*1000)/1000 +' \\]';}
 
        else
 
                          {return '\\[x(t)= '+ Math.round((0)*1000)/1000 +' \\]';}}],
 
        {fixed:true, strokeColor:'red', visible:false});
 
  
 +
*Für die Spektralfunktion erhält man gemäß der Fouriertransformation:
 +
$$X(f)=K\cdot \Delta f \cdot \frac{\pi}{4}\cdot [si(\pi(\Delta t\cdot f +0.5))+si(\pi(\Delta t\cdot f -0.5))]\cdot si(\pi \cdot \Delta t \cdot f).$$
 +
*Wegen der letzten $si$-Funktion ist $X(f)=0$ für alle Vielfachen von $F=1/\Delta t$. Die äquidistanten Nulldurchgänge des Cos-Rolloff-Impulses bleiben erhalten.
 +
*Aufgrund des Klammerausdrucks weist $X(f)$ nun weitere Nulldurchgänge bei $f=\pm1.5 F$, $\pm2.5 F$, $\pm3.5 F$, ... auf.
 +
*Für die Frequenz $f=\pm F/2$ erhält man die Spektralwerte $K\cdot \Delta t/2$.
 +
*Der asymptotische Abfall von $X(f)$ verläuft in diesem Sonderfall mit $1/f^3$.
  
var txtGS1=cnfBox1.create('text',[0,0, function()
 
                          {return '\\[X(f)= '+ Math.round((sldA1.Value()*sldDT1.Value()*Math.exp(-1*Math.PI*(sldF.Value()*sldDT1.Value())*(sldF.Value()*sldDT1.Value())))*1000)/1000 +' \\]' ;}],
 
                          {fixed:true, strokeColor:'red', visible:true});
 
var txtRS1=cnfBox1.create('text',[0,0, function()
 
                          {return '\\[X(f)= '+ Math.round((sldA1.Value()*sldDT1.Value()*Math.sin(Math.PI*sldDT1.Value()*sldF.Value())/(Math.PI*sldDT1.Value()*sldF.Value()))*1000)/1000 +' \\]' ;}],
 
                          {fixed:true, strokeColor:'red', visible:false});
 
var txtDS1=cnfBox1.create('text',[0,0, function()
 
                          {return '\\[X(f)= '+ Math.round((sldA1.Value()*sldDT1.Value()*Math.pow(Math.sin(Math.PI*sldDT1.Value()*sldF.Value())/(Math.PI*sldDT1.Value()*sldF.Value()),2))*1000)/1000 +' \\]' ;}],
 
                          {fixed:true, strokeColor:'red', visible:false});
 
var txtTS1=cnfBox1.create('text',[0,0, function()
 
                          {return '\\[X(f)= '+ Math.round((sldA1.Value()*sldDT1.Value()*(Math.sin(Math.PI*sldDT1.Value()*sldF.Value())/(Math.PI*sldDT1.Value()*sldF.Value()))*(Math.sin(Math.PI*sldR1.Value()*sldDT1.Value()*sldF.Value())/(Math.PI*sldR1.Value()*sldDT1.Value()*sldF.Value())))*1000)/1000 +' \\]' ;}],
 
                          {fixed:true, strokeColor:'red', visible:false});
 
var txtCS1=cnfBox1.create('text',[0,0, function()
 
                          {return '\\[X(f)= '+ Math.round((sldA1.Value()*sldDT1.Value()*(Math.cos(Math.PI*sldR1.Value()*sldDT1.Value()*sldF.Value()))/(1-Math.pow((2*sldR1.Value()*sldDT1.Value()*sldF.Value()),2))*(Math.sin(Math.PI*sldDT1.Value()*sldF.Value())/(Math.PI*sldDT1.Value()*sldF.Value())))*1000)/1000 +' \\]' ;}],
 
                          {fixed:true, strokeColor:'red', visible:false});
 
  
 
+
{{LntAppletLink|spektrum}}
//Definition der Texte für die Funktionswerte von Impuls 2
 
 
 
var txtG2=cnfBox2.create('text',[-2,0.1, function()
 
                          {return '\\[x(t)= '+ Math.round((sldA2.Value()*Math.exp(-1*Math.PI*(sldT.Value()/sldDT2.Value())*(sldT.Value()/sldDT2.Value())))*1000)/1000 +' \\]' ;}],
 
                          {fixed:true, strokeColor:'blue', visible:false});
 
var txtR2=cnfBox2.create('text',[-2,0.1, function(){
 
            if (Math.abs(sldT.Value())<sldDT2.Value()/2)
 
                          {return '\\[x(t)= '+ Math.round((sldA2.Value())*1000)/1000 +' \\]';}
 
            else if(Math.abs(sldT.Value())==sldDT2.Value()/2)
 
                          {return '\\[x(t)= '+ Math.round((sldA2.Value()/2)*1000)/1000 +' \\]';}
 
            else
 
                          {return '\\[x(t)= '+ Math.round((0)*1000)/1000 +' \\]';}}],
 
            {fixed:true, strokeColor:'blue', visible:false});
 
var txtD2=cnfBox2.create('text',[-2,0.1, function(){
 
            if (Math.abs(sldT.Value())<sldDT2.Value())
 
                          {return '\\[x(t)= '+ Math.round((sldA2.Value()*(1-Math.abs(sldT.Value())/sldDT2.Value()))*1000)/1000 +' \\]';}
 
            else
 
                          {return '\\[x(t)= '+ Math.round((0)*1000)/1000 +' \\]';}}],
 
            {fixed:true, strokeColor:'blue', visible:false});
 
 
 
var txtGS2=cnfBox2.create('text',[-2,0, function()
 
            {return '\\[X(f)= '+ Math.round((sldA2.Value()*sldDT2.Value()*Math.exp(-1*Math.PI*(sldF.Value()*sldDT2.Value())*(sldF.Value()*sldDT2.Value())))*1000)/1000 +' \\]' ;}],
 
            {fixed:true, strokeColor:'blue', visible:false});
 
var txtRS2=cnfBox2.create('text',[-2,0, function()
 
            {return '\\[X(f)= '+ Math.round((sldA2.Value()*sldDT2.Value()*Math.sin(Math.PI*sldDT2.Value()*sldF.Value())/(Math.PI*sldDT2.Value()*sldF.Value()))*1000)/1000 +' \\]' ;}],
 
            {fixed:true, strokeColor:'blue', visible:false});
 
var txtDS2=cnfBox2.create('text',[-2,0, function()
 
            {return '\\[X(f)= '+ Math.round((sldA2.Value()*sldDT2.Value()*Math.pow(Math.sin(Math.PI*sldDT2.Value()*sldF.Value())/(Math.PI*sldDT2.Value()*sldF.Value()),2))*1000)/1000 +' \\]' ;}],
 
            {fixed:true, strokeColor:'blue', visible:false});
 
 
 
var funcG1 = pltBox1.create('functiongraph',[function(x)
 
            {return (sldA1.Value()*Math.exp(-1*Math.PI*(x/sldDT1.Value())*(x/sldDT1.Value())))}],
 
            {strokeColor: "red", visible: true});
 
var funcR1 = pltBox1.create('functiongraph',[function(x){
 
            if (Math.abs(x)<sldDT1.Value()/2)
 
                          {return sldA1.Value();}
 
            else if(Math.abs(x)==sldDT1.Value()/2)
 
                          {return sldA1.Value()/2;}
 
            else
 
                          {return 0;}}],
 
            {strokeColor: "red", visible: false});
 
var funcD1 = pltBox1.create('functiongraph',[function(x){
 
            if (Math.abs(x)<sldDT1.Value())
 
                          {return sldA1.Value()*(1-Math.abs(x)/sldDT1.Value());}
 
            else
 
                          {return 0;}}],
 
            {strokeColor: "red", visible: false});
 
 
 
//Definition der Spektralfunktionen von Impuls 1
 
var funcGS1 = pltBox2.create('functiongraph',[function(x){
 
            return (sldA1.Value()*sldDT1.Value()*Math.exp(-1*Math.PI*(x*sldDT1.Value())*(x*sldDT1.Value())))}],
 
            {strokeColor: "red", visible: true});
 
var funcRS1 = pltBox2.create('functiongraph',[function(x){
 
            return (sldA1.Value()*sldDT1.Value()*Math.sin(Math.PI*sldDT1.Value()*x)/(Math.PI*sldDT1.Value()*x))}],
 
            {strokeColor: "red", visible: false});
 
var funcDS1 = pltBox2.create('functiongraph',[function(x){
 
            return (sldA1.Value()*sldDT1.Value()*Math.pow(Math.sin(Math.PI*sldDT1.Value()*x)/(Math.PI*sldDT1.Value()*x),2))}],
 
            {strokeColor: "red", visible: false});
 
var funcTS1 = pltBox2.create('functiongraph',[function(x){
 
            return (sldA1.Value()*sldDT1.Value()*(Math.sin(Math.PI*sldDT1.Value()*x)/(Math.PI*sldDT1.Value()*x))*(Math.sin(Math.PI*sldR1.Value()*sldDT1.Value()*x)/(Math.PI*sldR1.Value()*sldDT1.Value()*x)))}],
 
            {strokeColor: "red", visible: false});
 
var funcCS1 = pltBox2.create('functiongraph',[function(x){
 
            return (sldA1.Value()*sldDT1.Value()*(Math.cos(Math.PI*sldR1.Value()*sldDT1.Value()*x))/(1-Math.pow((2*sldR1.Value()*sldDT1.Value()*x),2))*(Math.sin(Math.PI*sldDT1.Value()*x)/(Math.PI*sldDT1.Value()*x)))}],
 
            {strokeColor: "red", visible: false});
 
 
 
//Definition der Zeitfunktionen von Impuls 2
 
var funcG2 = pltBox1.create('functiongraph',[function(x){
 
            return (sldA2.Value()*Math.exp(-1*Math.PI*(x/sldDT2.Value())*(x/sldDT2.Value())))}],
 
            {strokeColor: "blue", visible: false});
 
var funcR2 = pltBox1.create('functiongraph',[function(x){
 
            if (Math.abs(x)<sldDT2.Value()/2)
 
                          {return sldA2.Value();}
 
            else if(Math.abs(x)==sldDT2.Value()/2)
 
                          {return sldA2.Value()/2;}
 
            else
 
                          {return 0;}}],
 
            {strokeColor: "blue", visible: false});
 
var funcD2 = pltBox1.create('functiongraph',[function(x){
 
            if (Math.abs(x)<sldDT2.Value())
 
                          {return sldA2.Value()*(1-Math.abs(x)/sldDT2.Value());}
 
            else
 
                          {return 0;}}],
 
            {strokeColor: "blue", visible: false});
 
 
 
//Definition der Spektralfunktionen von Impuls 2
 
var funcGS2 = pltBox2.create('functiongraph',[function(x){
 
            return (sldA2.Value()*sldDT2.Value()*Math.exp(-1*Math.PI*(x*sldDT2.Value())*(x*sldDT2.Value())))}],
 
            {strokeColor: "blue", visible: false});
 
var funcRS2 = pltBox2.create('functiongraph',[function(x){
 
            return (sldA2.Value()*sldDT2.Value()*Math.sin(Math.PI*sldDT2.Value()*x)/(Math.PI*sldDT2.Value()*x))}],
 
            {strokeColor: "blue", visible: false});
 
var funcDS2 = pltBox2.create('functiongraph',[function(x){
 
            return (sldA2.Value()*sldDT2.Value()*Math.pow(Math.sin(Math.PI*sldDT2.Value()*x)/(Math.PI*sldDT2.Value()*x),2))}],
 
            {strokeColor: "blue", visible: false});
 
var funcTS2 = pltBox2.create('functiongraph',[function(x){
 
            return (sldA2.Value()*sldDT2.Value()*(Math.sin(Math.PI*sldDT2.Value()*x)/(Math.PI*sldDT2.Value()*x))*(Math.sin(Math.PI*sldR2.Value()*sldDT2.Value()*x)/(Math.PI*sldR2.Value()*sldDT2.Value()*x)))}],
 
            {strokeColor: "blue", visible: true});
 
var funcCS2 = pltBox2.create('functiongraph',[function(x){
 
            return (sldA2.Value()*sldDT2.Value()*(Math.cos(Math.PI*sldR2.Value()*sldDT2.Value()*x))/(1-Math.pow((2*sldR2.Value()*sldDT2.Value()*x),2))*(Math.sin(Math.PI*sldDT2.Value()*x)/(Math.PI*sldDT2.Value()*x)))}],
 
            {strokeColor: "blue", visible: false});
 
 
 
//Definition der Zeige und Verstecke Koordinatensystemfunktion
 
 
 
function showgrid() {
 
            if (gridbox.checked) {
 
                          xaxis1 = pltBox1.create('axis', [[0, 0], [1,0]], {});
 
                          yaxis1 = pltBox1.create('axis', [[0, 0], [0, 1]], {});
 
                          xaxis2 = pltBox2.create('axis', [[0, 0], [1, 0]], {});
 
                          yaxis2 = pltBox2.create('axis', [[0, 0], [0, 1]], {});
 
}
 
            else {
 
                          xaxis1.removeTicks(xaxis1.defaultTicks);
 
                          yaxis1.removeTicks(yaxis1.defaultTicks);
 
                          xaxis2.removeTicks(xaxis2.defaultTicks);
 
                          yaxis2.removeTicks(yaxis2.defaultTicks);
 
}
 
                          pltBox1.fullUpdate();
 
                          pltBox2.fullUpdate();
 
};
 
</script>
 
 
 
</form>
 
 
 
 
 
</body>
 
</html>
 
 
 
 
 
 
 
{{Display}}
 

Latest revision as of 14:02, 27 September 2017

Zeitfunktion und zugehörige Spektralfunktion

Open Applet in a new tab

Theoretischer Hintergrund

  • Der Zusammenhang zwischen Zeitfunktion $x(t)$ und dem Spektrum $X(f)$ ist durch die Fouriertransformation (FT) $$X(f)=\int_{-\infty}^{+\infty}x(t)\cdot e^{-j2\pi f t}\hspace{0.15cm} {\rm d}t$$ und deren Inversen (IFT) $$x(t)=\int_{-\infty}^{+\infty}X(f)\cdot e^{j2\pi f t} \hspace{0.15cm} {\rm d}f$$ gegeben.
  • In allen Beispielen verwenden wir reelle und gerade Funktionen. Somit gilt:

$$X(f)=\int_{-\infty}^{+\infty}x(t)\cdot \cos(2\pi ft) \hspace{0.15cm} {\rm d}t$$ und $$x(t)=\int_{-\infty}^{+\infty}X(f)\cdot \cos(2\pi ft) \hspace{0.15cm} {\rm d}f.$$

  • $x(t)$ und $X(f)$ haben unterschiedliche Einheiten, z. B. $x(t)$ in V, $X(f)$ in V/Hz.
  • Alle Zeiten sind auf eine Normierungszeit $T$ und alle Frequenzen auf $1/T \Rightarrow$ das Spektrum $X(f)$ muss noch mit $T$ multipliziert werden.
  • Der Zusammenhang zwischen Impulse und deren Spektren und der ähnlich aufgebauten Animation „Tiefpass“ basiert auf dem Vertauschungssatz.

Gaußimpuls

  • Die Zeitfunktion mit der Höhe $K$ und der (äquivalenten) Dauer $\Delta t$ lautet:

$$x(t)=K\cdot e^{-\pi\cdot(t/\Delta t)^2}.$$

  • Die äquivalente Zeitdauer $\Delta t$ ergibt sich aus dem flächengleichen Rechteck.
  • Der Wert bei t=$\Delta t/2$ ist um den Faktor 0.456 kleiner als der Wert bei $t=0$.
  • Für die Spektralfunktion erhält man gemäß der Fouriertransformation:

$$X(f)=K\cdot \Delta t \cdot e^{-\pi(f\cdot \Delta t)^2} .$$

  • Je kleiner die äquivalente Zeitdauer $\Delta t$ ist, um so breiter und niedriger ist das Spektrum (Reziprozitätsgesetz von Bandbreite und Impulsdauer).
  • Sowohl $x(t)$ als auch $X(f)$ sind zu keinem $ f$- bzw. $t$-Wert exakt gleich Null.
  • Praktisch ist der Gaußimpuls in Zeit und Frequenz begrenzt. Zum Beispiel ist $x(t)$ bereits bei $t=1.5 \Delta \cdot t$ auf $1\% $ des Maximums abgefallen.

Rechteckimpuls

  • Die Zeitfunktion mit der Höhe $K$ und der (äquivalenten) Dauer $\Delta t$ lautet:

$$x(t) = \left\{ \begin{array}{l} \hspace{0.25cm}K \\ K /2 \\ \hspace{0.25cm} 0 \\ \end{array} \right.\quad \quad \begin{array}{*{20}c} {\rm{f\ddot{u}r}} \\ {\rm{f\ddot{u}r}} \\ {\rm{f\ddot{u}r}} \\ \end{array}\begin{array}{*{20}c} {\left| \hspace{0.05cm} t\hspace{0.05cm} \right| < T/2,} \\ {\left| \hspace{0.05cm}t\hspace{0.05cm} \right| = T/2,} \\ {\left|\hspace{0.05cm} t \hspace{0.05cm} \right| > T/2.} \\ \end{array}$$

  • Der $\pm \Delta t/2$ - Wert liegt mittig zwischen links- und rechtsseitigem Grenzwert.
  • Für die Spektralfunktion erhält man entsprechend den Gesetzmäßigkeiten der Fouriertransformation (1. Fourierintegral):

$$X(f)=K\cdot \Delta t \cdot si(\pi\cdot \Delta t \cdot f) \quad \text{mit} \ si(x)=\frac{sin(x)}{x}.$$

  • Der Spektralwert bei $f=0$ ist gleich der Rechteckfläche der Zeitfunktion.
  • Die Spektralfunktion besitzt Nullstellen in äquidistanten Abständen $1/\Delta t$.
  • Das Integral über der Spektralfunktion $X(f)$ ist gleich dem Signalwert zum Zeitpunkt $t=0$, also der Impulsamplitude $K$.

Dreieckimpuls

  • Die Zeitfunktion mit der Höhe $K$ und der (äquivalenten) Dauer $\Delta t$ lautet:

$$x(t) = \left\{ \begin{array}{l} \hspace{0.25cm}K\cdot \Big(1-\frac{|t|}{\Delta t}\Big) \\ \hspace{0.25cm} 0 \\ \end{array} \right.\quad \quad \begin{array}{*{20}c} {\rm{f\ddot{u}r}} \\ {\rm{f\ddot{u}r}} \\ \end{array}\begin{array}{*{20}c} {\left| \hspace{0.05cm} t\hspace{0.05cm} \right| < \Delta t,} \\ {\left| \hspace{0.05cm}t\hspace{0.05cm} \right| \ge \Delta t.} \\ \end{array}$$

  • Die absolute Zeitdauer ist $2 \cdot \Delta t$, d.h. doppelt so groß als die des Rechtecks.
  • Für die Spektralfunktion erhält man gemäß der Fouriertransformation:

$$X(f)=K\cdot \Delta f \cdot si^2(\pi\cdot \Delta t \cdot f) \quad \text{mit} \ si(x)=\frac{sin(x)}{x}.$$

  • Obige Zeitfunktion ist gleich der Faltung zweier Rechteckimpulse, jeweils mit Breite $\Delta t \Rightarrow X(f)$ beinhaltet anstelle der $si$-Funktion die $si^2$-Funktion.
  • $X(f)$ weist somit ebenfalls Nullstellen im äquidistanten Abständen $1/\Delta f$ auf.
  • Der asymptotische Abfall von $X(f)$ erfolgt hier mit $1/f^2$, während zum Vergleich der Rechteckimpuls mit $1/f$ abfällt.

Trapezimpuls

Die Zeitfunktion mit der Höhe $K$ und den Zeitparametern $t_1$ und $t_2$ lautet:

$$x(t) = \left\{ \begin{array}{l} \hspace{0.25cm}K \\ K\cdot \frac{t_2-|t|}{t_2-t_1} \\ \hspace{0.25cm} 0 \\ \end{array} \right.\quad \quad \begin{array}{*{20}c} {\rm{f\ddot{u}r}} \\ {\rm{f\ddot{u}r}} \\ {\rm{f\ddot{u}r}} \\ \end{array}\begin{array}{*{20}c} {\left| \hspace{0.05cm} t\hspace{0.05cm} \right| \le t_1,} \\ {t_1\le \left| \hspace{0.05cm}t\hspace{0.05cm} \right| \le t_2,} \\ {\left|\hspace{0.05cm} t \hspace{0.05cm} \right| \ge t_2.} \\ \end{array}$$

  • Für die äquivalente Zeitdauer (flächengleiches Rechteck) gilt: $\Delta t = t_1+t_2$.
  • Der Rolloff-Faktor (im Zeitbereich) kennzeichnet die Flankensteilheit:

$$r=\frac{t_2-t_1}{t_2+t_1}.$$

  • Sonderfall $r=0$: Rechteckimpuls. Sonderfall $r=1$: Dreieckimpuls.
  • Für die Spektralfunktion erhält man gemäß der Fouriertransformation:

$$X(f)=K\cdot \Delta t \cdot si(\pi\cdot \Delta t \cdot f)\cdot si(\pi \cdot r \cdot \Delta t \cdot f) \quad \text{mit} \ si(x)=\frac{sin(x)}{x}.$$

  • Der asymptotische Abfall von $X(f)$ liegt zwischen $1/f$ (für Rechteck, $r=0$) und $1/f^2$ (für Dreieck, $r=1$).

Cosinus-Rolloff-Impuls

Die Zeitfunktion mit der Höhe $K$ und den Zeitparametern $t_1$ und $t_2$ lautet:

$$x(t) = \left\{ \begin{array}{l} \hspace{0.25cm}K \\ K\cdot \cos^2\Big(\frac{|t|-t_1}{t_2-t_1}\cdot \frac{\pi}{2}\Big) \\ \hspace{0.25cm} 0 \\ \end{array} \right.\quad \quad \begin{array}{*{20}c} {\rm{f\ddot{u}r}} \\ {\rm{f\ddot{u}r}} \\ {\rm{f\ddot{u}r}} \\ \end{array}\begin{array}{*{20}c} {\left| \hspace{0.05cm} t\hspace{0.05cm} \right| \le t_1,} \\ {t_1\le \left| \hspace{0.05cm}t\hspace{0.05cm} \right| \le t_2,} \\ {\left|\hspace{0.05cm} t \hspace{0.05cm} \right| \ge t_2.} \\ \end{array}$$

  • Für die äquivalente Zeitdauer (flächengleiches Rechteck) gilt: $\Delta t = t_1+t_2$.
  • Der Rolloff-Faktor (im Zeitbereich) kennzeichnet die Flankensteilheit:

$$r=\frac{t_2-t_1}{t_2+t_1}.$$

  • Sonderfall $r=0$: Rechteckimpuls. Sonderfall $r=1$: Cosinus$^2$-Impuls.
  • Für die Spektralfunktion erhält man gemäß der Fouriertransformation:

$$X(f)=K\cdot \Delta t \cdot \frac{\cos(\pi \cdot r\cdot \Delta t \cdot f)}{1-(2\cdot r\cdot \Delta t \cdot f)^2} \cdot si(\pi \cdot \Delta t \cdot f).$$

  • Je größer der Rolloff-Faktor $r$ ist, desto schneller nimmt $X(f)$ asymptotisch mit $f$ ab.

Cosinus-Quadrat-Impuls

  • Dies ist ein Sonderfall des Cosinus-Rolloff-Impuls und ergibt sich für $r=1 \ (t_1=0, t_2= \Delta t)$:

$$x(t) = \left\{ \begin{array}{l} \hspace{0.25cm}K\cdot \cos^2\Big(\frac{|t|\cdot \pi}{2\cdot \Delta t}\Big) \\ \hspace{0.25cm} 0 \\ \end{array} \right.\quad \quad \begin{array}{*{20}c} {\rm{f\ddot{u}r}} \\ {\rm{f\ddot{u}r}} \\ \end{array}\begin{array}{*{20}c} {\left| \hspace{0.05cm} t\hspace{0.05cm} \right| < \Delta t,} \\ {\left| \hspace{0.05cm}t\hspace{0.05cm} \right| \ge \Delta t.} \\ \end{array}$$

  • Für die Spektralfunktion erhält man gemäß der Fouriertransformation:

$$X(f)=K\cdot \Delta f \cdot \frac{\pi}{4}\cdot [si(\pi(\Delta t\cdot f +0.5))+si(\pi(\Delta t\cdot f -0.5))]\cdot si(\pi \cdot \Delta t \cdot f).$$

  • Wegen der letzten $si$-Funktion ist $X(f)=0$ für alle Vielfachen von $F=1/\Delta t$. Die äquidistanten Nulldurchgänge des Cos-Rolloff-Impulses bleiben erhalten.
  • Aufgrund des Klammerausdrucks weist $X(f)$ nun weitere Nulldurchgänge bei $f=\pm1.5 F$, $\pm2.5 F$, $\pm3.5 F$, ... auf.
  • Für die Frequenz $f=\pm F/2$ erhält man die Spektralwerte $K\cdot \Delta t/2$.
  • Der asymptotische Abfall von $X(f)$ verläuft in diesem Sonderfall mit $1/f^3$.


Open Applet in a new tab