Ficheiro:Overlap-save algorithm.png
![Ficheiro:Overlap-save algorithm.png](http://upload.wikimedia.org/wikipedia/commons/thumb/a/ad/Overlap-save_algorithm.png/800px-Overlap-save_algorithm.png)
Imagem numa resolução maior (912 × 548 píxeis, tamanho: 110 kB, tipo MIME: image/png)
![]() |
Esta imagem provém do Wikimedia Commons, um acervo de conteúdo livre da Wikimedia Foundation que pode ser utilizado por outros projetos.
|
Descrição do ficheiro
DescriçãoOverlap-save algorithm.png |
English: A sequence of 4 plots depicts one cycle of the Overlap-save convolution algorithm. The first plot is a long sequence of data to be processed with a lowpass FIR filter. The 2nd plot is one segment of the data to be processed in piecewise fashion. The 3rd plot is the filtered segment, with the useable portion colored red. The 4th plot is the output stream with the filtered segment appended to it. |
|||
Data | ||||
Origem | Obra do próprio | |||
Autor | Bob K | |||
Permissão (Reutilizar este ficheiro) |
Eu, titular dos direitos de autor desta obra, publico-a com a seguinte licença:
|
|||
Outras versões |
|
|||
PNG desenvolvimento InfoField | ![]() Este(a) PNG gráfico foi criado com o LibreOffice |
|||
Octave/gnuplot source InfoField | click to expand
This graphic was created with the help of the following Octave script: graphics_toolkit gnuplot
M = 16; % filter length
h = ones(1,M)/M; % filter impulse response
L = 100; % output segment length
La = 500; % input data length
a = 1 + randn(1,La)/3; % data to be filtered
seg = 2; % segment to be computed
N = L + M-1; % DFT size
Xa = seg*L + (1:N); % indices of segment to be filtered
frame_background = .95*[1 1 1];
%=======================================================
hfig = figure("position",[100 100 912 650], "color",frame_background);
set(gca,"color",frame_background)
set(gcf,"color",frame_background)
x1 = .02; % left margin
x2 = .02; % right margin
y1 = .09; % bottom margin for annotation
y2 = .08; % top margin for title
dy = .05; % vertical space between rows
width = 1-x1-x2;
height= (1-y1-y2-3*dy)/4; % space allocated for each of 4 rows
x_origin = x1;
y_origin = 1; % start at top of graph area
%=======================================================
y_origin = y_origin -y2 -height; % position of top row
% subplot() undoes all the "color" attempts above. (gnuplot bug)
subplot("position",[x_origin y_origin width height])
set(gca,"fontsize",10)
plot(1:La, a, "color", "blue", Xa, a(Xa), "color", "red", "linewidth", 2)
set(gca, "color", "white")
title("One segment of an Overlap-save algorithm", "fontsize",14);
text(1, 2.2, "X[n], with segment k=2 in red")
xlim([0 La])
ylim([0 2])
set(gca, "ytick",[0:2])
set(gca, "xtick",[100:100:La])
grid("on")
%=======================================================
y_origin = y_origin -dy -height;
subplot("position",[x_origin y_origin width height])
set(gca,"fontsize",10)
plot(1:L+M-1, a(Xa), "color", "red")
set(gca, "color", "white")
text(250, 1.6, 'X_k[n]', "fontsize",12)
xlim([0 La])
ylim([0 2])
set(gca, "ytick",[0:2])
set(gca, "xtick",[100:100:La])
grid("on")
%=======================================================
y_origin = y_origin -dy -height;
subplot("position",[x_origin y_origin width height])
% Here we use the conv() function, to demonstrate just the "overlap & discard" part of the process.
% The efficiency of the algorithm is realized by replacing conv() with circular convolution.
% Note that length(b) is different for the two implementations. Circular convolution "folds"
% the trailing transition region ("fall time") back onto the "rise time" transition region.
% Circular convolution
% H = fft(h,N);
% b = real(ifft(H .* fft(a(Xa)))); % length(b) = L+M-1 = N
%Linear convolution
b = conv(h,a(Xa)); % length(b) = N+M-1
Xb = M-1 + (1:L);
set(gca,"fontsize",10)
plot(1:length(b), b, "color", "blue", Xb, b(Xb), "color", "red", "linewidth", 2);
set(gca, "color", "white")
text(250, 1.6, 'Y_k[n], output of FIR lowpass filter', "fontsize",12);
xlim([0 La])
ylim([0 2])
set(gca, "ytick",[0:2])
set(gca, "xtick",[100:100:La])
grid("on")
%=======================================================
y_origin = y_origin -dy -height;
subplot("position",[x_origin y_origin width height])
c = conv(h,a);
Xc1 = 1 : M-1 + (seg+1)*L;
Xc2 = M-1 + seg*L + (1:L);
set(gca,"fontsize",10)
plot(Xc1, c(Xc1), "color", "blue", Xc2, c(Xc2), "color", "red", "linewidth", 2)
set(gca, "color", "white")
text(250, 1.6, "Y[n], after segment k")
xlim([0 La])
ylim([0 2])
set(gca, "ytick",[0:2])
set(gca, "xtick",[100:100:La])
grid("on")
xlabel('\leftarrow n \rightarrow', "fontsize",12)
|
Legendas
Elementos retratados neste ficheiro
retrata
Um valor sem um elemento no repositório Wikidata
16 fevereiro 2013
Histórico do ficheiro
Clique uma data e hora para ver o ficheiro tal como ele se encontrava nessa altura.
Data e hora | Miniatura | Dimensões | Utilizador | Comentário | |
---|---|---|---|---|---|
atual | 00h00min de 15 de abril de 2015 | ![]() | 912 × 548 (110 kB) | Bob K | Annotate the portion of the current segment that is "saved" for the next segment. |
16h11min de 19 de fevereiro de 2013 | ![]() | 1 133 × 681 (63 kB) | Bob K | Change figure background to a light gray. | |
01h00min de 17 de fevereiro de 2013 | ![]() | 1 122 × 684 (26 kB) | Bob K | User created page with UploadWizard |
Utilização local do ficheiro
A seguinte página usa este ficheiro:
Metadados
Este ficheiro contém informação adicional, provavelmente adicionada a partir da câmara digital ou scanner utilizada para criar ou digitalizar a imagem. Caso o ficheiro tenha sido modificado a partir do seu estado original, alguns detalhes poderão não refletir completamente as mudanças efetuadas.
Resolução horizontal | 28,35 pt/cm |
---|---|
Resolução vertical | 28,35 pt/cm |
Data e hora de modificação do ficheiro | 23h53min de 14 de abril de 2015 |
Comentário de ficheiro PNG |
|