Abstraktid avaldused Lugu

Võnkumised. Harmoonilised vibratsioonid

Harmooniliste mehaaniliste vibratsioonide ergastamine

Animatsioon

Kirjeldus

Kui võnkesüsteem viiakse mingil moel tasakaalust välja ja jäetakse seejärel omapäi, siis ta teostab harmoonilisi võnkumisi eeldusel, et süsteemis puudub hõõrdumine ja potentsiaalne energia sõltub ruutkeskmiselt üldistatud koordinaadist (nii nimetatakse vabadeks või loomulikeks võnkumisteks). Süsteemi tasakaaluolekust eemaldamiseks tuleb anda sellele energiat. Selleks on vaja süsteem tasakaaluasendist välja nihutada või anda sellele mingi kiirus või teha mõlemat korraga. Newtoni viskoosse hõõrdumise olemasolul võib võnkesüsteem teostada ka harmoonilisi võnkumisi, kuid ainult harmoonilise liikumapaneva jõu mõjul (nn sundvõnkumised).

Vaatleme mehaanilist võnkesüsteemi, mille vaba liikumist kirjeldab funktsioon

x(t) = A cos (w t + a) . (1)

Sellist süsteemi nimetatakse harmooniline ostsillaator. Funktsioon (1) kirjeldab nn harmoonilisi võnkumisi.

Siin nimetatakse positiivset väärtust A võnkeamplituudiks, w on ring- või tsükliline sagedus. Funktsioon

j = w t + a (2)

nimetatakse võnkefaasiks ja väärtust a nimetatakse algfaasiks. Võnkumiste periood on seose kaudu seotud nende sagedusega

T = 2 p/w. (3)

Funktsioonigraafik on näidatud joonisel fig. 1.

Harmooniliste võnkumiste koordinaatide sõltuvus ajast

Riis. 1 Funktsioon (1) on lahendus diferentsiaalvõrrand

teine ​​järjekord

d 2 x /dt 2 + w 2 x = 0, (4)

