13-Laboratoriya Mavzu: Matlab dasturida ilova yaratish Ishdan maqsad



Download 268,81 Kb.
Pdf ko'rish
Sana12.08.2021
Hajmi268,81 Kb.
#145643
Bog'liq
13-laboratoriya



13-Laboratoriya 

Mavzu:Matlab dasturida ilova yaratish 

Ishdan maqsad: Matlab dasturida avvalgi darslar davomida egallangan bilimlar asosida 

ilova yaratish. 

Bugungi  darsimiz  DSP  algoritmlarini  amalga  oshirishga  bag'ishlanadi  va  avval  audio 

fayllarni  qayta  ishlash  uchun  grafik  dastur  yaratish  jarayonini  ko'rib  chiqamiz.  Men  turli  xil 

o'tkazuvchanlik  chegaralari  bilan  past  chastotali  filtrlar  to'plamini  loyihalashtirishga  harakat 

qilmoqchiman va ular o'rtasida audio o'tkazishda almashish imkoniyatiga ega bo'laman. Boshlash 

uchun biz 8 ta past chastotali FILTER DESIGNER dasturini ishlab chiqamiz.   

 

Men oltmish uchga teng filtrlarning tartibini tanlayman, ya'ni 64 koeffitsientlar to'plamini 



olaman,  ularni  ish  maydonida  hozircha  sonli  vektorlar  sifatida  saqlayman.  Buni  sakkiz  marta 

bajarganimdan so'ng, men 8 ta koeffitsientni olaman. Darhaqiqat, turli koeffitsientlar to'plamlari 

bizga turli xil chastotali javoblarni berishini hisobga olsak, biz 8 ta filtr tuzilishini halol ravishda 

amalga oshirishga hojat yo'q. Biz uchun bitta tuzilma etarli, biz kerakli to'plamni o'z xohishimiz 

bilan almashtiramiz. Filtrning javoblari faqat eng past chastotalarning deyarli butun spektrga o'tish 

imkoniyatidan tortib, namuna olish tezligi 44,1 kiloherts.  




 

Endi bizda 8 ta sonli vektor mavjud bo'lib, ularni bitta o'zgaruvchan, ya'ni matritsa sifatida 

saqlash  qulay.  Vertikal  biriktirishni  amalga  oshiraylik,  ya'ni  qatorlarni  birlashtiramiz  va 

o'zgaruvchimiz num.mat bir xil nomdagi fayl sifatida qattiq diskka saqlaymiz.  

 

Va shuningdek, test audio fayllari va skriptni asosiy algoritm bilan katalogga nusxalash. 



Ssenariy  tizim  ob'ektlari  yordamida  audio  uzatmoqda.  Bizga  tanish  bo'lgan  o'qish  va  tarqatish 

moslamalaridan  tashqari,  biz  koeffitsientlar  uchun  kirish  porti  bo'lgan  nosimmetrik  FIR  filtri 

ob'ektini ishga tushiramiz.  



 

Biz  matritsadan  koeffitsientlar  to'plamini  tanlaymiz,  joriy  filtrning  chastota  ta'sirini 

chizamiz,  shuningdek  koeffitsientlarni  tsiklning  har  bir  bosqichida  moslamalarni  filtrlashga 

o'tkazamiz.  Keling,  ettinchi  filtrning  ishlashini  tekshirib  ko'raylik.  Endi  ikkinchi  koeffitsientlar 

to'plamini o'rnatamiz. Algoritmning ishlashini tekshirdik, dastur yaratishni boshlashimiz mumkin. 

Biz  APP  DESIGNER-da  grafik  interfeysni  ishlab  chiqamiz.  Keling,  yangi  dastur  yaratib,  uni 

darhol  TONE_APP  noyob  nomi  bilan  saqlaymiz  va  endi  grafik  vositalarni  forma  ustiga 

joylashtiramiz.  Bizga  chastotalar  ta'sirini  chizish,  barcha  yorliqlarni  olib  tashlash  va  panjara 

qo'shish uchun o'qlar kerak. Eksa bo'ylab chegaralarni qo'lda o'rnating. Bundan tashqari, ijro etish 

va yuklashni boshqarish uchun tugmachalarga ega bo'lish foydalidir. Bizda to'rtta tugma bo'ladi - 

bular  LOAD,  PLAY,  PAUSE  va  STOP  tugmalari,  shunchaki  ularni  ko'paytiring  va  nomini 

o'zgartiring.  

 

Va filtrni tanlash uchun DISCRETE KNOB kalitlarini o'rnating, uni TONE deb nomlang 



va  qanday  diskret  qiymatlarni  qabul  qilishi  mumkinligini  ko'rsating.  Bu  birdan  sakkizgacha 

raqamlar  bo'ladi.  Biz  dastlabki  qiymatni  ko'rsatamiz  8.  Tashqi  ko'rinish  tayyor,  siz  kodga 




o'tishingiz mumkin. Ilova bu erda xususiyatlari deb nomlangan o'zgaruvchi orqali ma'lumotlarni 

almashadi.  

 

Ilova ichida foydalanadigan o'zgaruvchilar xususiyatlarining nomlarini yozamiz. Va keyin 



biz  birinchi  CALLBACK-ni,  ya'ni  ba'zi  harakatlar  yoki  hodisalar  tomonidan  bajariladigan 

buyruqlar to'plamini yaratamiz. Birinchidan, biz STARTUPFCN dasturi ishga tushirilganda nima 

bo'lishini ko'rsatamiz va filtr matritsasi yuklanadi. Funktsiyalar o'rtasida o'zgaruvchilar qiymatini 

almashtirish uchun boshida App so'zlarini qo'shing.  

 

Ishga  tushirish  paytida  biz  shuningdek,  barcha  tizim  ob'ektlarini  ishga  tushirishni, 



skriptdan  hamma  narsani  nusxalashni,  nomini  o'zgartirishni  xohlaymiz,  lekin  parametrlarni 

o'zgartirmaymiz,  sukut  bo'yicha  100  ta  hisobotning  FUNKY-GUITAR  fayli  o'qilsin.  Xo'sh, 

bundan  keyin  biz  tugmachalarni  bosish  uchun  CALLBACK  yaratishni  boshlaymiz.  Va  bizning 

faylni yuklab olishimiz uchun birinchi tugma - bu yuklash tugmasi. Keling, uni CALLBACK-ga 

qo'shaylik. Bizda skriptda bunday funktsiya bo'lmagan, shuning uchun biz o'zimiz UIGETFILE 

funktsiyasini  yozamiz.  Bu  bizda,  O'QUVCHI  ob'ekti  o'qishi  mumkin  bo'lgan  mp3,  wav  yoki 




boshqa audio fayllarni tanlaydigan dialog oynasini ochadi. Bu erda biz tanlangan papkaga qidiruv 

yo'lidagi 

fayl 

bilan 


qo'shishimiz 

kerak, 


aks 

holda 


keyinchalik 

xatolar 


bo'ladi. 

AUDIOFILEREADER-ni  qayta  ishga  tushirishimiz  kerak.  Bu  safar  tanlangan  fayl  nomi  bilan, 

shuning uchun biz bu erda hamma narsani FILE bilan almashtiramiz.  

 

Bundan tashqari, men faylni o'zim to'xtatguncha cheksiz o'ynashini xohlayman, shuning 



uchun biz PLAYCOUNT parametrini qo'shamiz va uning qiymatini cheksizga o'rnatamiz, ya'ni 

INF.  PLAY  tugmasini  bosish  orqali  biz  ushbu  dasturni  ishga  tushiramiz,  shuning  uchun 

PLAYBUTTON-ga  CALLBACK  qo'shamiz.  Bu  erda  biz  faqat  WHILE  asosiy  tsiklimizni 

skriptdan  nusxa  ko'chiramiz  va  u  erda  o'zgarmaydigan  nomlarini  tuzatamiz.  Ammo  bu  erda, 

tsikldan  chiqish  uchun  yana  bir  mantiqiy  o'zgaruvchiga,  ya'ni  to'xtash  bayrog'iga  ehtiyoj  bor. 

Birinchidan, biz buni XUSUSIY XUSUSIYATIMIZDA STOP FLAG-ni aytib beramiz va shunga 

ko'ra, agar u rost bo'lsa, PLAY tugmasi bosilganda tsikldan chiqishda, har doim yolg'on bo'lishi 

kerak  degan  shartni  yozamiz.  Shaklni  yangilash  uchun  DRAWN  HOZIR  sehrli  so'zini 

qo'shishimiz kerak va barcha CALLBACKlar tsikldan chiqolmaydi.  

 



Ammo  hozircha  biz  hech  qanday  koeffitsientlarni  tanlamayapmiz.  Biz  kalit  raqamidan 

chiziq  raqamini  tanlashni  xohladik,  shuning  uchun  uning  qiymatini  o'zgartirish  uchun 

CALLBACK qo'shamiz. Biz qiymatni num o'zgaruvchisiga yozamiz, ammo u faqat mag'lubiyat 

ma'lumotlar  turida  saqlanadi  va  raqamga  o'tkazilishi  kerak  va  bu  raqam  bizning  NUM.MAT 

matritsamiz uchun qator ko'rsatkichi bo'ladi.  Shuningdek, chastotaga javob chizmasini shu erga 

qo'shamiz.  Biz  buni  skriptdan  nusxa  ko'chirish  orqali  amalga  oshiramiz,  ammo  bu  erda  PLOT 

funktsiyasiga diagrammani qaysi o'qlarga joylashtirish kerakligini aniq ko'rsatishimiz kerak. Bizda 

faqat o'qlar UIAXES. Ilova ishga tushirilganda hammasi bir xil bo'ladi, shuning uchun biz ushbu 

qatorlarni STARTUPFCN-ga qo'shamiz. Biz bilan pauza qilish va to'xtash uchun CALLBACK 

qoldi.  Pauza  qilinganida,  shunchaki  to'xtash  bayrog'ini  TRUE-ga  qo'ying.  Va  boshlaymiz  va 

bundan  tashqari  biz  tizimimiz  ob'ektlarining  qiymatini  tiklaymiz,  ya'ni  ob'ektlarimizni  ijro 

faylining boshiga qaytaramiz. Xo'sh, kodni tahlil qilish shuni ko'rsatadiki, biron bir narsa noto'g'ri, 

biz  F  o'zgaruvchisidan  foydalanmayapmiz,  men  uni  PLOT  buyrug'idan  tasodifan  o'chirib 

tashladim, shuning uchun uni qaytaraman.  

 

Endi  barchamiz  dasturlarni  ishga  tushirishga  usta  bo'ldik.  Pauza  ishlaydi.  Shuningdek, 



shunga muvofiq to'xtating. Endi [musiqa] faylini yuklab olishni tekshirib ko'raylik. Biz matlab-da 

DSP algoritmlari uchun grafik foydalanuvchi interfeysini yaratish jarayonini ko'rib chiqdik. 



 

Download 268,81 Kb.

Do'stlaringiz bilan baham:




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish