Keep 1 in N

Datenreduktion durch gezieltes Downsampling — jedes n-te Element bleibt erhalten, solange Nyquist eingehalten wird.

1. Beschreibung des Blocks

Der Keep 1 in N-Block (blocks.keep_one_in_n) reduziert einen Datenstrom, indem er von je $N$ aufeinanderfolgenden Samples genau eines beibehält und die übrigen $N-1$ verwirft. Es findet dabei keine Filterung statt — anders als bei einem echten Dezimationsfilter wird nicht gemittelt oder tiefpassgefiltert, sondern schlicht jedes $N$-te Sample durchgereicht.

Keep 1 in N Blockschaltung

Das linke Signal ist das Ergebnis von Keep 1:2. Statt 10 Samplepunkten sind nur noch 5 im Signal enthalten:

Keep 1 in N Signalvergleich

2. Technischer Einsatz

Der Block eignet sich zur reinen Datenreduktion, wenn ein Signal mit unnötig hoher Rate vorliegt und die Systemressourcen der nachfolgenden Verarbeitung entlastet werden sollen — etwa nach einem stark oversampelten ADC-Eingang, oder um die Datenrate an eine langsamere Senke (z. B. eine Anzeige) anzupassen.

Da keine Tiefpassfilterung vorausgeht, führt Keep 1 in N bei einem Signal mit Frequenzanteilen oberhalb der neuen Nyquist-Grenze ($f_s^{\text{neu}}/2 = f_s/(2N)$) zu Aliasing — hochfrequente Anteile werden in den Nutzband gespiegelt und dort nicht mehr vom Originalsignal unterscheidbar. Ist das Eingangssignal nicht bereits entsprechend bandbegrenzt, muss vor Keep 1 in N ein Tiefpassfilter (oder direkt ein FIR-Dezimationsfilter mit `decim = N`) eingefügt werden.

3. Parameter und Dimensionierung

Parameter Typ/Einheit Bedeutung Dimensionierungshinweis
type Enum Datentyp: Complex, Float, Int, Short, Byte muss dem Typ der Eingangsquelle entsprechen
n (N) Integer Reduktionsfaktor — jedes $N$-te Sample bleibt erhalten muss > 0 sein; neue Abtastrate ist $f_s/N$ — vor Anwendung prüfen, ob $f_s/N$ noch über der doppelten Nutzsignalbandbreite liegt
vlen (Vector Length) Integer Anzahl Elemente pro Vektor-Sample Standard 1

4. Ein- und Ausgänge

Ein-/Ausgang Typ
Eingang wie type
Ausgang wie type, Rate um Faktor $N$ reduziert

5. Weitere wichtige Aspekte

Live-Parameteränderung: set_n(...) erlaubt eine Anpassung des Reduktionsfaktors zur Laufzeit.

Verwandter Block: Für eine bandbegrenzte Dezimation mit integrierter Filterung siehe die decim-Option der FIR-Filter-Blöcke, z. B. Bandpass-Filter-Blöcke — dort wird die Filterung und Ratenreduktion in einem Schritt durchgeführt.