Verwenden Sie die Funktionen multirate, resample und upsample, um die Abtastfrequenz für ein Signal auf unterschiedliche Arten und bei verschiedenen Annahmen zu speichern.
Funktion multirate mit FIR-Standardfilter
Die Funktion multirate verwendet die Gruppenverzögerung eines linearphasigen nichtrekursiven Filters FIR, um zu schätzen, wo die anfängliche Ausgabetransienz endet, und beschneidet die Transienten.
1. Definieren Sie die Signalparameter.
2. Verwenden Sie die Funktion sin, um ein Sinussummen-Signal festzulegen.
3. Wenden Sie die Funktion multirate auf das Signal an.
4. Plotten Sie das neu gesampelte Signal.
Das Diagramm zeigt, dass das erneut gesampelte Signal leicht verschoben ist und n/m-mal die Anzahl der ursprünglichen Datenpunkte enthält. Die Verschiebung wurde durch den FIR-Filter bewirkt und entspricht der Gruppenverzögerung.
Funktion multirate mit optionalem FIR-Tiefpassfilter
1. Definieren Sie die Grenzfrequenz, die Anzahl an Koeffizienten und den Typ des verjüngten Fensters.
2. Berechnen Sie mit der Funktion lowpass die Koeffizienten des FIR-Tiefpass-Filters.
3. Verwenden Sie die Funktion multirate zum Resampling des Signals x mit einem anderen Faktor.
4. Plotten Sie das neu gesampelte Signal.
Das Resampling resultiert in einer Signaldämpfung, weil die Zunahme des Filters FIR nicht der Upsampling-Rate n entspricht.
5. Passen Sie die Koeffizienten des FIR-Filters an, um den Zuwachs zu korrigieren, und stellen Sie das neu gesampelte Signal erneut grafisch dar.
Durch Anpassen der Koeffizienten des FIR-Filters wird der Skalierungseffekt entfernt.
Signal-Upsampling
Sie können die Funktion multirate verwenden, um ein Signal zu verdichten (Upsampling) oder auszudünnen.
1. Verwenden Sie die Funktion multirate zum Verdichten des Signals x, indem Sie das n/m-Verhältnis erhöhen.
2. Stellen Sie das Signal grafisch dar, für das Sie ein Upsampling durchgeführt haben.
Das Erhöhen des n/m-Verhältnisses führt zu einer höheren Anzahl an Stichproben, wie dem Längenwert zu entnehmen, und zu einer höheren Anzahl an neuen Stichproben zwischen zwei beliebigen aufeinanderfolgenden Stichproben des ursprünglichen Signals.
3. Verwenden Sie die Funktion multirate zum Ausdünnen des Signals x, indem Sie das n/m-Verhältnis verringern.
4. Stellen Sie das Signal grafisch dar, für das Sie ein Downsampling durchgeführt haben.
Das Verringern des n/m-Verhältnisses führt zu einer niedrigeren Anzahl an Stichproben, wie dem Längenwert zu entnehmen, und zu einer niedrigeren Anzahl an neuen Stichproben zwischen zwei beliebigen aufeinanderfolgenden Stichproben des ursprünglichen Signals.
Daten-Upsampling
Die Funktion upsample führt FFT für die ursprünglichen Daten durch und fügt Nullen in der Mitte des Koeffizientenbereichs hinzu, um eine Transformation zu erzeugen, die die erforderliche interpolierte Länge aufweist. Anschließend transformiert die Funktion das erweiterte Spektrum durch Inversion. Für das Interpolieren von Daten sind mehrere Methoden verfügbar. Möglicherweise ist auch ein speziell konstruierter FIR-Filter erforderlich. Bei regelmäßigen Daten gibt diese Funktion eine angemessene Interpolation zurück.
1. Legen Sie den Interpolationsfaktor n fest, und wenden Sie die Funktion upsample auf das Signal x an.
2. Plotten Sie das zurückgegebene Signal.
Bei dem zurückgegebenen Signal handelt es sich um eine interpolierte Version des Signals x mit der n-fachen Anzahl an Punkten.
Resampling von Signalen
Die Funktion resample wird mithilfe der Interpolation ausgeführt, um n-mal so viele Punkte zu erzeugen und dann jeden mth-ten Punkt zu verwenden, um die Ausgabe zu erzeugen.
1. Legen Sie den Dezimierungsfaktor m und den Interpolationsfaktor n fest.
2. Plotten Sie das zurückgegebene Signal.
Das zurückgegebene Signal weist 3/5 Mal so viele Punkte auf, sodass der Abstand zwischen den Stichproben 5/3 des ursprünglichen Abstands beträgt.
Upsampling mit aperiodischen und periodischen Eingaben verwenden
Die Funktion upsample geht davon aus, dass die Eingabe periodisch ist. Untersuchen Sie das zurückgegebene Signal in beiden Fällen.
Aperiodische Eingabe
1. Legen Sie den Interpolationsfaktor fest.
2. Definieren Sie ein nicht periodisches Eingabesignal.
3. Wenden Sie die Funktion upsample an.
4. Plotten Sie das zurückgegebene Signal.
Die Interpolationsroutine geht davon aus, dass X periodisch ist. Deshalb versucht sie, Punkte in der Nähe des Endes des Graphen zu interpolieren, die wieder die ursprüngliche Höhe von 1 annehmen. Diese Funktion gibt jedoch sinnvolle Ergebnisse aus, wenn das "Wrapping" der Eingabesequenz eine angemessene Glättung bewirkt.
Periodische Eingabe
1. Legen Sie den Interpolationsfaktor fest.
2. Definieren Sie ein periodisches Eingabesignal.
3. Wenden Sie die Funktion upsample an.
4. Plotten Sie das zurückgegebene Signal.
Die Interpolation ergibt eine genauere Annäherung an das ursprüngliche Signal, wenn das Signal periodisch ist.