1. 程式人生 > >用Burg法估計AR模型的引數原理詳解及matlab實現

用Burg法估計AR模型的引數原理詳解及matlab實現

用Burg法估計AR模型的引數。

藉助如圖所示的格型預測誤差濾波器,伯格法通過求出前向預測誤差和後向預測誤差的平均功率來選取最佳的反射係數k,使誤差的平均功率取得最小值,進而通過反饋求出模型係數和噪聲方差,該演算法可直接通過分析觀測資料得到需要的模型引數,而不用取求解計算量較大自相關函式,


burg法的實現原理


其實AR模型用來估計功率譜是很好用的,比傳統的Welch演算法好很多,矩形性很好,用來估計訊號的矩形等效頻寬效果很好

用Burg法估計AR模型的引數的流程圖

matlab程式碼為:CSDN中沒有matlab專屬的,為了好看就這樣貼程式碼了,哼~~~~~~~~~~~~~

function [psdviaBurg, f, p] = Burg(x, Fs, varargin)
%MYBURG      根據burg演算法實現的AR模型功率譜計算
% psdviaBurg 根據burg演算法求出的功率譜值
% f          頻率軸引數
% p          模型階次
% x          輸出訊號
% Fs         取樣率
% varargin   若為數值型,則為AR模型階次
%            若為字串,則為定階準則,AR模型階次由程式確定
%
% 解析輸入引數內容
if strcmp(class(varargin{1}), 'double')
    p = varargin{1};
elseif ischar(varargin{1})
    criterion = varargin{1};
else
    error('引數2必須為數值型或者字串');
end
x = x(:);
N = length(x);
% 模型引數求解
if exist('p', 'var') % p變數是否存在,存在則不需要定階,直接使用p階
    [a, E] = computeARpara(x, p);
else % p不存在,需要定階,定階準則即criterion
    p = ceil(N/3); % 階次一般不超過訊號長度的1/3
    
    % 計算1到p階的誤差
    [a, E] = computeARpara(x, p);
    
    % 根據誤差求解目標函式最小值
    kc = 1:p + 1;
    switch criterion
        case 'FPE'
            goalF = E.*(N + (kc + 1))./(N - (kc + 1));
        case 'AIC'
            goalF = N.*log(E) + 2.*kc;
    end
    [minF, p] = min(goalF); % p就是目標函式最小的位置,也即定階準則給出的階次
    
    % 使用p階重新求解AR模型引數
    [a, E] = computeARpara(x, p);
end
[h, f] = freqz(1, a, 20e5, Fs);
psdviaBurg = E(end)*abs(h).^2./Fs;
psdviaBurg=psdviaBurg/abs(max(psdviaBurg));
psdviaBurg=(10*log10(abs(psdviaBurg)));

還缺個函式,就是根據給定的資料來計算AR模型的引數和誤差,並最小化誤差,這個包含了AR模型的核心的演算法

function [a, E] = computeARpara(x, p)
% 根據訊號序列x和階次p計算AR模型引數和誤差
N = length(x);
% 初始值
ef = x; % 前向預測誤差
eb = x; % 後向預測誤差
a  = 1; % 初始模型引數
E  = x'*x/N; % 初始誤差
k  = zeros(1, p); % 為反射係數預分配空間,提高迴圈速度
E  = [E k]; % 為誤差預分配空間,提高速度
for m = 1:p
    % 根據burg演算法步驟,首先計算m階的反射係數
    efm = ef(2:end); % 前一階次的前向預測誤差
    ebm = eb(1:end - 1); % 前一階次的後向預測誤差
    num = -2.*ebm'*efm;  % 反射係數的分子項
    den = efm'*efm + ebm'*ebm; % 反射係數的分母項
    k(m) = num./den; % 當前階次的反射係數
    
    % 更新前後向預測誤差
    ef = efm + k(m)*ebm;
    eb = ebm + conj(k(m))*efm;
    
    % 更新模型係數a
    a = [a; 0] + k(m)*[0; conj(flipud(a))];
    
    % 當前階次的誤差功率
    E(m + 1) = (1 - conj(k(m))*k(m))*E(m);
end

相關推薦

Burg估計AR模型引數原理matlab實現

用Burg法估計AR模型的引數。藉助如圖所示的格型預測誤差濾波器,伯格法通過求出前向預測誤差和後向預測誤差的平均功率來選取最佳的反射係數k,使誤差的平均功率取得最小值,進而通過反饋求出模型係數和噪聲方差,該演算法可直接通過分析觀測資料得到需要的模型引數,而不用取求解計算量較大

短波通道模型--多徑瑞利通道原理matlab實現

        瑞利衰落是一種小尺度衰落效應,它總是疊加於大尺度衰落效應上如衰減、陰影等。發射端和接收端相對運動速度的大小決定了通道衰落的快慢。相對運對導致接收訊號存在多普勒頻移,即通道衰落的快慢與多普勒頻移的大小有關。        基於頻率單調衰落的基帶等效Jakes模型

基於DCT變換(變換域)實現資訊隱藏(數字水印)原理matlab實現

主要就是實現了數字水印的嵌入提取和在不同攻擊如旋轉剪下噪聲等下的提取效果差異的比對1 DCT變換的原理2  DCT變換的特點    在基於DCT的變換編碼中,影象是先經分塊(8×8或16×16)後再經DCT,這種變換是區域性的,只反映了影象某一部分的資訊。當然也可以對整幅影象

hog特徵原理matlab程式碼學習筆記

1、HOG特徵:        方向梯度直方圖(Histogram of Oriented Gradient, HOG)特徵是一種在計算機視覺和影象處理中用來進行物體檢測的特徵描述子。它通過計算和統計影象區域性區域的梯度方向直方圖來構成特徵。Hog特徵結合SVM分類器已

紅黑樹原理golang實現

目錄 紅黑樹原理詳解及golang實現 二叉查詢樹 性質 紅黑樹 性質 operation 紅黑樹的插入 g

Q-Q圖原理Python實現

【導讀】在之前的《資料探勘概念與技術 第2章》的文章中我們介紹了Q-Q圖的概念,並且通過呼叫現成的python函式, 畫出了Q-Q圖, 驗證了Q-Q圖的兩個主要作用,1. 檢驗一列資料是否符合正態分佈 2. 檢驗兩列資料是否符合同一分佈。本篇文章將更加全面的為大家介紹QQ圖的原理以及自己手寫函式實現畫圖過程

epoll原理epoll反應堆模型

  設想一個場景:有100萬用戶同時與一個程序保持著TCP連線,而每一時刻只有幾十個或幾百個TCP連線是活躍的(接收TCP包),也就是說在每一時刻程序只需要處理這100萬連線中的一小部分連線。那麼,如何才能高效的處理這種場景呢?程序是否在每次詢問作業系統收集有事件發生的TCP連線時,把這

Java資料結構和算系列3--ThreadLocal類原理

1.ThreadLocal介紹 Java實現多執行緒的2種方式,繼承Thread類和實現Runnable介面。今天我們介紹下另外一種常用的多執行緒類ThreadLocal類。 ThreadLocal在維護變數時,為每個使用變數的執行緒提供了獨立的副本,所以每

隱馬爾科夫模型(HMM)原理

  隱馬爾可夫模型(Hidden Markov Model,HMM)是可用於標註問題的統計學習模型,描述由隱藏的馬爾可夫鏈隨機生成觀測序列的過程,屬於生成模型。HMM在語音識別、自然語言處理、生物資訊、模式識別等領域都有著廣泛的應用。 一、 HMM模型的定義     HMM模型是關於時序的概率模型,描述由一個

STP原理SMTP案例分析

