我已经读了抗锯齿了一下,似乎有道理,但有一件事我不是太肯定的。究竟如何你觉得一个信号的最大频率(图形上下文)。

我知道有一个以上的情况下,所以我想有一个以上的答案。但首先让我说出一个简单的算法,我认为将是最大频率,以便有人能告诉我,如果我构思了错误的方式。

假设它是一个一维的,有限的,并且灰度图像(像素)。我在假设你可以简单地扫描整个像素线(在空间域中)寻找一个用于最小振荡和振荡最小的逆将是最大频率校正?

防爆值{23,26,28,22,48,49,51,49}

频率:用于修饰设置{}

(1/2)= 0.5:{28,22}

(1/4)= 0.25:{22,48,49,51}

因此,将0.5是最高频率?

和这将是计算该一个类似像素线与上述一个?

的理想方式

和一个更理论的注意,如果你的采样输入是无限的(更像是真正的世界)?将一个有效的方法是有点像:

Predetermine a decent interval for point sampling
Determine max frequency from point sampling
while(2*maxFrequency >  pointSamplingInterval)
{
pointSamplingInterval*=2
Redetermine maxFrequency from point sampling (with new interval)
}

我知道这些算法都充满着效率低下,那么,什么是一些最好的方法呢? (不寻找的东西疯狂的优化的,只是从根本上更好概念)

有帮助吗?

解决方案

接近正确的方法是使用傅里叶变换(在实践中,FFT,或快速傅立叶变换

在理论的工作原理如下:如果你有一个组具有彩色/灰度像素,那么我们可以说该图像是通过在“空间域”的像素表示;即,每个单独的数值指定在一个特定的空间位置的图像。

但是,我们真正想要的是在“频域”中的图像的表示。代替每个单独的数值,指定每一个像素的,每个数字代表特定频率的图像中的振幅作为一个整体。

从“空间域”转换为“频域”的工具是傅里叶变换。该FT的输出将是数字指定不同的频率的相对贡献的序列。

为了找到最大频率,在执行FT,看看您得到高频的振幅 - 那么它只是一个从最高频率搜索,直到你打你的“最低显著幅度的事“阈值。

您可以编写自己的FFT,但在实践中更容易使用预打包的库如的 FFTW

其他提示

您不扫描频率最高的一个信号,然后选择你的采样频率:您选择的采样频率足够高,以捕捉你想捕捉的东西,然后你的过滤器的了信号到除去高频率。你扔掉一切比采样速率的一半的更高前的你品尝它。

  

我是正确的假设你能   简单地扫描整个像素线(在   空间域)找了   最小振荡和   该最小的振荡的逆   将最大频率?

如果你有一个线的像素的,则采样已经完成。太晚应用抗混叠滤波器。这可能是存在的最高频率是采样频率的一半(“1/2像素”,我想)。

  

和上更多的理论笔记,有什么   如果你的采样输入是无限的   (更像真实世界)?

是的,这就是当你使用的过滤器。首先,你有一个连续函数,就像现实生活中的形象(无限的采样率)。然后,你将其过滤以除去上面的fs / 2的一切,则位于fs采样它(数字化图像划分成像素)。相机实际上并没有任何过滤,这就是为什么你莫尔图当你拍摄砖等

“替代文字”

如果你抗锯齿计算机图形,你不得不认为理想的连续数学函数的第一次,想通过你会如何将其过滤和数字化过程产生屏幕上的输出。

例如,如果要生成的方波的计算机,可以不只是天真的最大值和最小值之间交替。这将是一样,不先过滤采样现实生活中的信号。高次谐波绕回到基带,并导致大量的在光谱杂散尖峰。需要生成点,就好像它们是从一个连续过滤数学函数采样:

“替代文字”

我觉得这篇文章来自O'Reilly的网站也可能对你有用...的 http://www.onlamp.com/pub/a/python/2001/01/31/numerically.html ......在那里,他们要引用的频率声音文件的分析,但你把它给你的想法。

我想你需要的是傅立叶分析( http://en.wikipedia.org的应用/维基/ Fourier_analysis )。如果你正确地应用到您的一组数字,你会得到一组是一系列组件的频率我研究这一点,但从来没有使用过这样把它用少许盐,但我相信,然后你可以选择关闭最高的一个。

我不能指向你的一段代码,做这一点,但我敢肯定,这将是在某个地方。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top