正弦函数的频谱图(FFT)
来源:互联网 发布:安徽巨蟒渡劫事件知乎 编辑:程序博客网 时间:2024/04/29 17:26
从理论上讲,正弦函数的傅里叶变换是冲击函数:
下面介绍在Matlab中,如何分析正弦函数的FFT:
它的幅值为原正弦信号幅值的1/2倍;即:若x(t)=Acos(Ωt),则其频谱幅值最大值为A/2;如左图:
但是,我们用matlab求出来的频谱图却不是左边这样的,而是右图;
原因是:
1.理论中的正弦信号是无限长连续信号,而matlab,参与运算的信号只是截取了其中1个周期或多个周期的信号,就变成了有限长信号了;无限长信号和有限长信号的傅里叶变换是不一样的!
2.理论中的正弦信号是连续的模拟信号,而应用中的正弦信号都是采样,量化处理的,是数字信号;模拟信号和数字信号的傅里叶变换是不一样的!
对于已知周期的信号,通常只需要取其中一个周期做代表分析;但实际应用中,信号的频率通常已知,但噪声的频率却不固定,所以,应尽可能长的截取信号;
已知正弦信号 x(t)=4.6sin(2*pi*f0*t),每周波采样点数Ns=512,采样频率fs=f0*512;(f0为正弦信号的固有频率)
在Matlab中需要做一下处理:
1.将时间轴离散化: ts = tp * n=(T0/Ns) * n =n/f0*512=n/fs; n = 0:511; tp为每周波采样512点的时间间隔;
2.将连续信号x(t)离散化:x(ts)= 4.6sin(2*pi*f0*ts) = 4.6sin(2*pi*n/N); 可以看出x(t)离散化后,已经与信号的固有频率没关系了,这个信号已经变成了与n相关的函数:
x(n)= 4.6sin(2*pi*n/N); n = 0:511;
3.离散信号在Matlab中求FFT就很容易了:
X(n)= FFT( x(n) ) *2 / Ns ;
4.根据周期信号的傅里叶变换的性质:时域的周期,造成频域的离散;时间的离散,造成频域的周期;
可知:X(n) 为离散的,且有周期;离散点的间距正好是正弦信号的固有频率f0 ;周期为采样周期1/fs;
X(0),X(1)....分别对应x(t)的第0次,1次...谐波;
5.如果要在二维图上显示频率与频谱幅值的关系,还需要:
将横轴映射为频率值,映射关系为 f = n*f0;
6.根据奈奎斯特采样定理,当采样频率为fs时,可以得到FFT后的最高有效频率为fs/2;最高谐波次数为Ns/2-1;
具体实现如下(Matlab中,已调试通过):
%求正弦信号的傅里叶变换
Ns = 512;%采样点
n = 0 : Ns-1;
xn = 4.6*sin(2*pi*n/Ns);%离散的正弦信号
Xn = fft( xn ) ; %fft的结果是复数
Xn = abs(Xn) *2 /Ns; %求绝对值得到幅值,乘以2,乘以Ns是由傅里叶变换公式导致的
%用二维图显示原始正弦信号
subplot(3,1,1),plot(n, xn); %画出原始正弦信号
xlabel('n = 0:511'); ylabel('振幅');
title('原始的正弦信号');
%用二维图显示信号0~255次的谐波
Nyquist = Ns/2-1;%根据奈奎斯特定理,只需显示前255次的谐波
subplot(3,1,2),plot(n(1:Nyquist), Xn(1:Nyquist));
xlabel('n = 0:255'); ylabel('谐波幅值');
title('0~255次的谐波');
%用二维图显示信号频率与幅值的关系
f0 = 50; %假设信号的固有频率为50Hz
f = n*f0; %频率与横轴序列n的映射关系
subplot(3,1,3),plot(f(1:Nyquist), Xn(1:Nyquist)); %根据奈奎斯特定理,只需显示前fs/2部分的频谱
xlabel('f = 0, 50Hz... 255*f0 Hz '); ylabel('幅值');
title('频率与幅值的关系');
运行结果如下:
图中,在f = f0 = 50Hz时,幅值为4.6;即一次谐波幅值为4.6;
- 正弦函数的频谱图(FFT)
- FFT的频谱分辨率
- Python科学计算(二)——正弦信号的时域波形与频谱图
- 对正弦信号相加的频谱分析
- 正弦函数及其FFT变换(一)
- 正弦函数及其FFT变换(二)
- 用python做正弦信号的时域波形和频谱图
- 深入浅出解释FFT(七)——fft求频谱图和功率谱密度图
- 理解FFT(一):为什么用正弦函数进行傅立叶变换
- 如何采用fft分析信号的频谱
- MATLAB中FFT的使用方法(频谱分析)
- 再续FFT:信号的频谱分析
- 基于MATLAB中fft函数的时域采样信号频谱生成代码
- MATLAB中fft频谱图分析
- 正弦函数的画法
- FFT快速傅里叶变换的应用——画单边频谱图matlab
- 用FFT估计单频正弦信号的幅度
- FFT频谱学习
- Blackfin入门教程 SPORT(转)
- DSP架构应对电网谐波污染分析的挑战(转)
- 遇到的问题-------winform设计界面打不开
- 会议笔记--2012电能质量管理技术论坛
- BF609 CCES下的SPI驱动调试--就这样被它折磨了一周
- 正弦函数的频谱图(FFT)
- 基于ADSP-TS201S的二维DMA数据传输(转)
- 用BF609的SPORT读取AD7606的Bug解决方法
- 电力谐波FFT
- 《编程之美》——中国象棋将帅问题
- PADS orCAD SourceInsight UE Vmware...2013最新价格
- 阶乘与斐波那契数的理解
- BF609 SPI Flash烧写完成,但跑不起来(CCES自带的Device_Programmer Driver)
- ADSP-BF609 乘除运算需要的周期数及测试方法