stp smtp STP工作原理:MSTP案例分析 一、 STP概述:邏輯上斷開環路,防止廣播風暴的產生 ,當線路故障阻塞接口被激活,恢復通信,起到備份線路的作用。二、STP工作原理 確定交換機角色: 根交換機———在一個VLAN中,有且只有一個根交換機。2.非根交換機——除了跟交換機意外,其

RIP概述、原理實驗驗證

RIP 路由 RIP路由協議 一.路由類型: 直連路由——設備直連的網絡默認路由靜態路由——管理員手動配置的路由動態路由(IGP)internal gateway protocol1.DV—距離矢量路由協議——RIP IGRP EIGRP2.LS—鏈路狀態路由協議——ISIS OSPF 二.RI

nfs原理配置

1.0 而是 size 應用程序 roc alt 掛載文件系統 客戶 接受 簡介 工作原理 配置 簡介 NFS(Network File System)即網絡文件系統,它允許網絡中的計算機之間通過網絡共享資源。將NFS主機分享的目錄,掛載到本地客戶端當中,

CSRF 漏洞原理防禦方法

隨機 讀取 跨站 管理員 right 較差 網站 關鍵字 關心 跨站請求偽造:攻擊者可以劫持其他用戶進行的一些請求,利用用戶身份進行惡意操作。 例如:請求http://x.com/del.php?id=1 是一個刪除ID為1的賬號,但是只有管理員才可以操作,如果攻擊者把這個

PCA SVD原理應用

本文分為兩大部分即PCA和SVD,每一部分下又分為原理和應用兩小部分 說明:本文程式碼參考Peter Harrington編寫的Machine Learning in Action,感興趣的小夥伴可以去看一下,筆者認為這本書還不錯 注意:本篇重在說明公式推導,關於具體使用的話python有專

跨站請求偽造(CSRF) 漏洞原理防禦方法

注:轉載請註明出自:https://blog.csdn.net/qq_36711453/article/details/83714380 跨站請求偽造:攻擊者可以劫持其他使用者進行的一些請求,利用使用者身份進行惡意操作。 例如:請求http://x.com/del.php?id=1 是一個刪

[tensorflow 應用之路]Batch Normalization 原理應用方法

批正則化(Batch Normalize,BN)是2015年由Sergey Ioffe提出的方法,用於消除神經網路上一層不同分佈的輸入導致本層引數更新困難。由於各個層的卷積核引數不同,根據反向傳播法則我們知道,∣∣W∣∣||W||∣∣W∣∣及結果∣∣h∣∣||h

跨站請求偽造(CSRF 漏洞原理防禦方法

跨站請求偽造:攻擊者可以劫持其他使用者進行的一些請求,利用使用者身份進行惡意操作。 例如:請求http://x.com/del.php?id=1 是一個刪除ID為1的賬號,但是隻有管理員才可以操作,如果攻擊者把這個頁面巢狀到其他網站中<img src= “http:

奇異值分解(SVD)原理推導

 轉載請宣告出處http://blog.csdn.net/zhongkejingwang/article/details/43053513     在網上看到有很多文章介紹SVD的,講的也都不錯,但是感覺還是有需要補充的,特別是關於矩陣和對映之間的對應關係。前段時間看了國外

10. LCD驅動程式 ——框架分析 第017課 LCD原理裸機程式分析 15.linux-LCD層次分析()

引言: 由LCD的硬體原理及操作(可參看韋哥部落格:第017課 LCD原理詳解及裸機程式分析) 我們知道只要LCD控制器的相關暫存器正確配置好,就可以在LCD面板上顯示framebuffer中的內容。 若應用程式需要在LCD螢幕上顯示文字或影象時,只需要把相應的顯示內容以正確的格式寫到Framebuff

Tomcat負載均衡原理配置

結構圖 使用Tomcat的童鞋們注意了。為了增加tomcat的效能和穩定性,我們一般採用balance和session同步機制。 下圖列出了我們常用也是最簡單的解決方案。 說明 1 balance 1.1 mod_proxy方式   mod_proxy是一種分工合作的的形式,通過主伺服器跳轉到各臺主