File:Circular convolution example.png

出自Wikimedia Commons
跳至導覽 跳至搜尋

Circular_convolution_example.png(488 × 516 像素,檔案大小:12 KB,MIME 類型:image/png

說明

說明

添加單行說明來描述出檔案所代表的內容
Example of using circular convolution to produce linear convolution

摘要

[編輯]
描述 Circular convolution can be expedited by the FFT algorithm, so it is often used with an FIR filter to efficiently compute linear convolutions. These graphs illustrate how that is possible.
日期
來源 自己的作品
作者 Bob K
授權許可
(重用此檔案)
Public domain 我,此作品的版權所有人,釋出此作品至公共領域。此授權條款在全世界均適用。
這可能在某些國家不合法,如果是的話:
我授予任何人有權利使用此作品於任何用途,除受法律約束外,不受任何限制。
其他版本

Derivative works of this file:  Circular convolution example.svg

File:Circular convolution example.svg是本檔案的向量版本。 如果品質不低,就應該優先使用該檔案,而非PNG檔案。

File:Circular convolution example.png → File:Circular convolution example.svg

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

其他語言
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  українська  ქართული  հայերեն  বাংলা  தமிழ்  മലയാളം  ไทย  한국어  日本語  简体中文  繁體中文  עברית  العربية  فارسی  +/−
新SVG圖片

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

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

graphics_toolkit gnuplot

% "color" is temporary, because of gnuplot bug (see below)
hfig = figure("color", .85*[1 1 1], "position", [100 100 488 512]);
set(gca, "color", .85*[1 1 1])

xmax = 3000;

% subplot() undoes the "color" attempts above.  (gnuplot bug)
subplot(6,1,1)
L = 100;
f = ones(1,L)/L;
plot(-100:200-1, [zeros(1,100) f*L zeros(1,100)], "linewidth", 2, "color", "magenta")
set(gca, "color", "white")
title("Circular convolution example", "FontSize",12)
text(100, 1.6, "h[n]")
text(xmax/2, 0.4, '\leftarrow n \rightarrow')
ylim([0 2])
xlim([-100 xmax])
set(gca,"XTick",[]); set(gca,"YTick",[])

subplot(6,1,2)
a = [zeros(1,20) ones(1,L) zeros(1,300) 0.5*ones(1,100) zeros(1,1000-L-20-400)];
b = [zeros(1,1000-L-20) ones(1,L) zeros(1,20)];
a1 = [zeros(1,1000) a zeros(1,1000)];
b1 = [zeros(1,1000) b zeros(1,1000)];
plot(1:length(a1), a1, "color", "blue", 1:length(a1), b1, "color", "red")
set(gca, "color", "white")
text(200, 1.6, "X[n]")
ylim([0 2])
xlim([0 xmax])
set(gca,"XTick",[]); set(gca,"YTick",[])

subplot(6,1,3)
a1 = conv(a1,f);
b1 = conv(b1,f);
plot(1:length(a1), a1+b1, "color", "green", "linewidth", 2)
set(gca, "color", "white")
text(200, 1.6, "X[n] * h[n]")
ylim([0 2*max(a1)])
xlim([0 xmax])
set(gca,"XTick",[]); set(gca,"YTick",[])

subplot(6,1,4)
a = [a a a];
b = [b b b];
L = 1:length(a);
plot(L, a, "color","blue", L, b, "color","red")
set(gca, "color", "white")
text(200, 2.0, 'X_N[n]')
ylim([0 2.5])
xlim([0 xmax])
set(gca,"XTick", [1000 2000])
set(gca,"XTickLabel",["N"; "2N"])
set(gca,"YTick",[])

subplot(6,1,5)
a1 = conv(a,f);
b1 = conv(b,f);
b1(1:90) = b1(3000+[1:90]);
L = 1:length(a1);
plot(L,a1,"color","blue", L,b1, "color","red")
set(gca, "color", "white")
text(200, 1.6, 'components of X_N[n] * h[n]')
ylim([0 2*max(a1)])
xlim([0 xmax])
set(gca,"XTick",[]); set(gca,"YTick",[])

subplot(6,1,6)
c = a1+b1;
L = length(c);
k=1100;
plot(1:k, c(1:k), "color","red", k+(1:900), c(k+(1:900)), "color", "green", "linewidth", 2, (k+900+1):xmax, c((k+900+1):xmax), "color","red")
set(gca, "color", "white")
text(200, 1.6, 'X_N[n] * h[n]')
ylim([0 2*max(a1+b1)])
xlim([0 xmax])
set(gca,"XTick",[]); set(gca,"YTick",[])

text(1163, -1, "X[n] * h[n]", "fontsize", 16)
annotation("line", [.414 .414], [.136 .045])
annotation("line", [.647 .647], [.136 .045])

% I prefer the version created by the export function on the GNUPlot figure,
% because the dimensions are better.
print(hfig,"-dpng","-color", 'C:\Users\BobK\Circular convolution example.png')

檔案歷史

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

日期/時間縮⁠圖尺寸使用者備⁠註
目前2013年2月19日 (二) 15:29於 2013年2月19日 (二) 15:29 版本的縮圖488 × 516(12 KB)Bob K留言 | 貢獻Add title. Add tick marks to 4th subplot. Use Octave & gnuplot.
2008年4月16日 (三) 17:12於 2008年4月16日 (三) 17:12 版本的縮圖386 × 504(9 KB)Bob K留言 | 貢獻Crop image to the correct size.
2008年4月16日 (三) 16:28於 2008年4月16日 (三) 16:28 版本的縮圖960 × 720(5 KB)Bob K留言 | 貢獻{{Information |Description= Illustration of circular convolution |Source=self-made |Date=16-Apr-2008 |Author= Bob K }}

沒有使用此檔案的頁面。

全域檔案使用狀況

以下其他 wiki 使用了這個檔案:

詮釋資料