Zum Inhalt springen

Datei:Discrete Hilbert transforms of a cosine function, using piecewise convolution.jpg

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
Zur Beschreibungsseite auf Commons
aus Wikipedia, der freien Enzyklopädie

Originaldatei (1.108 × 576 Pixel, Dateigröße: 305 KB, MIME-Typ: image/jpeg)

Diese Datei und die Informationen unter dem roten Trennstrich werden aus dem zentralen Medienarchiv Wikimedia Commons eingebunden.

Zur Beschreibungsseite auf Commons


Beschreibung

Beschreibung
English: The blue graph shows a sine function that was created by computing the Discrete Hilbert transform of a cosine function. The cosine function was divided into 4 overlapping segments, which were individually convolved with an FIR Hilbert transform filter, and the 4 output segments were seamlessly pieced together. If the DFT of the FIR filter is replaced by the trivial samples of the DTFT of an IIR Hilbert transform filter, the cosine function segments are effectively convolved with a periodic summation of the IIR filter. That results in some frequency-dependent amplitude distortion and discontinuities at the segment boundaries. Examples of these effects are shown in the red graph.
Datum
Quelle Eigenes Werk
Urheber Bob K
Genehmigung
(Weiternutzung dieser Datei)
Ich, der Urheber dieses Werkes, veröffentliche es unter der folgenden Lizenz:
Creative Commons CC-Zero Diese Datei wird unter der Creative-Commons-Lizenz CC0 1.0 Verzicht auf das Copyright zur Verfügung gestellt.
Die Person, die das Werk mit diesem Dokument verbunden hat, übergibt dieses weltweit der Gemeinfreiheit, indem sie alle Urheberrechte und damit verbundenen weiteren Rechte – im Rahmen der jeweils geltenden gesetzlichen Bestimmungen – aufgibt. Das Werk kann – selbst für kommerzielle Zwecke – kopiert, modifiziert und weiterverteilt werden, ohne hierfür um Erlaubnis bitten zu müssen.

Andere Versionen Abgeleitete Werke dieser Datei:  Discrete Hilbert transforms of a cosine function, using piecewise convolution.svg,
File:Discrete Hilbert transforms of a cosine function, using piecewise convolution.svg ist eine vektorisierte Version dieses Bildes. Diese sollte an Stelle des Rasterbildes verwendet werden, sofern sie nicht schlechter ist.

File:Discrete Hilbert transforms of a cosine function, using piecewise convolution.jpg → File:Discrete Hilbert transforms of a cosine function, using piecewise convolution.svg

Für weitere Informationen siehe Help:SVG.

In anderen Sprachen
Alemannisch  العربية  беларуская (тарашкевіца)  български  বাংলা  català  нохчийн  čeština  dansk  Deutsch  Ελληνικά  English  British English  Esperanto  español  eesti  euskara  فارسی  suomi  français  Frysk  galego  Alemannisch  עברית  हिन्दी  hrvatski  magyar  հայերեն  Bahasa Indonesia  Ido  italiano  日本語  ქართული  한국어  lietuvių  македонски  മലയാളം  Bahasa Melayu  norsk bokmål  Plattdüütsch  Nederlands  norsk nynorsk  norsk  occitan  polski  prūsiskan  português  português do Brasil  română  русский  sicilianu  Scots  slovenčina  slovenščina  српски / srpski  svenska  தமிழ்  ไทย  Türkçe  татарча / tatarça  українська  vèneto  Tiếng Việt  中文  中文(中国大陆)  中文(简体)  中文(繁體)  中文(马来西亚)  中文(新加坡)  中文(臺灣)  +/−
Neue Vektorgrafik

Scilab script

// Create a 64th-order Hilbert transform filter
M = 65;         
h = hilb(M);    // applies a rectangular window to the IIR function

// Derive overlap-save parameters
overlap         = M-1;
N               = 4*overlap;  // an efficient block-size
step_size       = N-overlap;
M2 = overlap/2; // length of the edge effects for a zero-phase (non-causal) filter
h = [h(1+M2:M) zeros(1,N-M) h(1:M2)];           // convert filter to zero-phase
H1 = fft(h, -1);                                // transfer function
H2 = %i*[0 -ones(1,N/2-1) ones(1,N/2)];         // or just sample the DTFT

// Create an input function
num_steps = 4;                                  // signal length, in steps
n = (0 : num_steps*step_size+overlap)-M2;       // sample indices (minus filter delay)
cycles_per_step = 5/3;                          // just a non-integer
cycles_per_sample = cycles_per_step / step_size;
x = cos(2*%pi*cycles_per_sample*n);             // transform a pure sinusoid

// Overlap-Save convolution
position = 0;
while position+N <= length(x)
        yt = real(fft(fft(x(position+(1:N)), -1) .* H1, 1));
        y1(position+(1:step_size)) = yt(1+M2 : N-M2);
// The next 2 lines are equivalent, so the 2nd one is commented out.
        yt = real(fft(fft(x(position+(1:N)), -1) .* H2, 1));
//      yt = imag(hilbert(x(position+(1:N))));
        y2(position+(1:step_size)) = yt(1+M2 : N-M2);
        position = position + step_size;
end

// Compare the results
y1 = y1 / max(abs(y1));
y2 = y2 / max(abs(y2));
plot(y1, 'b');
plot(y2, 'r.');

title("Discrete Hilbert transforms of a cosine function, using Overlap-save algorithm", "fontsize", 4);
ylabel("amplitude", "fontsize", 3);

a = gca();
a.x_location = "origin";
a.children.children.mark_size=4;	// size of red dots

Kurzbeschreibungen

Ergänze eine einzeilige Erklärung, was diese Datei darstellt.
Compare a simple FIR Hilbert transform filter to the IIR version provided by Matlab/Octave function hilbert().

In dieser Datei abgebildete Objekte

Motiv

Dateiversionen

Klicke auf einen Zeitpunkt, um diese Version zu laden.

Version vomVorschaubildMaßeBenutzerKommentar
aktuell17:34, 29. Mär. 2015Vorschaubild der Version vom 17:34, 29. Mär. 20151.108 × 576 (305 KB)Bob Kless gaudy
01:03, 22. Mär. 2015Vorschaubild der Version vom 01:03, 22. Mär. 2015796 × 461 (283 KB)Bob KUser created page with UploadWizard

Keine Seiten verwenden diese Datei.

Metadaten