mis väljendab mõnda füüsikaseadust, mis määrab vaadeldava süsteemi käitumise (tavaliselt Newtoni teine ​​seadus või kõverjooneliste üldistatud koordinaatide kasutamise korral selle tagajärjed nagu Euleri-Lagrange'i võrrandid või Hamiltoni võrrandid). Võnkumiste amplituudi ja algfaasi saab leida algtingimustest

x(0) = x o; d x(0) /dt = v o ,

mis määravad võnkesüsteemi oleku ajahetkel t = 0. Nendel tingimustel on x o ja v o suvalised konstandid. Algtingimused viivad valemiteni:

A = sqrt (x o 2 + (v o / k) 2 ); tg a = - v o / w x o . Välist mõju võnkesüsteemile saab kirjeldada vähendatud jõuga f = f (t). Sest vähendatud jõud f = F (t)/m, kus F on välisjõud. Sel juhul täidab funktsioon x = x(t) võrrandit:

d 2 x /dt 2 + 2 b dx /dt + w o 2 x = f(t) . (5)

Teine liige selle võrrandi vasakul küljel kirjeldab hõõrdumise mõju liikuvale kehale. Sel juhul ei ole keha vaba vibratsioon harmooniline. Olgu taandatud jõud f = f (t) aja harmooniline funktsioon, s.t. oleneb ajast vastavalt seadusele:

f (t) = f m cos W t,

kus f m on liikumapaneva jõu amplituud,

W on selle muutumise sagedus.

Sel juhul kirjeldatakse sundvõnkumisi funktsiooniga:

x (t) = A cos (W t + a),

need. tähistab liikuva jõu sagedusega W harmoonilisi võnkumisi. Sundvõnkumiste amplituud A sõltub sagedusest W vastavalt valemile:

A(W) = f m/sqrt ((w o 2 - W 2 ) 2 + 4 b 2 W 2 ).

Sundvõnkumiste a algfaas määratakse valemiga

a = - arctg (2 bW / (w o 2 - W 2 )).

Ajastuse omadused

Algusaeg (logi kuni -3 kuni 1);

eluiga (log tc vahemikus 13 kuni 15);

Lagunemisaeg (log td vahemikus -4 kuni -3);

Optimaalse arengu aeg (log tk vahemikus -3 kuni -2).

Algfaasi valik võimaldab harmooniliste võnkumiste kirjeldamisel liikuda siinusfunktsioonilt koosinusfunktsioonile:

Üldistatud harmooniline võnkumine diferentsiaalkujul:

Selleks, et harmoonilise seaduse järgi tekiksid vabad vibratsioonid, on vajalik, et keha tasakaaluasendisse tagasi viima kippuv jõud oleks võrdeline keha nihkega tasakaaluasendist ja suunatud nihkele vastupidises suunas:

kus on võnkuva keha mass.

Nimetatakse füüsikalist süsteemi, milles võivad eksisteerida harmoonilised võnkumised harmooniline ostsillaator, ja harmooniliste vibratsioonide võrrand on harmoonilise ostsillaatori võrrand.

1.2. Vibratsiooni lisamine

Sageli esineb juhtumeid, kus süsteem osaleb samaaegselt kahes või mitmes üksteisest sõltumatus võnkes. Nendel juhtudel tekib kompleksne võnkumine, mis tekib üksteisele võnkumiste pealekandmisel (lisamisel). Ilmselgelt võivad võnkumiste lisamise juhtumid olla väga erinevad. Need ei sõltu ainult lisatud võnkumiste arvust, vaid ka võnkumiste parameetritest, nende sagedustest, faasidest, amplituudidest ja suundadest. Kõiki võimalikke erinevaid võnkumiste liitmise juhtumeid pole võimalik läbi vaadata, seega piirdume vaid üksikute näidete käsitlemisega.

Ühte sirget pidi suunatud harmooniliste võnkumiste liitmine

Vaatleme sama perioodi identse suunatud, kuid algfaasi ja amplituudi poolest erinevate võnkumiste liitmist. Lisatud võnkumiste võrrandid on esitatud järgmisel kujul:

kus ja on nihked; ja – amplituudid; ja on volditud võnkumiste algfaasid.

Joonis 2.

Tekkiva võnke amplituudi on mugav määrata vektordiagrammi abil (joonis 2), millele on kantud amplituudide vektorid ja liidetud võnkumised nurkade ja telje suhtes ning rööpkülikureegli järgi amplituudivektor saadakse koguvõnkumine.

Kui pöörata ühtlaselt vektorite süsteemi (parallelogramm) ja projitseerida vektorid teljele , siis nende projektsioonid teostavad harmoonilisi võnkumisi vastavalt etteantud võrranditele. Vastastikune seisukoht vektorid ja jääb samal ajal muutumatuks, seetõttu on ka saadud vektori projektsiooni võnkuv liikumine harmooniline.

Sellest järeldub, et kogu liikumine on harmooniline võnkumine, millel on etteantud tsükliline sagedus. Määrame amplituudmooduli A tekkiv võnkumine. Nurka (rööpküliku vastasnurkade võrdsusest).

Seega

siit: .

Koosinusteoreemi järgi

Saadud võnkumise algfaas määratakse järgmiselt:

Faasi ja amplituudi seosed võimaldavad meil leida saadud liikumise amplituudi ja algfaasi ning koostada selle võrrandi: .

Beats

Vaatleme juhust, kui kahe liidetud võnke sagedused erinevad üksteisest vähe ning olgu amplituudid samad ja algfaasid, s.o.

Lisame need võrrandid analüütiliselt:

Muutkem

Riis. 3.
Kuna see muutub aeglaselt, ei saa suurust nimetada amplituudiks selle sõna täies tähenduses (amplituud on konstantne suurus). Tavapäraselt võib seda suurust nimetada muutuvaks amplituudiks. Selliste võnkumiste graafik on näidatud joonisel 3. Lisatud võnkumiste amplituudid on samad, kuid perioodid on erinevad ja perioodid erinevad üksteisest veidi. Kui sellised vibratsioonid kokku liita, täheldatakse lööke. Löökide arvu sekundis määrab lisandunud võnkumiste sageduste erinevus, s.o.

Lööke võib täheldada kahe häälestushargi helil, kui sagedused ja vibratsioon on üksteise lähedal.

Vastastikku risti asetsevate vibratsioonide liitmine

Lase materiaalne punkt osaleb samaaegselt kahes harmoonilises võnkes, mis toimuvad võrdsete perioodidega kahes üksteisega risti olevas suunas. Ristkülikukujulise koordinaatsüsteemi saab seostada nende suundadega, asetades lähtepunkti punkti tasakaaluasendisse. Tähistame punkti C nihkumist piki ja telge vastavalt läbi ja . (joonis 4).

Vaatleme mitmeid erijuhtumeid.

1). Võnkumiste algfaasid on samad

