File:Circular convolution example.png
Circular_convolution_example.png (488 × 516像素,文件大小:12 KB,MIME类型:image/png)
摘要
描述Circular convolution example.png | 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 | |||||
授权 (二次使用本文件) |
|
|||||
其他版本 |
此文件衍生的作品: Circular convolution example.svg
|
|||||
PNG开发 InfoField | ![]() 本PNG 位图使用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')
|
说明
添加一行文字以描述该文件所表现的内容
Example of using circular convolution to produce linear convolution
此文件中描述的项目
描繪內容
著作权持有者释出至公有领域 简体中文(已转写)
16 4 2008
image/png
11,826 字节
516 像素
488 像素
文件历史
点击某个日期/时间查看对应时刻的文件。
日期/时间 | 缩略图 | 大小 | 用户 | 备注 | |
---|---|---|---|---|---|
当前 | 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 | ![]() | 386 × 504(9 KB) | Bob K | Crop image to the correct size. | |
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 }} |
文件用途
以下页面使用本文件:
元数据
此文件中包含有扩展的信息。这些信息可能是由数码相机或扫描仪在创建或数字化过程中所添加。
如果此文件的源文件已经被修改,一些信息在修改后的文件中将不能完全反映出来。
PNG文件备注 |
|
---|---|
水平分辨率 | 28.35 dpc |
垂直分辨率 | 28.35 dpc |
文件修改日期时间 | 2013年2月19日 (二) 15:22 |