Furye transformasiyalarına interaktiv giriş

Jez Swanson

Tərcümə edən: Abbas Məcidov

Furye transformasiyaları müxtəlif işlərin hazırlanmasında istifadə edilə bilən bir vasitədir. Bu səhifədə Furye transformasiyasının necə işlədiyini izah edilir və bəzi faydalı istifadə nümunələri göstərilir:

Furye transformasiyalarının bu animasiya üzərindən izah edəcəyəm!

Məqalənin sonunda:

Hələki, riyaziyyat və tənlikləri "ixtisar edəcəyik". Furye transformasiyalarının özəyində çoxlu maraqlı riyazi əməliyyatlar var, amma mən onun əslində nə etdiyini və onu niyə istifadə etmək lazımdır konteksindən başlamaq istərdim. Mövzu haqqında daha çox öyrənmək istəyirsinizsə, aşağıda bəzi əlavə oxu təklifləri tapa bilərsiniz!

Furye transformasiyası nədir?

Furye transformasiyası - modelin sinus dalğalarına ayrılması üsuludur. Bu üsulun adı, onun banisi olan fransız riyaziyyatçı və fizik Jozef Furye götürülüb.

Gəlin, əvvəlcə bir neçə sadə misaldan başlayaraq. İlk olaraq periodik təkrarlanan nümunələr olan dalğalara baxacağıq.

Məsələn:

Buradakı dalğa nümunəsi sinus dalğalarına bölünə bilər. Bu iki sinus dalğasını bir araya gətirsək, orijinal dalğanı yenidən alacağıq.

Furye transformasiyası - birləşmiş dalğa əldə etmək və hər bir sinus dalğasını təkrar istehsal etmək üsuludur. Bu misalda siz bunu yalnız ilkin dalğaya baxaraq, demək olar ki, zehni olaraq edə bilərsiniz.

Necə? Belə görünür, real dünyada bir çox "məfhum" sinus dalğaları ilə qarşılıqlı təsirdədir. Biz onları adətən dalğa tezlikləri adlandıracağıq.

Bunun ən bariz nümunəsi səsdir. Səsi eşitdiyimiz zaman onu dalğalı xətt kimi deyil, səsi təşkil edən sinus dalğalarının müxtəlif tezlikləri kimi eşidirik.

Bu dalğaları kompüter vasitəsilə ayırdığımız zaman, insanların əslində nə eşitdiyi barədə fikir formalaşır. Səsin nə qədər yüksək və ya sakit olduğunu deyə bilirik və ya onun hansı not olduğunu təxmin edə bilirik.

Bunu sinus dalğalarından ibarət görünməyən dalğalarda da edə bilərik.

Gəlin indi görünməyən dalğalara nəzər salaq. Buna kvadrat dalğa deyilir.

Görünməsə də, sinus dalğalarına bölünə bilər.

Bu dəfə çoxlu sinus dalğalarına ehtiyacımız var. Texniki olaraq, kvadrat dalğanı tam yerləşdirmək üçün onlardan sonsuz sayda tələb olunur. Daha çox sinus dalğaları əlavə etdikcə, model tədricən orijinal kvadrat dalğaya yaxınlaşacaq.

Nə qədər sinus dalğasının olduğunu görmək üçün yuxarıdakı düyməni çubuğun üzərinə sürüşdürün.

Burada, ən böyük fərqi yaradan ilk bir neçə sinus dalğasının olduğunu görəcəksiniz. Düyməni ortada gətirdikdə dalğanın forması üzə çıxır, lakin o, hələ də kələ-kötürdür. İndi şəffaflığı hamarlamaq üçün digər kiçik dalğalara ehtiyac var.

Dalğaya qulaq asdığınız zaman səsin getdikcə kiçikləşdiyini eşidirsiniz, çünki biz nisbətən yüksək tezlikləri ixtisar edirik.

