6.1-rasm: Massivlar bilan sintez.
def synthesize2(amper, fs, ts): args =
np.outer(ts, fs)
1. np.outer ts va fs ning
tashqi mahsulotini hisoblaydi.
Natijada ts ning har bir
elementi uchun bitta qator va fs ning har bir elementi uchun bitta ustunli massiv
hosil bo‘ladi. Massivdagi har bir element chastota va vaqtning hosilasi, f t.
65
Bu funktsiya juda boshqacha ko'rinadi, lekin u xuddi shunday qiladi. Keling, bu qanday ishlashini
ko'rib chiqaylik:
6.2. Massivlar bilan sintez
6.1-rasmda ushbu hisoblashning tuzilishi ko'rsatilgan. Matritsaning har bir satri M 0,0
dan 1,0 sekundgacha bo'lgan vaqtga to'g'ri keladi; tn - n-qatorning vaqti.
Har bir ustun
100 dan 400 Gts gacha bo'lgan chastotaga mos keladi; fk - k-ustunning chastotasi.
M = np.cos(PI2 * args) ys =
np.dot(M, amper) qaytish ys
3. np.dot M ning har bir qatorini elementlar bo'yicha amperga ko'paytiradi va keyin
mahsulotlarni qo'shadi. Chiziqli algebra nuqtai nazaridan,
biz ma trix M ni vektorga,
amperga ko'paytiramiz. Signallar nuqtai nazaridan biz chastota komponentlarining
vaznli yig'indisini hisoblaymiz.
2. Arglarni
2p ga ko'paytiramiz va cos ni qo'llaymiz, shuning uchun natijaning har bir
elementi cos(2p f t) bo'ladi. Ts ustunlar bo'ylab harakat qilganligi sababli, har bir
ustun ma'lum bir chastotada kosinus signalini o'z ichiga oladi va ketma-ketlikda
baholanadi.
Machine Translated by Google
Bu yerda a - amplitudalar vektori, t - vaqtlar vektori,
f - chastotalar vektori, ÿ - ikkita
vektorning tashqi mahsuloti belgisi.
66
Va xuddi shunday ys ning boshqa elementlari bilan. Shunday qilib, y ning har bir
elementi to'rt chastota komponentining yig'indisi bo'lib, bir vaqtning o'zida baholanadi
va mos keladigan amplitudalar bilan ko'paytiriladi. Va bu biz xohlagan narsa edi.
Kod qanday ko'rinishga ega:
Men n-qatorni a dan d gacha bo'lgan
harflar bilan belgiladim; misol sifatida a ning
qiymati cos[2p(100)tn].
Sintezning ikkita versiyasi bir xil natijalarni berishini tekshirish uchun oldingi bo'limdagi
koddan foydalanishimiz mumkin. ys1 = sintez qilish1(amper, fs, ts) ys2 = sintez
qilish2(amper, fs, ts) maks(abs(ys1 - ys2))
Ushbu hisoblashni chiziqli algebra nuqtai nazaridan yozish kodni kichikroq va tezroq
qiladi. Chiziqli algebra matrisalar va vektorlar ustidagi amallar uchun qisqacha
belgilarni beradi. Masalan, sintezni quyidagicha yozishimiz mumkin:
Endi biz tahlil muammosini hal qilishga tayyormiz.
Aytaylik, men sizga to'lqin beraman
va bu ma'lum chastotalar to'plamiga ega bo'lgan kosinuslar yig'indisi ekanligini
aytaman. Har bir chastota komponenti uchun amplitudani qanday topasiz? Boshqacha
qilib aytganda, ys, ts va fs berilgan bo'lsa, amperlarni tiklay olasizmi?
Nuqta ko‘paytmasining
natijasi ys, M ning har bir qatori uchun bitta elementga ega
vektor. e bilan belgilangan n-chi element mahsulotlar yig‘indisidir:
Ys1 va ys2 o'rtasidagi eng katta farq taxminan 1e-13 ni tashkil qiladi, bu biz suzuvchi
nuqta xatolari tufayli kutilgan narsadir.
Do'stlaringiz bilan baham: