一、直接法
clear;clc;close all; %清除變數;清屏;關閉當前圖形視窗
fs=1000;
t=0:1/fs:1;
nfft=2048; %改變nfft的值可對比不同取樣值時的譜估計效果
%****************生成訊號、雜訊**************%
x1=cos(2*pi*40*t)+3*cos(2*pi*45*t);%訊號
x2=randn(size(t)); %雜訊
x3=x1+x2; %訊號+雜訊
[pxx,f]=periodogram(x3,window,nfft,fs); %直接法
plot(f,10*log10(pxx));title('直接法 nfft=2048');;
set(gca,'xlim',[1
120]); ;ylabel('am/db');
xlabel('frequency/hz');
二、間接法
fs=1000;% 取樣頻率
n=0:1/fs:1;% 產生含有雜訊的序列
x1=cos(2*pi*40*n)+3*cos(2*pi*45*n);%訊號
x2=randn(size(n)); %雜訊
x3=x1+x2; %訊號+雜訊
nfft=1024;
cxn=xcorr(x3);% 計算序列的自相關函式
cxk=fft(cxn);
pxx=abs(cxk);
index=0:round(nfft/2-1);
f=index*fs/nfft;
plot_pxx=10*log10(pxx(index+1));
figure (1)
plot(f,plot_pxx);
title('間接法 nfft=1024');ylabel('am/db');
set(gca,'xlim',[1
120]);
xlabel('frequency/hz');
三、bartlett法
clear;clc;close all; %清除變數;清屏;關閉當前圖形視窗
fs=1000;
t=0:1/fs:1;
nfft=1024;
%****************生成訊號、雜訊**************%
x1=cos(2*pi*40*t)+3*cos(2*pi*45*t);%訊號
x2=randn(size(t)); %雜訊
x3=x1+x2; %訊號+雜訊
window=hamming(512); %海明窗
noverlap=0; %資料無重疊
p=0.9; %置信概率
[pxx,pxxc]=psd(x3,nfft,fs,window,noverlap,p);
index=0:round(nfft/2-1);
k=index*fs/nfft;
plot_pxx=10*log10(pxx(index+1));
plot_pxxc=10*log10(pxxc(index+1));
figure(1)
plot(k,plot_pxx);title('bartlett法海明窗');;
set(gca,'xlim',[1
120]); ;ylabel('am/db');
xlabel('frequency/hz');
四、welch法
clear;clc;close all; %清除變數;清屏;關閉當前圖形視窗
fs=1000;
t=0:1/fs:1;
nfft=1024;
%****************生成訊號、雜訊**************%
x1=cos(2*pi*40*t)+3*cos(2*pi*45*t);%訊號
x2=randn(size(t)); %雜訊
x3=x1+x2; %訊號+雜訊
window=hamming(512); %海明窗
noverlap=128;
range='onesided'; %頻率間隔為[0 fs/2],只計算一半的頻
[pxx1,f]=pwelch(x3,window,noverlap,nfft,fs,range);
plot_pxx1=10*log10(pxx1);
figure(1);
plot(f,plot_pxx1);title('welch法海明窗');ylabel('am/db');
set(gca,'xlim',[1
120]); xlabel('frequency/hz');
一、週期圖法
clear;clc;close all;%清除變數;清屏;關閉當前圖形視窗
fs=2000; %取樣頻率
load chanel8xia2data.mat;
x1=chanel8xia2gray;
x2=chanel8xia2sti;
mlag=length(x1);
%****************求功率譜密度**************%
[pxx1,f]=periodogram(x1,window,length(x1),fs);%直接法
[pxx2,f]=periodogram(x2,window,length(x1),fs);
plot_pxx1=10*log10(pxx1);
plot_pxx2=10*log10(pxx2);
%****************顯示功率譜密度曲線**************%
figure(1);
plot(f,plot_pxx1,'b');
axis([0,100,-50,40]);grid on;
title('直接法 ');;
set(gca,'xlim',[1
100]);
ylabel('am/db');
hold on;
plot(f,plot_pxx2,'r');
axis([0,100,-50,40]);grid on;
title('直接法 ');
xlabel('frequency/hz');ylabel('am/db');
二、welch法
clear;clc;close all; %清除變數;清屏;關閉當前圖形視窗
fs=2000;
load chanel8xia2data.mat;
x1=chanel8xia2gray;
x2=chanel8xia2sti;
window1=hamming(1024); %海明窗
noverlap=256; %資料無重疊
range='onesided'; %頻率間隔為[0 fs/2],只計算一半的頻、
%****************求功率譜密度**************%
[pxx1,f]=pwelch(x1,window1,noverlap,length(x1),fs,range);
[pxx2,f]=pwelch(x2,window1,noverlap,length(x1),fs,range);
plot_pxx1=10*log10(pxx1);
plot_pxx2=10*log10(pxx2);
%****************顯示功率譜密度曲線**************%
figure(1);
plot(f,plot_pxx1,'b');
axis([0,100,-30,30]);grid on;
title('welch法海明窗');ylabel('am/db');
set(gca,'xlim',[1
100]);
hold on;
plot(f,plot_pxx2,'r');
title('welch法海明窗');ylabel('am/db');
xlabel('frequency/hz');
分析訊號質量用功率譜分析還是頻譜分析?
一 定義 功率譜密度 對於具有連續頻譜和有限平均功率的訊號或雜訊,表示其頻譜分量的單位頻寬功率的頻率函式。頻譜分析 對訊號進行傅利葉變換,用該方法對振動的訊號進行分解,並按頻率順序展開,使其成為頻率的函式,進而在頻率域中對訊號進行研究和處理的一種過程。隨機過程 stochastic process ...
頻譜分析儀和功率計Wipry pro
美國oscium2.4 2.5ghz頻譜分析儀和功率計wipry pro是一款用於2.4ghz 2.5ghz無線wifi網路測試的超可攜式裝置,可以與ipad,ipone,ipod touch通過lighting配套連線使用,具有頻譜分析和功率測量雙重功能,以直觀的面板顯示和報告可以幫助it網路管理...
python頻譜分析
import numpy as np import matplotlib.pyplot as pl sampling rate 8000 fft size 512 首先定義了兩個常數 sampling rate,fft size,分別表示數碼訊號的取樣頻率和fft的長度.由於快速離散傅利葉演算法的影...