signal-processing

___ qstnhdr ___ Verwirrung mit FFT-Algorithmus ___ tag123algorithm ___ Ein Algorithmus ist eine Folge wohldefinierter Schritte, die eine abstrakte Lösung für ein Problem definieren. Verwenden Sie dieses Tag, wenn sich Ihr Problem auf den Algorithmusentwurf bezieht. ___ answer5030112 ___

Ein rechteckiges Fenster der Länge M hat eine Frequenzantwort von %code% , die Null ist, wenn %code% , für k ∈ 0. Für eine DFT der Länge N, wo %code% , gibt es Nullen bei %code% . Das Verhältnis N / M ist nicht notwendigerweise eine ganze Zahl. Wenn zum Beispiel N = 40 und M = 32, dann gibt es Nullen bei Vielfachen von 1,25, aber nur die ganzzahligen Vielfachen erscheinen in der DFT, was in diesem Fall die Bins 5, 10, 15 und 20 ist. p>

Hier ist ein Diagramm der 1024-Punkte-DFT eines rechteckigen 32-Punkt-Fensters:

%Vor%

Beachten Sie die Nullen bei jedem N / M = 32 Bins. Wenn N = M (d. H. Die Fensterlänge ist gleich der DFT-Länge), dann gibt es Nullen bei allen Bins außer bei n = 0.

Wenn Sie ein Fenster mit einem Signal multiplizieren, ist die entsprechende Operation im Frequenzbereich die kreisförmige Faltung des Fensterspektrums mit dem Signalspektrum. Zum Beispiel ist die DTFT einer Sinuskurve eine gewichtete Delta-Funktion (d. H. Ein Impuls mit unendlicher Höhe, infinitesimaler Ausdehnung und endlicher Fläche), der sich bei der positiven und negativen Frequenz der Sinuskurve befindet. Wenn ein Spektrum mit einer Delta-Funktion gefaltet wird, verschiebt es es einfach an den Ort des Deltas und skaliert es durch das Gewicht des Deltas. Wenn Sie daher ein Fenster mit einer Sinuskurve in der Sample-Domäne multiplizieren, wird die Frequenzantwort des Fensters skaliert und auf die Frequenz der Sinuskurve verschoben.

Es gibt einige Szenarien, die hinsichtlich der Länge eines rechteckigen Fensters untersucht werden müssen. Zuerst betrachten wir den Fall, in dem die Fensterlänge ein ganzzahliges Vielfaches der Sinusperiode ist, z. ein rechteckiges Fenster mit 32 Abtastwerten eines Kosinus mit einer Periode von 32/8 = 4 Abtastungen:

%Vor%

Wie zuvor gibt es Nullen bei Vielfachen von N / M = 32. Aber das Spektrum des Fensters wurde in den Bereich 256 der Sinuskurve verschoben und skaliert durch seine Größe, die 0,5 geteilt ist zwischen der positiven Frequenz und der negativen Frequenz ( Ich zeichne nur positive Frequenzen auf). Wenn die DFT-Länge 32 gewesen wäre, würden sich die Nullen an jeder Stelle anordnen, was zu dem Aussehen führen würde, dass es keine Lecks gibt. Aber diese irreführende Erscheinung ist nur eine Funktion der DFT-Länge. Wenn Sie das gefensterte Signal mit Nullen auffüllen (wie oben), werden Sie die sinc-artige Antwort bei Frequenzen zwischen den Nullen sehen.

Sehen wir uns nun einen Fall an, in dem die Fensterlänge kein ganzzahliges Vielfaches der Sinusperiode ist, z.B. ein Kosinus mit einer Winkelfrequenz von 7,5π / 16 (der Zeitraum beträgt 64 Abtastungen):

%Vor%

Die Position des mittleren Fachs befindet sich nicht länger auf einem ganzzahligen Vielfachen von 32, sondern ist um eine Hälfte nach Fach 240 verschoben. Sehen wir uns an, wie die entsprechende 32-Punkte-DFT aussehen würde (folgernd ein rechteckiges 32-Punkte-Fenster). Ich berechne und zeichne die 32-Punkte-DFT von x2 [n] und überlagere auch eine 32x dezimierte Kopie der 1024-Punkte-DFT:

