【信號(hào)去噪】基于卡爾曼濾波實(shí)現(xiàn)信號(hào)去噪附matlab代碼
【信號(hào)去噪】基于卡爾曼濾波實(shí)現(xiàn)信號(hào)去噪附matlab代碼
TT_Matlab
博主簡(jiǎn)介:擅長(zhǎng)智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)、信號(hào)處理、元胞自動(dòng)機(jī)、圖像處理、路徑規(guī)劃、無(wú)人機(jī)等多種領(lǐng)域的Matlab仿真,完整matlab代碼或者程序定制加qq1575304183。
1 內(nèi)容介紹
1.1 卡爾曼濾波理論的背景及意義
信號(hào)是信息的載體。一般可以分為兩類,分別為確定性信號(hào)與隨機(jī)信號(hào)。服從 某種固定函數(shù)的關(guān)系的信號(hào),就是確定性信號(hào),它的變化是遵循一定規(guī)律的,具有 確定的頻譜特性,比如說(shuō)正余弦信號(hào)、階躍信號(hào)、脈寬固定的矩形脈沖信號(hào)等。若 信號(hào)在每個(gè)時(shí)刻的取值是隨機(jī)變量,則稱之為隨機(jī)信號(hào),它不能表示為一個(gè)確定的 時(shí)間函數(shù)或空間函數(shù)。這種信號(hào)即使在初始條件和環(huán)境條件相同的情況下,每次信 號(hào)的實(shí)現(xiàn)結(jié)果也不一樣,比如說(shuō)海浪、陀螺漂移、慣性導(dǎo)航系統(tǒng)的導(dǎo)航誤差、全球 定位系統(tǒng) (Global Position System, GPS) 的選擇可用性 (Selective Availability, SA) 誤差 等,盡管隨機(jī)信號(hào)沒(méi)有確定的頻譜特性,但是在實(shí)際應(yīng)用中,可以利用它的統(tǒng)計(jì)特 性來(lái)進(jìn)行計(jì)算,即隨機(jī)信號(hào)具有確定的功率譜 [1]1-5 。 在信號(hào)采集與傳輸?shù)倪^(guò)程中,必然會(huì)受到周圍環(huán)境與內(nèi)部噪聲的干擾,所以我 們就要對(duì)信號(hào)進(jìn)行正確的處理,排除干擾的影響,盡量獲取的是所需的信號(hào),這就 需要對(duì)接收信號(hào)進(jìn)行濾波。濾波,就是從含噪的觀測(cè)數(shù)據(jù)中提取信號(hào)的過(guò)程。根據(jù) 信號(hào)的特征不同,使用的濾波方法也不一樣。對(duì)于確定性信號(hào)來(lái)說(shuō),由于其頻譜特 性是確定的,就可以根據(jù)各信號(hào)在頻帶上的不同分布,設(shè)置與其頻率特性相對(duì)應(yīng)的 濾波器,如高通濾波器、帶通濾波器、低通濾波器及帶阻濾波器等,使所需的有用 信號(hào)無(wú)衰減地通過(guò),而抑制干擾信號(hào)。這類濾波器可以用硬件方法來(lái)實(shí)現(xiàn),即我們 通常所說(shuō)的模擬濾波器,也可以用軟件方法來(lái)實(shí)現(xiàn),即數(shù)字濾波器。對(duì)確定性信號(hào) 進(jìn)行的濾波我們通常將之稱為常規(guī)濾波。 隨機(jī)信號(hào)的頻譜特性雖然不確定,但其功率譜特性是一定的,設(shè)計(jì)濾波器可依 據(jù)所需有用信號(hào)和干擾信號(hào)的功率譜來(lái)進(jìn)行。美國(guó)學(xué)者維納 (N.Wiener) 等人提出了 Wiener 濾波,通過(guò)對(duì)功率譜分解來(lái)設(shè)計(jì)濾波器,與常規(guī)濾波相似的是要對(duì)信號(hào)做抑 制和選通處理 [2,3] 。在頻域?qū)π盘?hào)進(jìn)行 Wiener 濾波器的設(shè)計(jì)時(shí),要求解維納 - 霍普方 程,計(jì)算量很大,并且還需要大量的存儲(chǔ)空間,在一定程度上妨礙了 Wiener 濾波的 廣泛應(yīng)用。 1960 年卡爾曼 (R.E.Kalman) 發(fā)表了對(duì)于離散數(shù)據(jù)利用遞歸方法來(lái)解決其線性濾 波問(wèn)題的論文 [4] 。在這篇文章里,提出了卡爾曼濾波 (Kalman Filter) ,一種新的且克 服了 Wiener 濾波缺點(diǎn)的濾波方法??柭陔S機(jī)估計(jì)理論中引入了狀態(tài)空間的概念, 將信號(hào)看做是白噪聲激勵(lì)下的一個(gè)線性系統(tǒng)的輸出,這種輸入 - 輸出關(guān)系通過(guò)狀態(tài)方 程的形式來(lái)描述,濾波算法是在估計(jì)過(guò)程中利用系統(tǒng)狀態(tài)方程、觀測(cè)方程、系統(tǒng)噪聲和觀測(cè)噪聲的統(tǒng)計(jì)特性形成的,因?yàn)樗玫男盘?hào)信息都是時(shí)域的,所以不僅可以 估計(jì)一維的平穩(wěn)的隨機(jī)過(guò)程,也可以估計(jì)多維的、非平穩(wěn)隨機(jī)過(guò)程。這就克服了在 頻域內(nèi) Wiener 濾波設(shè)計(jì)時(shí)遇到的種種限制,適用范圍比較廣泛。 Kalman 濾波的理論基礎(chǔ)就是估計(jì)問(wèn)題。從信號(hào)處理觀點(diǎn)看,估計(jì)問(wèn)題講的是如 何從受噪聲污染的觀測(cè)量中恢復(fù)信號(hào)或逼近信號(hào)或推出一組參數(shù)值的問(wèn)題。在數(shù)學(xué) 上,估計(jì)問(wèn)題屬于統(tǒng)計(jì)學(xué)的范疇。在估計(jì)問(wèn)題中,觀測(cè)空間是唯一的信息源,只有 觀測(cè)值才能提供估計(jì)所需要的信息 [5]17-24 。可問(wèn)題在于這些觀測(cè)值中含有誤差。傳播 誤差、設(shè)備誤差、計(jì)算誤差以及人為誤差等都是產(chǎn)生這些誤差的主要來(lái)源 [6] 。在估 計(jì)問(wèn)題中,誤主要指隨機(jī)誤差。因此,將估計(jì)問(wèn)題可以歸納為:在給定觀測(cè)值 z 情
2 仿真代碼
addpath(’./filters’);
addpath(’./IP_raytracing’);
%% 模擬一條運(yùn)動(dòng)軌跡,然后加上高斯觀察噪聲,作為觀測(cè)位置軌跡。然后使用卡爾曼濾波得到濾波后的結(jié)果。
% 速度為均值0.6m標(biāo)準(zhǔn)差0.05的高斯分布
% 觀測(cè)噪聲標(biāo)準(zhǔn)差為2
%% 畫(huà)出實(shí)際的真實(shí)路徑
roomLength = 1000;
roomWidth = 1000;
t = 500;
trace_real = get_random_trace(roomLength, roomWidth, t);
figure;
subplot(1, 3, 1); plot(trace_real(:, 1), trace_real(:, 2), ’.’);
title(’實(shí)際的真實(shí)路徑’);
%% 有觀測(cè)噪聲時(shí)的路徑
noise = 2; %2m的位置波動(dòng)噪聲
trace = trace_real + normrnd(0, noise, size(trace_real));
subplot(1, 3, 2); plot(trace(:, 1), trace(:, 2), ’.’);
title(’有噪聲時(shí)的路徑’);
fprintf(’卡爾曼濾波之前的定位精度:%f m
’, accuracy(trace, trace_real));
%% 對(duì)有噪聲的路徑進(jìn)行卡爾曼濾波
kf_params_record = zeros(size(trace, 1), 4);
for i = 1 : t
if i == 1
kf_params = kf_init(trace(i, 1), trace(i, 2), 0, 0); % 初始化
else
kf_params.z = trace(i, 1:2)’; %設(shè)置當(dāng)前時(shí)刻的觀測(cè)位置
kf_params = kf_update(kf_params); % 卡爾曼濾波
end
kf_params_record(i, :) = kf_params.x’;
end
kf_trace = kf_params_record(:, 1:2);
subplot(1, 3, 3); plot(kf_trace(:, 1), kf_trace(:, 2), ’.’);
title(’卡爾曼濾波后的效果’);
fprintf(’卡爾曼濾波之后的定位精度:%f m
’, accuracy(kf_trace, trace_real));
3 運(yùn)行結(jié)果
4 參考文獻(xiàn)
[1]侯亞培. 基于卡爾曼濾波的腦電信號(hào)去噪方法研究[D]. 燕山大學(xué).
博主簡(jiǎn)介:擅長(zhǎng)智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)、信號(hào)處理、元胞自動(dòng)機(jī)、圖像處理、路徑規(guī)劃、無(wú)人機(jī)等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問(wèn)題可私信交流。
部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除。
-
2023年各省最新電價(jià)一覽!8省中午執(zhí)行谷段電價(jià)! 2023-01-03
-
PPT導(dǎo)出高分辨率圖片的四種方法 2022-09-22
-
全國(guó)消防救援總隊(duì)主官及簡(jiǎn)歷(2023.2) 2023-02-10
-
我們的前輩!歷屆全國(guó)工程勘察設(shè)計(jì)大師完整名單! 2022-11-18
-
關(guān)于某送變電公司“4·22”人身死亡事故的快報(bào) 2022-04-26
