资源简介
含注释,参数模型功率谱估计AR模型自相关法仿真,原理来自《数字信号处理理论、算法与实现》第三版:P545-P547
代码片段和文件信息
%%%%%%%%%%%%%%%%%%%现代谱估计///自相关法%%%%%%%
clcclear
N=1024;
n=0:N-1;
fs=1;
x=cos(0.35*pi*n)+cos(0.4*pi*n)+0.25*cos(0.8*pi*n);
a=0.5;
noise = a*randn(size(x)); %加高斯白噪声的信号
y = x+ noise;
p=input(‘请输入AR模型的阶次(大于2):‘);
R_X=xcorr(yN-1‘biased‘);%xcorr(y‘biased‘);
rx0=R_X(1N); %相关系数
rx=R_X(1N+1:2*N-1);
g=zeros(1p); %误差功率
K=zeros(1p); %反射系数
a=zeros(pp); %模型系数(方阵)
g0=rx0; %初始条件最小误差功率
K(11)=-rx(11)/rx0;
a(11)=K(11);
g(11)=g0*(1-abs(a(11)^2));
for j=2:p
K(1j)=-(rx(1j)+sum(a(j-11:j-1).*rx(1j-1:-1:1)))/g(1j-1);
a(jj)=K(1j);
g(1j)=g(1j-1)*(1-K(1j)^2); %误差功率
for i=1:j-1
a(ji)=a(j-1i)+K(1j)*a(j-1j-i); %系数
end
end
%迭代结束,总结结果
Ar=a(p1:p); %AR模型系数(第p行所有的系数)
Ar=[1Ar]; %1*P+1矩阵
G=g(1p); %最小误差功率
F_Ar=abs(fft(ArN)); %系数的fft
p_ar=F_Ar.^2;
P_ar(1:)=G./p_ar(1:);
P_ar=10*log10(P_ar);
y2=P_ar(1:N/2);
f=0:1/N:0.5-1/N;
% y2=[P_ar(N/2+1:N)P_ar(1:N/2)];
% f=-0.5:1/N:0.5-1/N;
%nn=2*pi*f/pi/2;
subplot(211)
plot(fy2)
xlabel(‘频率‘);ylabel(‘功率谱P(dB)‘);
title([‘AR模型自相关法阶数数据长为1024,P=‘ int2str(p)] );
[y3fy]=pyulear(ypNfs);
subplot(212)
plot(fy10*log(y3))
xlabel(‘频率‘);ylabel(‘功率谱P(dB)‘);
title(‘matlab自带函数pyulear‘);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1490 2019-11-07 21:25 zixiangguan.m
相关资源
- Matlab最小二乘法曲线拟合(源码+注释
- 静音检测matlab程序
- 曲率尺度空间算法检测角点matlab
- 无人驾驶车辆换道优化matlab代码
- 模式识别大作业MATLAB版)
- matlab实现google pagerank算法
- matlabLZW编码
- MATLAB非线性灰度图像变换
- 高斯过程回归模型MATLAB代码
- 卡尔曼滤波视觉跟踪源代码及效果视
- 内弹道matlab程序
- 吊车系统 MATLAB仿真用两种方法分别实
- 量子优化算法源码 史上最强合集 m
- 抽值插值实验 matlab及实验报告
- MATLAB7.x数字信号处理
- 8x8点DCT变换matlab代码
- 聚集系数的简单MATLAB实现
- 高斯光束matlab仿真
- 7种复杂网络MATLAB经典算法
- 基于矢量量化的说话人识别系统
- MATLAB Z域传递函数伯德图绘制 S域伯德
- 基于离散型Hopfield神经网络识别手写数
- 图像预处理MATLAB代码
- MATLAB与数学建模.doc
- matlab打靶环数判定.rar
- 太阳能板matlab仿真
- Matlab中图例注释函数legend详解
- matlab实现FFT快速傅里叶变换
- Sobel、Roberts、Prewitt边缘检测代码 MA
- QPSK matlab 代码
评论
共有 条评论