Hər bir periodik ardıcıllıqla bu baş verir. Gəlin indi şəkil çəkməyə çalışaq!

Buraya çəkin!

Sinus dalğaları əlavə olunduqca təsvirin sizə necə yaxınlaşdığını görmək üçün düyməni hərəkət etdirin.

Əlavə şəffaflıq istisna olmaqla, sinus dalğalarının yalnız yarısı istifadə edildikdə belə, dalğalar hələ də bir-birinə olduqca bənzəyir.

Əslində, dalğanın bu oxşarlığından öz xeyrimizə istifadə edə bilərik. Furye transformasiyasındən istifadə edərək, biz səsin vacib hissələrini götürə və onlardan orijinal səsə olduqca yaxın bir model əldə edə bilərik.

Kompüterlərdə dalğalar adətən nöqtələr massivi kimi saxlanılır.

Bunun əvəzinə biz onları bir dəstə sinus dalğası ilə təmsil edə bilərik. Daha sonra, kiçik tezliklərə məhəl qoymadan səsi sıxışdıra bilərik. Nəticə eyni olmayacaq, səs lakin orijinala olduqca yaxın səslənəcək.

MP3-lərin əslində etdiyi elə budur. Sadəcə olaraq, onlar hansı tezlikləri saxlamaq və hansını ixtisar etmək barədə daha "ağıllıdırlar".

Xülasə olaraq, bu halda, dalğanın əsas xüsusiyyətləri haqqında fikir əldə etmək üçün Furye transformasiyalarında istifadə edə bilərik, beləliklə də, məlumatların sıxılması kimi əməliyyatlar edərkən əldə etdiyimiz verilənlərdən istifadə edə bilərik.

İndi isə gəlin, Furye transformasiyasını bir az daha dərindən araşdıraq. Növbəti bölmə Furye transformasiya funksiyası haqqında daha çox məlumatı özündə ehtiva edir.

Xarici dairələr

Məqalənin əvvəlində dediyim kimi, bu transformasiya sinus dalğalarına ayrılmaq üçün istifadə olunur. Məsələ burasındadır ki, Furye transformasiyasının yaratdığı sinus dalğaları normal sinus dalğaları deyil, 3-ölçülüdür. Onları "mürəkkəb sinusoidlər" adlandırmaq olar. Və ya sadəcə "spirallar"…

Yan tərəfdən baxdıqda onlar sinus dalğalarına, yuxarıdan baxdıqda isə, dairələrə bənzəyir.

İndiyə qədər etdiyimiz hər bir əməliyyat üçün normal 2D sinus dalğalarına ehtiyacımız var idi. 2D dalğaları üzərində Furye transformasiyası etdikdə, nəticədən kompleks hissələr ixtisar edilir, buna görə də sinus dalğaları alırıq.

Ancaq 3D sinus dalğalarından bu kimi görünən əyləncəli bir şey etmək üçün istifadə edə bilərik:

Burada nə baş verir?

Bəli, zamanla keçdiyi yola görə rəsmin 3D forması olduğunu düşünə bilərik. Təsəvvür edin ki, bir əl çəkirsiniz; Qələminizin ucu olduğu yerdə hər üç ölçü mövcud olacaq. X və Y koordinatları bizə mövqe verir, zaman müstəvisi isə cari vaxtdır.

Biz 3D modeli, 2D sinus dalğalarından istifadə edərək vizuallaşdıra bilmərik. Nə qədər 2D sinus dalğaları əlavə etsək də, heç vaxt 3D forması əldə etməyəcəyik. Yəni bizə əlavə bir "vasitə" lazımdır.

İstifadə edə biləcəyimiz yuxarıda qeyd etdiyimiz 3D spiral sinus dalğalarıdır. Onlardan çoxlu sayda əlavə etdikdə, 3D modelimizə bənzəyən bir şey əldə edə bilərik.

Unutmayın ki, bu dalğalar yuxarıdan baxanda dairələrə bənzəyir. Bir dairə ətrafında hərəkət edən digər bir dairəyə xarici dairə deyilir.

Qutudakı dairələrin sayını təyin etmək üçün yuxarıdakı düymədən istifadə edin.

Əvvəlki kimi bir neçə dairə ilə modelimizə olduqca yaxın bir nəticə əldə edirik. Çünki bu, olduqca sadə formadır. Hər bir sonuncu dairə haşiyələri azca kəskinləşdirir.

Bütün bunlar hər hansı bir rəsmə tətbiq edilə bilər. İndi onu sınamaq növbəsi sizdədir!

Buraya çizin!

Rəsmdə istifadə ediləcək dairələrin sayını təyin etmək üçün yuxarıdakı düyməni hərəkət etdirin.

Bir daha görəcəksiniz ki, bir çox formalar üçün bütün nöqtələri gizlətmək əvəzinə, yalnız az sayda dairə ilə çox gözəl rəsm yaxınlığına nail olmaq olar.

Bunu real (və ya mövcud) verilənlər üçün də istifadə edə bilərikmi? Yaxşı səslənir… Bəli! Əslində, SVG (Vector Image Format) adlı başqa bir verilən formatı mövcuddur, və yəqin ki, yaratmağa çalışdığımız formalar kimi bu verilən forması ilə yaxşı uyğunlaşacaq. Amma, biz burada yalnız gözəl kiçik giflər hazırlamaq mümkün olduğunu göstərdik.

Yalnızca Furye çevrilmələrindən istifadə edən başqa bir vizual verilən növü mövcuddur.

JPEG

Furye çevrilmələrinin şəkillərə də tətbiq oluna biləcəyini bilirdinizmi? Müasir dövrdə Furye transformasiyalarından hər bir insan istifadə edir, çünki JPEG-lər işləmə üsulu Furye transformasiyalarına əsaslanır! Eyni prinsipləri şəkillərə də tətbiq edirik, onları sinus dalğa qruplarına ayırırıq və yalnız vacib olanları saxlayırıq.

Yeganə fərq, vizual təsvir ilə işlədiyimiz üçün bizə fərqli bir sinus dalğası lazım olmasıdır. Bizə elə bir "vasitə" lazımdır ki, əlimizdə hansı görüntü olursa olsun, orijinal görüntüyə qayıtmaq üçün bir dəstə sinus dalğasını bir araya gətirə bilək.

Bunun üçün hər bir sinus dalğası da vizual olmalıdır. Xətt dalğası əvəzinə indi qara və ağ bölgələri olan şəkillərimiz var. Hər bir təsvirdə daha çox və ya daha az kontrast dalğanın ölçüsünü təmsil edir.

Eyni şəkildə, biz onu rəngləri təmsil etmək üçün istifadə edə bilərik, lakin hələki qara və ağ şəkillərlə başlayaq. Rəngsiz şəkillər üçün bizə bəzi üfüqi dalğa təsvirləri lazımdır.

Və bir neçə şaquli dalğa təsviri.

Üfüqi və şaquli təsvirlər bizim kimi təsvir növlərini tək başına təmsil etməkdə çətinlik çəkir. Buna görə də həm üfüqi, həm də şaquli təsvirlərin ədədlərini bir-birinə vuraraq əlavə dalğalar yaratmaq lazımdır.

×
=

8x8 şəkil üçün lazım olan bütün təsvirlər aşağıdakılardır:

Bu təsvirləri götürüb, onların kontrastını ölçülərinə uyğun tənzimləsək və sonra da onları bir yerə yığsaq, istənilən təsviri yarada bilərik.

Gəlin "A" hərfi ilə başlayaq. Bu, olduqca kiçikdir, lakin bizə də elə bu lazımdır, əks halda çoxlu başqa təsvirlər əldə edəcəyik.