%Vor%

Wie Sie im vorherigen Diagramm sehen können, sind die Nullen nicht mehr auf ein Vielfaches von 32 ausgerichtet, so dass die Größe der 32-Punkte-DFT in jeder Bin ungleich Null ist. In der 32-Punkte-DFT sind die Nullen des Fensters immernoch mit jedem N / M = 32/32 = 1 bin beabstandet, aber da ω0 = 7,5 π / 16, liegt das Zentrum bei "bin" 7,5, was die Nullen bei 0,5, 1,5 setzt usw., so dass sie in der 32-Punkte-DFT nicht vorhanden sind.

Die allgemeine Meldung besagt, dass der spektrale Verlust eines Fenstersignals immer vorhanden ist, aber in der DFT maskiert werden kann, wenn Signalspektrum, Fensterlänge und DFT-Länge genau richtig zusammenpassen Richte die Nullen aus. Darüber hinaus sollten Sie diese DFT-Artefakte einfach ignorieren und sich auf die DTFT Ihres Signals konzentrieren (d. H. Mit Nullen auffüllen, um die DTFT mit höherer Auflösung abzutasten, so dass Sie die Leckage eindeutig untersuchen können).

Spektralverluste, die durch Faltung mit dem Spektrum eines Fensters verursacht werden, sind immer vorhanden, weshalb die Kunst des Formens besonders geformter Fenster so wichtig ist. Das Spektrum jedes Fenstertyps wurde für eine bestimmte Aufgabe wie Dynamikbereich oder Empfindlichkeit angepasst.

Hier ist ein Beispiel, das die Ausgabe eines rechteckigen Fensters mit einem Hamming-Fenster vergleicht:

%Vor%

    
___ answer5013348 ___

Wenn Sie die Beispielwerte nicht ändern und dieselbe Datenlänge wie die FFT-Länge auswählen, entspricht dies der Verwendung eines rechteckigen Fensters. In diesem Fall sind der Rahmen und das Fenster identisch. Das Multiplizieren der Eingangsdaten mit einem rechteckigen Fenster im Zeitbereich ist jedoch dasselbe wie das Falten des Spektrums des Eingangssignals mit einer Sinc-Funktion in der Frequenzdomäne, wodurch spektrale Spitzen für Frequenzen, die in der FFT-Blende nicht exakt periodisch sind, gespreizt werden gesamtes Spektrum.

Nicht-rechteckige Fenster werden oft verwendet, so dass das resultierende FFT-Spektrum mit etwas mehr "konzentriert" als eine Sinc-Funktion gefaltet wird.

Sie können auch ein rechteckiges Fenster verwenden, das eine andere Größe als die FFT-Länge oder Blende hat. Im Fall eines kürzeren Datenfensters kann der FFT-Rahmen mit Null gepolt sein, was zu einem glatter aussehenden interpolierten FFT-Ergebnisspektrum führen kann. Sie können sogar ein rechteckiges Fenster verwenden, das länger ist als die Länge der FFT, indem Sie Daten rund um die FFT-Blende in einer summierten kreisförmigen Weise für einige interessante Effekte mit der Frequenzauflösung einwickeln.

HINZUGEFÜGT aufgrund einer Anfrage:

Die Multiplikation mit einem Fenster in der Zeitdomäne führt zu demselben Ergebnis wie die Faltung mit der Transformation dieses Fensters in der Frequenzdomäne.

Im Allgemeinen erzeugt ein engeres Zeitbereichsfenster eine breiter aussehende Frequenzbereichs-Transformation. Dies ist der Grund, warum Zero-Padding ein glatteres Frequenzdiagramm erzeugt. Das engere Zeitbereichsfenster erzeugt einen breiteren Sinc mit fetteren und glatteren Kurven in Bezug auf die Rahmenbreite als ein Fenster mit der vollen Breite des FFT-Rahmens, wodurch die Ergebnisse der interpolierten Frequenz glatter erscheinen als eine nicht gefüllte FFT derselben Rahmenlänge.

