Tadqiq etish


Download 67.96 Kb.
Sana01.01.2023
Hajmi67.96 Kb.
#1074515
Bog'liq
2-amaliy ish


DAVRIY BO‘LMAGAN SIGNALLARNING SPЕKTRLARINI
TADQIQ ETISH
Signalning spektrini hisoblash ko'pgina ilovalar uchun muhimdir. Spektrni avtomatik hisoblash va ixtiyoriy shakldagi signallarni qayta ishlash imkoniyatiga ega bo'lish uchun Furye konvertatsiyasini raqamli aniqlash usullariga alohida qiziqish mavjud. Ushbu usullar odatda raqamli kompyuterlarda qo'llaniladi, bu esa signalni o'zgartirishdan oldin namuna olish va saqlashni talab qiladi. Bu ushbu bobning keyingi bo'limlarida muhokama qilinadigan maxsus oqibatlarga olib keladi. Ma'lumotlar ketma-ketligi juda uzun bo'lishi mumkinligi sababli, raqamli kompyuterlarda Furye transformatsiyasining hisoblash samarali amalga oshirilishi ham ayniqsa qiziq. Biz hozirgacha ishlagan signallar davriydir, ya'ni ular abadiy takrorlanadi. Bundan tashqari, ular tarkibidagi chastota komponentlari vaqt o'tishi bilan o'zgarmasligini anglatadi. Ushbu bobda biz chastota komponentlari vaqt o'tishi bilan o'zgarib turadigan davriy bo'lmagan signallarni ko'rib chiqamiz. Boshqacha qilib aytganda, deyarli barcha tovush signallari.
Ushbu bobda davriy bo'lmagan signallarni ko'rishning keng tarqalgan usuli bo'lgan spektrogrammalar ham keltirilgan. Biz chiyillashdan boshlaymiz, bu o'zgaruvchan chastotali signaldir. Thinkdsp bir qator chastotalar orqali chiziqli ravishda o'tadigan sinusoidni yaratuvchi Chirp deb nomlangan signalni taqdim etadi.

Mana 220 dan 880 Gts gacha bo'lgan, ya'ni A3 dan A5 gacha bo'lgan ikki oktavaga misol:


signal = thinkdsp.Chirp(start=220, end=880)
to'lqin = signal.make_wave()
3.1-rasmda bu toʻlqinning boshi, oʻrtasi va oxiriga yaqin qismlari koʻrsatilgan. Chastotasi ortib borayotgani aniq.
Davom etishdan oldin, keling, Chirp qanday amalga oshirilishini ko'rib chiqaylik. Mana sinf ta'rifi: Bu chiyillashni tinglaganingizda, ovoz balandligi dastlab tez ko'tarilib, keyin sekinlashishini sezishingiz mumkin. Chirp ikki oktavani o'z ichiga oladi, lekin birinchi oktavani bosib o'tish uchun atigi 2/3 s, ikkinchisini esa ikki baravar ko'proq vaqt oladi.
Sababi shundaki, bizning balandlikni idrok etishimiz chastota logarifmiga bog'liq. Natijada, biz ikkita nota o'rtasida eshitadigan interval farqga emas, balki ularning chastotalari nisbatiga bog'liq. "Interval" - bu ikki tovush o'rtasidagi farqni anglatuvchi musiqiy atama.
Masalan, oktava - bu ikki ohangning nisbati 2 ga teng bo'lgan interval. Demak, 220 dan 440 gacha bo'lgan interval bir oktava, 440 dan 880 gacha bo'lgan interval ham bir oktava. Chastotadagi farq kattaroq, ammo nisbat bir xil.
Natijada, agar chastota chiziqli jiringlashda bo'lgani kabi, chiziqli ravishda oshsa, idrok etilgan balandlik logarifmik ravishda ortadi.
Agar siz idrok etilgan balandlikning chiziqli o'sishini istasangiz, chastota eksponent ravishda oshishi kerak. Bunday shaklga ega bo'lgan signalga eksponensial chirp deyiladi. Np.linspace o'rniga, baholashning ushbu versiyasi np.logspace-dan foydalanadi, bu esa logarifmlari teng oraliqda joylashgan bir qator chastotalarni yaratadi, ya'ni ular eksponent ravishda oshadi.

Bo'ldi shu; qolgan hamma narsa Chirp bilan bir xil. Mana bitta kodni yaratuvchi:


signal = thinkdsp.ExpoChirp(start=220, end=880)
to'lqin = signal.make_wave(davomiylik=1)
Siz chap03.ipynb da ushbu misollarni tinglashingiz va chiziqli va eksponensial jiringlashlarni solishtirishingiz mumkin.
Sizningcha, agar siz chiyillash spektrini hisoblasangiz nima bo'ladi? Mana, bir soniyali, bir oktavali chirp va uning spektrini yaratuvchi misol:
signal = thinkdsp.Chirp(start=220, end=440)
to'lqin = signal.make_wave(davomiylik=1)
spektr = wave.make_spectrum()
3.2-rasmda natija ko‘rsatilgan. Spektrda 220 dan 440 Gts gacha bo'lgan har bir chastotada komponentlar mavjud bo'lib, ularning o'zgarishi Sauronning ko'ziga o'xshaydi (qarang: http://en.wikipedia.org/wiki/Sauron).
Spektr taxminan 220 va 440 Gts oralig'ida tekis bo'lib, bu signal ushbu diapazondagi har bir chastotada teng vaqt sarflanishini ko'rsatadi. Ushbu kuzatuvga asoslanib, siz eksponensial jiringlash spektri qanday ko'rinishini taxmin qilishingiz kerak.

Spektr signalning tuzilishi haqida maslahatlar beradi, lekin u chastota va vaqt o'rtasidagi munosabatni yashiradi. Misol uchun, biz ushbu spektrga qarab, chastotanin g yuqoriga yoki pastga yoki ikkalasini ham ayta olmaymiz.


Chastota va vaqt o'rtasidagi munosabatni tiklash uchun biz chirpni segmentlarga ajratishimiz va har bir segmentning spektrini chizishimiz mumkin. Natija qisqa muddatli Furye transformatsiyasi (STFT) deb ataladi.
STFTni ko'rishning bir necha yo'li mavjud, ammo eng keng tarqalgani x o'qida vaqtni va y o'qida chastotani ko'rsatadigan spektrogrammadir. Spektrogrammadagi har bir ustun amplitudani ifodalash uchun rang yoki kul rangdan foydalangan holda qisqa segmentning spektrini ko'rsatadi.
Misol tariqasida, men bu chiyillashning spektrogrammasini hisoblayman:
signal = thinkdsp.Chirp(start=220, end=440)
to'lqin = signal.make_wave(davomiylik=1, kadr tezligi=11025)
To'lqin Spectrogram ob'ektini qaytaradigan make_spectrogramni taqdim etadi:
spektrogram = wave.make_spectrogram(seg_length=512)
spektrogramma.plot (yuqori=700)

seg_length - har bir segmentdagi namunalar soni. Men 512 ni tanladim, chunki namunalar soni 2 ga teng bo'lganda FFT eng samarali hisoblanadi. 3.3-rasmda natija ko‘rsatilgan. X o'qi 0 dan 1 soniyagacha bo'lgan vaqtni ko'rsatadi. Y o'qi 0 dan 700 Gts gacha bo'lgan chastotani ko'rsatadi. Men spektrogrammaning yuqori qismini kesib tashladim; to'liq diapazon 5512,5 Gts gacha boradi, bu kvadrat tezligining yarmini tashkil qiladi.


