傅里叶变换
通过傅里叶变换,可以将混合信号解析成叠加的不同频率信号的振幅
代码见博客最后方
算法实现
- 请编写 1024 点快速傅里叶变换的算法。自行生成一段混杂若干不同频率正弦的信号,测试所编写的快速傅里叶变换算法。
设计思路
- 首先生成一个由多个不同频率的正弦函数叠加的信号,这里我的频率都是小于1/2pi的,因此其中必有周期2pi
- 再在2pi周期里面等分取1024个点的值
- 利用傅里叶变换后输出,观察每种频率信号对应的振幅
数值实验
- 不同频率的振幅如下
结果分析
- 由于一开始生成的信号,其实是sin(x)跟sin(5x)叠加的信号,因此最后变换后得到的结果符合原结果
代码实现
clear;
format long;
A1 = [100,50];
A2 = [1,5];
N = 1024;
k = 5;
for n = 1:N
x = (2*pi/N)*(n);
y(n) = 10*sin(x) + 30*sin(5*x);
end
w = exp(1i*2*pi/N);
for m = 0:k
c(m+1) = 0.0;
for j = 0:N-1
c(m+1) = c(m+1) + y(j+1)*(w^(m*j));
end
%c(m) = c(m)/N;
result(m+1) = m;
end
%plot(result, c);
bar(result,c);