Forum: Digitale Signalverarbeitung / DSP / Machine Learning Pulsformung am Sender


von Student (Gast)


Lesenswert?

Ich habe eine Frage zur Pulsformung.

Es liegt eine diskrete Folge an Symbolen vor. Als Beispiel sei b(k) = [0 
1 1 0 1] eine Folge an Symbolen. Die Abtastrate eines DA-Wandlers sei T. 
Das Signal wird K-Fach überabgetast. Ein Filter p zur Pulsformung kommt 
zum Einsatz (zB. https://de.m.wikipedia.org/wiki/Raised-Cosine-Filter)

Ist das Ausgangssignal durch s = conv(upsample(b(k),K),p) oder s = 
conv(rectpulse(b(k),K),p) ? Betrachte ich das Spektrum von s im 
Frequenzbereich, dann ist die erste Nullstelle bei T oder K•T (gesehen 
für den raised cosine Filter). Vielleicht hat einer ein Beispiel zur 
Klärung meiner Frage. Gruß

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Ich wuerde zu der "upsample" Methode tendieren, und nicht die mit dem 
rectpuls.

Die NICAM-Spezifikation EN300163 find' ich persoenlich sehr angenehm 
hemdsaermelig - dort in der Fig.6 gibts vor den "data-shaping filters" 
(hier root-raised-cosine) noch jeweils den Block "NRZ to impulse 
converter, der eben die eher rechteckigen Signale aus dem "Differential 
encoder" in lustige kleine Diracstoesse verwandelt, die dann das Filter 
jeweils anstossen.
Wuerde man mit den rechteckigen Signalen in die Filter gehen, saehe das 
Spektrum anders aus, bzw. man muesste die Filter so umdimensionieren, 
dass sie auf Anregung mit einem Rechteck mit ihrer rrc-typischen Antwort 
reagieren.

Gruss
WK

von Student (Gast)


Lesenswert?

Vielen Dank wk. Zur Bandbreite: nehme ich die Abtastrate 1/T durch den 
da konverter als konstant an, ergibt sich aus einer "fälschlicher Weise 
benannten k fachen überabtastung" eine maximale Bandbreite von 1/(KT) 
korrekt ? Nullstellen meines Filters liegen bei 1/(KT) bei raised cosine 
Filter. Sehe ich das richtig ?

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Ja, die Bandbreite des Ausgangssignals wird von den 
"Pulsformungsfiltern" bestimmt. Deshalb sind die ja hauptsaechlich da. 
Bei dem NICAM-Beispiel sind das z.B. Tiefpaesse mit 182kHz Grenzfrequenz 
(siehe Fig.5) - macht dann eine Kanalbandbreite des NICAM-Signals von 
182kHz*2=364kHz. Die ist unabhaengig von dem Takt, mit dem z.b. der 
Carrier (und damit auch das Ausgangssignal) abgetastet ist.

Gruss
WK

von Student (Gast)


Lesenswert?

Ich habe da noch eine Frage an "Dergute Weka". Du sagtest, du würdest 
die "upsamle()" Methode bevorzugen. Folgendes Beispiel:

b(k) = [0 1 0 1]
T    =  1/(10 MHz)
K    =  5;

-> b'(k) = [0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1]

Das ungefilterte Signal belegt eine 'unendliche' Bandbreite im Spektrum. 
Die erste Nullstelle des Amplitudenspektrums liegt bei 1/T (10 MHz) bzw. 
-1/T (-10 MHz).

Jetzt wendet man eine Filterfunktion p an. Die Bandbreite wird auf B 
eingeschränkt. Im Fall des Raised Cosine Filters 
(https://de.m.wikipedia.org/wiki/Raised-Cosine-Filter) liegen die 
Nullstellen bei -B und B. Für B = 20 MHz, bei -10 MHz und 10 MHz.

s = conv(rectpulse(b(k),K),p); bzw. s = conv(upsample(b(k),K),p);

bewirkt eine Filterung.

Fall 1;
s = conv(upsample(b(k),K),p);
s = conv([0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0],p);

Fall 2;
s = conv(rectpulse(b(k),K),p);
s = conv([0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1],p);

Für den Fall B -> oo wird das Filter im Zeitbereich gegen einen Dirac 
laufen. Im "Fall 1" ergibt die Faltung von upsample(b(k),K) und p gerade 
b(k). Im "Fall 2" ergibt die Faltung von rectpulse(b(k),K) und p 
hingegen b'(k). Im Bereich zwischen B = 10 MHz und B -> oo erkennt man 
gut das Gibbssches Phänomen 
(https://de.wikipedia.org/wiki/Gibbssches_Ph%C3%A4nomen).

Demnach verstehe ich nicht, wieso man "upsample()" nehmen kann. Ich wäre 
dankbar, wenn du mir einen Fehler/Grund aufzeigen kannst.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Student schrieb:
> Ich habe da noch eine Frage an "Dergute Weka". Du sagtest, du würdest
> die "upsamle()" Methode bevorzugen.

Duerfen gerne auch alle anderen mitmachen, ich bin nicht unfehlbar ;-)

Ich find' den upsample() an der Stelle deshalb korrekt, weil's eben eine 
Ueberabtastung ist. Schrubst du ja in deinem ersten Post selbst.

Das mit dem rectpulse() ist gegenueber dem upsample() alleine eine 
Kombination aus upsample() und einem FIR Filter mit diesen 
Koeffizienten: [1,1,1,1,1].
Dieses FIR Filter kommt aber ja eher zufaellig daher - OK, das macht 
auch irgendwie eine Bandbegrenzung. Aber wenn tatsaechlich 
Bandbegrenzungen gefordert sind, dann ueblicherweise mit definierten 
Bandgrenzen, um eben Nachbarkanaele nicht zu sehr zu stoeren. Nicht als 
Abfallprodukt einer schlecht ausgefuehrten Ueberabastung.

Gruss
WK

von Student (Gast)


Lesenswert?

Dann habe ich wohl den Begriff der überabtastung falsch verstanden. Ich 
dachte bisher: eine Folge an Rechteckpulsen der Pulsdauer 1/10MHz muss 
ich gemäß abtasttheorem mit mindestens 20 MHz abtasten. Mit einer 
überabtastung von 4 würde die Abtastrate für das Signal 4•20 MHz 
betragen.
Korrigiert mich bitte. Aus diesem Grund versteh ich den Fall mit 
"upsample()" nicht, da im Fall B (Bandbreite des Pulsformers gegen oo) 
das Signal gefaltet mit dem Pulsformer gegen diracs läuft. Und nicht wie 
in meinem Beitrag erwähnt gegen ein Rechteck. Bring da wohl was 
durcheinander.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Wie immer: Kommt halt drauf an, was du haben willst.
Rechteckpulse sind halt nun mal Rechteckpulse. Aber im ersten Post steht 
nix von Rechteckpulsen, sondern von einer diskreten Folge von Symbolen. 
Und so'n Symbol seh' ich  eher als kein Rechteckpuls, sondern einen 
Dirac (zumindest bei 1bit breiten Symbolen). Mehrere Symbole 
hintereinander sind dann eine Reihe von Diracstoessen von mir aus mit 
unterschiedlicher Gewichtung, je nach Symbol (kann man jetzt noch 
ueberlegen, ob 0 und 1 da "schoen" sind, oder eher -1 und 1). Und 
zwischen den Diracstoessen ist erstmal nix, bzw. man weiss es vielleicht 
nicht genau - oder, wenn man weiss, dass das Abtasttheorem nicht 
verletzt wurde, weiss man's ganz genau, wie's zwischendrinnen ausssieht: 
Sicher nicht rechteckig.
Aber das wird auch erst dann interessant, wenn man eben ueberabtastet.

Anders siehts aus, wenn du keine Symbole hast, sondern tatsaechlich 
irgendwie einen Signalverlauf, z.b. auch Rechteckpulse. Wenn du echte 
Recheckpulse hast, kannst du die garnicht vernuenftig abtasten, wg. 
Verletzung des Abtasttheorems, weil 'n Rechteck nicht bandbegrenzt ist.
Sowie du's bandbegrenzt, ist's kein Rechteck mehr.

Aehh - wo wollt ich jetzt drauf raus? Was war noch das Problem? :-D

Gruss
WK

von Pulssucher (Gast)


Lesenswert?

Wie verhält sich das Ganze, wenn man wie üblich Nullen in den Datenstrom 
einsetzt, beim upsampeln?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.