Frågor & Svar
Svar på ofta ställda frågor kring datoruppgifterna och Kretslab publiceras här. På så vis kommer alla att ha tillgång till samma hjälp. Frågor skickas lämpligen till
kretslab@isy.liu.se
. Denna informationssida relateras till både TSDT08 och TSDT15. Det kan hända att frågorna som införs här är omformulerade en aning för att tydliggöra frågeställningen.
Frågor (svaren hittar du längre ned på sidan):
- Finns det någon manual eller demo som hjälper mig att komma igång?
- Hur matar jag in en enkla signaler Kretslab?
- Det blir jättekonstigt när jag adderar/förstärker/multiplicerar signaler. Varför? Vad kan jag göra för att få det rätt?
- Hur matar jag in en periodisk signal i Kretslab?
- Kan man nästla funktioner i Matlab/Kretslab?
- Det händer inget då jag skriver load dator1 . Vad är fel?
- Hur laplacetransformerar jag en signal?
- Hur skapar man grafer av signaler och transformer?
- Ibland hoppar utritat frekvensspektrum/-karaktäristik väldigt mycket upp och ned. Hur skall detta tolkas?
- Hur får jag in en figur i ett Word-dokument?
- Hur exporterar jag en figur till en EPS-fil?
- ... Här lägger jag till fler frågor (med svar nedan), som inkommer under kursens gång och som kan vara intresse för fler!
Svar till frågor
Finns det någon manual eller demo som hjälper mig att komma igång?
Frågan infördes 2010 10 19 och svaret ändrades senast 2010 10 19.
Funktionen dd1 visar hur olika Kretslabfunktioner kan användas. Ibland visas även några små "finesser" i Matlab. Kör Matlabfilen och stega dig fram genom att trycka på någon tangent.
Läs Kretslabs hjälptexter med hjälp av Matlabs hjälpnavigerare helpwin ! Börja med att skriva helpwin kretslab och klicka dig sedan vidare. Valet TSDT08/kretslab är en bra början. Kommandot kretslab är en genväg till den hjälpsidan. Du kommer direkt till hjälpen för en funktion fkn genom att skriva helpwin fkn .En liknande hjälp finns också som menyvalet Help:Product Help .
Slutligen kan man få hjälptext till en funktion fkn utskriven i det interaktiva fönstret med help fkn .
Hur matar jag in en enkla signaler Kretslab?
Frågan infördes 2010 10 19 och svaret ändrades senast 2010 10 19.
Inmatning av signaler sker med funktionen in , enligt följande:
x=in('4','t'); % En konstant funktion, x(t)=4. x=in('us(t)','t'); % Enhetssteget. x=in('us(t-200)','t'); % Tidsskiftat enhetssteg. x=in('pulse(t,100,400)','t'); % En rektangulärpuls. x=in('ramp(t,100,400)','t'); % En ramp.
Det blir jättekonstigt när jag adderar/förstärker/multiplicerar signaler. Varför? Vad kan jag göra för att få det rätt?
Frågan infördes 2010 11 11 och svaret ändrades senast 2010 11 11.
Orsak
:
Matlabs utbud av datatyper är begränsat.
Kretslab använder därför vektorer och matriser på ett lite speciellt sätt,
och det är det som ställer till det.
Även om det ser ut som om vi har tidskontinuerliga signaler,
så är de faktiskt inte det.
De är tidsdiskreta, och representeras som vektorer innehållande sampel av signalen.
En av koefficienterna i en sådan vektor är sampelperioden,
alltså längden på intervallet mellan två på varandra följande sampel.
Låt nu
a
och
b
vara signaler skapade med
in
eller
något annat av alla kretslab-kommandon som kan generera signaler.
Om vi då skapar
a+b
,
så adderas samplen, men också sampelperioderna.
Om de två signalerna har samma sampelperiod, så adderas samplen korrekt,
men även sampelperioderna adderas.
Resutatet blir en oönskad tidsskalning.
Om de två signalerna har olika sampelperiod,
så adderas dessutom samplen ihop felaktigt.
Motsvarande händer om man försöker förstärka en signal genom att multiplicera den med en skalär
genom att skriva något liknande
5*a
,
eller om man försöker multiplicera två signaler genom att skriva
a*b
.
Lösning
:
Det finns därför avsedda kretslabkommandon som gör rätt, och det är
add
,
ampl
och
mult
.
Se hjälptexterna för dessa kommandon för närmare information.
Hur matar jag in en periodisk signal i Kretslab?
Frågan infördes 2010 10 19 och svaret ändrades senast 2010 10 19.
Inmatning av periodiska signaler sker med funktionen fouser . Studera hjälptexten till det kommandot.
Kan man nästla funktioner i Matlab/Kretslab?
Frågan infördes 2010 10 19 och svaret ändrades senast 2010 10 19.
Det går alldeles utmärkt. T.ex. resulterar
spect(foutr(output(x,y)));
i en graf som visar spektrum för faltningen mellan signalerna x(t) och y(t).
Det händer inget då jag skriver load dator1 . Vad är fel?
Frågan infördes 2010 11 17 och svaret ändrades senast 2010 11 17.
Inget är fel. När du skriver load dator1 , så laddas en fil som innehåller en signal som heter r . Skriv signal(r) efteråt, så ska du se att du har signalen.
Hur laplacetransformerar jag en signal?
Frågan infördes 2010 10 19 och svaret ändrades senast 2010 11 11.
Det gör du inte. Eller, det finns ingen funktion som laplacetransformerar en godtycklig signal. Däremot kan du mata in en laplacetransform så här:
H=in([2 0 3],[1 2 1 0],'s');
Detta motsvarar laplacetransformen H(s) = (2s 2 +3)/(s 3 +2s 2 +s)
Hur skapar man grafer av signaler och transformer?
Frågan infördes 2010 10 19 och svaret ändrades senast 2010 10 19.
Signaler och fourierserier visas i tidsdomänen med funktionen signal . I följande exempel är x och y antingen båda signaler eller fourierserier.
signal(x) % Visar signalen x(t). signal(x,y) % Visar signalerna x(t) och y(t). signal(x,300) % Visar signalen x(t) för -300Transformer och fourierserier visas i frekvensdomänen för positiva frekvenser med funktionen spect . I följande exempel är X och Y antingen båda transformer eller fourierserier.
spect(X) % Visar amplitud- och fasspektrum för X. spect(X,Y) % Visar amplitudspektrum för X och Y. spect(X,3) % Begränsar till intervallet 0<=f<3. spect(X,Y,2) % Begränsar till intervallet 0<=f<2.Slutligen kan amplitudspektrum visas med logaritmisk skala med kommandot logspect . Samma X och Y som ovan.
logspect(X) % Visar amplitudspektrum för X i två intervall. logspect(X,Y) % Visar amplitudspektrum för X och Y. logspect(X,3) % Begränsar till intervallet 0<=f<3. logspect(X,Y,2) % Begränsar till intervallet 0<=f<2.
Ibland hoppar utritat frekvensspektrum/-karaktäristik väldigt mycket upp och ned. Hur skall detta tolkas?
Frågan infördes 2010 10 19 och svaret ändrades senast 2010 10 19.
Jo, hopp med ±360 grader sker oftast för att erhålla en fas mellan 0 och
-360 grader. I dessa fall sker hoppen egentligen
inte
för den
korrekta fasen.
Om fasen hoppar fram och tillbaka mellan olika värden (oftast i hopp om
+180 eller -180 grader) samtidigt som amplitudspektrum/-karaktäristiken är
infinitesimalt liten (nästan noll), så kan man också oftast bortse från
fasen. Hoppen beror på att antingen realdelen eller imaginärdelen av
frekvensuttrycket ändrar tecken från den ena beräkningspunkten till den
andra.
Vanligen definieras fasen till noll om amplituden är noll.
Hur får jag in en figur i ett Word-dokument?
Frågan infördes 2010 10 19 och svaret ändrades senast 2011 01 14.
Kopiering av figurer till Word-dokument (se först till att kopieringsformat Windows Metafil är valt under figurfönstrets menyval Edit -> Copy Options):
- Kopiera figuren genom menyvalet Edit -> Copy Figure i figurfönstret.
- Klistra in figuren på lämlig plats i Word-dokumentet (m.h.a. Ctrl + v).
Tips 1: Fontstorleken på den kopierade grafens axlar ökar om figurfönstrets
storlek minskas innan kopiering.
Tips 2: I ett figurfönster blir text större, linjer i grafer blir tjockare m.m.
efter anrop av kretslabfunktionen
ohfig
.
Läs mer om olika utskriftsvarianter i print-funktionens hjälptext ( help print )
Hur exporterar jag en figur till en EPS-fil?
Frågan infördes 2010 10 19 och svaret ändrades senast 2010 10 19.
Matlab utskriftskommando kan användas för att exportera till EPS. Se först till att din figur är aktiv, genom att klicka på dess fönster, eller genom matlabkommandot figure(num) , där num är figurfönstrets nummer. Sedan skapas en EPS med kommandot
print -depsc foo.epsDin graf finns sedan i filen foo.eps i din aktiva katalog. Varning: Det går vanligen dåligt att importera sådana EPS-filer i Word. I t.ex. LaTeX fungerar det dock klockrent. Go figure!
Last updated: 2014-03-18