Spektrogramma aniq ko'rsatadiki, chastota vaqt o'tishi bilan chiziqli ravishda oshadi. Xuddi shunday, eksponensial jiringlashning spektrogrammasida biz eksponensial egri chiziq shaklini ko'rishimiz mumkin.
Biroq, har bir ustundagi tepalik 2-3 hujayra bo'ylab loyqa ekanligiga e'tibor bering. Bu loyqalanish spektrogrammaning cheklangan ruxsatini aks ettiradi.
3.5 Gabor chegarasi
Spektrogrammaning vaqt rezolyutsiyasi segmentlarning davomiyligi bo'lib, u spektrogrammadagi hujayralar kengligiga mos keladi. Har bir segment 512 kvadrat bo'lib, soniyada 11 025 kvadrat bo'lganligi sababli, har bir segmentning davomiyligi taxminan 0,046 soniyani tashkil qiladi.
Chastota o'lchamlari - bu hujayralar balandligiga mos keladigan spektrdagi elementlar orasidagi chastota diapazoni. 512 kvadrat bilan biz 0 dan 5512,5 Gts gacha bo'lgan 256 chastota komponentlarini olamiz, shuning uchun komponentlar orasidagi diapazon 21,6 Gts ni tashkil qiladi.
Umuman olganda, agar n segment uzunligi bo'lsa, spektrda n/2 komponentlar mavjud. Agar kadr tezligi r bo'lsa, spektrdagi maksimal chastota r/2 ga teng. Shunday qilib, vaqt o'lchamlari n / r va chastota o'lchamlari
r/2
n/2

bu r/n.
Ideal holda biz vaqt o'lchamlari kichik bo'lishini xohlaymiz, shuning uchun chastotadagi tez o'zgarishlarni ko'rishimiz mumkin. Va biz chastotadagi kichik o'zgarishlarni ko'rishimiz uchun chastota o'lchamlari kichik bo'lishini xohlaymiz. Ammo siz ikkalasiga ham ega bo'lolmaysiz. E'tibor bering, vaqt o'lchamlari, n/r, chastota aniqligiga teskari, r/n. Shunday qilib, biri kichikroq bo'lsa, ikkinchisi katta bo'ladi. Misol uchun, agar siz segment uzunligini ikki baravar oshirsangiz, chastota o'lchamlarini yarmiga qisqartirasiz (bu yaxshi), lekin vaqt o'lchamlarini ikki baravar oshirasiz (bu yomon). Hatto kadrlar tezligini oshirish ham yordam bermaydi. Siz ko'proq namuna olasiz, lekin chastotalar diapazoni bir vaqtning o'zida ortadi.


Ushbu kelishuv Gabor chegarasi deb ataladi va bu vaqt chastotasi tahlilining asosiy cheklovidir. make_spectrogram qanday ishlashini tushuntirish uchun men oynalashni tushuntirishim kerak; va oynalashni tushuntirish uchun men sizga muammoni ko'rsatishim kerak, ya'ni oqish.

Biz Spektrlarni hisoblash uchun foydalanadigan Diskret Furye Transformatsiyasi (DFT) to'lqinlarni davriy bo'lgandek ko'rib chiqadi; ya'ni u ishlaydigan chekli segmentni hamma vaqt davomida takrorlanadigan cheksiz signaldan to'liq davr deb hisoblaydi. Amalda, bu taxmin ko'pincha noto'g'ri bo'lib, muammolarni keltirib chiqaradi. Umumiy muammolardan biri bu segmentning boshida va oxirida uzilishlar. DFT signalni davriy deb hisoblaganligi sababli, u aylana hosil qilish uchun segmentning oxirini boshiga qaytaradi. Agar oxiri boshiga silliq ulanmasa, uzilish segmentda signalda bo'lmagan qo'shimcha chastota komponentlarini hosil qiladi. Misol tariqasida, 440 Gts chastotada faqat bitta chastota komponentini o'z ichiga olgan sinus signalidan boshlaylik.
Download 67.96 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling