www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Englisch
  Status Grammatik
  Status Lektüre
  Status Korrekturlesen
  Status Übersetzung
  Status Sonstiges (Englisch)

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Zahlentheorie" - Kodierungstheorie / Code
Kodierungstheorie / Code < Zahlentheorie < Algebra+Zahlentheo. < Hochschule < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Zahlentheorie"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Kodierungstheorie / Code: Verständnisprobleme
Status: (Frage) beantwortet Status 
Datum: 19:27 Sa 16.08.2008
Autor: Irmchen

Hallo alle zusammen!

Ich habe angefangen mich für meine Diplomprüfung in Zahlentheorie ( Kodierungstheorie ) vorzubereiten und habe schon zu Anfang Verständnisproblem. Ich muss dazu sagen, dass ich nie einen Draht  für Algebra und Zahlentheorie hatte und dementsprechend auch bei recht einfachen Sachen oft auf dem Schlauch stehe...

So, in den ersten Paragraphen der Vorlesung Kodierungstheorie wurde das Hauptproblem ( Sender / Empfänger ) folgendermaßen erläutert:

A will an B die Info [mm] I \in \mathbb F_2 = \mathbb Z /_{2 \mathbb Z } = \{0,1 \} [/mm]  schicken. A hat dazu einen Sender S und B einen Empfänger E. S kann verktoren [mm] v \in \mathbb F_2^{n} [/mm] verschicken und E kann [mm] v \in \mathbb F_2^{n} [/mm] empfangen.

PROBLEM:
E empfängt nicht genau [mm] f(I) [/mm] sondern eine Vektor, der etwas verändert ist. Den nennen wir [mm] f(I) ' [/mm].

Finde Methode, so dass man aus [mm] f(I) ' [/mm] erkennen kann:
1. ob eine Fehler aufgetreten sit; wieviele aufgetreten sind.
2. wo die Fehler genau liegen.

LÖSUNG:
Wähle [mm] c \subseteq \mathbb f_2^n [/mm]  (Teilmenge), so dass [mm] f( \mathbb f_2^k ) \subseteq C [/mm] .
Kommt ein [mm] f(I) ' [/mm] bei E an mit [mm] f(I) ' \notin C [/mm], dann ist ein Fehler passiert. C heißt Code .
Passieren nicht zu viele Fehler von [mm] f(I) [/mm] zu [mm] f(I) ' [/mm], so soll [mm] f(I) ' \notin C [/mm] gelten.

( Diesen Sachverhalt versteh ich nicht? Was ist denn viele Fehler passieren, dann ist das doch erst rechtnicht in C , oder? )

Aber meine eigentlichen Schwierigkeiten kommen nun in Beispiele und bei Anwendung von 2 Definitionen.

Beispiele:

1) [mm] C = \left\{ \vektor{ x_1 \\ x_2 \\ x_3 } \in \mathbb F_2^3 \mid \ x_1 + x_2 +x_3 = 0 \right\} \subseteq \mathbb F_2^3 [/mm]

[mm] \Rightarrow C_1 = \left\{ \vektor{0 \\ 0 \\ 0 } , \vektor{1 \\ 0 \\ 1 } , \vektor{0 \\ 1 \\ 1 }, \vektor{ 1 \\ 1 \\ 0 } \right\} [/mm]

Zum Beispiel ist [mm] \vektor{ 0 \\ 0 \\ 1 } \notin C [/mm]. Man weiß aber nicht , wo der Fehler liegt !

( Sehe ich das richtig, dass man deshalb nicht weiß wo der Fehler ist, da man die ersten 3 Vektoren von [mm] C_1 [/mm] jeweils mit einer Änderung so verändern kann und somit den Vektor zu erhalten? )

Definition :

[mm] C \subseteq \mathbb F_2^n [/mm] sei nicht leer Teilmenge.
[mm] D_1(C) := \max \{0\} \cup \{ l \in \mathbb N \ \mid \ [/mm] ist [mm] u \in C, 1 \le m \le l , v \in \mathbb F_2^n [/mm] ,der sich von u in genau m Eingängen unterscheidet, dann gilt [mm] v \notin C \} [/mm].


Dies soll wohl die Anzahl der Eingänge sein, die man max . verändern kann, so dass man aus C kommt

( Warum? )
Und dazu die folgenden Beispiele, die ich nicht verstehe:

1. [mm] D_1 ( \mathbb F_2^n ) = 0 [/mm]

2. [mm] D_1 ( C_1 ) = 1 [/mm]


Definition :

Ist [mm] D_1(C) = d [/mm], so sagt man, dass C bis zu d Fehler erkennen kann.

Frage: Ich sehe leider nicht den Zusammenhang zwischen den beiden Definitionen... :-(


Vielen Dank!

Viele Grüße
Irmchen

        
Bezug
Kodierungstheorie / Code: Antwort
Status: (Antwort) fertig Status 
Datum: 22:33 Sa 16.08.2008
Autor: piet.t

Hallo,

das bisschen Codierungstheorie, das ich gemacht habe, ist jetzt auch schon ziemlich lange her, aber mal sehen, was ich noch dazu sagen kann...

>  
> Finde Methode, so dass man aus [mm]f(I) '[/mm] erkennen kann:
>  1. ob eine Fehler aufgetreten sit; wieviele aufgetreten
> sind.
>  2. wo die Fehler genau liegen.
>  
> LÖSUNG:
>  Wähle [mm]c \subseteq \mathbb f_2^n[/mm]  (Teilmenge), so dass [mm]f( \mathbb f_2^k ) \subseteq C[/mm]
> .
>  Kommt ein [mm]f(I) '[/mm] bei E an mit [mm]f(I) ' \notin C [/mm], dann ist
> ein Fehler passiert. C heißt Code .

Damit legen wir erst mal fest: alle gültigen gesendeten Nachrichten müssen in C liegen. Ist die Übermittlung fehlerfrei, dann liegt folglich auch die empfangene Nachricht in C.

>  Passieren nicht zu viele Fehler von [mm]f(I) [/mm] zu [mm]f(I) ' [/mm], so
> soll [mm]f(I) ' \notin C [/mm] gelten.
>  
> ( Diesen Sachverhalt versteh ich nicht? Was ist denn viele
> Fehler passieren, dann ist das doch erst rechtnicht in C ,
> oder? )

Man kann einen Code immer so designen, dass eine nicht zu stark gestörte Nachricht sicher nicht mehr in C liegt. Passieren zu viele Fehler kann es aber durch einen dummen Zufall passieren, dass trotzdem wieder eine gültige Nachricht entsteht.

Betrachten wir mal euer C von unten und die Nachricht [mm] \vektor{0\\0\\0}. [/mm] Passier ein Fehler, d.h. wird genau eine Null zu einer 1, dann liegt das Ergebnis sicher nicht mehr in C. Bei zwei Fehlern erhalten wir aber wieder einen Vektor, der in C liegt. Wir merken in diesem Fall also gar nicht mehr, dass Fehler passiert sind, sondern halten die Nachricht fälschlicherweise für korrekt übermittelt.

>  
> Aber meine eigentlichen Schwierigkeiten kommen nun in
> Beispiele und bei Anwendung von 2 Definitionen.
>  
> Beispiele:
>  
> 1) [mm]C = \left\{ \vektor{ x_1 \\ x_2 \\ x_3 } \in \mathbb F_2^3 \mid \ x_1 + x_2 +x_3 = 0 \right\} \subseteq \mathbb F_2^3 [/mm]
>
> [mm]\Rightarrow C_1 = \left\{ \vektor{0 \\ 0 \\ 0 } , \vektor{1 \\ 0 \\ 1 } , \vektor{0 \\ 1 \\ 1 }, \vektor{ 1 \\ 1 \\ 0 } \right\}[/mm]
>  
> Zum Beispiel ist [mm]\vektor{ 0 \\ 0 \\ 1 } \notin C [/mm]. Man weiß
> aber nicht , wo der Fehler liegt !
>  
> ( Sehe ich das richtig, dass man deshalb nicht weiß wo der
> Fehler ist, da man die ersten 3 Vektoren von [mm]C_1[/mm] jeweils
> mit einer Änderung so verändern kann und somit den Vektor
> zu erhalten? )

Genau das. Wenn wir annehmen, dass nicht mehr als ein Fehler passiert ist, dann kann jeder der ersten drei Vektoren die Ausgangsnachricht gewesen sein.

>  
> Definition :
>  
> [mm]C \subseteq \mathbb F_2^n[/mm] sei nicht leer Teilmenge.
>  [mm]D_1(C) := \max \{0\} \cup \{ l \in \mathbb N \ \mid \[/mm] ist
> [mm]u \in C, 1 \le m \le l , v \in \mathbb F_2^n[/mm] ,der sich von
> u in genau m Eingängen unterscheidet, dann gilt [mm]v \notin C \} [/mm].
>
>
> Dies soll wohl die Anzahl der Eingänge sein, die man max .
> verändern kann, so dass man aus C kommt

...besser: "so dass man garantiert aus C kommt".

>  
> ( Warum? )

Es geht hier um folgende Frage: Ab wie vielen Fehlern kann es passieren, dass in irgend einer blöden Konstellation wieder eine gültige - und damit scheinbar fehlerfrei empfangene - Nachricht entsteht?

>  Und dazu die folgenden Beispiele, die ich nicht verstehe:
>  
> 1. [mm]D_1 ( \mathbb F_2^n ) = 0[/mm]

Egal wie wenige Einträge ich in einem Vektor aus [mm] \IF_2^n [/mm] verändere, es bleibt immer ein Vektor aus [mm] \IF_2^n. [/mm] Damit ist in obigem Ausdruck der Teil rechts vom [mm] \cup [/mm] leer und es wird nur das Maximum über {0} gebildet - also ist  [mm]D_1 ( \mathbb F_2^n ) = 0[/mm].

