网上有关“matlab如何用fft”话题很是火热,小编也是针对matlab如何用fft寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。
matlab自带的fft函数是快速傅里叶变换函数。主要用于降噪处理,通过使用傅里叶变换求噪声中隐藏的信号的频率分量。
该函数使用方法:
方法一:
Y?= fft(X)?用快速傅里叶变换 (FFT) 算法计算?X?的离散傅里叶变换?(DFT)。
如果?X?是向量,则?fft(X)?返回该向量的傅里叶变换。
如果?X?是矩阵,则?fft(X)?将?X?的各列视为向量,并返回每列的傅里叶变换。
如果?X?是一个多维数组,则?fft(X)?将沿大小不等于 1 的第一个数组维度的值视为向量,并返回每个向量的傅里叶变换。
方法二:
Y?= fft(X,n)?返回?n?点 DFT。如果未指定任何值,则?Y?的大小与?X?相同。
如果?X?是向量且?X?的长度小于?n,则为?X?补上尾零以达到长度?n。
如果?X?是向量且?X?的长度大于?n,则对?X?进行截断以达到长度?n。
如果?X?是矩阵,则每列的处理与在向量情况下相同。
如果?X?为多维数组,则大小不等于 1 的第一个数组维度的处理与在向量情况下相同。
我们通过下例,来了解fft函数使用过程:
第一步、指定信号的参数,采样频率为 1 kHz,信号持续时间为 1.5 秒。
Fs=1000;%采样频率
T=1/Fs;%采样周期
L=1500;%信号长度
t=(0:L-1)*T;%时间向量
第二步、构造一个信号,其中包含幅值为 0.7 的 50 Hz 正弦量和幅值为 1 的 120 Hz 正弦量。
S = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
第三步、用均值为零、方差为 4 的白噪声扰乱该信号。
X = S + 2*randn(size(t));
第四步、在时域中绘制含噪信号。通过查看信号 X(t) 很难确定频率分量。
plot(1000*t(1:50),X(1:50))
title('Signal Corrupted with Zero-Mean Random Noise')
xlabel('t (milliseconds)'),ylabel('X(t)')
第五步、计算信号的傅里叶变换。
Y = fft(X);
第六步、计算双侧频谱 P2, 计算单侧频谱 P1。
P2 = abs(Y/L);?
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1)
第七步、定义频域 f 并绘制单侧幅值频谱 P1
f = Fs*(0:(L/2))/L;
plot(f,P1)?
title('Single-Sided Amplitude Spectrum of X(t)')
xlabel('f (Hz)'),ylabel('|P1(f)|')
运行结果。
关于“matlab如何用fft”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!
本文来自作者[紫安]投稿,不代表同舟号立场,如若转载,请注明出处:https://www.sdtzcl.com/tz/2056.html
评论列表(4条)
我是同舟号的签约作者“紫安”!
希望本篇文章《matlab如何用fft》能对你有所帮助!
本站[同舟号]内容主要涵盖:生活百科,小常识,生活小窍门,知识分享
本文概览:网上有关“matlab如何用fft”话题很是火热,小编也是针对matlab如何用fft寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。m...