Dette kraftige programmeringsspråket for vitenskapelig databehandling har et omfattende bibliotek med funksjoner for å generere bølger av forskjellige former.
Følgende avsnitt forklarer ved hjelp av firkantet () -funksjonen for å generere firkantede bølger. I det følgende vil vi vise deg praktiske eksempler og bilder av hvordan du lager firkantede bølger med forskjellige parametere og viser dem grafisk i Matlab -miljøet.
Matlab Square Function Syntax
x = firkant (t)
x = firkant (t, plikt)
Matlab firkantet funksjonsbeskrivelse
Matlab Square () -funksjon genererer firkantede bølger fra tidsvektorer eller matriser. Denne funksjonen lar deg også angi pliktsyklusverdier, ofte brukt i elektroniske modeller for å kontrollere DC -pulsbreddemodulasjonsmodulasjonsmotorer (PWM). MATLAB -funksjonen Square () genererer en firkantet bølge ved “X” fra tidsmatrisen “T”. Bølgen som genereres ved “X” er 2pi over elementene i “T”. Utgangsverdiene til “X” er -1 for negative halve sykluser og 1 for positive halve sykluser. Pliktsyklusen er satt via "plikt" -inngangen som sender prosentandelen av den positive syklusen som er lagt inn når funksjonen kalles.
Hva er det og hvordan du lager en tidsvektor for å generere bølger i matlab
Før vi ser hvordan en firkantet bølge genereres med denne funksjonen, vil vi kort vise deg hvilke vektorer og tidsmatriser er. De er en del av inngangsargumentene til alle funksjoner som brukes til å lage bølger, uavhengig av deres form eller funksjonen som genererer dem. Følgende er en tidsvektor “t” som representerer ett sekund i varighet:
t = 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
Det er viktig å avklare at en tidsvektor med ti elementer tilsvarer en prøvetakingshastighet på 10 Hz og ikke anbefales i praksis. Derfor lager vi det bare Som et eksempel slik at du kan se bedre hva vi snakker om på grunn av en vektor med en prøvetaking av 1 kz. Den vil bestå av 1000 elementer som vises på skjermen. En lav prøvetakingshastighet ville forvrenge bølgeformen, som vist nedenfor:
La oss deretter se på uttrykket for en av måtene MATLAB skaper denne typen vanlige intervalltidsvektor:
T = Tidsstart: Intervall på sekunder: Tidsslutt;
Så for å generere denne vektoren, må vi skrive følgende kodelinje:
t = 0: 0.1: 1;
Hvordan lage en firkantet bølge med Matlab Square -funksjonen
Vi vil lage en firkantet bølge ved hjelp av firkantingsfunksjonen i dette eksemplet. Denne bølgen har en varighet på ett sekund, en frekvens på 5Hz og en amplitude på +1, -1. For å gjøre dette, oppretter vi først en tidsvektor "T" av en sekund varighet med en prøvetakingsfrekvens på 1 kHz eller intervaller på 1ms.
t = 0: 0.001: 1;
Deretter spesifiserer vi bølgens hyppighet. Inngangsargumentet til firkant () som setter denne verdien er uttrykt i radianer, så vi må konvertere fra Hz til radianer eller uttrykke den i sistnevnte. Av praktiske grunner er det alltid bedre å uttrykke frekvens i Hz. Derfor, i dette eksemplet, vil vi gjøre konverteringen som følger:
f = 5;
rad = f.*2.*pi;
Med tidsvektoren “T” opprettet og frekvensen “RAD” konvertert til radianer, kaller vi nå Square () -funksjonen som følger:
x = firkant (rad.*t)
For å tegne bølgen i Matlab -miljøet, bruker vi følgende funksjoner:
plot (t, x);
Axis ([0 1 -1.2 1.2])
rutenett ("på");
I dette tilfellet, ettersom pliktsyklusinngangen ikke brukes, er denne verdien standard til 50%,. Så firkantet () produserer en symmetrisk bølge. Kopier og lim inn følgende fragment i kommandokonsollen for å visualisere den genererte bølgen.
% Her genereres bølgen
t = 0: 0.001: 1;
rad = 5 .* 2 .* pi;
x = firkant (rad .* t);
% Her er bølgen grafert
plot (t, x);
Axis ([0 1 -1.2 1.2]);
rutenett ("på");
Følgende bilde viser bølgeformen generert av firkantet () -funksjonen plottet i MATLAB -miljøet:
Hvordan kontrollere frekvens, amplitude, driftssyklus og prøvetakingshastighet når du genererer en bølge med Matlab Square () -funksjonen.
Dette eksemplet viser hvordan du kontrollerer frekvens, amplitude, driftssyklus og prøvetakingshastighetsparametere. For dette formålet vil vi lage en enkel konsollapplikasjon som vil bli brukt til å legge inn disse verdiene og deretter automatisk tegne bølgen generert fra inngangsparametrene. Vi vil bruke ledeteksten () og input () for å legge inn disse parametrene gjennom konsollen. Vi lagrer disse parametrene i følgende variabler:
s_rate: samplingsfrekvens i Hz
freq: frekvensen av bølgen i Hz
Forsterker: Amplitude av bølgen
d_cycle: Duty Cycle
Disse variablene behandles henholdsvis for å angi parametrene "t_sample" i tidsvektoren, inngangsargumentene "rad" og "dc" til firkantet () -funksjonen, og multiplikasjonsfaktoren "forsterker" for å justere amplituden til bølgen.
Nedenfor ser vi hele skriptet for denne applikasjonen. For å gjøre det lesbart har vi delt koden i seks blokker, og forklarte hva hver av dem gjør i kommentarene i begynnelsen.
mens 1
% Her skriver vi inn prøvetakingshastigheten "S_Rate" i Hz og deler 1
% av denne verdien for å få tidsintervallet mellom prøvene
% uttrykt i sekunder "t_sample" og opprette tidsvektoren.
spør = 'Skriv inn en prøvehastighet';
s_rate = input (spør);
t_sample = 1 ./ s_rate;
t = 0: t_sample: 1;
% Her går vi inn i frekvensen "f" i Hz av bølgen og konverterer.
% det til radianer "rad".
spør = 'Skriv inn en frekvens';
f = input (spør);
rad = f .* 2 .* pi;
% Her går vi inn i pliktsyklusen "DC" uttrykt i prosent.
spør = 'Skriv inn en pliktsyklus';
DC = input (spør);
% Her setter vi amplituden til bølgen.
spør = 'Skriv inn en amplitude';
AMP = input (spør);
% Her kaller vi funksjonen Square () med parametrene "rad" som
% Angir frekvensen og "DC" som angir pliktsyklusen. Seinere
% Vi multipliserer resultatet med verdien som er lagret i "Amp" til
% Sett amplituden til bølgen til "x".
x = amp * firkant (rad * t, dc);
% Her grafer vi den genererte bølgen.
plot (t, x);
Axis ([0 1 -5 5])
rutenett ("på");
slutt
Lag et skript, lim inn denne koden og trykk “Kjør”. For å lukke applikasjonen, trykk CTRL+C. I de følgende bildene kan du se de resulterende bølgene med forskjellige parametere som er lagt inn i applikasjonen via kommandokonsollen:
Dette bildet tilsvarer en 8 Hz-bølge med en prøvetakingshastighet på 1 kz, en pliktsyklus på 50%og en topp-til-topp amplitude på 2.
Dette bildet tilsvarer en 10 Hz-bølge med en prøvetakingshastighet på 10 kz, en pliktsyklus på 85%og en topp-til-topp amplitude på 6
Dette bildet tilsvarer en 3 Hz-bølge med en prøvetakingshastighet på 1 kz, en pliktsyklus på 15%og en topp-til-topp amplitude på 8.
Konklusjon
Denne artikkelen forklarte hvordan du genererer firkantede bølger ved hjelp av Matlab -funksjonen ().
Det inkluderer også en kort beskrivelse av tidsvektorene og matriser som danner inngangsargumentene for denne typen funksjoner, slik at du kan få en fullstendig forståelse av hvordan de fleste av bølgeformgeneratorene i signalanalyseverktøykassen i MATLAB -arbeid. Denne artikkelen inneholder også praktiske eksempler, grafer og skript som viser hvordan firkantet () -funksjonen fungerer i MATLAB. Vi håper du fant denne Matlab -artikkelen nyttig. Se andre Linux -hint -artikler for flere tips og informasjon.