有助理解傅里叶变换的几个图:
三角函数的叠加,如何得到方波:
(时域上观察)
时域特征转换到频域特征:
杂乱的周期波形信号(如语音)可以转换为规则的三角波型号的叠加:
傅里叶变换是把周期函数展开三角级数,即若干个三角函数的和。
欧拉公式:
通过欧拉公式可以将 三角函数形式的 傅里叶变换 转为 复数形式:
上图的公式看起来不简洁,我们借助一些符号代换让上式看起来简单一些:
Cn的求解,我们已经知道an、bn的求解方法为在对应周期上做积分,Cn和an、bn的关系的关系展开可以得到:
归纳一下:
遗留问题:
在matlab中,对一个n个数的数组进行傅里叶变换得到n个复数, 结果是cn,具有能量对称性【c(n)和c(-n)】。
matlab傅里叶变换与逆变换
波形合成:
%合成一个采样率为16Khz的信号波,该波由200,400,600hz的三组波构成。
t=0:1/16000:1;
a = [1, 0.5, 0.6];
b = [0.5, 1, 0.3];
WAV = zeros(10,size(t,2));
for i=1:3
WAV(3*i-2,:) = a(i)*cos(2*pi*i*200*t);
WAV(3*i-1,:) = b(i)*sin(2*pi*i*200*t);
WAV(3*i,:) = WAV(3*i-2,:)+WAV(3*i-1,:);
WAV(10,:) = WAV(10,:)+WAV(3*i,:);
end
%取320个采样点,时间宽度为20ms,展示合成效果
num = 320;
figure,title('波形的合成'); % 图形标题
for i = 1:3
subplot(4,1,i),plot(1:num,WAV(3*i-2,1:num),'b',1:num,WAV(3*i-1,1:num),'g',1:num,WAV(3*i,1:num),'r:');
str1 = ['a',num2str(i),'*cos(2*pi*',num2str(i),'*200*t)'];
str2 = ['b',num2str(i),'*sin(2*pi*',num2str(i),'*200*t)'];
str3 = [str1,'+',str2];
legend(str1,str2,str3);
title([num2str(i*200),'hz分量']),ylabel('振幅');
end
subplot(4,1,4),plot(1:num,WAV(3,1:num),'r:',1:num,WAV(6,1:num),'r:',1:num,WAV(9,1:num),'r:',1:num,WAV(10,1:num),'r');
title('合成的信号波形,200hz+400hz+600hz分量'),ylabel('振幅'),xlabel('x-采样点序号');
傅里叶变换与逆变换参考:
https://wenku.baidu.com/view/06df54757e21af45b307a8b3.html
%% 信号经过傅里叶变换然后进行傅里叶逆变换后信号的变化
clear all;clc;
%------Author&Date------
%Author:
%Date: 2013/07/31
%==========================================================================
Fs=8e3; %采样率
t=0:1/Fs:1; %采样点
len=length(t); %采样长度
f1=10; %频率1
f2=20; %频率2
f3=40; %频率3
A1=4; %幅度1
A2=2; %幅度2
A3=1; %幅度3
MaxS=A1+A2+A3; %信号幅度的最大值
signal=A1*sin(2*pi*f1*t)+A2*sin(2*pi*f2*t)+A3*sin(2*pi*f3*t);
X=fft(signal,len); %傅里叶变换
magX=abs(X); %信号的幅度
angX=angle(X); %信号的相位
Y=magX.*exp(1i*angX); %信号的频域表示
y=ifft(Y,len); %信号进行傅里叶逆变换
y=real(y);
er=signal-y; %原始信号和还原信号的误差
subplot(311);plot(t,signal);axis([0 1 -MaxS MaxS]);xlabel('时间');ylabel('振幅');title('原始信号');
subplot(312);plot(t,y);axis([0 1 -MaxS MaxS]);xlabel('时间');ylabel('振幅');title('还原信号');
subplot(313);plot(t,er);xlabel('时间');ylabel('振幅');title('误差');
% End Script
傅里叶深入理解参考:
http://blog.jobbole.com/70549/