首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有趣的交互式傅里叶变换网站

最明显的例子就是声音 —— 当我们听到声音时,我们听不到那条波浪线,但我们听到构成声音的正弦波的不同频率。 能够在计算机上区分这两个音调,我们就可以了解一个人实际可以听到的内容。...但大多只是“看起来”很酷。 周转圆 在开始时,我介绍了傅里叶变换可以将事物分成正弦波。但更酷的是,它产生的正弦波不仅仅是一般的正弦波,它们都是“三维”的正弦波。...但是我们可以使用3D正弦波来制作看起来很有趣的东西,就像这个: 3D正弦波绘制Yeah 这里发生了什么事情呢? 我们可以将一个手绘图理解为一个3D的形状,因为点的位置在随时间移动。...事实上,我们一直都在使用它,因为这就是JPEG的工作原理!我们将相同的原理应用于图像 —— 将某些东西分成一堆正弦波,然后只存储重要的东西。 要处理图像,我们需要一种不同类型的正弦波。...我们现在使用一些黑白条纹的小图像,这些更可以表达为“线”,而不是波。为了表示“波”的大小,每个图像将具有或多或少的明暗对比。 我们也可以以类似的方式表示出颜色,但我们先从灰度图像开始玩。

3.1K40

这次终于彻底理解了傅里叶变换

我们通常将这种波的快慢的性质,称为波的频率。 最明显的例子就是声音 —— 当我们听到声音时,我们听不到那条波浪线,但我们听到构成声音的正弦波的不同频率。...但大多只是“看起来”很酷。 周转圆 在开始时,我介绍了傅里叶变换可以将事物分成正弦波。但更酷的是,它产生的正弦波不仅仅是一般的正弦波,它们都是“三维”的正弦波。...我们将相同的原理应用于图像 —— 将某些东西分成一堆正弦波,然后只存储重要的东西。 要处理图像,我们需要一种不同类型的正弦波。...我们需要这样的一种“正弦波”:无论我们有什么样的图像,我们都可以添加一堆这些正弦波来回到原始图像。 要做到这一点,我们使用的每个正弦波也将是一个个小图像。...我们现在使用一些黑白条纹的小图像,这些更可以表达为“线”,而不是波。为了表示“波”的大小,每个图像将具有或多或少的明暗对比。 我们也可以以类似的方式表示出颜色,但我们先从灰度图像开始玩。

52920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    形象理解傅里叶变换!

    我们通常将这种波的快慢的性质,称为波的频率。 最明显的例子就是声音 —— 当我们听到声音时,我们听不到那条波浪线,但我们听到构成声音的正弦波的不同频率。...但大多只是“看起来”很酷。 二、周转圆 在开始时,我介绍了傅里叶变换可以将事物分成正弦波。但更酷的是,它产生的正弦波不仅仅是一般的正弦波,它们都是“三维”的正弦波。...我们将相同的原理应用于图像 —— 将某些东西分成一堆正弦波,然后只存储重要的东西。 要处理图像,我们需要一种不同类型的正弦波。...我们需要这样的一种“正弦波”:无论我们有什么样的图像,我们都可以添加一堆这些正弦波来回到原始图像。 要做到这一点,我们使用的每个正弦波也将是一个个小图像。...我们现在使用一些黑白条纹的小图像,这些更可以表达为“线”,而不是波。为了表示“波”的大小,每个图像将具有或多或少的明暗对比。 我们也可以以类似的方式表示出颜色,但我们先从灰度图像开始玩。

    82920

    这次终于彻底理解了傅里叶变换

    我们通常将这种波的快慢的性质,称为波的频率。 最明显的例子就是声音 —— 当我们听到声音时,我们听不到那条波浪线,但我们听到构成声音的正弦波的不同频率。...但大多只是“看起来”很酷。 周转圆 在开始时,我介绍了傅里叶变换可以将事物分成正弦波。但更酷的是,它产生的正弦波不仅仅是一般的正弦波,它们都是“三维”的正弦波。...我们将相同的原理应用于图像 —— 将某些东西分成一堆正弦波,然后只存储重要的东西。 要处理图像,我们需要一种不同类型的正弦波。...我们需要这样的一种“正弦波”:无论我们有什么样的图像,我们都可以添加一堆这些正弦波来回到原始图像。 要做到这一点,我们使用的每个正弦波也将是一个个小图像。...我们现在使用一些黑白条纹的小图像,这些更可以表达为“线”,而不是波。为了表示“波”的大小,每个图像将具有或多或少的明暗对比。 我们也可以以类似的方式表示出颜色,但我们先从灰度图像开始玩。

    1.1K50

    Unity基础教程系列(新)(二)——构建视图(Visualizing Math)

    为防止这种情况,我们将减小其缩放。默认情况下,每个立方体在每个维度上的大小均为1,因此要使其适合,我们必须将其比例缩小为2/10=1/5。...现在,每次迭代必须执行的每个步长的大小除以分辨率,再除以2。将此值存储在变量中,并用它来计算立方体的比例及其X坐标。 ? ?...调整每个立方体颜色的直接方法是设置其材质的颜色属性。我们可以在循环中做。由于每个立方体将获得不同的颜色,这意味着我们最终将为每个对象获得一个唯一的材质实例。...(X的正弦波 -1~1) 什么是Mathf? 它是UnityEngine命名空间中的结构,其中包含数学函数和常量的集合。由于它可与浮点数一起使用,因此其类型名被赋予了f后缀。...(正弦波动画) 因为对于每次循环迭代,Time.time的值都相同,所以我们可以将其放在循环外部。 ? 4.4 钳位颜色 正弦波的振幅为1,这意味着我们的点所达到的最低和最高位置分别是-1和1。

    2.6K50

    Unity 水、流体、波纹基础系列(一)——纹理变形(Texture Distortion )

    你也可以使用正弦波或应用smoothstep函数。但是这些功能会使着色器更加复杂,而对最终结果的影响不大。三角波就足够了。...其实不必将U和V跳跃相同的数量。除了改变方向偏差的性质外,每个维度使用不同的跳变值还会影响环路持续时间。例如,假设U跳为0.25,V跳为0.1。U每四个周期循环一次,而V每十个循环一次。...不建议使用方向行就不可能做出正确的波浪,但是我们不需要真实。当纹理变形和融合时,它只要看起来像水就好。例如,这是一个简单的噪声纹理,它结合了一个八度的低频Perlin和Voronoi噪声。...这是通过将albedo纹理解释为高度图而创建的,但高度按0.1缩放,因此效果不太强。 ? (法线贴图) 为法线贴图添加一个着色器属性。 ?...我们不能再使用UnpackNormal,因此创建一个自定义的UnpackDerivativeHeight函数,该函数将正确的数据通道放入浮点向量并解码导数。 ? ?

    4.3K21

    Unity基础系列(三)——数学表面(数字雕刻)

    (将几个波浪组合在一起,形成复杂的形状) 1 不同函数之间的切换 在完成前面的教程之后,我们有一个基于线条的视图,并在游戏模式下显示一个正弦波动画。当然还可以通过修改代码来显示其他数学函数。...最后得到的正弦波的形状保持不变,但只有先前的一半大小。 ? 这个给定的函数我们也可以用公式来表达 。 ? 当正弦函数的正极值和负极值均为1和?1时,这个新函数的最大值和最小值将分别为1.5和?1.5。...使用这两个维度的另一种更有意思的方法是组合两个独立的正弦波,每个维度一个。简单地将它们加在一起,然后将结果减半,以便输出保持在?1-1范围内。给出函数。 ?...(每个维度单独的正弦波) 为什么使用*=0.5来取代/=2呢? 这两种方法在数学上是等价的,但乘法指令比除法指令快。如果在循环中执行大量的计算,这是一个简单的优化。...还可以使半径依赖于v,例如R=1+sin(2πv)/5。在这种情况下,圆柱体的每个环都有一个恒定的半径,但半径随圆柱的长度而变化。 ? ?

    1.6K40

    用 Shader 写个完美的波浪~

    我:波浪效果是吧,小意思,一个月的奶茶就够了,或者扫码提需求~ ?美术小姐姐:皮???? ?我:卒~ 俗话说:遇事不决,量子力学写虽得儿。...根据我多年喝奶茶的经验,像这种效果用 Shader 做就再简单不过了,最终的效果如下: ? 趁此机会,本篇文章就来与小伙伴们分享动态波浪 Shader 的原理和制作思路吧。...整体思路 看到波浪的表现特点我第一时间想到的就是正弦曲线(或者说是正弦波,又让我想起了示波器)。 ?正弦曲线(Sinusoid) 「正弦曲线」是三角函数中的一种正弦(Sine)比例的曲线。...正弦曲线表现为一条波浪线,形状犹如海上完美的波浪。 标准的正弦函数公式为: 正弦函数属于周期函数,其值域为 [-1, 1]。 如下图就是一个纯正标准的正弦曲线: ?...y = amplitude * sin((angularVelocity * uv.x) + initialPhase) + offset; // 区分 y 值上下部分,设置不同颜色

    1.8K10

    Unity基础系列(二)——构建一个视图(可视化数学)

    三维向量是用[Vector3]的结构创建的。因为它是一个struct,它的作用就像一个值,就像是一个数字一样,而不是对象。例如,让我们将点的X坐标设为1,将其Y和Z坐标设为零。...如果我们想使用另一个变量,我们必须给它一个不同的名称。或者,我们重用我们已经拥有的变量。但其实第一种方式并不好,第二种只需去掉变量的定义,将新的点赋值给同一个变量即可。 ? ?...默认情况下,每个立方体在每个维中都有1的大小,因此为了使它们适合,我们必须将它们的比例尺缩小到2/10=1/5。...如果要使用不同的值,需要将新的结构赋给字段或变量,就像我们处理数字一样。如果我们说x=3,然后x=5,我们给x分配了一个不同的数字。我们没有将数字3本身修改为5。但是,Unity的向量类型是可变的。...调整立方体颜色的一个简单方法是设置其材质的颜色属性,可以在循环里设置即可。但由于每个立方体都会得到不同的颜色,这意味着最终会变成每一个物体有一个单独的材质球。虽然这么做能实现,但效率太低。

    2.8K10

    Unity基础教程系列(新)(七)——有机品种(Making the Artificial Look Natural)

    为了给所有中间级别一个灰色阴影,它需要是浮点除法,而不是没有小数部分的整数除法。我们可以通过将除数中的-1变为浮点减法来确保这一点。然后,其余的计算也将变为浮点数。 ?...唯一真正明显的模式是中央列始终为黑色,因为它由每个级别的第一个实例组成。当序列与几何对齐时,这种现象也会在更深的层次上显现出来。 我们可以通过调整序列的长度来更改模式,例如将其增加到十。...我们得到的大部分是三步但有时两步递增的梯度的重复,但都有些不同。模式在21步后重复,但会偏移0.001。其他的值将产生不同的图案,并具有不同的渐变,可以更长,更短和相反。...为此,请为两个序列号添加一个着色器属性向量,第一个为乘数,第二个为偏移量,然后在GetFractalColor中使用它们。需要在间隔值的小数部分之前添加偏移量,以便将偏移的偏移量应用于数列。 ?...通过在属性块上调用SetVector,在Update中为每个级别的绘制循环中设置数列号。 ? 最后,为了使数列在每个级别上具有任意性和不同性,我们将固定配置的序列号替换为随机值。

    1.4K10

    Unity 水、流体、波纹基础系列(二)——方向流体(Directional Flow)

    它的制作方法与其他纹理相同,但图案不同,并且导数相对于高度数据的缩放比例为0.025。 ? (涟漪用的导数高度贴图) 导入纹理,确保它不在sRGB模式下,并将其用于扭曲效果。 ?...1.2 方向流体Shader 在本教程中,我们将创建一个不同的流着色器。与其让纹理变形,不如让纹理与流对齐。复制DistortionFlow着色器并将其重命名为DirectionalFlow。...我们要做的是尝试在均匀流动的完美结果与每个片段使用不同流动方向的理想结果之间找到一个折衷。折衷方案是将表面划分为多个区域。我们将仅使用正方形瓦片的网格。每个图块均具有均匀的流,因此不会遭受任何扭曲。...我们将为其创建一个变体。 3.1 流体网格 要将表面拆分为图块,我们需要确定网格分辨率。我们将通过着色器属性(默认值为10)使它可配置。 ? ?...这可以通过用 | 2t-1 |替换 实现,将其变为在瓦片的两侧为零而在中间为1的三角波。 ? (三角波在网格线处始终具有相同的值,即0或1) 更改的结果是,每个图块的两边的A权重现在为零。

    4.5K50

    和12岁小同志搞创客开发:手撕代码,做一款火焰报警器

    sinVal用来存储正弦值,正弦波呈现一个波浪形的变化,变化比较均匀,所以我们选用正弦波的变化来作为我们声音频率的变换,toneVal从sinVal变量中获得数值,并把它转换为所需要的频率。...要通过公式:3.1412/180将角度转为弧度: sinVal = (sin(x*(3.1412/180))); 之后,将这个值转变成相应的报警声音的频率: toneVal = 2000+(int(sinVal...*1000)); 这里有个知识点:浮点型值转换为整型。...sinVal是个浮点型变量,也就是含小数点的值,而我们不希望频率出现小数点的,所以需要有一个浮点值转换为整型值得过程,也就是下面这句语句就完成了这件事: int(sinVal*1000) 把sinVal...像第一个函数,如果没有指定duration,声音将一直持续直到输出一个不同频率的声音产生。 3、noTone(pin):noTone(pin)函数,结束该指定引脚上产生的声音。

    31220

    傅里叶级数电路分析——傅里叶级数表示介绍

    使用正弦波形的电路分析:RL 电路示例在走得太远之前,应该注意正弦波形在解决许多工程和科学问题中起着关键作用。例如,在电路分析中,了解对不同频率的正弦波形的响应可以让我们确定对其他类型波形的稳态响应。...如果我们保持开关闭合足够长的时间,我们将只剩下第二项,即系统的稳态响应。稳态响应是与输入频率相同的正弦波。它的相位和幅度可能与输入不同,但具有相同的形状和频率。...图片上图中,两个波形的整体形状有一些相似之处,但还是有很大区别的。方波在每个半周期保持不变。然而,正弦波分别在方波的正负半周期的中点达到其最大值和最小值。与正弦波不同,方波在过渡时变化更为突然。...总体而言,正弦波似乎无法赶上方波的突变。在这种情况下,单个正弦波似乎不是方波的可接受近似值。但是,如果我们添加另一个正弦分量会怎样?...因此,当将两个正弦波相加时,会创建一个过渡比单个正弦波更锐利的波形。然而,对于 0.1667 正弦波具有相反的极性。

    1.1K40

    Canvas动画:正弦波和平滑运动

    今天我们来聊聊如何用Canvas和JavaScript实现一些有趣的动画效果。你可能在数学课上听说过正弦波,但你知道它在编程中能做什么吗?今天就带你搞定正弦波和平滑垂直运动!...什么是正弦波? 正弦函数是三角函数的一种,记作 sin(x),它在数学和物理学中有着广泛的应用,尤其是在描述波动、振动和周期性运动时。...幅度:正弦函数的值范围是 -1 到 1,但通过将结果乘以一个常数(比如代码中的 range),可以改变波动的幅度。 相位:通过对 x 加上一个常数,可以改变波形的相位,也就是左右平移。...平滑的上下垂直运动 第一个动画效果实现的是一个小球在画布中上下平滑运动,看起来就像在波浪中轻轻浮动。这种效果其实是通过正弦函数(sine wave)来实现的。正弦函数有什么特别之处呢?...它能生成一个波浪形的曲线,非常适合用来模拟自然界中的周期性运动,比如海浪、振动等等。

    12410

    Unity基础教程系列(新)(三)——数学表面(Sculpting with Numbers)

    本教程使用Unity 2019.4.10f1制作。 ? (结合不同的波形来创建复杂的表面) 1 函数库 完成上一教程后,我们将获得了一个由点组成的视图,该视图显示了在播放模式下的正弦波动画。...这次,我们将使用多个正弦波制作稍微复杂一点的函数。首先复制Wave方法并将其重命名为MultiWave。 ? 我们将保留我们已经拥有的正弦函数,但要添加一些额外的功能。...与此同时,我们将把该函数的结果减半。这样可以使新的正弦波的形状与旧的正弦波相同,但尺寸减半。 ? 这给了我们一个新的数学函数 ?...(斜波) 对于MultiSine,最直接的更改是使每个wave使用一个单独的维度。让我们较小的一个使用Z。 ? ? (两个不同维度的波) 我们还可以添加沿XZ对角线传播的第三波。...然后将0.75用作大半径,将0.25用作小半径,以将点保持在-1~1域内。 ? ? (环面) 现在我们可以使用两个半径来制作一个更有趣的圆环。例如,我们可以通过使用 ? 同时也使用 ?

    1.5K40

    基础渲染系列(十九)——GPU实例(Instancing)

    稍后将解释缓冲区宏。 1.4 合批大小 你最终得到的批次数量可能与我得到的数量不同。在我的情况下,以40批渲染5000个球体实例,这意味着每批125个球体。...这些缓冲区具有最大容量限制,它限制了一个批次中可以容纳多少个实例。假设台式机GPU每个缓冲区的限制为64KB。 一个矩阵由16个浮点数组成,每个浮点数均为4个字节。因此,每个矩阵64个字节。...例如,#pragma instancing_options maxcount:512将最大值设置为512。但是,这会将导致断言失败的错误,因此实际限制为511。其实500和512之间没有太大差异。...但这要起作用的话,必须在“My Lighting”中定义一个适当的缓冲区。 声明实例化缓冲区的工作类似于创建诸如插值器之类的结构,但是确切的语法因平台而异。...(合批的带颜色的球体) 现在,我们的颜色随机的球再次被批处理。我们可以用相同的方式使其他属性可变。对于颜色,浮点数,矩阵和四分量浮点向量,这是可以的。

    11.3K30

    第5章-着色基础-5.4-锯齿和抗锯齿

    信号的频率分量是正弦波: ,其中 是该分量的频率。鉴于此,低通滤波器会去除所有频率高于滤波器定义的特定频率的频率分量。直观地说,低通滤波器去除了信号的尖锐特征,即滤波器模糊了它。...采样过程会在信号中引入高频成分(突变),低通滤波器的任务就是去除这些成分。事实上,sinc滤波器消除了所有频率高于采样率1/2的正弦波。...使用任何滤波器后,都会得到一个连续的信号。然而,在计算机图形学中,我们不能直接显示连续信号,但我们可以使用它们将连续信号重新采样到另一个大小,即放大或缩小信号。接下来讨论这个话题。...例如,每个片段的像素可能有四个(x,y)样本位置,每个位置都有自己的颜色和z-depth,但像素着色器仅对应用于像素的每个对象片元进行一次评估。...例如,Wihlidal的演示文稿[1885]展示了应用于棋盘采样模式的EQAA、时间抗锯齿和各种过滤技术如何结合起来以保持质量,同时降低像素着色器调用的数量。

    5.1K30

    基础渲染系列(五)——多灯光

    上一部分介绍了灯光,只带有一个定向光。现在,我们将添加对多个灯光的支持。 本教程使用Unity 5.4.0b21制作。 ?...你可以将任何连续函数分解为不同频率的多个函数。这些被称为频段。对于任意功能,可能需要无限数量的频段来执行此操作。 一个简单的例子是组成正弦曲线。从基本的正弦波开始。 ?...对于第二个频段,请使用频率为两倍,幅度为一半的正弦波。 ? (全频率,半振幅sin4πx/2) 当加在一起时,这两个频段将描述更复杂的功能。 ?...) 本示例使用具有固定模式的规则正弦波。为了用正弦波描述任意函数,你必须调整每个频段的频率,幅度和偏移,直到获得完美的匹配为止。...如果使用的频段少于完美匹配所需要的频段,那么最终结果将是原始功能的近似值。使用的频段越少,近似值的准确性就越低。该技术用于压缩很多东西,例如声音和图像数据。

    2.5K20

    时频分析方法及其在EEG脑电中的应用

    例如,在图4中,我们将图1的第一次trial和一个6 Hz的小波进行卷积,捕捉所有6 Hz的振荡,这些振荡在0 ms附近更大。对于TF分析,卷积实际上是用复Morlet小波来进行的。...虽然我们用6 Hz的小波来说明卷积过程,但这个过程可以用不同特征的小波(例如,不同频率)来重复,从而允许研究人员在时间和频率上捕捉EEG信号的振幅和相位信息。因此,仔细选择小波的特征是很重要的。...为了测量不同频段内一段时间内TF功率的时间动态,先利用时频分解来隔离信号在每个时间和频率的幅值。然后将每次trials的TF分解平均起来,以显示总功率。...ITP捕获的一致性EEG活动感兴趣的事件在一个特定时间和频率较高的ITP值反映更多的一致性(1 =完美之间的一致性的),或者减少ITP代表接近随机相位对齐锁相事件感兴趣的阶段(0 =随机频率的观点试次)...如果两个通道的相位角随时间同步波动,它们的差异将保持不变,产生接近1的ICPS值。相反,如果两个通道的相位角随时间随机波动,它们的差异将会很大,产生接近于0的ICPS值。

    1.4K20

    Unity通用渲染管线(URP)系列(十四)——多相机(Camera Blending & Rendering Layers)

    (用不同的方式观察同一个场景) 1 组合相机 因为每个摄像机都执行剔除,光处理和阴影渲染等,所以最好每帧渲染尽可能少的摄像机,理想情况下只渲染一个。但是有时候我们确实需要同时渲染多个不同的观察点。...(不带Post FX的分屏,展示了不同视角下的同一个场景) 但如果启用后置FX,它将失败。两台摄像机都以正确的大小渲染,但它们最终会覆盖整个摄像机目标缓冲区,只有最后一个可见。 ?...1.4 自定义混合 与上一个相机图层融合仅对叠加摄影机有意义。底部相机将与相机目标的任何初始内容(随机的或前一帧的累积)混合,除非编辑器提供了清除的目标。...例如,我让底部相机使用默认值,关闭了叠加相机的Post FX,并为渲染纹理相机提供了不同的Post FX,比如,并具有冷温度变化和中性色调映射。 ?...(相同的剔除掩码应用于明亮的点光源) 如果启用Use Lights Per Object,则灯光剔除将按预期方式进行,但仅适用于点光源和聚光灯。 ?

    9K22
    领券