Najprej pojasnimo, kaj je hitra Fourierjeva transformacija in zakaj jo želite uporabiti. Pri matematiki gre za frekvence. Fourierjeva transformacija je metoda za ločevanje manjših valov v kompleksnem valu. To je zvenelo zapleteno; ko poslušate glasbo, slišite veliko različnih not pevca, inštrumentov itd. Kot ljudje pogosto slišimo kitaro samostojno, vendar jo poskušamo s snemanjem izpostaviti s tehnologijo in naletimo na težave. Sodobna tehnologija to lahko stori, zahvaljujoč različnim inkarnacijam osnovnih Fourierjevih enačb, ki so se razvijale skozi leta. Sodobna uporaba serije Fourier je stiskanje slik in videov, GPS in MRI skeniranje. Vse to naredi približek viru in uporablja Fourierjevo serijo za prihranek spomina in hitrejše rezultate.
Matematik Jean-Baptiste Joseph Fourier je dejansko poskušal rešiti enačbo toplote, da bi lahko izračunal, kako se toplota širi v trdni snovi. Kar je prišel, je bilo veliko bolj koristno od tega, čeprav so bile njegove metode kasneje izboljšane v bolj formalno različico. Enačbe se zdaj uporabljajo na številnih področjih.
Če želite v kompleksnem signalu izločiti določeno frekvenco, lahko uporabite nekatere izračune, hitre Fourierjeve transformacije. Matematični temelj za to zahteva nekaj prakse. Khan Academy je prijeten kraj za učenje matematike.
Ko morate analizirati morebitne valove, lahko s sinusnimi funkcijami približate celotni val in dobite vse ločene signale iz mešanega vala. Ali obratno, lahko naredite kompleksen val iz več sinusnih valov. To je osnovna ideja matematike.
Če želite bolje razumeti svoje Fourierjeve transformacije, je dobra praksa, da jih napišete sami. V Scilabu imate preprost programski jezik, zasnovan s poudarkom na matematiki.
Različne naloge, ki jih boste potrebovali, Fourierjeve transformacije se začnejo pri iskanju koeficientov transformacije. Razlog je v tem, da se to uporablja za stiskanje slik in številne druge procese.
Ko se naučite osnov serije, najprej uporabite koeficiente. Enačbe so takšne:
Koda za njihovo reševanje je dokaj preprosta, začne se s funkcijo. Ta funkcija izvaja Fourierjevo transformacijo v majhnih koščkih.
Za definiranje funkcije uporabite očiten konstrukt 'function'. Spodaj je serija fourierjev za kvadratni val:
y = 4 * sin (t) / 1 *% pi + 4 * sin (3 * t) / 3 *% pi + 4 * sin (5 * t) / 5 *% pi + 4 * sin (7 * t) / 7 *% pi
+ 4 * sin (9 * t) / 9 *% pi
končna funkcija
Če želite, da je val še bolj kvadratni, je to navsezadnje približek, morate še naprej povečevati število izrazov. Ko želite poustvariti vzorec, recimo risanko, uporabite Fourierjevo transformacijo na zelo podoben način. Samo obdobje morate šteti za neskončno.
Preprosto desno? No, ne brez osnovnega matematičnega znanja. Poskusite nekaj primerov sami, z uporabo scilaba.
Ta primer prikazuje najpreprostejšo možno kombinacijo signalov; dva signala z različno frekvenco.
// Izberite velikost vzorcaN = 100;
// Nastavimo zaporedje, to ustvari matriko
n = 0: N-1;
// Ustvari frekvenco signalov
w1 =% pi / 4
w2 =% pi / 8
// Naredimo vzorčene signale
s1 = cos (w1 * n); // Prva komponenta signala
s2 = cos (w2 * n); // Druga komponenta signala
// Združite oba v en signal
// V tem primeru naredimo preprost čisti signal.
f = s1 + s2;
// Tu je nastali signal, pripravljen za preoblikovanje.
slika (0);
ploskev (f);
// Fourierjeva transformacija tega signala mora prikazati samo frekvenco komponent.
F = fft (f);
F_abs = abs (F);
slika (1);
ploskev (n, F_abs);
slika (2);
ploskev (F);
Z zgornjim primerom vadite, kako deluje preoblikovanje. Prepričajte se, da ga spremenite tako, da se filtrira na različne načine.
Namig je, da s pomočjo konzole Scilab vidite, kaj vsebujejo spremenljivke v vsakem koraku programa, tako lahko tudi vidite, da ima 'F' namišljeno vsebino. Poskusite spremeniti äfä na drug način, da boste dobili bolj pravilen rezultat.
V industriji je Fourierjeva transformacija najpogostejša za analizo signala. Če želite filtrirati frekvence iz hrupnega signala, morate začeti z izdelavo ali uvozom signala. Naslednji delček kode ustvari mešani signal dveh frekvenc, 50 in 70 hz. V kodi lahko vidite tudi uporabo 'grand', to je scilab klic naključno. Te naključne vrednosti so dodane, da je signal nekoliko bolj hrupen, bližje resničnosti.
hitrost_vzorca = 1000;t = 0: 1 / hitrost_vzorca: 0.6;
N = velikost (t, '*'); // število vzorcev
s = sin (2 *% pi * 50 * t) + sin (2 *% pi * 70 * t +% pi / 4) + velik (1, N, 'niti', 0,1);
Zdaj lahko narišete 's' v odvisnosti od 't' in vidite, da je graf neurejen.
>> ploskev (t, s);
Tu je čas, da preizkusimo najpreprostejše fourierjeve transformacije, naredimo 'y' fourierjevo transformacijo s.
y = fft (s);fft
Če narišete 'y' v odvisnosti od 't', dobite nekoliko simetričen vzorec od 0 do 0.6. Dva konica sta tisto, kar iščemo, zdaj pa jih vidimo v časovni domeni. V resnici se je zgodilo, da je rezultat še vedno vseboval namišljene vrednosti. Da bi našli dve frekvenci v frekvenčnem območju, potrebujemo še nekaj operacij, da najdemo samo realna števila. In potem vzamete absolutno vrednost rezultatov. Graf jasno prikazuje izvorne frekvence.
Tu je koda:
// s je resničen, zato je odziv fft konjugiran simetrično in ohranimo le prvegaN / 2 točki
f = hitrost_vzorca * (0: (N / 2)) / N; // pripadajoči frekvenčni vektor
n = velikost (f, '*')
clf ()
ploskev (f, absy (1: n)))
To je najpogostejša uporaba Fourierjeve transformacije. Z uporabo tega sistema lahko najdete katero koli frekvenco v zapletenem, hrupnem signalu. Enačbe se danes pogosto uporabljajo v mnogih panogah.
Funkcija fft2 Scilaba je dvodimenzionalna različica hitre fourierjeve transformacije.
Odličen način vadbe je izbrati tone DTMF, ustvariti pritisk z enim gumbom in scilab najti pravilno tipko.
Predstavitve v programu Scilab vsebujejo predstavitev zvočne datoteke, preučite jo.
Če se želite poglobiti, tukaj je nekaj povezav do nadaljnjega branja.
Napredna literatura:
https: // cnx.org / contents / [email protected] / Implementing-FFTs-in-Practice # uid8
Wolfram ..
http: // demonstracije.volfram.com / ComplexAndRealPlanesOfDiscreteFourierTransforms /
Izvajanje v drugih jezikih:
https: // www.nayuki.io / page / how-to-Implementirati-diskretna-Furiejeva preobrazba
Da bi dobili pravi občutek za zadevo:
https: // bolje pojasnjeno.com / articles / interaktivni vodnik-do-the-fourierjeve transformacije /