Raqamli signallarni qayta ishlash 11-mavzu. Raqamli ma'lumotlarni adaptiv filtrlash
Filtrning ishlashini grafik tahlil qilish uchun dastur kodi
Download 230.46 Kb.
|
signallarni filtirlash
Filtrning ishlashini grafik tahlil qilish uchun dastur kodi
#! / usr / bin / env python # kodlash = utf8 import matplotlib.pyplot sifatida plt import numpy numpy import exp dan np sifatida, scipy.stats dan sqrt import normasi Q = 0,8; R = 0,2; y = 0; x = 0 # shovqinning dastlabki farqlari (o'zboshimchalik bilan tanlangan) va o'zgaruvchilarning nol qiymatlari. P = Q * R / (Q + R) # shovqin farqlarining birinchi taxmini. T = 5.0 # vaqt doimiysi. n =; X =; Y =; Z = # o'zgaruvchilar uchun ro'yxatlar. i uchun np.arange (0,100,0.2): n.append (i) # vaqt o'zgaruvchisi. x = 1-exp (-1 / T) + x * exp (-1 / T) # x uchun model funktsiyasi. y = 1-exp (-1 / T) + y * exp (-1 / T) y uchun # model funktsiyasi. Y.append (y) # y qiymatlari ro'yxatini to'playdi. X.append (x) # x qiymatlar ro'yxatini to'playdi. norma1 = norma (y, sqrt (Q)) # kutilgan # normal taqsimot - y. norma2 = norma (0, sqrt (R)) #)) # kutish bilan normal taqsimlash - 0.ravn1 = np.random.uniform (0,2 * sqrt (Q)) # Q dispersiyasi bilan shovqin uchun yagona taqsimlash # .ravn2 = np.random.uniform (0,2 * sqrt (R)) # yagona taqsimot # dispersiya bilan shovqin uchun R. z = norm1.pdf (ravn1) + norm2.pdf (ravn2) # o'lchanadigan o'zgaruvchi z. Z.append (z) # z qiymatlari ro'yxatini to'playdi. P = P- (P ** 2) / (P + Q + R) # x uchun yangi holatga o'tish. x = (P * z + x * R) / (P + R) # yangi holat x. P = (P * R) / (P + R) # yangi davlat x uchun prognoz. plt.subplot (221) plt.plot (n, Y, rang = "g", chiziq kengligi = 2, label = "\ n shovqinsiz o'zgaruvchining model funktsiyasi \ n") plt.legend (loc = "eng yaxshi") plt . grid (True) plt.subplot (222) plt.plot (n, X, rang = "r", chiziq kengligi = 2, label = "Model funktsiyasi \ n solishtirilayotgan o'zgaruvchining n") plt.legend (loc = "eng yaxshi" ) plt.grid (True) plt.subplot (223) plt.plot (n, Z, rang = "b", chiziq kengligi = 1, label = "O'lchangan funktsiya \ n psevdor tasodifiy o'zgaruvchilar") plt.legend ( loc = "eng yaxshi") plt.grid (True) plt.subplot (224) plt.plot (n, Y, rang =" g ", chiziq kengligi = 2, label =" Y ") plt.plot (n, X, rang =" r ", chiziq kengligi = 2, label =" X ") plt.plot (n, Z, rang =" b ", chiziq kengligi = 1, label =" Z ") plt.legend (loc =" eng yaxshi") plt.grid (To'g'ri) plt.show () Dastur natijasi xulosalar Maqolada Python umumiy maqsadli dasturlash tilidan foydalangan holda Kalman filtrini oddiy skaler amalga oshirish modeli tasvirlangan, bu esa o'quv maqsadlarida uning ko'lamini kengaytiradi. Download 230.46 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling