קובץ:Discrete Hilbert transforms of a cosine function, using piecewise convolution.jpg
תוכן הדף אינו נתמך בשפות אחרות.
מראה
מתוך ויקיפדיה, האנציקלופדיה החופשית
גודל התצוגה המקדימה הזאת: 800 × 416 פיקסלים. רזולוציות אחרות: 320 × 166 פיקסלים | 640 × 333 פיקסלים | 1,108 × 576 פיקסלים.
לקובץ המקורי (1,108 × 576 פיקסלים, גודל הקובץ: 305 ק"ב, סוג MIME: image/jpeg)
זהו קובץ שמקורו במיזם ויקישיתוף. תיאורו בדף תיאור הקובץ המקורי (בעברית) מוצג למטה. |
תקציר
תיאורDiscrete Hilbert transforms of a cosine function, using piecewise convolution.jpg |
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 | |||
אישורים והיתרים (שימוש חוזר בקובץ זה) |
אני, בעל זכויות היוצרים על עבודה זו, מפרסם בזאת את העבודה תחת הרישיון הבא:
|
|||
גרסאות אחרות |
Derivative works of this file: Discrete Hilbert transforms of a cosine function, using piecewise convolution.svg,
|
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
פריטים שמוצגים בקובץ הזה
מוצג
ערך כלשהו ללא פריט ויקינתונים
21 במרץ 2015
היסטוריית הקובץ
ניתן ללחוץ על תאריך/שעה כדי לראות את הקובץ כפי שנראה באותו זמן.
תאריך/שעה | תמונה ממוזערת | ממדים | משתמש | הערה | |
---|---|---|---|---|---|
נוכחית | 18:34, 29 במרץ 2015 | 576 × 1,108 (305 ק"ב) | Bob K | less gaudy | |
02:03, 22 במרץ 2015 | 461 × 796 (283 ק"ב) | Bob K | User created page with UploadWizard |
שימוש בקובץ
אין בוויקיפדיה דפים המשתמשים בקובץ זה.
מטא־נתונים
קובץ זה מכיל מידע נוסף, שכנראה הגיע ממצלמה דיגיטלית או מסורק שבהם הקובץ נוצר או עבר דיגיטציה.
אם הקובץ שונה ממצבו הראשוני, כמה מהנתונים להלן עלולים שלא לשקף באופן מלא את הקובץ הנוכחי.
הערה בקובץ JPEG | Created with GIMP |
---|