傅里叶级数 三角形式 到 复数形式

有助理解傅里叶变换的几个图:

三角函数的叠加,如何得到方波:

(时域上观察)


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


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


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


欧拉公式:


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


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


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/


  • 24
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值