>  
> 2. [mm]D_1 ( C_1 ) = 1[/mm]

Verändert man z.B. im Vektor [mm] \vektor{0\\0\\0} [/mm] 2 Einträge, dann erhält man wieder einen Vektor aus C. Daher muss [mm]D_1 ( C_1 ) < 2[/mm] gelten.
Für jeden Vektor in C gilt aber: änderet man genau eine Stelle ab, dann erhält man einen Vektor, der nicht mehr in C liegt - also ist 1 in der Menge rechts vom [mm] \cup [/mm] und auch das Maximum ist 1.

>  
>
> Definition :
>  
> Ist [mm]D_1(C) = d [/mm], so sagt man, dass C bis zu d Fehler
> erkennen kann.
>  
> Frage: Ich sehe leider nicht den Zusammenhang zwischen den
> beiden Definitionen... :-(

Bleiben wir beim Beispiel C: Wird bei der Übertragung eine Stelle im Vektor "umgeschossen", dann erhalten wir einen Vektor, der nicht mehr in C liegt. Weil aber nur Vektoren aus C gesendet werden dürfen merkt der Empfänger, dass unterwegs etwas schiefgegangen ist.
Werden aber zwei Positionen geändert, dann kommt ja wieder ein Vektor aus C an, und dann muss der Empfänger davon ausgehen, dass die Nachricht auch so vom Sender gesendet worden ist.
Das steckt auch der Zusammenhang zwischen den Definitionen. [mm] D_1(C) [/mm] gibt die maximale Anzahl Fehler an, die passieren dürfen, dass man - ausgehend von einem Vektor in C - sicher nicht mehr in C landet. Passieren also bei einer Übertragung nicht mehr als [mm] D_1(C) [/mm] Fehler, dann kommt beim Empfänger eine ungültige Nachricht an und er erkennt, dass es bei der Übertragung Probleme gegeben hat. Bei mehr als [mm] D_1(C) [/mm] Fehlern kann es passieren, dass eine falsche aber trotzdem gültige Nachricht beim Empfänger ankommt und er daher nicht merkt, dass überhaupt ein Fehler passiert ist.


Gruß

piet

Bezug
                
Bezug
Kodierungstheorie / Code: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:05 So 17.08.2008
Autor: Irmchen

Hallo!

Vielen Dank für die ausführliche Antwort!
Das habe ich nun verstanden, aber eine Definition habe ich gestern noch entdeckt, die ich auch nicht wirklich verstehe und wieder bei ihrer Anwendung Probleme auftreten.

Definition :

[mm] D_2 (C) := \max \{ 0 \} \cup \{ l \in \mathbb N \ \mid [/mm] ist [mm] v \notin C, \ 1 \le m \le l [/mm], dann gibt es höchstens ein [mm] u \in C [/mm], dass sich von v um genau m Eingänge unterscheidet. Zwei veschiedene [mm] u_1, u_2 \in C [/mm] unterscheiden sich an mind. l Stellen [mm] \} [/mm].

Ist [mm] D_2 (C) = d [/mm], so sagt man, dass C bis zu d Fehler korrigieren kann.

( Leider verstehe ich das nicht wirklich.... )

Beispiele dazu waren:

1) [mm] D_2( \mathbb F_2^n ) = 0 [/mm]

2) [mm] D_2( C_1) = 0 [/mm]

Vielleicht kann mir jemand anhand dieser Beipiele diese Definition versuchen zu erläutern...

Vielen Dank!

Viele Grüße
Irmchen

Bezug
                        
Bezug
Kodierungstheorie / Code: Antwort
Status: (Antwort) fertig Status 
Datum: 17:24 So 17.08.2008
Autor: piet.t

Hallo,

an den Beispielen ist das schwierig zu erklären, weil diese Codes ja keine Fehler korrigieren können [mm] (D_2=0). [/mm]
Betrachten wir das erst mal allgemein: Nehmen wir mal an wir sind Empfänger und es kommt ein [mm] $v\not\in [/mm] C$ an. Dann ist klar, dass irgend welche Übertragungsfehler passiert sein müssen. Und nehmen wir weiter an, dass genau [mm] m Auf diese Weise konnten wir also Übertragungsfehler in m Stellen korrigeren.

Ein einfaches Beispiel habe ich jetzt leider gerade nciht bei der Hand, und auf die Schnelle will ich mir jetzt auch keines aus den Fingern saugen, weil das garantiert schief geht. Aber vielleicht helfen ja auch die allgemeinen Erläuterungen schon etwas.

Gruß

piet

Bezug
                                
Bezug
Kodierungstheorie / Code: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 17:30 So 17.08.2008
Autor: Irmchen

Vielen Dank!
Ich denke, dass ich das nun verstanden habe, und mit den beiden Definitionen umgehen kann.
Ganz nebenbei, gibt es ein nettes Buch, welches man empfehlen könnte??

Viele Grüße Irmchen

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Zahlentheorie"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.englischraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]