ContinuousWaveletTransform[{x1,x2,…}]
给出一列 xi 值的连续小波变换.
ContinuousWaveletTransform[data,wave]
给出使用小波 wave 的连续小波变换.
ContinuousWaveletTransform[data,wave,{noct,nvoc}]
给出连续小波变换,其中倍频程为使用 noct,每个倍频程的音频数为 nvoc.
ContinuousWaveletTransform[sound,…]
给出声音样本的连续小波变换.
ContinuousWaveletTransform
ContinuousWaveletTransform[{x1,x2,…}]
给出一列 xi 值的连续小波变换.
ContinuousWaveletTransform[data,wave]
给出使用小波 wave 的连续小波变换.
ContinuousWaveletTransform[data,wave,{noct,nvoc}]
给出连续小波变换,其中倍频程为使用 noct,每个倍频程的音频数为 nvoc.
ContinuousWaveletTransform[sound,…]
给出声音样本的连续小波变换.
更多信息和选项
- ContinuousWaveletTransform 给出一个 ContinuousWaveletData 对象.
- ContinuousWaveletData 的 属性 cwd 可以使用 cwd["prop"] 得到. 使用 cwd["Properties"] 可以得到一个可用属性的列表.
- 得到的小波系数是与输入数据具有相同维数的数组.
- 可能的小波 wave 包括:
-
MorletWavelet[…] Morlet 余弦乘以 Gaussian GaborWavelet[…] 复数 Morlet 小波 DGaussianWavelet[…] 高斯导数 MexicanHatWavelet[…] 二阶高斯导数 PaulWavelet[…] Paul 小波 - 缺省的 wave 为 MexicanHatWavelet[].
- noct 的缺省值由
得到,其中
为输入的长度. » - nvoc 的缺省值为 4.
- 函数
的连续小波变换由
得到. - 均匀采样序列
的连续小波变换由
得到. - 尺度参数
由等调和尺度
给出,其中
为倍频程数,
为音频数,
为最小的小波尺度. - 对于每个尺度
,ContinuousWaveletTransform 计算小波系数
. - 可以给出下列选项:
-
Padding None 如何将数据扩展至边界外 SampleRate Automatic 每个单位上的样本 WaveletScale Automatic 最小的可解析尺度 
WorkingPrecision MachinePrecision 内部计算所用精度 - Padding 将输入 data 填充至2的第二高次幂以降低边界效应. Padding 的设置与 ArrayPad 中所用的填充参数相同.
- InverseContinuousWaveletTransform 给出逆变换.
范例
打开所有单元 关闭所有单元基本范例 (2)
利用 MexicanHatWavelet 计算连续小波变换:
cwd = ContinuousWaveletTransform[{56, 40, 8, 24, 48, 48, 40, 16}]ListLinePlot[cwd[All, "Values"]]InverseContinuousWaveletTransform[cwd]变换一个采样 Sound 对象:
Play[Underoverscript[∑, n, 5]Sin[2000 2^t n t], {t, 2, 3}]cwd = ContinuousWaveletTransform[%]WaveletScalogram[cwd]范围 (18)
基本用途 (6)
data = Table[HeavisideLambda[x], {x, -2, 2, (4/1023)}];cwt = ContinuousWaveletTransform[data]ListLinePlot[Abs[cwt[{8, _}][[All, 2]]], PlotRange -> All]用 Normal 显式得到所有的小波系数:
cwt = ContinuousWaveletTransform[{0, 0, 1, 0, 0}, MexicanHatWavelet[1]]Normal[cwt]使用 All 作为自变量得到所有系数:
cwt[All]cwt = ContinuousWaveletTransform[{0, 0, 1, 0, 0}, MexicanHatWavelet[1]];cwt["IndexMap"]cwt[{1, 1}]cwt[{1, 4}]cwt[{{1, 1}, {1, 3}}]cwt[{1, _}]cwt[{{_, 1}, {_, 4}}]cwt[{_, 1 | 4}]WaveletScalogram 给出小波系数的时间尺度表示:
data = Table[Sign[Cos[x^2]], {x, -6, 6, (12./1023)}];ListLinePlot[data]cwt = ContinuousWaveletTransform[data];WaveletScalogram[cwt, AxesLabel -> {"time", "scale"}]data = Table[Sin[x^2], {x, 0, 10, 0.02}];{cwt1, cwt2} = Table[ContinuousWaveletTransform[data, DGaussianWavelet[5], {Automatic, voc}], {voc, {4, 16}}];{WaveletScalogram[cwt1, PlotLabel -> "4 voices/octave"], WaveletScalogram[cwt2, PlotLabel -> "16 voices/octave"]}data = Function[x, x Sin[Exp[x] x]][Range[2, 5, 0.001]];{cwt1, cwt2} = Table[ContinuousWaveletTransform[data, Automatic, {oct, Automatic}], {oct, {5, 8}}];{WaveletScalogram[cwt1, PlotLabel -> "5 octaves"], WaveletScalogram[cwt2, PlotLabel -> "8 octaves"]}时间和尺度功能 (4)
data1 = Table[Cos[20 π x], {x, 0, 1, (1/1023)}];ListLinePlot[data1]cwt1 = ContinuousWaveletTransform[data1, GaborWavelet[6]];WaveletScalogram[cwt1, ColorFunction -> "SolarColors"]data2 = Table[Cos[20 π x] + Cos[Sqrt[2] 50 π x], {x, 0, 1, (1/1023)}];ListLinePlot[data2]cwt2 = ContinuousWaveletTransform[data2, GaborWavelet[6]];WaveletScalogram[cwt2, ColorFunction -> "SolarColors"]data3 = Block[{fr = 0}, Table[Sin[(fr += 0.5)x], {x, 0, 1, (1/1023)}]];ListLinePlot[data3]cwt2 = ContinuousWaveletTransform[data3, GaborWavelet[6]];WaveletScalogram[cwt2, ColorFunction -> "SolarColors"]data = Table[Sin[4 π t] + 2 Exp[-10^5 ((1/3) - t)^2], {t, 0, 1, (1/511)}];ListLinePlot[data]cwt = ContinuousWaveletTransform[data, PaulWavelet[5], {7, 12}, SampleRate -> 511];WaveletScalogram[cwt, ColorFunction -> "AvocadoColors"]较高阶频率在较低倍频程上被解析;较低阶频率在较高倍频程上被解析:
data = Table[Piecewise[{{Sin[2 π 10 t], 0 ≤ t < (1/4)}, {Sin[2 π 25 t], (1/4) ≤ t < (1/2)}, {Sin[2 π 50 t], (1/2) ≤ t < (3/4)}, {Sin[2 π 100 t], (3/4) ≤ t ≤ 1}}], {t, 0, 1, (1/1023)}];ListLinePlot[data, AspectRatio -> 0.2]cwd = ContinuousWaveletTransform[data, DGaussianWavelet[5], {Automatic, 12}];WaveletScalogram[cwd, ColorFunction -> "RustTones"]data = Table[Cos[40 π x] Exp[-100 π (x - 0.7)^2] + Cos[140 π x] Exp[-50 π (x - 0.2)^2], {x, 0, 1, (1/1023)}];ListLinePlot[data, PlotRange -> All]使用 GaborWavelet 进行连续小波变换:
cwd = ContinuousWaveletTransform[data, GaborWavelet[8], SampleRate -> 1023];freq = (#1[[1]] -> (1023/#1[[2]])&) /@ cwd["Scales"]得到解析20到70 赫兹之间频率的数对 {oct,voc}:
Cases[freq, u_ /; 19 ≤ Last[u] ≤ 21]Cases[freq, u_ /; 69 ≤ Last[u] ≤ 71]利用 WaveletScalogram 验证:
WaveletScalogram[cwd, ColorFunction -> "BrassTones"]小波族 (6)
data = Table[Sin[x^2] + Cos[x^3], {x, 0, 3 π, 0.01}];ListLinePlot[data]cwt1 = ContinuousWaveletTransform[data, MexicanHatWavelet[1]];WaveletScalogram[cwt1]cwt2 = ContinuousWaveletTransform[data, GaborWavelet[3]]WaveletScalogram[cwt2]data = Table[Sign[Cos[x^2]], {x, -6, 6, (12./1023)}];ListLinePlot[data]MexicanHatWavelet(缺省):
cwt = ContinuousWaveletTransform[data, MexicanHatWavelet[]];ListPlot3D[Re@cwt[All, "Values"], ColorFunction -> "DarkRainbow", AxesLabel -> {"time", "scale"}, Mesh -> None, PlotRange -> All]data = Table[Sign[Cos[x^2]], {x, -6, 6, (12./1023)}];cwt = ContinuousWaveletTransform[data, DGaussianWavelet[]];ListPlot3D[Re@cwt[All, "Values"], ColorFunction -> "DarkRainbow", AxesLabel -> {"time", "scale"}, Mesh -> None, PlotRange -> All]data = Table[Sign[Cos[x^2]], {x, -6, 6, (12./1023)}];cwt = ContinuousWaveletTransform[data, GaborWavelet[3]];ListPlot3D[Abs@cwt[All, "Values"], ColorFunction -> "DarkRainbow", AxesLabel -> {"time", "scale"}, Mesh -> None, PlotRange -> All]data = Table[Sign[Cos[x^2]], {x, -6, 6, (12./1023)}];cwt = ContinuousWaveletTransform[data, MorletWavelet[]];ListPlot3D[Abs@cwt[All, "Values"], ColorFunction -> "DarkRainbow", AxesLabel -> {"time", "scale"}, Mesh -> None, PlotRange -> All]data = Table[Sign[Cos[x^2]], {x, -6, 6, (12./1023)}];cwt = ContinuousWaveletTransform[data, PaulWavelet[]];ListPlot3D[Abs@cwt[All, "Values"], ColorFunction -> "DarkRainbow", AxesLabel -> {"time", "scale"}, Mesh -> None, PlotRange -> All]声音 (2)
ContinuousWaveletTransform 作为输入作用于 Sound:
sdata = Play[Sin[5000 t] + Sin[1000 t] + Cos[500 t] + Cos[200 t], {t, 0, 1}]cwt = ContinuousWaveletTransform[sdata, DGaussianWavelet[5]];WaveletScalogram[cwt, ColorFunction -> "StarryNightColors"]利用 ContinuousWaveletTransform 进行语音分析:
snd = ExampleData[{"Sound", "Apollo11ReturnSafely"}]cwd = ContinuousWaveletTransform[snd, GaborWavelet[6], {Automatic, 12}];桔色的团块区域对应于语句“You will return safely to Earth”:
WaveletScalogram[cwd, {4 | 5 | 6 | 7, _}]cwd2 = WaveletMapIndexed[#1 0.0&, cwd, Except[{5 | 6, _}]]Sound[InverseContinuousWaveletTransform[cwd2], SoundVolume -> 2]选项 (9)
Padding (3)
Padding 的设置与 ArrayPad 中的方法相同,包括 "Periodic":
ArrayPad[{a, b, c}, 4, "Periodic"]ArrayPad[{a, b, c}, 4, "Reversed"]ArrayPad[{a, b, c}, 4, "ReversedNegation"]ArrayPad[{a, b, c}, 4, "Reflected"]ArrayPad[{a, b, c}, 3, "ReflectedDifferences"]ArrayPad[{a, b, c}, 4, "ReversedDifferences"]ArrayPad[{a, b, c}, 3, "Extrapolated"]Padding 对小波系数的长度没有影响:
cwd = ContinuousWaveletTransform[Range[16]];(Length[#1]&) /@ cwd[All][[All, 2]]Padding 将输入数据填充入2的第二个较高次幂以减少边界效应:
data = Table[Sin[20 x], {x, 0, 1, (1/1023)}];cwt1 = ContinuousWaveletTransform[data, MexicanHatWavelet[4], Padding -> None, WaveletScale -> Automatic];
rdata1 = InverseContinuousWaveletTransform[cwt1];cwt2 = ContinuousWaveletTransform[data, MexicanHatWavelet[4], Padding -> "Reflected", WaveletScale -> Automatic];
rdata2 = InverseContinuousWaveletTransform[cwt2];cwt3 = ContinuousWaveletTransform[data, MexicanHatWavelet[4], Padding -> "Extrapolated", WaveletScale -> Automatic];
rdata3 = InverseContinuousWaveletTransform[cwt3];ListLinePlot[{data[[1 ;; 50]], rdata1[[1 ;; 50]], rdata2[[1 ;; 50]], rdata3[[1 ;; 50]]}, PlotStyle -> {Red, Green, Blue, Orange}, BaseStyle -> Thick]ListLinePlot[{data[[-50 ;; -1]], rdata1[[-50 ;; -1]], rdata2[[-50 ;; -1]], rdata3[[-50 ;; -1]]}, PlotStyle -> {Red, Green, Blue, Orange}, BaseStyle -> Thick]WaveletScale (3)
WaveletScale 表示用于变换的最小可解析尺度:
cwt1 = ContinuousWaveletTransform[Table[Sin[x^2], {x, 0, 1, 0.001}]];cwt1["SampleRate"]所用尺度以
的形式给出,其中
为小波尺度,
为倍频程,
为音频:
cwt2 = ContinuousWaveletTransform[Table[Sin[x^2], {x, 0, 1, 0.001}], SampleRate -> 1000];cwt2["SampleRate"]sdata = Sound[{Play[Sin[1000 t (1 + t^2)], {t, 0, .2}], Play[Sin[500 t (1 + t^3)], {t, 0, .5}]}]cwt = ContinuousWaveletTransform[sdata];cwt["SampleRate"]sdata = Sound[{Play[Sin[1000 t (1 + t^2)], {t, 0, .2}], Play[Sin[500 t (1 + t^3)], {t, 0, .5}]}]cwt = ContinuousWaveletTransform[sdata, Automatic, {Automatic, 16}]WaveletScalogram[cwt, ColorFunction -> "BlueGreenYellow"]SampleRate (1)
data = Table[Sin[x^2], {x, 0, 3 π, (3 π/1023)}];ListLinePlot[data]cwt = ContinuousWaveletTransform[data, GaborWavelet[6], WaveletScale -> 1];对于列表,SampleRate 的 Automatic 值设为1:
{ws, oct, voc} = cwt[{"WaveletScale", "Octaves", "Voices"}];Table[ws 2^j / voc, {j, 1, oct voc}] == cwt["Scales"][[All, 2]]对于 Sound 数据,SampleRate 的 Automatic 值从 Sound 数据对象中提取:
SampleRate 用于小波变换系数的标准化:
WorkingPrecision (2)
默认情况下,使用 WorkingPrecision->MachinePrecision:
data = RandomInteger[1, {10}];cwt1 = ContinuousWaveletTransform[data]cwt2 = ContinuousWaveletTransform[data, WorkingPrecision -> MachinePrecision]cwt1 == cwt2data = RandomInteger[1, {8}];cwt = ContinuousWaveletTransform[data, MexicanHatWavelet[], WorkingPrecision -> 35]cwt[{1, 1}]{Precision[cwt], Accuracy[cwt]}应用 (4)
功能识别 (2)
data = Table[HeavisideTheta[x], {x, -2, 2, (4/1023)}];ListLinePlot[data]cwt = ContinuousWaveletTransform[data, DGaussianWavelet[4], {Automatic, 12}, Padding -> "Fixed"]WaveletScalogram[cwt]f[t_, ϵ_] := Sqrt[t (1 - t)] Sin[(2 π (1 + ϵ)/t + ϵ)]data = Table[f[t, 0.05], {t, 0, 1, (1/1023)}];ListLinePlot[data]cwt = ContinuousWaveletTransform[data, GaborWavelet[6], {Automatic, 16}]WaveletScalogram[cwt, ColorFunction -> "BlueGreenYellow"]WaveletScalogram[cwt, Automatic, Arg, ColorFunction -> "BlueGreenYellow"]滤波器频率 (2)
ContinuousWaveletTransform 可用于滤波频率:
f[x_] := Sin[50 π x] Exp[-100 π (x - 0.5)^2] + (Sin[50 π x] + 2 Cos[140 π x]) Exp[-50 π (x - 0.2)^2] + 2 Sin[150 π x] Exp[-80 π (x - 0.8)^2]data = Table[f[x], {x, 0., 1, (1/2047)}];ListLinePlot[data, PlotRange -> All]cwt = ContinuousWaveletTransform[data, GaborWavelet[6], {10, 16}, Padding -> 0.0, SampleRate -> 2047, WaveletScale -> Automatic];WaveletScalogram[cwt, ColorFunction -> "SolarColors"]vec = ConstantArray[1, Length[data]];
vec[[1 ;; 1000]] := 0.0cwtThresh = WaveletMapIndexed[#1 vec&, cwt, {{4 | 5, _}, {6, u_ /; u < 8}}];WaveletScalogram[cwtThresh, ColorFunction -> "SolarColors"]关于一个阈值数据对象进行 InverseContinuousWaveletTransform:
rdata = InverseContinuousWaveletTransform[cwtThresh];ListLinePlot[{data[[1 ;; 800]], rdata[[1 ;; 800]]}, PlotRange -> All, PlotStyle -> {Blue, {Red, Thick}}]ListLinePlot[rdata, PlotRange -> All]Needs["Music`"]m300 = MusicScale[TemperedChromatic, 300, 1]cwd = ContinuousWaveletTransform[m300, GaborWavelet[6], {7, 8}, SampleRate -> 8192];freq = (#1[[1]] -> (8192/#1[[2]])&) /@ cwd["Scales"];Cases[freq, u_ /; 280 ≤ Last[u] ≤ 320]WaveletScalogram[cwd, {3 | 4 | 5 | 6 | 7, _}]属性和关系 (1)
data = RandomReal[1, {100}];oct = Floor[Log2[(Length[data]/2)]]ContinuousWaveletTransform[data] == ContinuousWaveletTransform[data, Automatic, {oct, Automatic}]ContinuousWaveletTransform[data] == ContinuousWaveletTransform[data, Automatic, {Automatic, 4}]可能存在的问题 (1)
data = Cos[(Range[1000]/1000)];基于输入数据的长度,倍频程的 Automatic 设置解析了8个倍频程:
cwd1 = ContinuousWaveletTransform[data, MorletWavelet[], Automatic]ListLinePlot[{InverseContinuousWaveletTransform[cwd1], data}]cwd2 = ContinuousWaveletTransform[data, MorletWavelet[], {12, Automatic}]ListLinePlot[{InverseContinuousWaveletTransform[cwd2], data}]巧妙范例 (1)
Zeta 函数的尺度谱图:
d = Re[Zeta[(1/2) + I Range[0, 100, 0.01]]];ListLinePlot[d]cwd = ContinuousWaveletTransform[d, GaborWavelet[6], {4, 12}, WaveletScale -> 100];{WaveletScalogram[cwd, All, Re, ColorFunction -> "CherryTones"], WaveletScalogram[cwd, All, Abs, ColorFunction -> "CherryTones"]}文本
Wolfram Research (2010),ContinuousWaveletTransform,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ContinuousWaveletTransform.html.
CMS
Wolfram 语言. 2010. "ContinuousWaveletTransform." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/ContinuousWaveletTransform.html.
APA
Wolfram 语言. (2010). ContinuousWaveletTransform. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ContinuousWaveletTransform.html 年
BibTeX
@misc{reference.wolfram_2026_continuouswavelettransform, author="Wolfram Research", title="{ContinuousWaveletTransform}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/ContinuousWaveletTransform.html}", note=[Accessed: 16-October-2026]}
BibLaTeX
@online{reference.wolfram_2026_continuouswavelettransform, organization={Wolfram Research}, title={ContinuousWaveletTransform}, year={2010}, url={https://reference.wolfram.com/language/ref/ContinuousWaveletTransform.html}, note=[Accessed: 16-October-2026]}