Vahid 3 / 12

Siqnalların emalı: Filtrlər, Nümunə götürmə və Tezlik Analizi

Qazanclar:

  • Süni intellekt dəstəyi ilə seçmə, Nyquist və aliasing konsepsiyalarını düzgün qurmaq və tətbiq etmək bacarığı
  • FFT, filtr dizaynı və pəncərələmə addımlarını AI ilə layihə koduna və hesablamalara çevirmək bacarığı
  • AI tərəfindən istehsal olunan siqnal emal nəticələrini istinad siqnalı, vahidə nəzarət və ölçmə ilə yoxlamaq imkanı

Siqnal emalı elektronika və rabitə mühəndisliyinin ürəyidir: gərginlik dalğası, səs yazısı, sensor oxu və ya radio siqnalı götürmək və içindəki məlumatı çıxarmaq, səs-küyü təmizləmək və onu dəyişdirmək sənəti. Bu bölmədə siz siqnal emalı konsepsiyalarını öyrənmək, filtr və transformasiya hesablamalarını qurmaq və Python kodu ilə analiz etmək üçün AI-dən necə istifadə edəcəyinizi görəcəksiniz. Ancaq əvvəldən bir xəbərdarlıq: siqnalın işlənməsi zamanı kiçik bir konseptual səhv (yanlış seçmə tezliyi, atlanan pəncərə, müdaxilə vahidi) nəticəni tamamilə və səssizcə təhrif edəcək; Qrafik hələ də yaxşı görünür, amma səhvdir. Buna görə də, AI-nin istehsal etdiyi hər bir nəticəni məlum istinad siqnalı və vahid nəzarəti ilə sınaqdan keçirmək vacibdir.

Sampling və Nyquist: hər şeyin başladığı yer

Kompüterdə analoq siqnalı (fasiləsiz dalğa) emal etmək üçün onu müəyyən intervallarla ölçür və rəqəmə çeviririk; Buna nümunə götürmə deyilir. Saniyədə neçə nümunə götürməyimiz seçmə tezliyidir (fs, vahid Hz). Nyquist meyarı bildirir ki, siqnalı dəqiq bərpa etmək üçün seçmə tezliyi siqnaldakı ən yüksək tezlikdən ən azı iki dəfə çox olmalıdır. Bu şərt yerinə yetirilmədikdə, yüksək tezliklər aşağı tezliklər kimi görünməyə başlayır; Buna ləqəb deyilir və bu iki vəziyyəti ayırd edə bilməyəcəyiniz üçün məlumatlar həmişəlik pozulur.

Süni intellekt bu anlayışı çox yaxşı izah edir və nümunələrlə nümayiş etdirə bilir. Ancaq seçmə tezliyini seçərkən siz qərar verirsiniz: siqnalınızın faktiki bant genişliyi nədir, anti-aliasing analoq filtriniz varmı, ADC (Analog-Digital Converter: analoq siqnalı nömrəyə çevirən çip) hansı sürətdə işləyir. Süni intellekt seçmə tezliyini “təklif edə” bilər, lakin bu təklif siqnalınızın faktiki spektrini ölçmədən bir təxmindir.

İpucu: AI-yə nümunə sualı verərkən, siqnalınızın ən yüksək tezliyini və bant genişliyini özünüz təyin edin. "Əgər siqnalımın ən yüksək komponenti ~4 kHz-dirsə, fs-i necə seçməliyəm və antialiasing filtrini hara qoymalıyam?" kimi. Süni zəkanın spektri təxmin etməsinə səbəb olmayın; ölçü.

FFT və tezlik analizi

FFT (Fast Furier Transform) siqnalı zaman oxundan tezlik oxuna çevirən sürətli alqoritmdir. Beləliklə, "bu siqnalda hansı tezliklər var və nə qədər güclə?" sualına cavab verir. AI FFT-ni necə tətbiq etməyi, nəticələri şərh etməyi və Python kodunu (numpy/scipy) yazmağı çox yaxşı bacarır. Ancaq FFT-də ümumi səhvlər var və AI kodu onları səssizcə daxil edə bilər:

  • Tezlik oxunun miqyası: FFT çıxışının tezlik oxu seçmə tezliyindən asılıdır. Əgər fs səhv daxil edilibsə, bütün tezliklər səhv çıxarılır, lakin qrafik normal görünür.
  • Pəncərələmə: Sonlu siqnal parçası qəbul edildikdə, kənarlarda kəsilmə baş verir və spektrdə yalançı yayılma (spektral sızma) müşahidə olunur. Hann və Hamming kimi Windows bunu azaldır. Süni intellekt kodu pəncərələri atlasa, nəticə aldadıcı olacaq.
  • Amplitüdün normallaşdırılması: FFT çıxışının amplitüdünü faktiki fiziki dəyərə çevirmək üçün miqyaslama və pəncərə korreksiyası tələb olunur. Əgər buraxılmazsa, amplitüdlər yanlış olacaq.

filtr dizaynı

Filtr siqnaldan arzuolunmaz tezlikləri çıxaran dövrə və ya alqoritmdir. Dörd əsas növ var: aşağı keçid (aşağı tezlikləri keçir), yüksək ötürücü, bant keçiricisi və bant keçidi (çentik). Rəqəmsal filtrlərin iki böyük ailəsi var: FIR (sonlu impuls cavabı, sabit və xətti faza) və IIR (sonsuz impuls cavabı, daha az hesablama, lakin sabitlik və faza riski ilə dik keçid).

Süni intellekt filtrin dizayn addımlarını (kəsmə tezliyi, keçid zolağı, dayandırma bandının zəifləməsi, sifariş seçimi) izah edir və scipy ilə əmsal yaradan kodu yazır. Lakin dizayn etdiyiniz filtrin kəsilmə tezliyi normallaşdırılıb (Nyquist tezliyinə nisbətən) və burada fs-nin səhv daxil edilməsi çox yayılmış səhvdir. Bundan əlavə, sabitlik və faza təhrifi IIR filtrlərində problem ola bilər və gecikmə real vaxt sistemlərində problem ola bilər. Süni intellekt tərəfindən yaradılmış filtri tezlik reaksiya qrafiki və məlum test siqnalı ilə yoxladığınızdan əmin olun.

üç mini qutu

1-ci hal – Üst-üstə düşən vibrasiya. Mühəndis 1 kHz-də mühərrikin vibrasiyasını nümunə götürür və 300 Hz-də FFT-də güclü pik görür. Mühərrik dizaynına uyğun gəlməyən bu zirvə çaşqınlıq yaradır. 1300 Hz ətrafında mühərrikdə əslində real komponent var; Bunun üçün 1 kHz seçmə kifayət deyil (Nyquist 500 Hz) və 1300 Hz üst-üstə düşür 300 Hz. Süni intellektlə "bu zirvənin real və ya ləqəbli olub-olmadığını" müzakirə etdikdən və seçmə tezliyini 5 kHz-ə qədər artırdıqdan sonra zirvə 1300 Hz-də düzgün yerdə görünür. Dərs: şübhəli bir təpədə, ilk sual seçmə adekvatlığı.

2-ci hal - Atlanan pəncərə. Təcrübəçi AI-dən FFT kodu tələb edir və onu icra edir. O, tək tezlik test tonu gözləyir, lakin spektrdə geniş yayılma görür. Problem kodun pəncərələşdirmə (spektral sızma) etməməsidir. AI-yə "Hann pəncərəsini əlavə edin və amplituda düzəliş tətbiq edin" deyin və nəticə gözlənilən kəskin zirvəyə qayıdır. Dərs: FFT kodunu məlum tək tezlikli siqnal ilə sınaqdan keçirin; Pəncərədə bir sızma varsa yoxlayın.

Case 3 — Yanlış fs. Mühəndis qeyd cihazından məlumatları təhlil edir. Cihaz 48 kHz tezliyində qeyd edildi, lakin AI koduna standart 44,1 kHz daxil edildi. Bütün tezliklər 8% dəyişdirilir; 1088 Hz-də 1000 Hz ton görünür. Ölçmə avadanlığının faktiki f-lərini yoxlayarkən xəta aşkar edilir. Dərs: seçmə tezliyi analiz zəncirində yeganə ən kritik ədəddir; mənbədən təsdiq edilməlidir.

Kopyalana bilən sorğu şablonları

FFT SETUP TEMPLATE"Python-da (numpy/scipy) bir FFT analiz kodu yazın. Daxil edin: samplingfrequency fs=[dəyər] Hz, siqnal sətri 'x'. Kod AŞAĞIDAKILARI yerinə yetirsin: (1) Hann pəncərəsini tətbiq edin, (2) FFT əldə edin, (3) tezliyi dəqiq bir şəkildə miqyaslayın, flotun ox tərəfinə 4-ə nisbətdə pəncərə düzəlişi ilə kodun hər bir addımında "Lütfən, hansı fərziyyəni irəli sürdüyünüzü şərh sətirində qeyd edin ki, mən bunu təsdiq edim."

NÜMUNƏ ALMA NƏZARƏT ŞABLONU "Siqnalımın ən yüksək əhəmiyyətli tezliyi təxminən [X] Hz-dir. Nyquist marjasını, anti-aliasing filtrinə ehtiyacı və seçmə tezliyini seçərkən praktiki təhlükəsizlik marjasını izah edin. Bir diapazon təklif edin, lakin siqnalın həqiqi spektrini ölçməklə bunu yoxlamalı olduğumu vurğulayın."

FİLTRE DİZAYN ŞABLONU "Scipy ilə [aşağı/yüksək/band] keçid rəqəmsal filtri dizayn edin. Kəsmə tezliyi [X] Hz, seçmə tezliyi fs=[Y] Hz. FIR və IIR variantlarını (sabitlik, faza, gecikmə, hesablama yükü) müqayisə edin. Kodda aydın şəkildə göstərin ki, kəsmə tezliyi necə normallaşdırılıb.

NƏTİCƏLƏRİN DOĞRULAMASI ŞABLONU "Aşağıdakı siqnal emal kodunu araşdırın və səssiz xətaların mənbələrini qeyd edin: səhv fs, atlanan pəncərələmə, vahid çarpazlıq (Hz/kHz,V/mV), normallaşmanın olmaması, tək/ikitərəfli spektrli çarpazlıq. Hər biri üçün necə test etməyi (hansı istinad siqnalı ilə) təklif edin. Kod:".

Zəif məlumat / Güclü göstəriş

ZƏFİYYƏT İSTİFADƏSİ: "Bu siqnalın tezliyini tapın."

GÜÇLÜ İSTİFADƏ: "Məndə 10 kHz seçmə tezliyi olan bir siqnal massivi var. FFT ilə dominant tezlik komponentlərini tapan Python kodunu yazın; Hann pəncərəsindən və amplituda korreksiyasından istifadə edin, tezlik oxunu fs-ə uyğun miqyaslayın. Kodun sonunda sintetik test siqnalı ilə təsdiqləmə bloku əlavə edin və f 1 kHz-in düzgün olub olmadığını yoxlayın."

Zəif əmr kontekstsiz cavab verir və fs qəbul edir; O, güclü sorğu parametrləri və özünü yoxlayan test bloku üçün göstərişlər qaytarır.

Siqnal emalında vahidlər və fərziyyələr cədvəli

anlayış

tez-tez səhv

yoxlama

Nümunə alma tezliyi (fs)

Cihazın faktiki FS əvəzinə defolt

Yazıcı parametrindən təsdiq

tezlik oxu

Əgər fs səhv olarsa, bütün ox sürüşür

Məlum tezlik test tonu

Pəncərələmə

Atlanan zaman spektral sızma

Monoton siqnalda pik eni

Amplituda

Normallaşdırma/korreksiya yoxdur

Məlum amplituda siqnalı ilə müqayisə

filtr kəsilir

fs-ə uyğun olaraq xətanı normallaşdırın

Tezliyə cavab qrafiki

Diqqət: FFT qrafikinin hamar və inandırıcı görünməsi onun dəqiq olması demək deyil. Tezlik oxu səhv ölçülürsə, bütün zirvələr yanlış yerdədir, lakin qrafik mükəmməl görünür. Həmişə məlum istinadla kalibrləyin.

Ümumi səhvlər

  • Mənbədən seçmə tezliyinin yoxlanılması. Yanlış fs bütün tezlikləri dəyişir.
  • Nyquist'i pozmaq və ləqəbi görməmək. Şübhəli təpələrdə, ilk növbədə, nümunə götürmə adekvatlığını sorğulayın.
  • FFT-də pəncərələrin atlanması. Spektral sızma real zirvəyə bənzəyir.
  • Amplituda normallaşmasını unutmaq. Amplitüdlər fiziki dəyərə qədər miqyassız olaraq qalır.
  • Filtr kəsmə tezliyinin fs-ə səhv normallaşdırılması. Filtr gözlənildiyindən fərqli yerdə kəsilir.

Xülasə

Bu bölmədə siz AI-ni siqnalın işlənməsi konsepsiyalarını öyrənmək, FFT və filtr kodunu yazmaq və analiz qurmaq üçün güclü köməkçi kimi yerləşdirmisiniz. Ancaq siqnalın işlənməsi zamanı nəticələr səssizcə təhrif edilə bilər: yanlış seçmə tezliyi, atlanan pəncərə, müdaxilə həcmi və ya normallaşdırmanın olmaması qrafiki gözəl, lakin qeyri-dəqiq edir. Beləliklə, AI-nin istehsal etdiyi hər kodu məlum istinad siqnalına qarşı sınaqdan keçirin, mənbədən nümunə götürmə tezliyini yoxlayın və hər bir nəticəni vahid və fiziki inandırıcılıq üçün yoxlayın. Hər təhlilin əvvəlində Nyquist və ləqəb anlayışını yoxlayın.

Tətbiq tapşırığı

Python-da sintetik test siqnalı yaradın: iki məlum tezliklərin cəmi (məsələn, 1 kHz və 3 kHz), fs=10 kHz. “FFT quraşdırma” şablonu ilə AI-dən analiz kodunu tələb edin və zirvələrin düzgün tezliklərdə göründüyünü yoxlayın. Sonra qəsdən fs-ni səhv daxil edin (məsələn, 8 kHz) və zirvələrin necə dəyişdiyini müşahidə edin. Nəhayət, pəncərəni çıxarın və spektral sızıntıya baxın. Hər təcrübənin nəticələrini bir cümlə ilə yazın.

yoxlama siyahısı

  • [ ] Mən qeyd cihazının faktiki parametrindən seçmə tezliyini (fs) yoxladım.
  • [ ] Mən Nyquist meyarını yoxladım və ləqəb riskini qiymətləndirdim.
  • [ ] Pəncərələmə və amplituda korreksiyasının FFT kodunda həyata keçirildiyini yoxladım.
  • [ ] Mən kodu məlum tezlikdə istinad siqnalı ilə sınaqdan keçirdim.
  • [ ] Mən vizual cavabla təsdiqlədim ki, filtr kəsilmə tezliyi fs-ə düzgün şəkildə normallaşdırılıb.
  • [ ] Mən bütün vahidləri (Hz/kHz, V/mV) uyğunlaşdırdım.