Математика

Сцилаб ФФТ КАКО

Сцилаб ФФТ КАКО
Сцилаб је одличан алат за многе намене како у научном тако и у инжењерском раду. Овај чланак покрива посебан случај ФФТ-а, брзе Фоуриер-ове трансформације.

Прво да разјаснимо шта је брза Фуријеова трансформација и зашто желите да је користите. Математика се односи на фреквенције. Фуријеова трансформација је метода за издвајање мањих таласа у сложени талас. То је звучало сложено; када слушате музику, чујете много различитих нота певача, инструмената и тако даље. Као људи често можемо сами чути гитару, али покушајмо је издвојити технологијом на снимку и наиђете на проблеме. Савремена технологија то може, захваљујући различитим инкарнацијама основних Фуријеових једначина које су развијене током година. Савремена употреба Фоуриерове серије су компресија слике и видеа, ГПС и МРИ скенирање. Све ово чини апроксимацију извора и користи Фоуриерову серију за уштеду меморије и брже резултате.

Математичар Јеан-Баптисте Јосепх Фоуриер заправо је покушавао да реши једначину топлоте, како би могао да израчуна како се топлота шири у чврстој материји. Оно што је смислио било је много корисније од тога, иако су његове методе касније побољшане у формалнију верзију. Једначине се сада користе у широком спектру поља.

Да бисте издвојили одређену фреквенцију у сложеном сигналу, можете користити неке прорачуне, брзе Фуријеове трансформације. Математички темељ за ово захтева извесну праксу. Кхан Ацадеми је лепо место за учење математике.

Када требате анализирати било који талас, можете користити синусне функције за приближавање укупног таласа и добијање свих засебних сигнала из мешовитог таласа. Или обрнуто, можете направити сложени талас од неколико синусних таласа. Ово је основна идеја иза математике.

Да бисте боље разумели своје Фуријеове трансформације, добра пракса је да их сами напишете. У Сцилабу имате једноставан програмски језик дизајниран са нагласком на математику.
Различити задаци који ће вам требати Фуријеове трансформације почињу проналажењем коефицијената трансформације. Разлог је тај што се то користи за компресију слика и многе друге процесе.

Када научите основе серије, прва ствар која се користи су коефицијенти. Једначине су следеће:

Код за њихово решавање је прилично једноставан, започиње функцијом. Ова функција имплементира Фуријеову трансформацију у малим комадима.
Да бисте дефинисали функцију, користите очигледну конструкцију 'функције'. Испод је серија Фуријеа за квадратни талас:

функција и =ф(з)
и = 4 * син (т) / 1 *% пи + 4 * син (3 * т) / 3 *% пи + 4 * син (5 * т) / 5 *% пи + 4 * син (7 * т) / 7 *% пи
+ 4 * грех (9 * т) / 9 *% пи
крајња функција

Да бисте талас учинили још квадратнијим, то је ипак апроксимација, морате стално повећавати број чланова. Када желите да створите образац, рецимо цртани, користите Фуријеову трансформацију на врло сличан начин. Само треба да сматрате период бесконачним.

Једноставно десно? Па, не без основног математичког знања. Испробајте неколико примера сами, користећи сцилаб.

Овај пример показује најједноставнију могућу комбинацију сигнала; два сигнала различите фреквенције.

// Изаберите величину узорка
 
Н = 100;
 
// Поставите секвенцу, ово креира низ
 
н = 0: Н-1;
 
// Стварање фреквенције сигнала
 
в1 =% пи / 4
 
в2 =% пи / 8
 
// Израдити узорковане сигнале
 
с1 = цос (в1 * н); // Прва компонента сигнала
 
с2 = цос (в2 * н); // Друга компонента сигнала
 
// Комбинујте два у један сигнал
// У овом случају дајемо једноставан чисти сигнал.
 
ф = с1 + с2;
 
// Ево резултујућег сигнала спремног за трансформацију.
 
фигура (0);
заплет (ф);
 
// Фуријеова трансформација овог сигнала треба да покаже само фреквенцију компонената.
 
Ф = ффт (ф);
 
Ф_абс = трбушњаци (Ф);
 
Слика 1);
заплет (н, Ф_абс);
 
слика (2);
заплет (Ф);

Користите горњи пример да бисте увежбали како трансформација функционише. Обавезно га промените тако да се филтрира на различите начине.

Савет је да користите Сцилаб конзолу да бисте видели шта променљиве садрже у сваком кораку програма, на овај начин такође можете да видите да „Ф“ има замишљени садржај. Покушајте да промените афа на други начин да бисте добили тачнији резултат.

У индустрији је најчешће коришћена Фоуриер-ова трансформација за анализу сигнала. Да бисте филтрирали фреквенције из бучног сигнала, морате започети са прављењем или увозом сигнала.  Следећи исечак кода ствара мешовити сигнал од две фреквенције, 50 и 70 хз. У коду такође можете видети употребу „гранд“, ово је сцилаб позив на случајан начин. Ове случајне вредности се додају како би сигнал био мало бучнији, ближи стварности.

сампле_рате = 1000;
т = 0: 1 / сампле_рате: 0.6;
Н = величина (т, '*'); // број узорака
с = син (2 *% пи * 50 * т) + син (2 *% пи * 70 * т +% пи / 4) + гранд (1, Н, 'нор', 0,1);
Сада можете исцртати 'с' у функцији од 'т' и видети да графикон изгледа неуредно.
>> заплет (т, с);

Овде је време да испробамо најједноставнију Фуријеову трансформацију, направимо 'и' Фуријерову трансформацију од с.

и = ффт (с);

ффт

Ако нацртате 'и' у функцији 'т', добићете донекле симетричан образац у распону од 0 до 0.6. Два шиљака су оно што тражимо, али сада их видимо у временском домену. Оно што се заиста догодило је да резултат и даље садржи замишљене вредности. Да бисмо пронашли две фреквенције у фреквенцијском домену, требају нам још неке операције да бисмо пронашли само стварне бројеве. А онда узимате апсолутну вредност резултата. Графикон јасно указује на оригиналне фреквенције.

Ево кода:

// с је стваран, па је ффт одговор коњуговано симетричан и задржавамо само први
Н / 2 поена
ф = брзина_узорка * (0: (Н / 2)) / Н; // придружени вектор фреквенције
н = величина (ф, '*')
цлф ()
заплет (ф, апси (1: н)))

Ово је најчешћа употреба Фуријеове трансформације. Користећи овај систем можете пронаћи било коју фреквенцију у сложеном, бучном сигналу. Једначине се данас широко користе у многим индустријама.
Функција ффт2 Сцилаба је дводимензионална верзија брзе Фуријеове трансформације.

Одличан начин вежбања је одабрати ДТМФ тонове, створити један тастер и научити да сцилаб схвати тачан тастер.

Демо у Сцилабу садржи изложбу звучних датотека, проучите је.

Ако желите дубље да истражите, ево неколико веза за даље читање.

Напредна литература:

хттпс: // цнк.орг / цонтентс / [емаил протецтед] / Имплементинг-ФФТс-ин-Працтице # уид8

Волфрам…

хттп: // демонстрације.волфрам.цом / ЦомплекАндРеалПланесОфДисцретеФоуриерТрансформс /

Имплементација на другим језицима:

хттпс: // ввв.наиуки.ио / паге / хов-то-имплементирати-дискретну-Фуријеову трансформацију

Да бисте стекли прави осећај за тему:

хттпс: // боље објашњено.цом / Чланци / Интерактивни водич-за-Фуер-ову трансформацију /

Портови комерцијалних игара отвореног кода
Бесплатне рекреације покретачких игара са отвореним кодом и више платформи могу се користити за играње старих, као и неких прилично недавних наслова и...
Најбоље игре командне линије за Линук
Командна линија није само ваш највећи савезник када користите Линук - она ​​такође може бити извор забаве јер је можете користити за играње многих заб...
Најбоље апликације за мапирање гамепада за Линук
Ако волите да играте игре на Линуку са гамепадом уместо са типичним системом за унос тастатуре и миша, за вас постоје неке корисне апликације. Многе и...