功率譜分析

2021-08-08 19:36:45 字數 4230 閱讀 3104

一、直接法

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的長度.由於快速離散傅利葉演算法的影...