|
Berilgan funksiyalardan variant tanlanib, olingan variantlar ustida quyidagi amallar bajariladi
|
Sana | 07.07.2024 | Hajmi | 0,52 Mb. | | #266846 |
Bog'liq 2-amaliy signal s
O‘ZBEKISTON RESPUBLIKASI
RAQAMLI TEXNOLOGIYALAR VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
Signallar va tizimlar fanidan
2-AMALIY ISH
MAVZU : Signallarga klassik ishlov berish. Svyortka jarayonini hisoblash. Korrelyatsiya jarayonini hisoblash.
Toshkent - 2024
2-amaliy ish topshiriqlari: Signallarga klassik ishlov berish
(svyortka va korrelyatsiya)
Bu yerda:
N – talabaning jurnaldagi raqami;
x – 0 dan boshlab 2N gacha qadam bilan berilgan oraliqgacha davom etadigan to‘plam. Misol uchun (x=0:0.1:2N)
Berilgan funksiyalardan variant tanlanib, olingan variantlar ustida quyidagi amallar bajariladi:
Berilgan f1(x) va f2(x) funktsiya svyortka qilinadi.
Berilgan f1(x) va f2(x) funktsiya korrelyatsiya qilinadi.
Olingan natijalar va dastlabki natijalar bilan birgalikda grafik orqali ifodalanadi.
Izoh: N hamma uchun jurnaldagi tartib raqami. Berilgan oraliq intervallariga qat’iy rioya qilinishi shart.
5
|
y=cos(xπ/4)+sin(2π/N+x)
|
z=3cos(x/π)-2sin(x/π)
|
x (0; πN/3),
|
Buni bajarish uchun quyidagi python kodidan foydalanamiz:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.signal import convolve, correlate
# N qiymatini kiriting (bu sizning jurnaldagi tartib raqamingiz)
N = 10 # Masalan, N = 10
# x qiymatlari uchun intervalni belgilaymiz
x = np.linspace(0, np.pi * N / 3, 500)
# f1(x) va f2(x) funktsiyalarini aniqlaymiz
f1 = np.cos(x * np.pi / 4) + np.sin(2 * np.pi / N + x)
f2 = 3 * np.cos(x / np.pi) - 2 * np.sin(x / np.pi)
# Svortka va korrelyatsiyani hisoblaymiz
svortka = convolve(f1, f2, mode='same')
korrelyatsiya = correlate(f1, f2, mode='same')
# Natijalarni jadvalga joylashtirish
data = {
'x': x,
'f1(x)': f1,
'f2(x)': f2,
'Svortka': svortka[:len(x)], # Svortka natijasining bir qismini olish
'Korrelyatsiya': korrelyatsiya[len(korrelyatsiya)//2 - len(x)//2 : len(korrelyatsiya)//2 + len(x)//2] # Korrelyatsiya natijasining bir qismini olish
}
df = pd.DataFrame(data)
# Jadval ko'rinishda chiqarish
print(df.head(10)) # Jadvalning faqat dastlabki 10 qatorini chiqaramiz
# Grafik chizish
plt.figure(figsize=(12, 10))
# Asl f1(x) funktsiyasi
plt.subplot(4, 1, 1)
plt.plot(x, f1, label='f1(x) = cos(xπ/4) + sin(2π/N + x)')
plt.title('Asl f1(x) funktsiyasi')
plt.xlabel('x')
plt.ylabel('f1(x)')
plt.legend()
plt.grid(True)
# Asl f2(x) funktsiyasi
plt.subplot(4, 1, 2)
plt.plot(x, f2, label='f2(x) = 3cos(x/π) - 2sin(x/π)')
plt.title('Asl f2(x) funktsiyasi')
plt.xlabel('x')
plt.ylabel('f2(x)')
plt.legend()
plt.grid(True)
# Svortka natijasi
plt.subplot(4, 1, 3)
plt.plot(x, svortka[:len(x)], label='Svortka f1(x) * f2(x)')
plt.title('Svortka natijasi')
plt.xlabel('x')
plt.ylabel('Svortka')
plt.legend()
plt.grid(True)
# Korrelyatsiya natijasi
plt.subplot(4, 1, 4)
plt.plot(x, korrelyatsiya[len(korrelyatsiya)//2 - len(x)//2 : len(korrelyatsiya)//2 + len(x)//2], label='Korrelyatsiya f1(x) * f2(x)')
plt.title('Korrelyatsiya natijasi')
plt.xlabel('x')
plt.ylabel('Korrelyatsiya')
plt.legend()
plt.grid(True)
plt.tight_layout()
plt.show()
https://colab.research.google.com/drive/10fAVt0Pu0YT7BQTf8jT4mEOMYUFuIVQp?authuser=1#scrollTo=52lWBRaK9U1G
|
| |