有助理解傅里叶变换的几个图:
三角函数的叠加,如何得到方波:
(时域上观察)

时域特征转换到频域特征:

杂乱的周期波形信号(如语音)可以转换为规则的三角波型号的叠加:

傅里叶变换是把周期函数展开三角级数,即若干个三角函数的和。

欧拉公式:

通过欧拉公式可以将 三角函数形式的 傅里叶变换 转为 复数形式:

上图的公式看起来不简洁,我们借助一些符号代换让上式看起来简单一些:

Cn的求解,我们已经知道an、bn的求解方法为在对应周期上做积分,Cn和an、bn的关系的关系展开可以得到:

归纳一下:

遗留问题:
在matlab中,对一个n个数的数组进行傅里叶变换得到n个复数, 结果是cn,具有能量对称性【c(n)和c(-n)】。
matlab傅里叶变换与逆变换
波形合成:
%合成一个采样率为16Khz的信号波,该波由200,400,600hz的三组波构成。 WAV = zeros(10,size(t,2)); 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,:); %取320个采样点,时间宽度为20ms,展示合成效果 figure,title('波形的合成'); % 图形标题 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)']; title([num2str(i*200),'hz分量']),ylabel('振幅'); 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./70549/
|