Valime aja alguspunkti nii, et mõlema võnke algfaasid on võrdsed nulliga. Seejärel saab nihkeid piki telge väljendada võrranditega:

Jagades need võrdsused liikmeks, saame punkti C trajektoori võrrandid:
või .

Järelikult võngub punkt C kahe vastastikku risti asetseva võnke liitmise tulemusena piki koordinaatide alguspunkti läbivat sirge lõiku (joonis 4).

Riis. 4.
2). Algfaasi erinevus on :

Sel juhul on võnkevõrrandid järgmisel kujul:

Punktide trajektoori võrrand:

Järelikult punkt C võngub piki sirge lõiku, mis läbib koordinaatide alguspunkti, kuid asub teises kvadrantides kui esimesel juhul. Amplituud A saadud võnkumised mõlemal vaadeldaval juhul on võrdsed:

3). Algfaasi erinevus on .

Võnkuvõrranditel on järgmine kuju:

Jagage esimene võrrand , teine ​​võrrandiga:

Teeme mõlemad võrdused ruudus ja liidame need kokku. Võnkepunkti liikumise trajektoori jaoks saame järgmise võrrandi:

Võnkumispunkt C liigub mööda ellipsi pooltelgedega ja . Võrdsete amplituudide korral on kogu liikumise trajektoor ring. Üldjuhul puhul , kuid mitmekordne, s.t. , vastastikku risti asetsevate võnkumiste liitmisel liigub võnkepunkt mööda kõveraid, mida nimetatakse Lissajouse kujunditeks.

Lissajouslikud kujud

Lissajouslikud kujud– suletud trajektoorid, mis on tõmmatud punktiga, mis teostab samaaegselt kahte harmoonilist võnkumist kahes üksteisega risti olevas suunas.

Esmakordselt uuris seda prantsuse teadlane Jules Antoine Lissajous. Jooniste välimus sõltub mõlema võnke perioodide (sageduste), faaside ja amplituudide vahelisest suhtest(joonis 5).

Joonis 5.

Mõlema perioodi kõige lihtsamal võrdsuse korral on kujunditeks ellipsid, mis faasierinevuse korral kas manduvad sirgeteks segmentideks ning faasierinevuse ja võrdsete amplituudidega muutuvad ringiks. Kui mõlema võnke perioodid ei lange täpselt kokku, siis faasierinevus muutub kogu aeg, mille tulemusena ellips kogu aeg deformeerub. Oluliselt erinevatel perioodidel Lissajouse näitajaid ei täheldata. Kui aga perioodid on omavahel seotud täisarvudena, siis mõlema perioodi väikseima kordsega võrdse aja möödudes naaseb liikuv punkt uuesti samasse kohta - saadakse keerulisema kujuga Lissajouse kujundid.
Lissajouse figuurid mahuvad ristkülikusse, mille keskpunkt ühtib alguspunktiga ja küljed on paralleelsed koordinaattelgedega ning paiknevad nende mõlemal küljel võnkeamplituudidega võrdsel kaugusel (joonis 6).

Harmoonilise vibratsiooni võrrand

Harmoonilise võnke võrrand määrab keha koordinaatide sõltuvuse ajast

Algmomendi koosinusgraafikul on maksimaalne väärtus ja siinusgraafikul on algmomendil null väärtus. Kui hakkame võnkumist uurima tasakaaluasendist, siis võnkumine kordab sinusoidi. Kui hakata arvestama võnkumist maksimaalse hälbe asendist, siis kirjeldatakse võnkumist koosinusega. Või saab sellist võnkumist kirjeldada siinuse valemiga algfaasiga.

Kiiruse ja kiirenduse muutumine harmoonilise võnkumise ajal

