傅里叶系列

Joseph Fourier 表明,任何周期波都可以用简单的正弦波来表示。这个总和称为傅里叶级数。傅立叶级数仅在系统为线性时保持不变。如果存在例如一些溢出效应(无论输入多少输出,输出保持相同的阈值),非线性效应进入图像,打破正弦波和叠加原理。

# Sine waves
xs <- seq(-2*pi,2*pi,pi/100)
wave.1 <- sin(3*xs)
wave.2 <- sin(10*xs)
par(mfrow = c(1, 2))
plot(xs,wave.1,type="l",ylim=c(-1,1)); abline(h=0,lty=3)
plot(xs,wave.2,type="l",ylim=c(-1,1)); abline(h=0,lty=3)

# Complex Wave
wave.3 <- 0.5 * wave.1 + 0.25 * wave.2
plot(xs,wave.3,type="l"); title("Eg complex wave"); abline(h=0,lty=3)

http://i.stack.imgur.com/3RhtI.jpg

wave.4 <- wave.3
wave.4[wave.3>0.5] <- 0.5
plot(xs,wave.4,type="l",ylim=c(-1.25,1.25))
title("overflowed, non-linear complex wave")
abline(h=0,lty=3)

http://i.stack.imgur.com/5lljo.jpg

此外,傅里叶级数仅在波是周期性的情况下成立,即它们具有重复模式(非周期性波由傅里叶变换处理,见下文)。周期波具有频率 f 和波长λ(波长是在周期的开始和结束之间的介质中的距离,λ= v / f0,其中 v 是波速),其由重复图案限定。非周期波不具有频率或波长。

一些概念:

  • 基本周期 T 是所有采样的周期,即第一个样本和最后一个样本之间的时间
  • 采样率 sr 是在一段时间内(也就是采集频率)采集的样本数。为简单起见,我们将使样本之间的时间间隔相等。该时间间隔称为采样间隔 si,它是基本周期时间除以采样数 N.因此,si = TN
  • 基频 f0,即 1T。基频是重复模式的频率或波长的长度。在之前的波浪中,基频为 12π。波分量的频率必须是基频的整数倍。f0 称为一次谐波,二次谐波为 2 * f0,第三次为 3 * f0 等。
repeat.xs     <- seq(-2*pi,0,pi/100)
wave.3.repeat <- 0.5*sin(3*repeat.xs) + 0.25*sin(10*repeat.xs)
plot(xs,wave.3,type="l")

title("Repeating pattern")
points(repeat.xs,wave.3.repeat,type="l",col="red"); 
abline(h=0,v=c(-2*pi,0),lty=3)

http://i.stack.imgur.com/BDauN.jpg

这是一个 R 函数,用于绘制给定傅里叶级数的轨迹:

plot.fourier <- function(fourier.series, f.0, ts) { 
                        w <- 2*pi*f.0 trajectory <- sapply(ts, function(t) fourier.series(t,w)) 
                        plot(ts, trajectory, type="l", xlab="time", ylab="f(t)"); 
                        abline(h=0,lty=3)}