⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 burg.m

📁 burg 的matlab程序
💻 M
字号:
clear

% N = 512;
% IP = 12;
% 
% t = 0:(N-1);
% fan1 = 0; fan2 = 0;
% fs = 100; %%%
% f1 = 0.2*fs;
% f2 = 0.25*fs;
% 
% x = sin(2*pi*f1/fs*t + fan1) + sin(2*pi*f2/fs*t + fan2);
% y = awgn(x,6);
% %  figure,plot(x); 
% %  figure,plot(y);
% x = y;


 x = [1,2,3,4,5];   %%%%% 做题
 N = length(x);
 IP =  2;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% burg递推法

ef(0+1,:) = x;
eb(0+1,:) = x;
rou(0+1) = sum(x.^2)/N;  %% p0

p = 0;     %%%%%% 书上是从p=1开始

while p < IP   
    
    p = p + 1;
    
    use1 = ef(p,(p+1):N);
    use2 = eb(p,p:(N-1));
    k(p) = -2*sum(use1.*use2)/sum(use1.^2 + use2.^2);
    
    a(p,p) = k(p);
    rou(p+1) = (1 - k(p)^2)*rou(p-1+1);
    
%     rou2(p) = sum(use1.^2 + use2.^2)/(2*(N-p));   %%%%% 做题
%     rou3(p) = sum(use1.^2 + use2.^2)/2;
    
    for i = 1 : p-1
        a(p,i) = a(p-1,i) + k(p)*a(p-1,p-i);        
    end
    
%     ef(p+1,p+1:N) = ef(p-1+1,p+1:N) + k(p)*eb(p-1+1,p:N-1);     %% p+1 : N
%     eb(p+1,p+1:N) = eb(p-1+1,p:N-1) + k(p)*ef(p-1+1,p+1:N);     %% p+1 : N
    
    ef(p+1,p+2:N) = ef(p-1+1,p+2:N) + k(p)*eb(p-1+1,p+1:N-1);     %% p+2 : N
    eb(p+1,p+1:N-1) = eb(p-1+1,p:N-2) + k(p)*ef(p-1+1,p+1:N-1);   %% p+1 : N-1
    
end

% p = p + 1;      %%%%% 做题
% use1 = ef(p,(p+1):N);
% use2 = eb(p,p:(N-1));
% rou2(p) = sum(use1.^2 + use2.^2)/(2*(N-p));
% rou3(p) = sum(use1.^2 + use2.^2)/2;
 
a    %% 显示系数
[ef,eb]   %% 显示前向、后向预测误差(中间结果)
test = [rou;rou2;(rou - rou2)*100./rou;rou3]   %% 对比中间结果 %%%%% 做题


% test(:,3:6)*100
% a = [0.3678, 0.4612];
% b = [0.1439, 0.2365];
% 
% sum(a.^2 + b.^2)/2


% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %% 画频谱图
% p = IP;
% 
% M = 512;  %% 计算M点频谱
% t = 0:(M-1);
% 
% w = 2*pi*t/M;
% 
% for n = 1:M
%     temp = 0;
%     for i = 1:p
%         temp = temp + a(p,i)*exp(-w(n)*i*j);
%     end
%     yy(n) = rou(p+1)/abs(1+temp)^2;
% end
% 
% figure,plot([0:M-1]*2*pi/M - pi,fftshift(10*log10(yy)));
% title('burg法(dB)');
% 
% 
% % figure,plot([0:M-1]*20/M - 10,fftshift(10*log10(yy)));
% % grid on;
% % title('burg法(dB)');



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -