講這個話題,就要先搞清楚頻譜、功率譜的概念,可參考我的另一篇文章
[信號的頻譜 頻譜密度 功率譜密度 能量譜密度]
做信號處理的朋友應(yīng)該都會fft比較熟悉,就是求傅里葉變換。我在這里也不再去講這個函數(shù)了,但需要注意的一點(diǎn):實(shí)信號的頻譜關(guān)于0頻對稱,是偶函數(shù),如果st = cos(2pif0*t)+1; t的長度為4000,那么0頻的位置在第一個點(diǎn),做fftshift后,0頻的位置在低2001個點(diǎn)的位置,fft后的信號關(guān)于第2001個點(diǎn)對稱,而不是4000個點(diǎn)左右對稱。
pwelch是用來求功率譜的,采用Welch平均周期法對信號進(jìn)行譜估計,它通過分段選取數(shù)據(jù)進(jìn)行加窗求功率,再進(jìn)行平均,pwelch函數(shù)的使用方式為:
pxx = pwelch(x,window,noverlap,nfft)
[pxx,f] = pwelch(x,window,noverlap,f,fs)
其中,
X表示輸入序列;window:當(dāng)window是一個數(shù)值時,表示窗函數(shù)長度,即分段長度L,默認(rèn)的窗函數(shù)為hamming窗;當(dāng)window是一個序列時,表示窗函數(shù)序列;NFFT表示FFT的點(diǎn)數(shù),X為實(shí)數(shù)時,當(dāng)NFFT是偶數(shù)時,Pxx的長度是(NFFT/2+1);當(dāng)NFFT是奇數(shù)時,Pxx的長度是(NFFT+1)/2;X為復(fù)數(shù)時,Pxx的長度就是NFFT,如果NFFT沒有指定,則默認(rèn)是256或者比X長度大的2的N次冪Fs繪制功率譜曲線的采樣頻率,默認(rèn)值為1Pxx表示功率譜估計值F表示Pxx值所對應(yīng)的頻率點(diǎn)NOVERLAP指定分段重疊的樣本數(shù) ,如果NOVERLAP=L/2,則可得到重疊50%的Welch法平均周期圖
下面我們分別用fft和fwelch來求信號的功率譜。
clc;close all;clear all;
fs = 10e6;
N = 4000;
t = (0:N-1)/fs;
f0 = 1e5;
st = cos(2*pi*f0*t) + 1;
st_fft = fft(st);
psdx = abs(st_fft(1:end/2+1)).^2/fs/N; %功率譜密度為能量譜密度除以時間,摸值的平方即為能量譜
psdx(2:end) = 2*psdx(2:end); %乘2是因?yàn)閒ft結(jié)果是對稱的,在計算功率時需要把功率加回來;第一個點(diǎn)是0頻,這個點(diǎn)并不對稱
freq = linspace(0,fs/2,length(psdx));
[pxx,f] = pwelch(st,rectwin(N),32,N,fs);
figure;plot(freq,psdx);title('fft方法求功率譜密度');grid on
figure;plot(f,pxx);title('fwelch方法求功率譜密度');grid on


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
信號處理
+關(guān)注
關(guān)注
49文章
1135瀏覽量
104991 -
FFT
+關(guān)注
關(guān)注
15文章
456瀏覽量
62770 -
傅里葉
+關(guān)注
關(guān)注
0文章
61瀏覽量
21296
發(fā)布評論請先 登錄
相關(guān)推薦
熱點(diǎn)推薦
為什么LabVIEW的fft.vi和MATLAB的fft函數(shù)計算出來的結(jié)果不同?
LabVIEW的fft.vi和MATLAB的fft函數(shù)計算的結(jié)果有時相差很小,有時完全不同這是為什么?例如在MATLAB中x=[1 2 3
發(fā)表于 10-31 21:05
FPGA FFT核的仿真與Matlab仿真結(jié)果差異很大
有某試驗(yàn)數(shù)據(jù),用matlab求fft之后再求得的功率譜密度是這樣的:圖1但是用fft ip核,取
發(fā)表于 04-21 20:36
FFT功率譜問題
您好,抱歉我的英語不好。我可以在FFTBuffic中獲得FFT頻譜,但是不能得到FrimeSuffRealEdCurx()的功率譜。我的代碼有什么問題,或者程序參數(shù)錯誤嗎?我使用DSP
發(fā)表于 08-27 15:11
FFT和IFFT的Matlab實(shí)現(xiàn)
第28章 FFT和IFFT的Matlab實(shí)現(xiàn)(幅頻響應(yīng)和相頻響應(yīng))本章主要講解fft,ifft和fftshift在matlab上的實(shí)現(xiàn)。目錄第28章
發(fā)表于 08-17 07:48
FFT和IFFT的Matlab實(shí)現(xiàn)
第28章 FFT和IFFT的Matlab實(shí)現(xiàn)(幅頻響應(yīng)和相頻響應(yīng))本章主要講解fft,ifft和fftshift在matlab上的實(shí)現(xiàn)。目錄第28章
發(fā)表于 08-17 06:22
如何用Matlab去實(shí)現(xiàn)FFT函數(shù)和IFFT函數(shù)呢
Matlab的FFT函數(shù)和IFFT函數(shù)有什么用法嗎?如何用Matlab去實(shí)現(xiàn)FFT函數(shù)和IFFT函數(shù)呢?
發(fā)表于 11-18 07:05
基于MATLAB系統(tǒng)的信號FFT頻譜分析與顯示
基于MATLAB系統(tǒng)的信號FFT頻譜分析與顯示:給出一種用MATLAB系統(tǒng)實(shí)現(xiàn)信號頻譜分析與顯示的方法。MATLAB是具有很強(qiáng)的科學(xué)計算和圖形顯示界面的軟件系統(tǒng)。該法可對語音信號進(jìn)行基
發(fā)表于 02-08 12:38
?101次下載
利用FFT IP Core實(shí)現(xiàn)FFT算法
利用FFT IP Core實(shí)現(xiàn)FFT算法
摘要:結(jié)合工程實(shí)踐,介紹了一種利用FFT IP Core實(shí)現(xiàn)FFT的方法,設(shè)計能同時對兩路實(shí)數(shù)序列進(jìn)行256點(diǎn)
發(fā)表于 01-16 10:04
?8255次閱讀
Vivado中FFT IP核的使用教程
本文介紹了Vidado中FFT IP核的使用,具體內(nèi)容為:調(diào)用IP核>>配置界面介紹>>IP核端口介紹>>MATLAB生成測試數(shù)據(jù)>>測試verilogHDL>>TestBench仿真>>結(jié)果驗(yàn)證>>
如何區(qū)分Matlab中fft與fwelch 如何用fft求功率譜
評論