Bu təsvirləri daha çox əlavə etdikcə real görüntüyə getdikcə yaxınlaşan bir nəticə əldə edəcəyik. Ancaq bunun nümunə olduğunu yəqin etdiyinizi ehtimal edərək və nəticənin maksimum aydın olmasına çalışaraq, biz yalnız bir neçəsini daxil etmişik.

Mövcud JPEG təsvirlərdə bir neçə əlavə detal mövcuddur.

JPEG təsvir 8x8 hissəyə bölünür və hər bir hissə özü-özlüyündə sinus dalğalarına bölünür. Hər bir pikselin nə qədər açıq və ya qaranlıq olduğunu müəyyən etmək üçün tezlik qrupundan istifadə edirik. Daha sonra daha iki qrupdan istifadə edirik, onlardan biri qırmızı-yaşıl, digəri isə mavi-sarı rənglər üçün təyin edilmişdir. Hər bir hissə üçün istifadə etdiyimiz tezliklərin miqdarı JPEG təsvirin keyfiyyətini müəyyən edir.

Aşağıda təfərrüatları görə bildiyimiz böyüdülmüş əsl JPEG təsvir göstərilib. Keyfiyyət səviyyəsi ilə dəyişdiyimiz zaman bu prosesin necə işlədiyini görə bilərik.

Xülasə

Beləliklə, ümumiləşdirək:

Burada Furyerin transformasiyaların tətbiqinin yalnız bir neçə forması səthi olaraq nümayiş etidirildi. Furye transformasiyaları çox güclü bir vasitədir, çünki tezliklərə bölünmə ilə nüvəyə qədər çatmaq olar. Müasir dövrdə dizayn, mobil telefon siqnalları, maqnit rezonans görüntüləmə (MRT) və kvant fizikası da daxil olmaqla bir çox sahələrdə furye transformasiyalarından istifadə olunur!

Maraqlananlar üçün suallar

Mən burada riyaziyyatı demək olar ki, ixtisar etdim, lakin Furye transformasiyalarının özəyini formalaşdıran iş prinsipləri ilə maraqlanırsınızsa, tədqiqatınıza rəhbərlik etmək üçün aşağıdakı bir neçə sual üzərindən başlaya bilərsiniz:

Əlavə oxu bölməsi

Aşağıda mövzu ilə bağlı daha çox öyrənmək üçün baxılası yaxşı mənbələr mövcuddur:

An Interactive Guide To The Fourier Transform Nəyin necə baş verdiyini riyazi baxımdan kifayət qədər təkmil araşdıran məqalə.

But what is the Fourier Transform? A visual introduction 3Blue1Brown tərəfindən hazırlanmış Fourier transformasiyalarının riyaziyyatının səs perspektivi üzərindən izah edildiyi mükəmməl bir Youtube videosu.

A Tale of Math & Art: Creating the Fourier Series Harmonic Circles Visualization Şəkil çəkmək üçün xarici çevrələrdən necə istifadə etmək barədə izah verən məqalə. Mövzu xətti cəbr perpektivi üzərindən aparılır.

Fourier transform (İngilis dilli Vikipediya) Və əlbəttə ki, Vikipediya məqaləsi də yaxşıdır.

Müəllif

Mən Jez! Bay bölgəsində axtarış şirkətində tam iş günü işləyirəm və asudə vaxtımı bu kimi oyunlar yaratmaq və interaktiv kod yazmaqla keçirməyi sevirəm!

Bu veb səhifə açıq mənbə səhifəsidir, kodları GitHub-da mövcuddur! Hər hansı təklif və ya sualınız varsa, Twitter səhifəsində mənə tvit yazın.

Digər işlərimə baxmaq istəyirsinizsə, veb-səhifəmə daxil olun! Əgər gələcək işimlə maraqlanırsınızsa, mənim Twitter hesabımı @jezzamonn izləyə bilərsiniz!