matlab的fft函数写法,matlab的fft函数的使用例子
fs=1000;%對(duì)連續(xù)信號(hào)進(jìn)行量化處理,即對(duì)原始信號(hào)進(jìn)行采樣,這里是采樣率,單位Hz
ts=1/fs;%采樣間隔
t=0:ts:1.3;
x=sin(2*pi*50*t)+sin(2*pi*300*t);
%y=@(t)
sin(2*pi*50*t)+sin(2*pi*300*t);
f=x+3.5*randn(1,length(t));
subplot(411);plot(t,f);
ylabel('幅值');xlabel('時(shí)間');title('原始信號(hào)');
nfft= 2^nextpow2(length(f));%找出大于y的個(gè)數(shù)的最大的2的指數(shù)值
y=fft(f,nfft);%對(duì)f信號(hào)進(jìn)行DFT,得到頻率的幅值分布
p=y.*conj(y)/nfft;%conj()函數(shù)是求y函數(shù)的共軛復(fù)數(shù),實(shí)數(shù)的共軛復(fù)數(shù)是他本身。
ff=fs*(0:nfft/2-1)/nfft;% F F T 變換后對(duì)應(yīng)的頻率的序列
subplot(412);plot(ff,p(1:nfft/2));
ylabel('功率譜密度');xlabel('頻率');title('信號(hào)功率譜');
%------論壇上看到的求FFT的方法
subplot(413);plot(ff,abs(y(1:nfft/2)));%(用這個(gè),先取點(diǎn)數(shù)后求模)
ylabel('幅值');xlabel('頻率');title('單邊幅頻譜');
%------matlab例子的求FFT的方法
subplot(414);plot(ff,2*abs(y(1:nfft/2))/length(f));%(用這個(gè),先取點(diǎn)數(shù)后求模)
ylabel('幅值');xlabel('頻率');title('單邊幅頻譜');
%振幅的大小與所用DFT采樣點(diǎn)數(shù)(nfft)有關(guān),采用不同的DFT采樣點(diǎn)數(shù)對(duì)同一信號(hào),振幅是有不同的表現(xiàn)值
總結(jié)
以上是生活随笔為你收集整理的matlab的fft函数写法,matlab的fft函数的使用例子的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java中return结束循环,Java
- 下一篇: app 注册防刷 php,手机验证码设计