資源簡介
程序中備注了 每一步的注釋。覺得好可以好評!用直接法(fft)和自帶函數(AR)估計功率譜 與 自己寫的AR過程推導估計做了對比 結果一致,代碼正確。
代碼片段和文件信息
clc
close?all
clear?all
?rng(1);%設置種子?產生固定白噪聲(詳見幫助文檔)
N=1024;%產生高斯白噪聲方法1
pee=2;%功率
e=wgn(1Npee);
pw=sum(abs(e).^2)/N;???%?驗證功率
mean=sum(e)/N;?????????%驗證均值
d=var(e);????????????????%驗證方差
%?%產生任意均值和方差白噪聲方法?2
%?%?rand函數產生的是幅值為[0,1]均勻分布的白噪聲,均值為1/2,方差為1/12
%?%?使用下面的公式可以產生指定均值和方差的均勻分布的白噪聲
%?v=2;%方差
%?m=0;%均值
%?white_noise?=??(rand(1N)?-?0.5?)?*?sqrt(?12?*?v?)?+?m;%給定均值與方差的白噪聲
%?mea=mean(white_noise);
%?va=var(white_noise);
%?Q=sum(abs(white_noise).^2)/N;
[ba]=cheby2(1080[380?400]/750‘bandpass‘);%濾波器
[HH2W22]=freqz(ba);
x=filter(bae);%AR建模產生樣本信號x(n)
figure(1)
plot(W22/pi10*log10(abs(HH2)));
title(‘窄帶濾波器幅頻響應‘);
xlabel(‘角頻率?(x?\pi)‘);
ylabel(‘幅度(db)‘);
figure(2)
subplot(121)
plot(1:Ne);
title(‘方差為2的1024點高斯白噪聲‘)
xlabel(‘個數‘);
ylabel(‘幅度(db)‘);
subplot(122)
plot(1:Nx);
title(‘AR建模產生信號x(n)‘)
xlabel(‘個數‘);
ylabel(‘幅度(db)‘);
x1=fft(x);%直接法估計
x11=abs(x1).^2;
x111=10*log10((x11)/N);
N1=length(x111);
pow=0;
for?ii=1:length(x)
????pow=pow+(abs(x(ii))).^2;
end
pow111=pow/length(x);
pow1111=10*log10(pow111);%信號功率(時域)
%AR模型估計功率譜
%點數為1024,假設pe為300
r=zeros(1N);
M=500;%M>>pe??M?的選擇參見書130
pe=300;
評論
共有 條評論