Siinuse või koosinuse seaduse järgi ei muutu ajas mitte ainult keha koordinaat. Kuid sarnaselt muutuvad ka sellised suurused nagu jõud, kiirus ja kiirendus. Jõud ja kiirendus on maksimaalsed, kui võnkuva keha on äärmistes asendites, kus nihe on maksimaalne, ja on null, kui keha läbib tasakaaluasendi. Kiirus, vastupidi, äärmuslikes asendites on null ja kui keha läbib tasakaaluasendi, saavutab see maksimaalse väärtuse.

Kui võnkumist kirjeldab koosinusseadus

Kui võnkumist kirjeldatakse siinuse seaduse järgi

Maksimaalsed kiiruse ja kiirenduse väärtused

Olles analüüsinud sõltuvuse võrrandeid v(t) ja a(t), võime arvata, et kiirus ja kiirendus saavad maksimaalsed väärtused juhul, kui trigonomeetriline tegur on 1 või -1. Määratakse valemiga

Harmooniline võnkumine on mis tahes suuruse perioodilise muutumise nähtus, mille puhul sõltuvus argumendist on siinus- või koosinusfunktsiooni iseloomuga. Näiteks suurus võngub harmooniliselt ja muutub aja jooksul järgmiselt:

kus x on muutuva suuruse väärtus, t on aeg, ülejäänud parameetrid on konstantsed: A on võnkumiste amplituud, ω on võnkumiste tsükliline sagedus, on võnkumiste täisfaas, on võnkumiste algfaas.

Üldistatud harmooniline võnkumine diferentsiaalkujul

(Selle diferentsiaalvõrrandi mis tahes mittetriviaalne lahendus on harmooniline võnkumine tsüklilise sagedusega)

Vibratsiooni tüübid

    Vaba vibratsioon tekib süsteemi sisejõudude mõjul pärast seda, kui süsteem on tasakaaluasendist eemaldatud. Et vabavõnkumised oleksid harmoonilised, on vajalik, et võnkesüsteem oleks lineaarne (kirjeldatud lineaarsete liikumisvõrranditega) ja selles ei toimuks energia hajumist (viimane põhjustaks sumbumist).

    Sundvõnked tekivad välise perioodilise jõu mõjul. Et need oleksid harmoonilised, piisab sellest, et võnkesüsteem on lineaarne (kirjeldatakse lineaarsete liikumisvõrranditega) ja välisjõud ise muutub aja jooksul harmoonilise võnkumisena (st et selle jõu sõltuvus ajast on sinusoidaalne) .

Harmooniline võrrand

Võrrand (1)

annab kõikuva väärtuse S sõltuvuse ajast t; see on vabade harmooniliste võnkumiste võrrand selgesõnalisel kujul. Tavaliselt mõistetakse vibratsioonivõrrandit aga selle võrrandi erineva esitusena diferentsiaalkujul. Kindluse mõttes võtame võrrandi (1) kujul

Eristame seda ajas kaks korda:

On näha, et kehtib järgmine seos:

mida nimetatakse vabade harmooniliste võnkumiste võrrandiks (diferentsiaalkujul). Võrrand (1) on diferentsiaalvõrrandi (2) lahendus. Kuna võrrand (2) on teist järku diferentsiaalvõrrand, on täieliku lahendi saamiseks (st võrrandis (1) sisalduvate konstantide A ja   määramiseks) vajalikud kaks algtingimust; näiteks võnkesüsteemi asukoht ja kiirus t = 0 juures.

Matemaatiline pendel on ostsillaator, mis on mehaaniline süsteem, mis koosneb materiaalsest punktist, mis paikneb kaaluta mittevenival niidil või kaaluta vardal ühtlases gravitatsioonijõudude väljas. l pikkusega l matemaatilise pendli väikeste loomulike võnkumiste periood, mis on liikumatult rippunud ühtlases gravitatsiooniväljas vaba langemise kiirendusega g, on võrdne

ja ei sõltu pendli amplituudist ja massist.

Füüsikaline pendel on ostsillaator, mis on tahke keha, mis võngub mis tahes jõudude väljal punkti suhtes, mis ei ole selle keha massikese, või fikseeritud telje suhtes, mis on jõudude toimesuunaga risti ja mitte. mis läbib selle keha massikeskme.

Fourier' teisenduse jaoturi ja kõikvõimalike ilude kohta, nagu digitaalne signaalitöötlus (DSP) oli mitmeid artikleid, kuid kogenematule kasutajale jääb täiesti arusaamatuks, miks seda kõike vaja on ja kus ja mis kõige tähtsam, kuidas seda rakendada. seda.

Müra sagedusreaktsioon.

Mulle isiklikult ei saanud pärast nende artiklite lugemist (näiteks seda) selgeks, mis see on ja milleks seda päriselus vaja on, kuigi huvitav ja ilus oli.
Ma tahan mitte ainult ilusaid pilte vaadata, vaid nii-öelda sisikonnas tunnetada, mis ja kuidas see töötab. Ja toon konkreetse näite helifailide genereerimise ja töötlemise kohta. Võimalik on kuulata heli ja vaadata selle spektrit ning mõista, miks see nii on.
Artikkel ei paku huvi neile, kes tunnevad keeruka muutuja funktsioonide teooriat, DSP-d ja muid hirmutavaid teemasid. See on rohkem uudishimulikele, koolilastele, tudengitele ja neile kaasaelajatele :).

Lubage mul kohe teha reservatsioon: ma ei ole matemaatik ja võin isegi paljusid asju valesti öelda (parandage need isiklikus sõnumis) ning kirjutan seda artiklit oma kogemuse ja arusaamade põhjal praegustest protsessidest. Kui olete valmis, lähme.

Paar sõna materjalidest

Kui mäletame oma kooli matemaatikakursust, kasutasime siinusgraafiku joonistamiseks ringi. Üldiselt selgub, et pöörlev liikumine saab muuta siinuslaineks (nagu iga harmooniline võnkumine). Selle protsessi parim näide on toodud Vikipeedias


Harmoonilised vibratsioonid

Need. Tegelikult saadakse siinusgraafik vektori pöörlemisest, mida kirjeldatakse valemiga:

F(x) = A patt (ωt + φ),

Kus A on vektori pikkus (võnkeamplituud), φ on vektori algnurk (faas) nullajal, ω on pöörlemise nurkkiirus, mis on võrdne:

ω=2 πf, kus f on sagedus hertsides.

Nagu näeme, teades signaali sagedust, amplituudi ja nurka, saame konstrueerida harmoonilise signaali.

Maagia algab siis, kui selgub, et absoluutselt iga signaali esitust saab esitada erinevate sinusoidide summana (sageli lõpmatuna). Ehk siis Fourier’ seeria kujul.
Toon näite ingliskeelsest Vikipeediast. Võtame näiteks saehamba signaali.


Kaldtee signaal

Selle summat väljendatakse järgmise valemiga:

Kui liidame ükshaaval, võtame kõigepealt n=1, siis n=2 jne, siis näeme, kuidas meie harmooniline siinussignaal muutub järk-järgult saeks:

Ilmselt illustreerib seda kõige ilusamalt üks programm, mille leidsin Internetist. Eespool oli juba öeldud, et siinusgraafik on pöörleva vektori projektsioon, aga kuidas on lood keerukamate signaalidega? Kummalisel kombel on see paljude pöörlevate vektorite projektsioon või pigem nende summa ja see kõik näeb välja selline:


Vektorjoonistussaag.

Üldiselt soovitan ise lingile minna ja proovida ise parameetritega mängida ja vaadata kuidas signaal muutub. IMHO Ma pole kunagi näinud mõistmiseks visuaalsemat mänguasja.

Samuti tuleb märkida, et on olemas pöördprotseduur, mis võimaldab teil saada antud signaalist sageduse, amplituudi ja algfaasi (nurga), mida nimetatakse Fourier' teisenduseks.


Mõnede tuntud perioodiliste funktsioonide Fourier-seeria laiendus (siit)

Ma ei hakka sellel üksikasjalikult peatuma, kuid näitan, kuidas seda elus rakendada. Bibliograafias soovitan, kust saab materjali kohta rohkem lugeda.

Liigume edasi praktiliste harjutuste juurde!

Mulle tundub, et iga tudeng esitab loengus istudes küsimuse, näiteks matemaatika teemal: milleks mulle kõike seda jama vaja on? Ja reeglina, kuna ta pole lähitulevikus vastust leidnud, kaotab ta kahjuks selle teema vastu huvi. Nii et ma näitan teile kohe praktiline rakendus need teadmised ja omandad need teadmised ise :).

Edasi rakendan kõike ise. Tegin kõike muidugi Linuxi all, kuid teoreetiliselt ei kasutanud mingeid spetsiifilisi, programm kompileerib ja töötab teistel platvormidel.

Kõigepealt kirjutame programmi helifaili genereerimiseks. Wav-faili peeti lihtsaimaks. Saate lugeda selle struktuuri kohta.
Lühidalt kirjeldatakse wav-faili struktuuri järgmiselt: päis, mis kirjeldab failivormingut ja seejärel on (meie puhul) 16-bitiste andmete massiiv (spike), mille pikkus on: proovivõtu_sagedus*t sekundit või 44100*t tükki.

Helifaili genereerimiseks võeti näide. Muutsin seda veidi, parandasin vead ja lõplik versioon koos minu muudatustega on nüüd siin Githubis

Genereerime puhta siinuslainega kahesekundilise helifaili sagedusega 100 Hz. Selleks muutke programmi järgmiselt.

#define S_RATE (44100) //diskreetimise sagedus #define BUF_SIZE (S_RATE*10) /* 2 sekundi puhver */ …. int main(int argc, char * argv) ( ... float amplituud = 32000; //võta maksimaalne võimalik amplituud float freq_Hz = 100; //signaali sagedus /* täitke puhver siinuslainega */ for (i=0 i

Pange tähele, et puhta siinuse valem vastab sellele, mida me eespool käsitlesime. Amplituud 32000 (võiks võtta 32767) vastab väärtusele, mille 16-bitine arv võib võtta (miinus 32767 kuni pluss 32767).

Selle tulemusena saame järgmise faili (saate seda isegi kuulata mis tahes heli taasesitusprogrammiga). Avame selle audacity faili ja vaatame, et signaali graafik vastab tegelikult puhtale siinuslainele:


Puhas toru siinus

Vaatame selle siinuse spektrit (analüüs->graafik spekter)


Spektri graafik

Selge tipp on nähtav 100 Hz juures (logaritmiline skaala). Mis on spekter? See on amplituud-sageduskarakteristik. Samuti on faasisageduskarakteristikud. Kui mäletate, ütlesin eespool, et signaali loomiseks peate teadma selle sagedust, amplituudi ja faasi? Seega saate need parameetrid signaalist saada. Sel juhul on meil amplituudile vastav sageduste graafik ja amplituud ei ole reaalsetes ühikutes, vaid detsibellides.

Saan aru, et programmi toimimise selgitamiseks on vaja selgitada, mis on kiire Fourier' teisendus ja see on veel vähemalt üks artikkel.

Esiteks eraldame massiivid:

C = calloc(suurus_massiv*2, suurus(float)); // pöörlemistegurite massiiv in = calloc(size_array*2, sizeof(float)); //input array out = calloc(size_array*2, sizeof(float)); //väljundi massiiv

Ütlen lihtsalt, et programmis loeme andmed massiivi pikkusega size_array (mille võtame wav-faili päisest).

While(fread(&value,sizeof(value),1,wav)) (in[j]=(float)väärtus; j+=2; if (j > 2*size_array) break; )

FFT massiiv peab olema jada (re, im, re, im,… re, im), kus fft_size=1<< p - число точек БПФ. Объясняю нормальным языком:
on kompleksarvude massiiv. Ma isegi kardan ette kujutada, kus kasutatakse keerulist Fourier' teisendust, kuid meie puhul on meie kujuteldav osa võrdne nulliga ja reaalosa on võrdne massiivi iga punkti väärtusega.
Veel üks kiire Fourier' teisenduse omadus on see, et see arvutab massiive, mis on ainult kahe astme kordsed. Selle tulemusena peame arvutama kahe minimaalse võimsuse:

Int p2=(int)(log2(header.bytes_in_data/header.bytes_by_capture));

Andmete baitide arvu logaritm jagatud baitide arvuga ühes punktis.

Pärast seda arvutame pöörlemistegurid:

Fft_make(p2,c) // funktsioon FFT pöörlemistegurite arvutamiseks (esimene parameeter on kahe aste, teine ​​on eraldatud pöörlemistegurite massiiv).

Ja sisestame oma massiivi Fourier trafosse:

Fft_calc(p2, c, sisse, välja, 1); //(üks tähendab, et saame normaliseeritud massiivi).

Väljundis saame kompleksarvud kujul (re, im, re, im,… re, im). Neile, kes ei tea, mis on kompleksarv, selgitan. Pole asjata, et alustasin seda artiklit hulga pöörlevate vektorite ja hunniku GIF-idega. Seega määrab komplekstasandi vektori tegelik koordinaat a1 ja imaginaarne koordinaat a2. Või pikkus (see on meie jaoks amplituud Am) ja nurk Psi (faas).


Vektor komplekstasandil

Pange tähele, et size_array=2^p2. Massiivi esimene punkt vastab sagedusele 0 Hz (konstant), viimane punkt vastab diskreetimissagedusele, nimelt 44100 Hz. Selle tulemusena peame arvutama igale punktile vastava sageduse, mis erineb delta sageduse võrra:

Double delta=((ujuv)päis.sagedus)/(ujuv)suuruse_massiv; //diskreetimissagedus massiivi suuruse kohta.

Määrake amplituudi massiiv:

Double * ampl;

ampl = calloc(suurus_massiiv*2, suurus(double));

