MATLAB——FFT(快速傅里叶变换)
创始人
2024-06-01 07:25:09
0

基础知识
FFT即快速傅里叶变换,利用周期性和可约性,减少了DFT的运算量。常见的有按时间抽取的基2算法(DIT-FFT)按频率抽取的基2算法(DIF-FFT)。

1.利用自带函数fft进行快速傅里叶变换
若已知序列x=[4,3,2,6,7,8,9,0]x=[4,3,2,6,7,8,9,0]x=[4,3,2,6,7,8,9,0],求X(k)=DFT[x(n)]X(k)=DFT[x(n)]X(k)=DFT[x(n)]
代码非常简单,只有两行

x=[4,3,2,6,7,8,9,0];
xk=fft(x)

在这里插入图片描述
一般,对MATLAB而言,要想让它显示出结果,计算的部分不要加分号。
2.绘制128点DFT的幅频图
已知信号由15Hz幅值0.5的正弦信号和40Hz幅值2的正弦信号组成,数据采样频率为100Hz,试绘制N=128点DFT的幅频图。
关于下列代码的解释

f=(0:N-1)'*fs/N;

其中(0:N-1)'是生成了一个长度为N,间隔为1的列向量转置所得到的行向量。fs/N是指频域上的频率间隔。
若N点序列x(n)(n=0,1,…,N-1)是在采样频率fs(Hz)下获得的。它的FFT也是N点序列,即X(k)(k=0,1,…,N-1),则第K点对应实际频率值为:
f=k*fs/N

clc;
fs=100;
Ts=1/fs;%采样时间间隔
N=128;
n=0:N-1;
t=n*Ts;    %x不是直接关于n的函数,因为是固定的采样时间点
x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t);y=fft(x,N);
f=(0:N-1)'*fs/N;
stem(f,abs(y));

运行结果
在这里插入图片描述
同时也可以可看到这个幅度谱是关于fN对称的。
3.利用FFT进行功率谱的噪声分析
已知带有测量噪声信号x(t)=sin(2πf1t)+sin(2πf2t)+2w(t)x(t)=sin(2πf1t)+sin(2πf2t)+2w(t)x(t)=sin(2πf1t)+sin(2πf2t)+2w(t) 其中f1=50Hz,f2=120Hz, w(t)为均值为零、方差为1的随机信号,采样频率为1000Hz,数据点数N=512。试绘制信号的功率谱图。
下面先介绍几个基本的函数和知识:
conj(Y)
conj(Y) 是 MATLAB 中的一个函数,表示对 Y 中的每个元素取其共轭复数。如果 Y 是一个实数数组,则返回其本身。在信号处理中,常常使用共轭复数进行频域变换的处理。
求功率
P=Y.*conj(Y)/512;
注意这里是点乘啊。
在信号处理中,功率可以表示为信号的平均能量。对于一个离散时间信号,其能量可以表示为其幅度平方的总和,即:
E=∑n=0N−1∣x[n]∣2E = \sum_{n=0}^{N-1} |x[n]|^2 E=n=0∑N−1​∣x[n]∣2
其中,NNN 是信号的抽样点数,x[n]x[n]x[n] 是信号在时刻 nnn 的采样值。这里的 ∣x[n]∣2|x[n]|^2∣x[n]∣2 表示对 x[n]x[n]x[n] 取模长平方。
如果要计算信号的平均功率,可以将其总能量除以抽样点数,即:
P=EN=1N∑n=0N−1∣x[n]∣2P = \frac{E}{N} = \frac{1}{N} \sum_{n=0}^{N-1} |x[n]|^2 P=NE​=N1​n=0∑N−1​∣x[n]∣2
这里的 PPP 表示信号的功率。
在代码中,YYY 表示信号的离散傅里叶变换,即频域表示,其幅度 ∣Y∣|Y|∣Y∣ 表示信号在每个频率分量上的贡献。为了计算信号的功率谱,需要将 YYY 变换为其幅度平方,即 ∣Y∣2|Y|^2∣Y∣2。由于 YYY 中包含了正频率和负频率的信息,因此需要对其进行共轭操作,即将负频率部分取共轭复数,然后再与正频率部分相乘,即 Y⋅conj⁡(Y)Y \cdot \operatorname{conj}(Y)Y⋅conj(Y)。最后将结果除以抽样点数 NNN,即可得到功率谱 PPP:
P=Y⋅conj⁡(Y)NP = \frac{Y \cdot \operatorname{conj}(Y)}{N} P=NY⋅conj(Y)​
这里的 PPP 是一个长度为 NNN 的向量,表示信号在每个频率分量上的功率。
randn
andn是MATLAB中的一个函数,用于生成一个均值为0,方差为1的标准正态分布随机数。例如,可以使用以下代码生成一个大小为3x3的标准正态分布随机矩阵:
A = randn(3,3);
完整代码

clc;
t=0:0.001:0.6;%设置步进与时间区间
x=sin(2*pi*50*t)+sin(2*pi*120*t);%根据已知写出信号的表达式
noise=randn(1,length(t));%生成均值为零、方差为1的随机信号,也就是噪声
y=x+noise;%带有噪声的信号
subplot(121);
plot(t,y);fs=1000;
Y=fft(y,512);%512点的FFT
P=Y.*conj(Y)/512;%求功率
f=(0:255)*fs/256%由上面的分析可知,频谱关于奈奎斯特频率对称,所以取其中一半
subplot(122);
plot(f,P(1:256))%功率随频率的变化,即功率谱图,绘制出一半

运行结果:
在这里插入图片描述
4.序列长度和FFT的长度对信号频谱的影响
已知信号 x(t)=0.5sin(2πf1t)+2sin(2πf2t)x(t)=0.5sin(2πf1t)+2sin(2πf2t)x(t)=0.5sin(2πf1t)+2sin(2πf2t)
其中f1=15Hz,f2=40Hz,采样频率为100Hz.
在下列情况下绘制其幅频谱。
有了前面的基础,这里就比较简单了
代码

nlength=32;
nfft1=32;
nfft2=128;
fs=100;
Ts=1/fs;
n=0:nlength-1;
t=n*Ts;x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t);y1=fft(x,nfft1);
f1=(0:31)*fs/32;
subplot(211);
Y1=abs(y1);
plot(f1(1:16),Y1(1:16));y2=fft(x,nfft2);
f2=(0:127)*fs/128;
subplot(212);
Y2=abs(y2);
plot(f2(1:64),Y2(1:64));

运行结果
在这里插入图片描述
结果分析
采样点数越多,其频谱越光滑。
注意
绘制图形的时候,一定要分析清楚是频谱图,还是某一个变换,其目的在于分清谁是因变量,谁是自变量。

相关内容

热门资讯

学校拜师仪式主持词 学校拜师仪式主持词  导读:由主持人于节目进行过程中串联节目的串联词。如今的各种演出活动和集会中,主...
婚礼主持人致辞 婚礼主持人致辞(精选6篇)  在我们平凡的日常里,大家或多或少都用到过致辞吧,致辞具有针对性,要认清...
校园活动主持词 校园活动主持词  【导语】不论是会议还是晚会等活动都需要主持人和主持词,好的主持稿对会议的气氛会起到...
公司酒会主持词 公司酒会主持词  根据活动对象的不同,需要设置不同的主持词。在一步步向前发展的社会中,主持成为很多活...
感恩的心串词21篇 感恩的心串词21篇  一、串词的构成要素  1、思想的深刻性;  2、知识的广泛性;  3、宣传主题...
闭幕式主持词 【必备】闭幕式主持词3篇  借鉴诗词和散文诗是主持词的一种写作手法。在当今社会生活中,主持成为很多活...
简短的上台领奖致感谢词 简短的上台领奖致感谢词(精选5篇)  获奖能在台上致感谢,不仅是一份荣誉,更是一份激励。以下是小编为...
读书会的主持词 关于读书会的主持词  主持词分为会议主持词、晚会主持词、活动主持词、婚庆主持词等。在各种集会、活动不...
档案培训班开班仪式主持词   档案管理培训班开班仪式主持词  (请大家安静,我们现在举行培训班开班仪式)  各位领导,各位学员...
学校教师团拜会主持词 学校教师团拜会主持词  主持词是主持人在节目进行过程中用于串联节目的串联词。在现今人们越来越重视活动...
培训开班仪式致辞 培训开班仪式致辞(精选19篇)  无论是在学校还是在社会中,大家肯定对各类致辞都很熟悉吧,致辞是指在...
舞蹈串烧节目主持词 舞蹈串烧节目主持词  舞蹈串烧节目应该怎么进行主持呢?以下是小编整理的舞蹈串烧节目主持词,欢迎参考阅...
元旦节目主持词 2023元旦节目主持词范文(通用16篇)  主持词是主持人在台上表演的灵魂之所在。随着中国在不断地进...
结婚典礼新郎父亲致辞 结婚典礼新郎父亲致辞(精选13篇)  在平平淡淡的学习、工作、生活中,大家对致辞都不陌生吧,致辞具有...
美剧经典台词摘选 美剧经典台词摘选  Men are not prisoners of fate, but priso...
富有诗意的开学典礼的致辞 富有诗意的开学典礼的致辞范文(通用10篇)  在日常的学习、工作、生活中,大家都不可避免地要接触到致...
女方婚礼出阁宴主持词 女方婚礼出阁宴主持词范文(通用9篇)  主持词可以采用和历史文化有关的表述方法去写作以提升活动的文化...
公司春节团拜会主持词 公司春节团拜会主持词  主持词需要富有情感,充满热情,才能有效地吸引到观众。现今社会在不断向前发展,...
灾害急救知识及技能竞赛主持词 灾害急救知识及技能竞赛主持词  主持词要注意活动对象,针对活动对象写相应的主持词。在现在的社会生活中...
赌侠经典的台词 赌侠经典的台词  刘德华,周星驰试图将《赌神》和《赌圣》的名牌发扬光大的作品,这部《赌侠》也是他们早...