Das Gegenteil trifft auch zu. Ein breiteres rechteckiges Fenster erzeugt einen schmaleren Sinc, wobei die Nullen näher an der Spitze liegen. Sie können also ein sorgfältig ausgewähltes, breiteres Fenster verwenden, um ein schmaler aussehendes Sinc zu erzeugen, um eine Frequenz näher an einer interessierenden Bin zu löschen als 1 Frequenzfach entfernt. Wie benutzt du ein breiteres Fenster? Wickeln Sie die Daten um und addieren Sie sie, was der Verwendung von FT-Basisvektoren entspricht, die nicht auf 1 FFT-Frame in der Länge abgeschnitten sind. Da jedoch der FFT-Ergebnisvektor dabei kürzer als die Daten ist, ist dies ein verlustreicher Prozess, der Artefakte einführt und einige neue Alias-Effekte einführt. Aber es gibt Ihnen einen schärferen Frequenzauswahl-Peak bei jedem Bin und Kerbfilter, die weniger als 1 Bin entfernt platziert werden können, sagen etwa auf halber Strecke zwischen den Bins, etc.

    
___ answer5012158 ___
  

Was ist der Zweck der Fensterfunktion?

Es geht um sogenanntes "Spectral Leakage": Die FFT nimmt eine unendliche Reihe an, die den gegebenen Sample Frame immer wieder wiederholt. Wenn Sie eine Sinuswelle haben, bei der es sich um eine ganzzahlige Anzahl von Zyklen innerhalb des Sample-Rahmens handelt, dann ist alles gut und die FFT gibt Ihnen einen schönen schmalen Peak bei der richtigen Frequenz. Aber wenn Sie eine Sinuswelle haben, die keine ganzzahlige Anzahl von Zyklen ist, gibt es eine Diskontinuität zwischen der letzten und ersten Probe, und die FFT gibt Ihnen falsche Harmonische.

Windowing-Funktionen senken die Amplituden am Anfang und am Ende des Sample-Frames, um die durch diese Diskontinuität verursachten Oberwellen zu reduzieren.

einige Diagramme von einer Webseite von National Instruments zum Thema Windowing :

integrale Anzahl von Zyklen:

nicht ganzzahlige Anzahl von Zyklen:

für zusätzliche Informationen:

Ссылка

Ссылка

Ссылка

    
___ tag123fft ___ Abkürzung für Fast Fourier Transform, ein beliebiger Algorithmus zur schnellen Berechnung der diskreten Fourier-Transformation. ___ qstntxt ___

Ich versuche den FFT-Algorithmus zu verstehen, und soweit ich weiß, verstehe ich das Hauptkonzept dahinter. Ich bin jedoch verwirrt über den Unterschied zwischen 'framesize' und 'window'.

Nach meinem Verständnis scheint es, dass sie miteinander redundant sind? Zum Beispiel präsentiere ich als Eingabe einen Block von Samples mit einer Framegröße von 1024. Also habe ich das Byte [1024] als Eingabe dargestellt.

Was ist der Zweck der Fensterfunktion? Seit Anfang dachte ich, der Zweck der Fensterfunktion ist, den Block von Proben aus den Originaldaten auszuwählen.

Danke!

    
___ tag123signalverarbeitung ___ AKA digitale Signalverarbeitung (DSP). Ein Signal ist ein Information tragendes Änderungsattribut einer Entität, aber im digitalen Sinn bezieht sich "Signal" entweder auf empfangene oder übertragene Datenströme / Datenblöcke, die üblicherweise reale Größen wie Audiopegel, Helligkeit, Druck usw. darstellen Zeit oder Entfernung. "Verarbeitung" ist die Handlung des Änderns, Analysierens oder Charakterisierens der Daten, um Informationen, die dem fraglichen Signal innewohnen, abzurufen / zu modifizieren. ___
2
Antworten

Vergleichen des "Tons" von Musikinstrumenten in MATLAB

