לדלג לתוכן

קובץ:Discrete Hilbert transforms of a cosine function, using piecewise convolution.jpg

תוכן הדף אינו נתמך בשפות אחרות.
מתוך ויקיפדיה, האנציקלופדיה החופשית

לקובץ המקורי(1,108 × 576 פיקסלים, גודל הקובץ: 305 ק"ב, סוג MIME‏: image/jpeg)

ויקישיתוף זהו קובץ שמקורו במיזם ויקישיתוף. תיאורו בדף תיאור הקובץ המקורי (בעברית) מוצג למטה.

תקציר

תיאור
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.
תאריך יצירה
מקור נוצר על־ידי מעלה היצירה
יוצר Bob K
אישורים והיתרים
(שימוש חוזר בקובץ זה)
אני, בעל זכויות היוצרים על עבודה זו, מפרסם בזאת את העבודה תחת הרישיון הבא:
Creative Commons CC-Zero קובץ זה זמין לפי תנאי הקדשה עולמית לנחלת הכלל CC0 1.0 של Creative Commons.
האדם ששייך יצירה להיתר הזה הקדיש את היצירה לנחלת הכלל על־ידי ויתור על כל הזכויות שלו או שלה על היצירה בכל העולם לפי חוק זכויות יוצרים, לרבות כל הזכויות הקשורות או הסמוכות כקבוע בחוק. באפשרותך להעתיק, לשנות, להפיץ, או להציג את היצירה, אפילו למטרות מסחריות, וכל זה אפילו מבלי לבקש רשות.

גרסאות אחרות Derivative works of this file:  Discrete Hilbert transforms of a cosine function, using piecewise convolution.svg,
קיימת תמונה חדשה תמונה זו בגרסה וקטורית בפורמט "SVG". יש להחליף את התמונה הנוכחית בתמונה החדשה.

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


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

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

כיתובים

נא להוסיף משפט שמסביר מה הקובץ מייצג
Compare a simple FIR Hilbert transform filter to the IIR version provided by Matlab/Octave function hilbert().

פריטים שמוצגים בקובץ הזה

מוצג

היסטוריית הקובץ

ניתן ללחוץ על תאריך/שעה כדי לראות את הקובץ כפי שנראה באותו זמן.

תאריך/שעהתמונה ממוזערתממדיםמשתמשהערה
נוכחית18:34, 29 במרץ 2015תמונה ממוזערת לגרסה מ־18:34, 29 במרץ 2015‪576 × 1,108‬ (305 ק"ב)Bob Kless gaudy
02:03, 22 במרץ 2015תמונה ממוזערת לגרסה מ־02:03, 22 במרץ 2015‪461 × 796‬ (283 ק"ב)Bob KUser created page with UploadWizard

אין בוויקיפדיה דפים המשתמשים בקובץ זה.

מטא־נתונים