跳至內容

File:Processing losses for 3 window functions.gif

頁面內容不支援其他語言。
這個檔案來自維基共享資源
維基百科,自由的百科全書

原始檔案 (574 × 609 像素,檔案大小:21 KB,MIME 類型:image/gif、​0.1秒)


摘要

描述
English: Comparison of three window functions in terms of their effects on equal-strength sinusoids with additive noise. The noise "floor" is smoothed by averaging many DFTs to reveal the substantial difference in levels, caused by the different window functions. In each case, the sinusoid on the left suffers no scalloping and the one on the right exhibits worst-case scalloping. The rectangular window produces the most scalloping but lowest noise-floor. The Hann window has a higher noise floor but much less potential scalloping, which results in the lowest "worst case processing loss" of these 3 functions.
日期
來源 自己的作品
作者 Bob K
授權許可
(重用此檔案)
我,本作品的著作權持有者,決定用以下授權條款發佈本作品:
Creative Commons CC-Zero 此檔案於創用 CC CC0 1.0 通用公有領域貢獻宣告下分發。
在此宣告之下分發本作品者,已依據各國著作權法,在全世界放棄其對本作品所擁有的著作權及所有相關相似的法律權利,從而將本作品貢獻至公有領域。您可以複製、修改、分發和演示該作品,用於任何商業用途,所有這些都不需要請求授權。

其他版本 Derivative works of this file:  Processing losses for 3 window functions.svg,
File:Processing losses for 3 window functions.svg是本檔案的向量版本。 如果品質不低,就應該優先使用該檔案,而非GIF檔案。

File:Processing losses for 3 window functions.gif → File:Processing losses for 3 window functions.svg

更多資訊請參閱Help:SVG/zh

其他語言
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  中文  中文(中国大陆)  中文(简体)  中文(繁體)  中文(马来西亚)  中文(新加坡)  中文(臺灣)  +/−
新SVG圖片

GIF開發
InfoField
 
本GIF graphic使用LibreOffice創作。
Octave/gnuplot source
InfoField
click to expand

This graphic was created with the help of the following Octave script:

pkg load signal
graphics_toolkit gnuplot
clear all; close all; clc

  hfig= figure("position",[100 0 574 609]);
 
  N = 256;                % sams_per_fft;
  window1 = rectwin(N)'/sum(rectwin(N));
  window2 = hann(N)'/sum(hann(N));
  window3 = blackmanharris(N)'/sum(blackmanharris(N));
%
  Fs = N;                 % sams_per_sec;
  HzPerBin = Fs/N;
  F1 = -20.0*HzPerBin;    % bin -20
  F2 = +20.5*HzPerBin;    % bin 20.5
%
  L = 100000;
  n = 1:L;
  x = exp(j*2*pi*F1/Fs*n) + exp(j*2*pi*F2/Fs*n);
  x = x + (randn(1,L) +j*randn(1,L))*1.4;
%
  sams_per_offset = 0.75*N;    % overlap = 25%
%
% number of samples available beyond just one FFT
  excess_sams = length(x) - N;
%
  j1 = floor( excess_sams / sams_per_offset );
  sams_per_offset = floor( excess_sams / j1 );
  num_ffts = 1 + j1;
%
% define the first block of data
  samples = 1:N;
%
  amplitude1 = zeros(1,N);
  amplitude2 = zeros(1,N);
  amplitude3 = zeros(1,N);
%
% Loop over all the available blocks
  for j1 = 1 : num_ffts
    amplitude1 = amplitude1 + abs(fft( x(samples) .* window1 ));
    amplitude2 = amplitude2 + abs(fft( x(samples) .* window2 ));
    amplitude3 = amplitude3 + abs(fft( x(samples) .* window3 ));
    samples = samples + sams_per_offset;
  end
%
  amplitude1  = 20*log10(fftshift(amplitude1/num_ffts));
  amplitude2  = 20*log10(fftshift(amplitude2/num_ffts));
  amplitude3  = 20*log10(fftshift(amplitude3/num_ffts));
% 
  abscissa = -40:40;
  set(gca,'FontSize',8)
  subplot(3,1,1);
  h = area(abscissa, amplitude1(abscissa +N/2+1), ...
  'FaceColor', [.871 .49 0], 'edgecolor', [.871 .49 0]);
  set(h,'BaseValue',-20)
  set(gca, 'XTick', [-20 0 20.5], 'XTickLabel',[' '; ' '; ' '], 'YGrid','on', 'color', 'white')
  title('Processing losses for sinusoids in additive noise','fontsize', 12);
  xlim([-40 40])
  ylim([-20 2])
  ylabel('decibels')
  text(-40, 3.5, 'Rectangular window')
%
  subplot(3,1,2);
  h = area(abscissa, amplitude2(abscissa +N/2+1), ...
  'FaceColor', [.871 .49 0], 'edgecolor', [.871 .49 0]);
  set(h,'BaseValue',-20)
  set(gca, 'XTick', [-20 0 20.5], 'XTickLabel',[' '; ' '; ' '], 'YGrid','on', 'color', 'white')
  xlim([-40 40])
  ylim([-20 2])
  ylabel('decibels')
  text(-40, 3.5, 'Hann window')
%
  subplot(3,1,3);
  h = area(abscissa, amplitude3(abscissa +N/2+1), ...
  'FaceColor', [.871 .49 0], 'edgecolor', [.871 .49 0]);
  set(h,'BaseValue',-20)
  set(gca, 'XTick', [-20 0 20.5], 'XTickLabel',[' '; ' '; ' '], 'YGrid','on', 'color', 'white')
  xlim([-40 40])
  ylim([-20 2])
  ylabel('decibels')
  text(-40, 3.5, 'Blackman-Harris')

說明

添加單行說明來描述出檔案所代表的內容

在此檔案描寫的項目

描繪內容

檔案歷史

點選日期/時間以檢視該時間的檔案版本。

日期/時間縮⁠圖尺寸使用者備⁠註
目前2013年3月3日 (日) 14:37於 2013年3月3日 (日) 14:37 版本的縮圖574 × 609​(21 KB)Bob KShorten three horizontal lines to make the scalloped peaks more apparent.
2013年2月25日 (一) 15:29於 2013年2月25日 (一) 15:29 版本的縮圖579 × 609​(21 KB)Bob KUser created page with UploadWizard

下列頁面有用到此檔案:

詮釋資料