Tietokoneet

Konvoluutio Matlabissa koodiesimerkkien avulla

Kirjoittaja: Laura McKinney
Luomispäivä: 3 Huhtikuu 2021
Päivityspäivä: 12 Saattaa 2024
Anonim
ELEC A7200 Signaalit ja järjestelmät: Fourier muunnos
Video: ELEC A7200 Signaalit ja järjestelmät: Fourier muunnos

Sisältö

Diskreetti-, jatko- ja ympyräkonvoluutio voidaan suorittaa sekunneissa Matlabissa® edellyttäen, että saat käsillä olevan koodin ja muutamia muita perusasioita.

Tämän opetusohjelman tarkoituksena on:

  • Osoita tarvittavat koodin komponentit, joita käytetään konvoluution suorittamiseen Matlabissa yksinkertaistetulla tavalla.
  • Visualisoi tulokset piirtämällä kaaviot sekoitetuista funktioista.

Tämä opetusohjelma on järjestetty seuraavassa järjestyksessä:

  1. Jatkaa kääntymistä.
  2. Diskreetti konvoluutio.
  3. Pyöreä konvoluutio.

Logiikka:

Koodauksen yksinkertaisen käsitteen tulisi olla:

1. Määritä kaksi erillistä tai kontineusfunktiota.

2. Kutsu ne Matlab-funktiolla 'conv ()'

3.Piirrä tulokset käyttämällä 'subplot ()'.


Jatkaa muuntamista Matlabissa

Osoitamme tämän käyttämällä kahta jatkuvaa toimintoa:

  1. Pulssiaaltomuoto. Merkitään neliö () -toiminnolla. Tämä on järjestelmän tulo x (t).
  2. Kondensaattorin ohimenevä vaste. Merkitään muodon a * e yhtälöllä1 / RC * t. Tätä voidaan pitää järjestelmän impulssivasteena h (t).

Matlab-koodi muunnokselle

sävy = 0; tfinaali = 0,05; tstep = 0,0005; t = sävy: tstep: tfinal; x = 4 * neliö (500 * t, 50); // Käytä tässä valitsemaasi toimintoa. alikaavio (3, 1, 1); käyrä (t, x); h = 400 * exp ((-400 * t)); // Käytä valitsemaasi toimintoa. alikaavio (3, 1, 2); käyrä (t, h); t2 = 2 * sävy: tstep: tfinal * 2; // Konvoluutiotoiminto vaatii laajemman alueen piirtämisen kokonaan. y = konv (x, h) * taskel; alikaavio (3, 1, 3); käyrä (t2, y);

Rivi 1-5: Määritä aika-akselin arvoalue.

Rivi 7: Neliöaalto alustetaan käyttämällä Matlab-toimintoa 'neliö()'sen amplitudi on 4, ω = 500 rad / s ja käyttöjakso 50%.


Rivi 9:Sivujuoni() osioi lähtöikkunan siten, että siihen mahtuu 3 kuvaajaa yhdelle näytölle, eli se luo taulukon, jossa on 3 riviä ja 1 sarake (t) ja sitten viimeinen argumentti sivujuoni() valitsee ensimmäisen juonen jatkokäyttöä varten.

Rivi 10: käyrät x (t).

Rivi 12-15: Järjestelmän impulssivaste h (t) on määritelty. Sivujuoni() valitsee toisen kuvaajan ja piirtää siihen h (t).

Rivi 18: Tuloksena olevalle sekoitetulle toiminnolle on määritetty uusi alue.

Rivi 19-22: x (t) sekoitetaan lopulta h (t): n kanssa ja piirretään sitten tälle uudelle alueelle. * t-vaihe lisättiin säätämään x- ja y-akselit vastaavasti.

Diskreetti muunnos Matlabissa

Erillisen konvoluution suorittaminen matlabissa on hyvin yksinkertaista ja suoraviivaista. Sinun tarvitsee vain määritellä kunkin funktion diskreetit arvot ja sitten käyttää funktiota 'konv. ()molemmissa toiminnoissa.


Matlab-koodi erilliselle muunnokselle

a = -1; // Tämä on x: n (t) ajan alkuarvo. b = 0; // Ajan aloitusarvo h (t): lle. x = [2-1 1]; h = [3 2 1]; alikaavio (3, 1, 1); t = a: a + pituus (x) -1; // tstepia ei vaadita tässä. varsi (t, x); alikaavio (3, 1, 2); t = b: b + pituus (h) -1; varsi (t, h); y = konv (x, h); alikaavio (3, 1, 3); t = a + b: a + b + pituus (y) -1; varsi (t, y);

Rivi 4-5: Määritä erilliset arvot x (t): lle ja h (t): lle.

Rivit 8, 12 ja 18: Määritä aika-akselin alue kaavioissa, jotka myöhemmin piirretään varsi() toiminto (jos piirtämistä ei vaadita, voit jättää nämä vaiheet pois).

Pyöreä konvoluutio Matlabissa

Pyöreä konvoluutio voidaan suorittaa seuraavissa vaiheissa:

  1. Ota kahden vektorin diskreetti Fourier-muunnos.
  2. Kerro nämä kaksi muunnosta.
  3. Ota tuotteen käänteinen diskreetti Fourier-muunnos ja tuloksena on kahden vektorin pyöreä konvoluutio.

Matlab-koodi pyöreälle konversiolle

// Määritä kaksi vektoria pyöreälle konvoluutiolle x = [2 5 4 1]; y = [1 4 3]; // Zeropad vectrs ylöspäin 4 + 3-1 xpad = [x nollaa (1, 6 pituus (x))]; ypad = [y nollat ​​(1, 6-pituus (y))]; // Kerro molempien vektoreiden ffts ja ota idft tuote ccirc = ifft (fft (xpad). * Fft (ypad)); // Nyt piirrä tuloksen varren (ccirc, 'täytetty') ylim ([0 35]) otsikko ('Xpadin ja ypadin pyöreä konvoluutio');

Me Neuvomme

Lisätietoja

Kuinka tunnistaa ja välttää online-romantiikan huijausartistia
Internet

Kuinka tunnistaa ja välttää online-romantiikan huijausartistia

Olen freelance-kirjailija, 5 kirjan kirjoittaja, apurahan kirjoittaja, runoilija, jokirotta, amatööritähtitieteilijä ja voittoa tavoittelematon kon ultti Texa i ta.Jo teet o iaali ...
Spin-painikkeen luominen Microsoft Excelissä
Tietokoneet

Spin-painikkeen luominen Microsoft Excelissä

Jo hua on jatko-opi kelija U F: ä. Hänellä on kiinno tu ta liiketoimintatekniikkaan, analytiikkaan, talouteen ja lean- igmaan.Linkou painikkeella voidaan li ätä tai vähen...