Ja vaadake pilti: amplituud on vektori pikkus. Ja meil on selle projektsioonid reaalsele ja kujuteldavale teljele. Selle tulemusel saame täisnurkse kolmnurga ja siin meenutame Pythagorase teoreemi, loendame iga vektori pikkuse ja kirjutame selle kohe tekstifaili:<(size_array);i+=2) { fprintf(logfile,"%.6f %f\n",cur_freq, (sqrt(out[i]*out[i]+out*out))); cur_freq+=delta; }
For(i=0;i

… 11.439514 10.943008 11.607742 56.649738 11.775970 15.652428 11.944199 21.872342 12.112427 30.635371 12.280655 30.329171 12.448883 11.932371 12.617111 20.777617 ...

Selle tulemusel saame umbes sellise faili:

Proovime!

Nüüd söödame saadud programmile selle siinuse helifaili

Vorming 441000 log2=18 suurusega massiiv=262144 wav-vorming Max Freq = 99,928, amp =7216,136

Ja me saame sageduskarakteristiku tekstifaili. Koostame selle graafiku gnuploti abil

Ehitamise skript:" with lines linestyle 1 !}

Pange tähele skripti punktide arvu piirangut piki X: set xrange . Meie diskreetimissagedus on 44100 ja kui meenutada Kotelnikovi teoreemi, siis ei saa signaali sagedus olla suurem kui pool diskreetimissagedusest, mistõttu meid ei huvita üle 22050 Hz signaal. Miks see nii on, soovitan teil lugeda erialakirjandusest.
Niisiis (trummipõrin), käivitage skript ja vaadake:


Meie signaali spekter

Pange tähele teravat tippu 100 Hz juures. Ärge unustage, et teljed on logaritmilisel skaalal! Parempoolne vill on minu arvates Fourier' teisendusvead (siin tulevad meelde aknad).

Kas mõnuleme?

Tule nüüd! Vaatame teiste signaalide spektreid!

Ümberringi kostab müra...
Esiteks joonistame müraspektri. Teemaks on müra, juhuslikud signaalid jne. eraldi kursust väärt. Kuid me puudutame seda kergelt. Muudame oma wav-failide genereerimise programmi ja lisame ühe protseduuri:

Double d_random(double min, double max) ( tagastus min + (max - min) / RAND_MAX * rand(); )

See genereerib juhusliku arvu antud vahemikus. Selle tulemusena näeb peamine välja järgmine:

Int main(int argc, char * argv) ( int i; float amplituud = 32000; srand((unsigned int)time(0)); //initsialiseeri juhuslike arvude generaator (i=0; i

Genereerime faili (soovitan seda kuulata). Vaatame seda julgelt.


Signaal jultumusest

Vaatame spektrit Audacity programmis.


Spekter

Ja vaatame spektrit meie programmi abil:


Meie spekter

Tahaksin juhtida teie tähelepanu ühele väga huvitavale faktile ja müra omadusele – see sisaldab kõigi harmooniliste spektreid. Nagu graafikult näha, on spekter üsna ühtlane. Tavaliselt kasutatakse valget müra ribalaiuse, näiteks heliseadmete, sagedusanalüüsiks. On ka teist tüüpi müra: roosa, sinine ja teised. Kodutöö on välja selgitada, mille poolest need erinevad.

Aga kompott?

Vaatame nüüd veel ühte huvitavat signaali – meanderit. Eespool andsin Fourier-seeria erinevate signaalide laienduste tabeli, vaatate, kuidas meander laieneb, kirjutage see paberile ja me jätkame.

Ruutlaine genereerimiseks sagedusega 25 Hz muudame veel kord oma wav-failide generaatorit:

Int main(int argc, char * argv) ( int i; lühike int meandr_value=32767; /* täitke puhver siinuslainega */ for (i=0; i

Selle tulemusena saame helifaili (jällegi soovitan teil kuulata), mida peaksite kohe julgelt vaatama


Tema Majesteet – terve inimese meander või meander

Ärgem virelegem ja vaadakem selle spektrit:


Meande spekter

Pole veel päris selge, mis see on... Vaatame paari esimest harmoonilist:


Esimesed harmoonilised

See on hoopis teine ​​asi! Noh, vaatame silti. Vaata, meil on ainult 1, 3, 5 jne, st. paaritu harmoonilised. Näeme, et meie esimene harmooniline on 25 Hz, järgmine (kolmas) on 75 Hz, siis 125 Hz jne, samal ajal kui meie amplituud järk-järgult väheneb. Teooria kohtub praktikaga!
Nüüd tähelepanu! Reaalses elus on ruutlaine signaalil lõpmatu summa kõrgemate ja kõrgemate sageduste harmoonilisi, kuid reeglina ei saa reaalsed elektriahelad teatud sagedusest kõrgemaid sagedusi läbida (see on tingitud radade induktiivsusest ja mahtuvusest). Seetõttu näete ostsilloskoobi ekraanil sageli järgmist signaali:


Suitsetaja meander

See pilt on täpselt nagu pilt Vikipeediast, kus meanderi näitel pole tehtud kõiki sagedusi, vaid ainult paar esimest.

Esimeste harmooniliste summa ja signaali muutumine

Meelderit kasutatakse aktiivselt ka raadiotehnikas (peab ütlema, et see on kogu digitehnika alus) ja tasub mõista, et pikkade kettidega saab seda filtreerida nii, et ema seda ära ei tunneks. Seda kasutatakse ka erinevate seadmete sageduskarakteristiku kontrollimiseks. Huvitav fakt on ka see, et TV segajad töötasid täpselt kõrgemate harmooniliste põhimõttel, kui mikroskeem ise tekitas kümnete MHz sageduse ja selle kõrgemate harmooniliste sagedused võisid olla sadu MHz, täpselt teleri töösagedusel ja kõrgemad harmoonilised segasid edukalt telesaadete signaali.

Üldiselt on selliste katsete teema lõputu ja nüüd saate seda ise jätkata.


Raamat

Neile, kes ei saa aru, mida me siin teeme, või vastupidi, neile, kes mõistavad, kuid soovivad seda veelgi paremini mõista, samuti õpilastele, kes õpivad DSP-d, soovitan seda raamatut soojalt. See on DSP mannekeenidele, kes on selle postituse autor. Seal seletatakse keerulisi mõisteid isegi lapsele kättesaadavas keeles.

Järeldus

Kokkuvõtteks tahaksin öelda, et matemaatika on teaduste kuninganna, kuid ilma reaalse rakenduseta kaotavad paljud inimesed selle vastu huvi. Loodan, et see postitus julgustab teid õppima nii suurepärast teemat nagu signaalitöötlus ja analooglülitused üldiselt (ühendage kõrvad, et aju välja ei lekiks!). :)
Palju õnne!