Ich versuche einen Weg zu finden, die Ähnlichkeit von kurzen 500-Millisekunden-Aufnahmen mit MATLAB derselben Note zu vergleichen, die auf verschiedenen Instrumenten gespielt wird. Ausführlich zu diesem speziellen Thema: Ich bin ein Musikstud...
01.06.2014, 21:32
4
Antworten

Wie mache ich eine Kurvenglättung in Matlab?

Das blaue Grundstück ist ein lautes Grundstück des ursprünglichen Grundstücks (rot). Gibt es eine Möglichkeit, das blaue Diagramm dem fast roten Diagramm anzunähern?     
20.10.2012, 11:21
5
Antworten

Wie mache ich eine einfache EQ AudioUnit (Bass, Mid, Treble) mit iOS?

weiß jemand, wie man eine einfache EQ-Audioeinheit (3 Bänder - niedrig, mittel, hallo) mit iOS macht? Ich weiß, wie ich meinem AU Graph eine iPod EQ Audio Unit hinzufügen kann. Aber es gibt Ihnen nur Zugriff auf Presets und ich brauche eine ange...
27.10.2010, 00:23
3
Antworten

De-interleave und interleave buffer mit vDSP_ctoz () und vDSP_ztoz ()?

Wie entschalte ich das float *newAudio in float *channel1 und float* channel2 und verschachtle es wieder in newAudio ? %Vor% Wie würden diese beiden Codezeilen aussehen? Ich verstehe die Syntax von ctoz / ztoz nicht.     
28.04.2012, 08:42
3
Antworten

FFT real / imaginär / abs Teile Interpretation

Ich lerne gerade über diskrete Fourier-Transformation und ich spiele mit numpy, um es besser zu verstehen. Ich habe versucht, ein "sin x sin x sin" -Signal zu zeichnen und eine saubere FFT mit 4 Nicht-Null-Punkten erhalten. Ich sagte mir naiv...
02.09.2014, 13:26
5
Antworten

Wie sieht man Sinus verschiedener Frequenzen aus einer Nachschlagetabelle mit fester Größe?

Ich nehme eine Sinuswelle bei 48 kHz, der Frequenzbereich meiner Sinuswelle kann von 0 bis 20000 Hz mit einer Stufe von etwa 100 Hz variieren. Ich verwende einen Nachschlagetabellen-Ansatz. Also erstelle ich 4096 Samples für eine Sinuswelle für...
20.11.2012, 04:31
2
Antworten

fft Bandpassfilter in Python

Was ich versuche ist, meine Daten mit fft zu filtern. Ich habe ein verrauschtes Signal mit 500Hz als 1d-Array aufgenommen. Meine Hochfrequenz sollte mit 20Hz und meine Niederfrequenz mit 10Hz abschneiden. Was ich versucht habe, ist: %Vor% Wa...
01.10.2013, 17:15
4
Antworten

Wie viele FFTs kann ich pro Sekunde auf meinem Smartphone ausführen? (zum Ausführen der Spracherkennung)

Ich erkunde Spracherkennung und DSP und möchte daher einen einfachen Tonfrequenzanalysator auf meinem Smartphone implementieren (ich habe sowohl ein iPhone als auch ein Samsung Nexus S mit Android). Ich habe vorher grundlegende DSP in Matlab gem...
31.10.2011, 18:20
3
Antworten

Schnellste Methode zur Berechnung der Faltung

Weiß jemand die schnellste Methode zur Berechnung der Faltung? Leider ist die Matrix, mit der ich mich beschäftige, sehr groß (500x500x200) und wenn ich convn in MATLAB verwende, dauert es sehr lange (ich muss diese Berechnung in einer versch...
12.12.2013, 21:30
3
Antworten

iPhone FFT mit Accelerate Framework vDSP

Ich habe Schwierigkeiten, eine FFT mit vDSP zu implementieren. Ich verstehe die Theorie, suche aber bitte nach einem bestimmten Codebeispiel. Ich habe Daten aus einer WAV-Datei wie folgt: Frage 1. Wie setze ich die Audiodaten in die FFT?...
15.06.2011, 13:50