ar模型演算法
❶ 學習ar技術的方法
1、對於沒有代碼基礎的設計師、產品經理或者藝術行業從業者等想從事AR/VR行業,建議可以學習Adobe Aero、蘋果的Reality Composer等來快速製作AR內容。
2、對於有編程基礎的Unity開發者,推薦直接使用AR Foundation、Vuforia、EasyAR、HoloLens來進行開發。
3、對於有編程基礎的原生開發者(Android or iOS),可以使用ARKit和ARCore來進行開發。
4、對於有一些語言基礎的計算機專業學生,推薦直接學習C#、Unity開發,然後使用AR Foundation、Vuforia等快速開發出AR應用;或者有Swift或者Java基礎的,直接使用Apple 的ARkit或Android 的ARCore進行開發,快速上手實現AR應用。
5、對於沒有編程基礎的大一二計算機相關學生,想要快速開發出AR應用,學習路線是掌握C#語言,然後學習Unity的一些基礎編輯操作,之後使用封裝好的AR Foundation、Vuforia等快速上手開發一個AR應用。
❷ AR模型譜估計方法的缺點
在實際應用時,發現AR模型在譜估計中存在一些缺點,如虛假譜峰,譜線分裂,譜峰位置受相位影響,雜訊使譜估計惡化等等。有些缺點和模型的自身有關,有些則和採用的求解模型參數的方法有關,人們相應地提出了一些改善措施。
虛假譜峰:如果自相關函數的采樣值或反射系數值的估計沒有誤差,那麼AR(p)模型參數的估計在理論上應該為
地球物理信息處理基礎
式中:api是AR(p)模型的精確參數值;
譜線分裂:若所估計的隨機過程是由一個正弦信號和雜訊疊加構成的,那麼會觀察到:AR譜估計中譜峰出現的位置與正弦信號的初相位有著很密切的關系。而對於某些演算法,還會觀察到AR譜估計中存在著兩個靠得很近的譜峰,似乎在隨機過程中還存在著另一個正弦信號。這一現象稱為譜線分裂。譜峰位置對相位的依賴性隨數據記錄長度的增加而減小。對於不同的AR譜估計方法,這種相位依賴性的大小是不同的。例如,前向和後向預測誤差方法對相位依賴性最小,而Burg演算法得到的譜估計,其譜峰位置的移動有可能大到原位置的16%。
雜訊影響:AR譜估計方法易受觀測雜訊的影響,雜訊會使譜峰展寬,導致解析度下降,而且還會使功率譜峰偏離正確位置。發現,對於白雜訊中含有兩個幅度相等的正弦信號所構成的過程,AR譜估計的解析度隨信噪比(SNR)的下降而下降。在信噪比低的情況下,AR譜估計已經不再優於周期圖。解析度下降的原因,是AR譜估計中所假設的全極點模型,在有觀測雜訊的情況下,已經不再適合。設x(n)是一個p階AR過程,它被觀測雜訊w(n)污染。這樣,我們擬合一AR(p)過程實際所用的數據已不是x(n)而是y(n)=x(n)+w(n)。如果w(n)是方差為
地球物理信息處理基礎
式中
❸ MATLAB AR模型 以計算出系數,怎麼做預測呢
按照線性預測中AR模型的定義,和lpc中引入的LD演算法:
可知向量a的第一個元素肯定為1.
y_21=-(y_20*a(2)+y_19*a(3)+y_18*a(4));即可預測得到第21位數。
❹ 確定AR模型的階數
通常事先並不知道AR模型的階數。階數選得太低,功率譜受到的平滑太大,如圖4-4(c)所示,真實譜(左邊)是兩個實正弦信號的譜峰和雜訊的譜,平滑後的譜已經分辨不出真實譜中的兩個峰了。階數選得太高,固然會提高譜估計的解析度,但同時又會產生譜的虛假細節或虛假譜峰,如圖4-4(d)所示,由於AR模型的階數選得太高,極點太多,因而出現了許多虛假譜峰。所以,應適當選擇AR(k)模型的階數,使k≥p,但不能太大。
當選擇k>p時,如果自相關函數的估計是精確的,那麼AR(k)模型參數的估計為
地球物理信息處理基礎
圖4-4
(a)真實功率譜;(b)階數選得恰當;(c)階數選得太低;(d)階數選得太高
式中ap,i是模型參數的精確值。這樣,用AR(k)模型能夠得到AR(p)過程的精確譜估計(k>p)。但實際上自相關函數估計是有誤差的,因而不可避免地會在譜估計中引入虛假細節或虛假譜峰。那麼AR模型的階數究竟選得高一些好還是低一些好呢?這主要應從譜估計的質量來考慮。例如,要估計一個寬頻AR過程的功率譜時,模型的階數選低一些固然會使真實譜受到一定程度的平滑,但與選擇過高的階數引起虛假譜峰相比,前者能使人更容易接受一些。採用AR模型譜估計方法,既要估計AR模型參數,又要估計模型的階數,在這樣復雜的情況下,如何評價各種譜估計的性能,目前尚無定論。一種簡單而直觀的確定AR模型階數的方法,是不斷增加模型的階數,同時觀察預測誤差功率,當其下降到最小時,對應的階數便可選定為模型的階數。但是預測誤差功率(或AR模型激勵源的方差
除上述一般方法外,還有以下幾種不同的誤差准則作為確定模型階數的依據。
(1)最終預測誤差(FPE)准則(Final Prediction Error Criterion)
FPE是日本學者赤池(Akaike H)提出的判別准則,採用估計均方誤差來判別,即預測誤差濾波器輸出的均方值
地球物理信息處理基礎
它是AR(k)過程中不可預測(新息)部分的功率與AR參數估計不精確產生的誤差功率之和。上式中N是采樣點數,括弧內的數值隨著k的增大(趨近於N)而增加,這說明預測誤差功率估計的不精確性在增加。由於
(2)Akaike資訊理論准則(AIC)(Akaike Information Criterion)
這是利用最大似然法推出的一個准則。對於高斯分布ARMA(p,q)過程,AIC定義為
地球物理信息處理基礎
式中
對AR或MA過程,AIC定義為
地球物理信息處理基礎
式中 i 是假設的 AR 或 MA 模型的階數。顯然,無論對於式(4-57)還是式(4-58),AIC都有一個最小值,它所對應的階數就是要選擇的階數。
圖4-5 AIC與模型階的關系(N=100)
例如,有一AR(2)過程,差分方程為 x(n)=1.34x(n-1)-0.9025x(n-2)+w(n),設用Burg演算法(將在Burg法中介紹)估計AR參數,於是有
地球物理信息處理基礎
注意,由於
可以證明,N→∞時FPE和AIC等效。AIC不是一致估計,即當N→∞時,誤差概率不趨於零。因此,建議在處理短數據記錄時採用AIC。
(3)自回歸傳輸函數(CAT)判別准則(Criterion Autoregressive Transfer Function)
這一準則是由Parzen在1976年提出的,定義為
地球物理信息處理基礎
式中
用FPE、AIC和CAT估計AR模型的階數,所得到的譜估計結果常常沒有多大區別,特別是應用於實際數據而不是模擬AR過程數據時更是如此。同時還發現,對於短數據段,以上准則都不理想。在實際運用這些准則時,還應該參照實驗結果對模型的階數加以適當調整。估計階數的上界與觀測樣本的長度之間的關系為:估計階數上界約為N/2 或N/3 或N1/2。
❺ ar2的yule walker模型
function ARMODEL() Fs = 1000; t = 0:1/Fs:15; N = size(t,2) %數據樣值點數 randn('state',0); x = cos(2*pi*t*200) + randn(1,N); % 200Hz cosine plus noise %計算N個取樣數據的取樣數據自相關函數 rxx = zeros(1,N); %保存取樣數據自相關函數的變數 for m = 0:N-1 sum = 0; for n= 1:N-m temp1 = x(n)*x(m+n); sum = sum + temp1; end rxx(m+1) = sum/N; end %採用Levison-Durbin演算法求解AR模型的Yule-Walker模型 %需要確定AR模型理論公式中的參數:白雜訊w(n)的方差、方程系數a1……ap(這里包括了模型的階次) PMAX = 100; %設定AR模型最高階次 atemp1 = zeros(1,PMAX+1); %保存方程系數的中間變數 atemp2 = zeros(1,PMAX+1); %保存方程系數的中間變數 deviationtemp1 = zeros; %保存白雜訊w(n)方差的中間變數 deviationtemp2 = zeros; %保存白雜訊w(n)方差的中間變數 %AR(1)模型:x(n) + a1*x(n-1) = w(n) %其Yule-Walker方程: R(0)*1 + R(1)*a1 = deviation1; % R(1)*1 + R(0)*a1 = 0; %求解方程確定a1、deviation1 atemp1(1) = 1; atemp1(2) = -rxx(2)/rxx(1); atemp2 = atemp1; deviationtemp1 = ( rxx(1)*rxx(1) - rxx(2)*rxx(2) )/rxx(1); deviationtemp2 = deviationtemp1; %利用Levison-Durbin迭代演算法計算AR模型參數 %根據FPE准則、AIC准則和BIC准則確定AR模型的階次 %atemp1、deviation1保存第k次的運算結果 %atemp2、deviation2保存第k+1次的運算結果 FPE(1) = deviationtemp1*(N+2)/N; AIC(1) = log(deviationtemp1) + 2/N; BIC(1) = log(deviationtemp1) + log(N)/N; veriance(1) = deviationtemp1; criteria = 3 for P = 2:PMAX sum1 = 0; sum2 = 0; for i = 2:(P+1) sum1 = atemp1(i)*rxx(i) + sum1; end for i = 1:(P+1) sum2 = atemp1(i)*rxx(P+2-i) + sum2; end deviationtemp1 = rxx(1) + sum1; dk = sum2; ref(P) = dk/deviationtemp1; deviationtemp2 = ( 1 - ref(P)*ref(P) )*deviationtemp1; for i = 2:(P+1) atemp2(i) = atemp1(i) - ref(P)*atemp1(P+2-i); end %計算AR(P)模型參數 atemp1 = atemp2; veriance(P) = deviationtemp2
❻ AR技術是什麼呢,有人了解嗎
AR技術是增強現實是利用計算機生成一種逼真的視、聽、力、觸和動等感覺的虛擬環境,通過各種感測設備使用戶沉浸在該環境中,實現用戶和環境直接進行自然交互。燧光XIMMERSE這個公司在AR交互技術領域是很有話語權的,他們的技術團隊成員均由全球頂尖演算法科學家及工程師組成∞
❼ matlab提示 function [psdviaBurg, f, p] = myBurg(x, Fs, varargin) | Error: Function definitions
1、將下面函數復制保存為myBurg.m文件。就可以計算。預測誤差E 、系數a 、誤差功率psdviaBurg
function [psdviaBurg, f, p,a,E] = myBurg(x, Fs, varargin)
%MYBURG 根據burg演算法實現的AR模型功率譜計算
% psdviaBurg 根據burg演算法求出的功率譜值
% f 頻率軸參數
% p 模型階次
% a AR模型參數
%E AR模型誤差
% x 輸出信號
% Fs 采樣率
% varargin 若為數值型,則為AR模型階次
% 若為字元串,則為定階准則,AR模型階次由程序確定
%
% $Author: lskyp
% $Date: 2010.6.26
% 解析輸入參數內容
error(nargchk(3, 3, nargin)); % 該函數的輸入必須為三個個
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, [], Fs);
psdviaBurg = E(end)*abs(h).^2./Fs;
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
2、例如:
參考論壇中的例子。
randn('state', 1);
x = randn(100, 1);
y = filter(1, [1 1/2 1/3 1/4 1/5], x);
pburg(y, 4, [], 1000);
[psd, f, p,a,E] = myBurg(y, 1000, 'FPE');
figure;
a,E
plot(f, 10*log10(psd));
結果:圖還是一樣,就補貼出來了。
a =
1.0000
0.3116
0.3647
0.2086
0.2088
0.0425
E =
1.0224 0.9859 0.9167 0.8989 0.8644 0.8629