帮助编写一个“圆”2 d锥形余弦函数

12个视图(30天)
罗洛
罗洛 2016年5月27日
回答: 帕维尔Inchin2018年10月24日
我想产生一个2 d与锥形余弦函数,它看起来像一个圆形平顶建筑物边缘。是这样的:
想象锥形余弦函数:
tukeywin ()
我想这个概要文件通过2 d函数的中心是这样的,但是如果从计划视图可视化功能,我想它是圆形而不是矩形像2 d锥形余弦函数是由下面的代码:
直径= 25;%的直径图基窗口
α= 0.5;%下降功能。1 =汉宁窗
wc =窗口(@tukeywin、直径、α);
或者说是=窗口(@tukeywin、直径、α);
[maskr, maskc] = meshgrid (wr, wc);
tukey2D = maskr。* maskc;
有人能帮我吗?我想该解决方案将利用函数cart2pol ()
我想出了这是一个开始,但我不认为这就是我。下面的代码 产生一个圆锥形函数,但其边缘不遵守余弦形状我后。我想代替旋转的一个面具和相乘,最好是在极地坐标生成函数。用面具,我将高阶功能下降。我想总是填满整个窗口的函数。还有一个轻微的问题种植旋转函数与原始数组大小相同,我用“装天花板”和“地板”意义的中心旋转不是在中间当数组大小很小,甚至边长。
%圆形图基函数
L = 100;%图基窗口的长度
α= 0.5;%下降功能。1 =汉宁窗
β= 45;%旋转增量的面具
wc =窗口(@tukeywin, L,α);
或者说是=窗口(@tukeywin, L,α);
[maskr, maskc] = meshgrid (wr, wc);
i = 1:β:180
temprot = imrotate (maskc,我);
如果尺寸大小(temprot) > (maskr)
maskr = maskr。* temprot(装天花板(结束/ 2)地板(L / 2):地板(结束/ 2)+装天花板(L / 2),装天花板(结束/ 2)地板(L / 2):地板(结束/ 2)+装天花板(L / 2));
其他的
maskr = maskr。* temprot;
结束
结束
%的图形
maskr (maskr < 1 e-9) = 0;
图;
冲浪(maskr“线型”,“没有”)

答案(2)

弗雷德里克·珀塞尔
弗雷德里克·珀塞尔 2018年2月28日
遇到同样的问题在试图创建相同类型的过滤器。创建的窗口,他们的目标都是和描述的链接所示
这段python演示如何创建所需的窗口使用1 d窗口函数消耗与循环支持2 d(任何一维窗函数可以使用)。万博1manbetx我写这个证明这个概念,而不是使用。
%如果这是真的
进口numpy为np
scipy导入信号
deftukey_twoD(宽度、α):
”““2 d图基低通与圆形窗口的支持万博1manbetx
”“”
基础= np。0((宽度、宽度))
图基=信号。图基(宽度、α)
图基=图基[int len(图基)/ (2)1:]#第二个一半的图基窗口
x = np。linspace (width / 2,宽/ 2,宽度)
y = np。linspace (width / 2,宽/ 2,宽度)
x_index在范围(0,宽度):
y_index在范围(0,宽度):
#只有情节图基圆的半径值宽度
如果int (np。√x [x_index] * * 2 + y [y_index] * * 2)) < =宽/ 2:
基地(x_index y_index] =图基[int (np.sqrt (x [x_index] * * 2
+ y [y_index] * * 2)))
#基于在k * * 2找到价值和在矩阵图基窗口
返回基地
%结束
这将创建一个低通的窗口宽度宽度的中心的一个数组。如与α= 100 = 0和形状,它将返回一个圆直径为100
抱歉给解决方案在Python和Matlab但应该很简单翻译了。
希望这可以帮助任何人碰到这个问题在未来

帕维尔Inchin
帕维尔Inchin 2018年10月24日
以防需要(基于以上代码):
域= 600;
基础= 0(域、域);
tukey1 = tukeywin(域,0.65);
tukey1 = tukey1(域/ 2 + 1:域);
x = linspace(域/ 2、域/ 2,域);
y = linspace(域/ 2,域/ 2,域);
我= 1:1:域
j = 1:1:域
如果(圆(√x(我)^ 2 + y ^ 2) (j)) < =域/ 2)
x(我);
y(我);
轮(√x(我)^ 2 + y ^ 2) (j));
基础(i, j) = tukey1(圆(sqrt (x (i) ^ 2 + y ^ 2) (j)));
结束
结束
结束

s manbetx 845

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!