O‘ZBEKISTON RESPUBLIKASI RAQAMLI TEXNOLOGIYALAR VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
Kompyuter injiniringi fakulteti
Sun’iy intellekt kafedrasi
Tizimlar va signallar fanidan
3-TOPSHIRIQ
Mavzu: 8-9 amaliy mashg‘ulotlar yuzasidan Natijaviy signallar, diskret cosinus koeffisenti (DCT) jarayonlarini o‘rganish
Bajardi: Sharofiddinov Shahzod 050-20 guruh talabasi
_________________________________
Tekshirdi: Mo’minov Elyor
Baho:_____
TOSHKENT 2023
Tizimlar va signallar fanidan 8-9-amaliy mashg‘ulotlar yuzasidan topshiriq
4 ta ixtiyoriy signal uchun DCT ni hisoblang.
DCT dasturini ishlab chiqish (ixtiyoriy dasturlash tilida)
1.
Tabii, ixtiyoriy bir sinyal uchun DCT hisoblash uchun quyidagi Python kodini yozishim mumkin:
```python
import numpy as np
# Ixtiyoriy sinyal
signal = np.array([5, 10, 3, 7])
# DCT ni hisoblash
dct_result = np.fft.dct(signal, type=2) # type=2: DCT tipi 2
# Natijani chiqarish
print("Signal:", signal)
print("DCT Koeffitsientlari:", dct_result)
```
Bu kod, `numpy` kutubxonasidan foydalanadi va `np.fft.dct` funktsiyasini ishlatadi. `np.array()` orqali ixtiyoriy bir sinyal yaratamiz va keyin DCT ni `np.fft.dct()` orqali hisoblaymiz. `type=2` argumenti bilan DCT turini belgilaymiz.
Bu oddiy va effektiv algoritm bo'lib, `numpy` kutilmagan tushunchalarni hisoblashda yordam beradi. Siz o'zingizning ixtiyoringizdagi sinyalni `signal` o'zgaruvchisiga o'rnating va kodni bajaringiz, bu usul orqali sinyalingizning DCT koeffitsientlarini hisoblay olasiz.
2.
import math
# 4 elementli ixtiyoriy bir sinyal
signal = [1, 2, 3, 4]
# DCT ni hisoblash funksiyasi
def calculate_dct(signal):
N = len(signal)
dct_result = []
for k in range(N):
summa = 0
for n in range(N):
summa += signal[n] * math.cos(math.pi * k * (2 * n + 1) / (2 * N))
if k == 0:
dct_result.append(summa * math.sqrt(1 / N))
else:
dct_result.append(summa * math.sqrt(2 / N))
return dct_result
# DCT ni hisoblash
dct_coefficients = calculate_dct(signal)
# Natijani chiqarish
print("Signal:", signal)
print("DCT Koeffitsientlari:", dct_coefficients)
|