主要内容

傅里叶变换

傅里叶变换是一种数学公式,其将在时间或空间中采样的信号与频率采样的相同信号相关联。在信号处理中,傅里叶变换可以揭示信号的重要特征,即其频率分量。

傅里叶变换为矢量定义 X N. 统一采样点

y K. + 1 = σ. j = 0. N. - 1 ω. j K. X j + 1

ω. = E. - 2 π. 一世 / N. 是其中之一 N. 复杂的团结在哪里 一世 是虚构的单位。为了 X y ,指数 j K. 范围 0. N. - 1

FFT.MATLAB®中的功能使用快速傅里叶变换算法来计算数据的傅立叶变换。考虑正弦信号X这是时间的函数T.频率分量为15 Hz和20 Hz。使用以增量采样的时间向量 1 50. 在10秒的时间内秒。

TS = 1/50;T = 0:TS:10-TS;X = SIN(2 * PI * 15 * T)+ SIN(2 * PI * 20 * T);plot(t,x)xlabel('时间(秒)')ylabel('振幅'的)

图包含轴对象。轴对象包含类型线的对象。

计算信号的傅里叶变换,并创建向量F这对应于信号在频率空间中的采样。

y = fft(x);fs = 1 / ts;f =(0:长度(y)-1)* fs /长度(y);

当您作为频率函数绘制信号的大小时,幅度的巨大峰值对应于15Hz和20Hz的信号的频率分量。

绘图(F,ABS(Y))XLabel('频率(Hz)')ylabel('震级') 标题('震级'的)

图包含轴对象。具有标题幅度的轴对象包含类型线的对象。

变换也产生尖峰的镜像副本,其对应于信号的负频率。要更好地可视化此周期,可以使用FFTSHIFT.函数,在变换上执行零居中的圆形偏移。

n =长度(x);fshift =(-n / 2:n / 2-1)*(fs / n);Yshift = FFTSHIFT(Y);绘图(FSHIFT,ABS(YSHIFT))XLABEL('频率(Hz)')ylabel('震级'的)

图包含轴对象。轴对象包含类型线的对象。

嘈杂的信号

在科学应用中,信号通常损坏随机噪声,伪装其频率分量。傅立叶变换可以处理随机噪声并揭示频率。例如,创建一个新信号,Xnoise.,通过将高斯噪声注入原始信号,X

RNG('默认')Xnoise = x + 2.5 * Randn(尺寸(t));

信号功率作为频率的函数是信号处理中使用的公共度量。功率是信号傅里叶变换的平方幅度,由频率样本的数量标准化。计算并绘制以零频率为中心的噪声信号的功率谱。尽管有噪音,但由于电源的尖峰,您仍然可以制定信号的频率。

ynoise = fft(xnoise);ynoiseshift = fftshift(ynoise);power = abs(ynoiseshift)。^ 2 / n;情节(FShift,Power)标题('力量')Xlabel('频率(Hz)')ylabel('力量'的)

图包含轴对象。具有标题功率的轴对象包含类型线的对象。

计算效率

使用傅里叶变换公式直接计算每个 N. 要点 y 需要按顺序 N. 2 浮点操作。快速傅里叶变换算法仅需要按顺序 N. 日志 N. 计算的操作。当处理具有数百万个数据点的数据时,这种计算效率是一个很大的优势。快速傅里叶变换算法的许多专用实现甚至更有效 N. 是2的力量。

考虑从加利福尼亚州海岸的水下麦克风收集的音频数据。该数据可以在由此维护的库中找到康奈尔大学生物理学研究计划。加载和格式化数据的子集bluewhale.au.,其中包含太平洋蓝鲸发声。因为蓝色鲸鱼呼叫是低频声音,所以它们对人类几乎听到了。数据中的时间尺度由10个因素进行压缩,以提高音调并使呼叫更清晰可听。您可以使用命令声音(x,fs)侦听整个音频文件。

鲸鱼队='bluewhale.au';[x,fs] = audioread(尾离);Whalemoan = x(2.45e4:3.10e4);T = 10 *(0:1 / FS :(长度(尾剂)-1)/ fs);图(T,Whalemoan)Xlabel('时间(秒)')ylabel('振幅')XLIM([0 T(END)])

图包含轴对象。轴对象包含类型线的对象。

指定新的信号长度为2的下一个大于原始长度的功率。然后,使用FFT.使用新的信号长度计算傅立叶变换。FFT.使用零填充数据以增加样本大小。该衬垫可以明显更快地使变换计算,特别是对于具有大型主要因素的样本尺寸。

m =长度(Whalemoan);n = pow2(nextpow2(m));Y = FFT(Whalemoan,N);

绘制信号的功率谱。该曲线表明,呻吟包括大约17 Hz的基频和一系列谐波,在那里强调第二次谐波。

f =(0:n-1)*(fs / n)/ 10;%频率矢量power = abs(y)。^ 2 / n;%功率谱图(F(1:楼层(N / 2)),功率(1:地板(N / 2)))XLabel('频率(Hz)')ylabel('力量'的)

图包含轴对象。轴对象包含类型线的对象。

也可以看看

||||||

相关话题