File:Processing losses for 3 window functions.gif
From formulasearchengine
Jump to navigation
Jump to search
Size of this preview: 565 × 599 pixels. Other resolutions: 226 × 240 pixels | 574 × 609 pixels.
Original file (574 × 609 pixels, file size: 21 KB, MIME type: image/gif, 0.1 s)
This file is from Wikimedia Commons and may be used by other projects. The description on its file description page there is shown below.
Summary
DescriptionProcessing losses for 3 window functions.gif |
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. |
|||||
Date | ||||||
Source | Own work | |||||
Author | Bob K | |||||
Permission (Reusing this file) |
I, the copyright holder of this work, hereby publish it under the following license:
|
|||||
Other versions |
Derivative works of this file: Processing losses for 3 window functions.svg,
|
|||||
GIF development InfoField | This GIF graphic was created with 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')
|
Items portrayed in this file
depicts
25 February 2013
File history
Click on a date/time to view the file as it appeared at that time.
Date/Time | Thumbnail | Dimensions | User | Comment | |
---|---|---|---|---|---|
current | 16:37, 3 March 2013 | 574 × 609 (21 KB) | wikimediacommons>Bob K | Shorten three horizontal lines to make the scalloped peaks more apparent. |
File usage
There are no pages that use this file.