Eksamen Forberedelse til MATLAB Kursus PDF
Document Details
Uploaded by EndearingYeti
Syddansk Universitet
Tags
Summary
Dette dokument indeholder en forberedelse til et MATLAB kursus, og består af lektionsmateriale inklusive spørgsmål. Emnerne omhandler arrays, matricer, og loops, samt hvordan de bruges i MATLAB.
Full Transcript
Lektion 1 ========= - Hvilke 3 hovedvinduer findes i Matlab De tre forskellige hovedvinduer der er at finde i matlap er cormmand, window workspace og tilgå mapper. Så er er også live editor men det er ikke et grundlæggende hovedvindue - Hvad er forskellen på arrays og matricer? Forsekllen på...
Lektion 1 ========= - Hvilke 3 hovedvinduer findes i Matlab De tre forskellige hovedvinduer der er at finde i matlap er cormmand, window workspace og tilgå mapper. Så er er også live editor men det er ikke et grundlæggende hovedvindue - Hvad er forskellen på arrays og matricer? Forsekllen på en arrays og matricer er at arrays kan bruges til uanset datatyper mens et maticer er et 2 2D arrays. - Hvad er forskellen på at anvende almindelige paranteser ( ) og firkantede paranteser \[ \] i Matlab? Paranteser () bruges til at tilgår elementer i et array mens en firkantede parentes bruges til at definere et array. Dermed kan man indekserer efter et element på 3 række og 4 kolonne ved at lave vil jeg skrive det givne navnet på det givne array og skrive (3,4) inde i array funktionen hvis der var flere elementer jeg skulle finde vil jeg skrive (3,4) og så x antal elementer ved at gøre ved at bruge funktionen :. Hvis det er specifikke funktioner, skal man bruge (\[2,3\], \[3,2\]) altså funktionen ved en vektor. - Opfølgende spørgsmål kan være i stil af "Hvordan vil du indeksere efter et element på 3. række og 4. kolonne?" - Hvad hvis du vil indeksere efter flere elementer på én gang? - Hvad er forskellen på en for-løkke og en while-løkke? whileloop for at gentage, når betingelsen er sand mens for-løkke bliver brugt til at gentage det angivne antal gange. Forloop kan det se sådan ud Et billede, der indeholder tekst, Font/skrifttype, skærmbillede, hvid Automatisk genereret beskrivelse Et eksmpel på en whileloop ![Et billede, der indeholder tekst, skærmbillede, Font/skrifttype, nummer/tal Automatisk genereret beskrivelse](media/image2.png) Loopet bliver ved med at køre indtil summen overstiger den givne information - Hvad er forskellen på break og continue? Break bryder loopet og fortsætter eksekveringen. Det kan ses i dette eksmepel kan ses til venstre i billedet mens contiue kan ses på højre side af billedet her kan man se at continue skipper resten af koden og påbegynder næste gentage i loope det er kun hvis if funktionen er til stede i for-loppen Et billede, der indeholder tekst, skærmbillede, Font/skrifttype Automatisk genereret beskrivelse Lektion 2 ========= - Hvordan skelnes der mellem elementvise operationer og matrix operationer (multiplikation, division) i Matlab? Hvis man ganger to matixer sammen vil et gøres ved at række gang søjle. Det er grunden til at det er vigtigt at holde øje med hvordan man skriver matrixerne skal ganges sammen. Man kan godt lave eksempel vis addition uden nogen problemerne men hvis man vil lave en elementvise operationel med gange, divider og opløfter i noget skal man sætte et punktum foran det man vil gøre. - Hvordan fungerer "dim" (dimension) argumentet for mange funktioner i Matlab? Matlabs dimensioner fungere ved at 1 svare til koloner og 2 for rækker. Det skyldes at matlabs udgangspunkt er, at koloner variere mens rækker er observationer. Dimensioner bruges ofte, når du har kontrol over flere dimensioner, og standardadfærden ikke er tilstrækkelig. - Vi kan lave vektorer hvor elementerne i vektoren har en specifik afstand (ofte til brug for tidsakser) med enten " **:** " eller "linspace()" -- hvad er forskellen? En klassisk type af vektor er en "evenly-spaced" vektor, altså en vektor fyldt med elementer med samme afstand f.eks. når vi vil lave en tidslinje til vores datasæt. Kan man bruge to forskellige funktioner nemlig : og linspace. Derudover er det også lignende metoder man bruger i andre programmeringssprog. Hvis man bare vil have en specifikke afstand mellem elementer så skal man bruge : funktion hvor a vil være start værdi mens b vil være slut værdien af den givne vektor. Mens dx vil være den afstand der skal være i mellemrum mellem elementerne i vektoren. Linspace bruges for at kunne lave et specifikt interval i elementerne a er startværdien for en vektor mens b er slutværdien for en vektor og n er antal punkter imellem start og slutværdien standart er 100 punkter. - Hvordan sammentrækker man matricer, og hvad er betingelsen for at det virker? For at man kan strække matricer sammen skal man bruge de velkendte \[ \] klemmer er "concat" operatorer. Så skal man huske at ; trækker rækker sammen mens , trækker koloner sammen. for at man kan trække dem sammen skal de matricer der skal stækkes sammen have ens koloner eller rækker før det kan lykkes at trække dem sammen. - Hvordan transformere man matrix om til vektor og omvendt Man kan bruge en smart funktion der hedder reshape(). Når man bruge funktionen for en vektor til en matrix vil den fylder den først kolonen op. Hvis man vil reshape en matrix vil kolonner læses fra A oppefra og nedefter fra venstre mod højre. Når vi reshaper, skal det passe med størrelsen af elementer. Men vi behøves heldigvis ikke at være kloge -- vi kan bare efterlade én dimension uspecificeret med \[\] Det er tit at man vil have dataen i en vektor og dette har matlab gjort nemt med (:) - Hvordan Indeksering vha. vektorer Så hvis vi f.eks. Vil have første, fjerde og sjette element kan vi lave en vektor for at få fat i disse. Det sker ved at man sætter x(1:4) og x(\[1 2 3 4\]) er faktisk det samme Vi indeksere med vektorer - Hvordan virker funktionen Sort() Det kan gøres ved at den både kan sortere elementer, men også kan give os index på de sorterede elementer, Her kan vi se, element 4 var elementet med den laveste værdi og indeks 7 havde den højeste Lektion 3 ========= - Hvorfor er det vigtigt at have styr på datatyper for variabler man arbejder med? Der er 3 gode grunde til at det er vigtigt at have styr på sin datatype for variabler man arbejder med den første grund kan være årsagen til at vores kode ikke virker, forskellige funktioner og behandlingsmuligheder og forskellige datatyper fylder ikke lige meget i vores RAM Hvis koden ikke virker er datatyper variabler tit årsagen til det men der kan man bruge en funktion class(variabel) for at får datatypen på en givne variabel. Hvis der er forskellige funktioner og behandlingsmuligheder kan man f.eks. lave et script som skal læse gennem en bog for at finde et ord, hjælper det ikke, at vi behandler det som tal. Vi har nogle andre funktioner og operationer vi kan påføre "char" og "strings" kontra "int" og "double". Hvis man har forskellige datatyper fylder ikke lige meger i vores RAM. dette er særlig relevant for andre programmeringssprog, og når man arbejder med store mængder data eller har lille kapacitet - Hvordan læser I jeres data ind? For at læse data ind i matlab kan man gøre det på to måde line by line princippet eller import data princippet. Hvis man bruger line by line princippet vil det være mere overførbart til andre sprog. Det kan være nemmere at kontroller det skyldes at vi kan behandle data samtidig med at det kommer ind. derudover har matlab fancy funktioner selvom man går line by line. Automatiserede scripts til vores specifikke datasæt betyder, at man opretter et script (en kodefil), som automatisk kan behandle og importere data fra et datasæt, én linje ad gangen. Dette er især nyttigt, når datasæt er store, komplekse eller kræver specialbehandling for hver linje. Vi kan behandle data samtidig Hvis man bruger import data princippet skal man først finde ud af hvilken fil du importer. Derefter skal man finde en passende import funktion. Der er rigtig mange importfunktioner er med til at skabe en bredere vifte af filer der kan importeres. Så kommer data indlæsning og opbevaring hvor den udvalgte funktion returnerer data som en variabel, der kan være en matrix, tabel, cellearray eller struktur afhængigt af filtypen og importmetoden. Når det er gjord, kan man forbehandle dataene hvis man har bruge for at omdanne datatyper, kigge på fejl i datasættet eller filtrering af irrelevante data. - Hvordan er jeres data struktureret? Det er struktureret med først at vi finder variabler i filene. Efter det bliver der brugt et forloop for at åbne filerne på den rigtige måde. Det gøres ved at man cell array som tillader flere forskellige filer. Når vi har sat fillerne ind i cell array åbnes filerne med read mode ('r'). derefter sikker vi at filerne er åbnede rigtig med error handling som tjekker om filerne ikke kunne åbne. Det sker ved at lave printe en error massage der skriver hvilken fil der er fejl på. derefter kan man forberede tome arrays hvor man putter de to læste data fra de givne filer. Grunden til at vi bruger arrays er at man bruger det til line-by-line læsninger og det sker ved funktionen fgetl(fid). For at det virker skal man opdele streng ved funktionen strsplit som opdeler hver linje i et cellearray ved hjælp af et mellemrum som afgrænsningstegn. Vores data er struktureret med at den første kolonne i hver linje (tidsdata) er tilføjet til tid\_Rikke\_1. mens den anden kolonne er signal data der bliver konverteret til en numerisk værdi og føjet til Data\_Rikke\_1. denne tilføjelse sikrer, at nye data tilføjes i samme rækkefølge i arrayene - Hvad er forskellen på lokale funktioner og funktionsfiler? Hvornår vil du anvende den ene frem for den anden? Funktioner er opdelt i to forskellige typer i matlap vi har lokale funktioner og funktionsfiler. Lokale funktioner er de funktioner vi laver i sciptet derfor kan de kun bruges i sciptet. Mens funktionsfiler som vi henter fra andre filer end sciptet. Det er nogle grundlæggende filer som bliver hentet ind i et scipt hvis der er brug for dem. De fordel der kan være ved funktionsfiler, er at de er mere alsidige end lokale funktioner. hvis man skal bruge en specifik funktion til den opgave du er i gang med, er det en god ide at lave lokale funktion. Når den er, så specifik så vil det kun være en engangsoperation du skriver kode til direkte i mit scipt. for en generel operation, der er nyttig i flere forskellige sammenhæng, skal du skrive en funktionsfil så behøver du ikke at lave den samme funktion dermed spare tid på din kodning - Hvordan fungerer try-catch blokke? Hvordan er de brugbare? Kunne du have brugt dem i din kode? Når vi automatiserer vores arbejde med smarte scripts, er der en chance for at der opstår utilsigtede fejl. Det kan fx være i fejlindtastning i datasættet eller et datasæt der er formateret anderledes end vi troede. Det er derfor rigtig vigtigt når vi arbejder med flere datasæt og filer, så det data sættet ikke bliver påvirkede af et råddent æble som kan i realiteten ødelægge resten af en opgave. Derfor vil det være en god ide bruge en matlab fejlfinder funktion til at rense vores datasæt for fejl. Den funktioner man kan bruge, er try-catch blokke. En try blok forhindrer at en fejltilstand standser udførelsen, ved at placere din kode ind i mellem. Men det kan gøres endnu bedre ved at tilføje en catch blok på try blocken det gør at man fanger fejlen i datasættet dermed kan lave det om. Hvis man vil vide hvad der gik galt kan man tilføje en variabel som hedder fejl. Den variabel indebærer identificer, massege, couse, stack og correktion. I vores skript bruger vi error handling i stedet for en try-catch blok da try-catch blokken også er inde i den funktion. Men hvis der var en fejl i vores datasæt så ville det havde været en god ide at bruge en try-catch blok for at forsætte dataoverførelsen til forsatte in matlab. Error handling bruges både til at validering af vores data men den indeholder også en try.catch blok. Try-catch er en dynamiske blok mens errorhandling kan være statisk da man validerer input og kodeforudsætninger.l Lektion 4 ========= - Hvad er en tabel, og hvordan er den typisk opbygget? En tabel kommer tit fra importeret data. der er 3 forskellige typer tabel en der beskrive tid, heterogeneous table kan være legetøj, da det involver både tal og bogstaver som variabel i tabellen og den sidste tabel type er text, hvor de variabel i tabellen er bokstaver. Tabeler er opbygget af observationer og variabler, hvor hver variabel kan have sin egen datatype og den datatype kan være tekst eller tal eller en blanding af dem begge to. Tabeler anvend mest i statistiker programmer som Excel og Statat. Tabeller i matlab er en speciel type matricer og har sin helt egen datatype som der medfølger af deres egne funktioner - Hvad er vigtig fordel ved indeksering i tabeller kontra almindelige arrays? Det er nemmere at lave en hurtig søgning hvis man bruger tabel i stedet for et array. Det er pga. at man kan lave en struktureret søgealgoritme. Almindelige arrays kræver ofte en sekventiel søgning (O(n)), medmindre du selv implementerer en form for indeksering eller sortering. Tabeller med indekser gør det muligt at filtrere og hente data baseret på specifikke kriterier uden at skulle gennemgå alting manuelt. Modsat tabeller bliver man nødt til manuel at gennemgå hver og en array da det ikke har en indbygget mekanisme til selektiv adgang baseret på værdier. I store datasæt gør indekser det muligt at håndtere millioner af rækker effektivt, mens arrays hurtigt kan blive ineffektive, når datasættet vokser. - Hvad bruges argumentblokke og valideringsfunktioner til? Og hvorfor? I matlab kan man bruge argumentblokke til at specificere og validere inputparametre til en funktion. Argumentblokke giver en mere moderne og struktureret måde at definerer funktioner på, hvilket gør det nemmer at håndterer fejl og uventede input. Derfor gør argumentblokke det muligt at angive datatyper for input, specificer krav om hvad inputtet skal opfylde og det angiver standardværdier for argumenter altså fleksible interface. Det vil sige at man sætter en angive standardværdier for inputparametre. Det gøres fordi valideringsfunktionen også er en del af argumentblokken derfor kan man nemt bruge funktionen uden at skulle huske eller angive alle parametre hver gang. En god valideringsfunktion kan være med til at vi ikke få nogle negative startværdier når der ikke er brug for dem. Det kan være i vægt, alder og højde. Her kan man ikke have nogen negative værdier da det ikke giver mening. Det søger valideringsfunktionen for at det ikke sker da den ellers vil sig der er en fejl i datasættet. - Hvordan fungerer switch-operatoren? Switch-operatoren i matlab er en kontrollerne funktion, der bruges i forskellige kodeblokke baseret på værdier af en enkel variabel eller udtryk. Det gør arbejder smartere da det kan afskaffe en lang række funktioner som if, elseif og else sætninger dermed skaber mere overskuelighed. Den virker ved at evaluere en variabel eller udtryk og matlab sammenligner denne værdi med de mulige værdier der er angiver i case-blokken. Hvis det passer med nogle af variablerne vil den case laves. Men hvis ikke der er et machende case vil der kommer otherwise-block der inkulder at håndter alle andre værdier. Der er en ulemp ved det da det kun er den første case den macher med som bliver aktiveret. Switch-operatoren er især nyttig når der er flere variabler af de samme værdier dermed vil man gerne lave forskellige handlinger på dem. Dette gør det muligt at undgå tunge og uoverskuelige strukturer, hvilket forbedrer både funktionaliteten og vedligeholdelsen af koden. Lektion 5 ========= - Hvad er vigtig, når du visualiserer data? Grunden til at vi visualiserer data er at simplificer datasættet mest muligt derudover er det også for at sætte resultaterne i perspektiv. Når vi sætter resultaterne i perspektiv er det for at kunne formidle og præcentere vores datasæts resultater. Det skaber nemlig en måde til nemere at forstå resultater af et kompleks data sæt. Der er to måde man kan gøre det på det er en god visualisering og en rigtig skidt visualisering. Vores hensigt med at visualisere data er at skabe et overblik, finde tendens, mønster, outliner og en sammenhæng. Ved at finde tendens, mønster og outliner kan man illustrere pointer. En god datavisualisering afhænger af hvilke publikum der er. Man skal overveje hvilke plot type der passer til lige netop det datasæts resultater du har, det er kan være bar, histogram, cirkel diagram, scatter, heatmaps osv. Det skal simplificeres og klarhed og de kan ske ved at fjerne unødvendig linjer tekst osv. For en god klarhed kan man vælge farver der er målrettet til forståelsen af plotet. Der skal dog være titler, aksetitler og enheder på. - Har I haft specifikke overvejelser mht. datavisualisering i jeres projekt? - Den studerende forventes at have fuldstændig styr på plots i rapporten. Altså at kunne redegøre for indhold på x-akser, y-akser, enheder. - Videre forventes den studerende også at kunne indgå i en diskussion om plots/figurer/den illustrerede datas forløb, f.eks. "Hvad kan årsagen til udslaget på denne graf være?" - Hvilke typer manglende data kan der være? Der er MCAR, MAR og MNAR. **MCAR** betyder mangler fuldstændig tilfældigt værdier som er uafhængig af både observationer og uobserverede data. ved mangler fuldstændig tilfældigt værdier er det sandsynlig, at manglende værdier ikke vil introducer nogen bias i analysen, og man kan typisk ignorer eller slette rækker med manglende data uden det forvrænger resultaterne. **MAR** er Mangler tilfældigt værdier som er afhængig af observerede data, men ikke selv den manglende værdi. det vil sige at de manglende værdier er relateret til andre kendt variable i datasættet, men ikke til den specifikke manglende værdi **MNAR** betyder mangler ikke tilfældigt er de manglende værdier afhænger af selve den værdi, der mangler, eller af andre uobserverede variabler - Hvilke 3 strategier har vi primært til at håndtere manglende data? Der er 3 forskellig strategier der primært bliver brugt til at håndtere manglende data og de hedder ignore, delet og replace. De fejl man **ignore** er tit og ofte uden betydning derfor lader man de manglende datapunkter være og det er en legitim metode, men vi skal vær obs. på, at vores databehandlingsalgoritme kan crashe, hvis den ikke er designet omkring manglende punkter / har error handling. Det bliver brugt når der opstår MCAR. Når du bruger **delete** så sletter man de manglende punkter (NaN) er også en smart metode, men den fordrer, at man analysere sit datasæt og vurderer, om kvantitet / kvaliteten af de manglende datapunkter vil påvirke resultatet. Det er MAR typen man snakker om. Når du bruger funktionen **replace** er en almindelig strategi er at estimere, hvilken værdi det manglende datapunkt har, også kaldt imputering. Vi har forskellige metoder til at imputere: Der findes mean imputation, median imputation og mode imputation. **Mean imputation** finder man de manglende værdier med en middelværdi af den eksisterende data. **Median imputation** finder man de manglende værdier med medianen af den eksisterende data. **Mode inputation** finder man de manglende værdier med den mest hyppigste værdi i resultat sættet. - Hvad er Interpolering og hvordan udnyttes det Interpolering er en metode til at estimere værdier mellem kendte data positioner. Det er især nyttigt, når man har ufuldstændig datasæt og ønsker at skabe en kontinuerlig funktion baseret på direkte målepunkter. Det vil sige at det ikke er samme metode som imputation, da man har mere fokus på at udfylde mellem kendte punkter i kontinuerlige data. **man forbinder to punkter med en linje** der er linære, fordel ved at går det på denne måde er at det er enkelt og hurtigt at beregne. God når datasættet er tæt på linære eller ved en meget højsampling rate. Ulemper det bliver ikke så præcist hvis dataen er ulinære dermed ændre sig meget hurtigt fra punkt til punkt. **Den nærmeste nabo** kan også bruges fordi man sætter interpolerede punkt med den samme værdi som det nærmeste kendte datapunkt. De fordel der er når man burger denne metode er meget simpel og hurtig. Ingen glatning, hvilket kan være ønskværdigt i visse applikationer. Der er dog også nogle ulemper der kan skabe pludselige spring eller blok-effekter i data, da værdien ikke ændres jævnt **Spline interpolering** bruger stykkevis polynomier (oftest tredjegradspolynomier) til at skabe en glat kurve, der passer gennem alle datapunkterne. Spline interpolation forsøger at minimere kurvens samlede krumning, hvilket giver en jævnere overgang mellem punkterne. De fordel der kan være er at give en glat kurve uden skarpe kanter og kan passe godt til data med ikke-lineære tendenser. Men de er selvfølge nogle ulemper som er at det er mere komplekst at beregne - Hvad er støj i data? Støj er tilfældige variationer eller fejl i data, der kan forvrænge resultaterne. derudover er der selvfølge nogle kilder til støj kan være målefejl, instrumentfejl, dataindsamlingsfejl, kabler. - Hvordan kan vi håndtere støj? Vi kan håndter støjen med glidende Gennemsnit (Moving average) som brug af et gennemsnit over en glidende vindue for at udglatte data. Moving average er faktisk bare et lavpass filter. man kan tilføje filter som fx low pass, median filter og højpass filter. Low filter fjerne højfrekvent støj ved at filtrer dataen. Medianfilter er med til at lave en erstatning af hver datapunkt med medianen af dets naboer for at fjerne impulsiv støj. Høj-pass filter fjerne lavfrekvent støj vi bruger funktionen smoothdata() til at lave en moving averge filter derudover kan vi tilføje vindue parameteren i vores method som angiver hvor stort et område vi vil tag udgangspunkt. Lektion 6 ========= - Hvilken funktion bruger vi for at se frekvensindholdet i vores signal? For at går fra et signal som består af sinusoider til frekvensindhold, skal vi bruge funktionen FFT til at oversætte det til fra time domænet til frekvensdomænet. Det gøres ved bruge af arrays, der præsenter signalet, amplituden og fase forskellen i frekvensen. For at resultatet kan mache med FFT så det bliver til en korrekt frekvens akse skal man skrive sampling i koden, hvor man skriver hvad signalets samplingen frekvens. For at lave det visuelt skal man lave en blok hvor man bruger funktionen abs som er med til at normalisere amplituden. Til sidst kan man lave et plot for at visualisere dataene i frekvensdomænet. Når du bruger FFT til at analysere frekvensindholdet, skal du normalt skalere x-aksen (frekvensaksen) korrekt for at få meningsfulde frekvensværdier. Dette skyldes, at FFT-outputtet i sig selv kun viser indeks for de forskellige frekvenskomponenter. ![Et billede, der indeholder tekst, Font/skrifttype, hvid, håndskrift Automatisk genereret beskrivelse](media/image4.png) - Hvornår i databehandling vil vi typisk foretage frekvensanalyse og hvorfor? Der er mange typiske situationer for frekvensanalyse. Det kan være signalfiltrering og støjfjerbelse, sprektralanalyse i kommunikation eller i tidsfrekvensanalyse. Når man laver frekvensanalyse i signalfiltrering og støjfjerding så fjerne man støj fra signalet eller isolere specifikke frekvensområder. Det kan være støj fra strømnettet som er på 50Hz. Identifikation af dominerende frekvenser handler om at finde hvilke frekvenser der er til stede i et signal, og hvor meget energi det bidrager med. Det kan være en analyse af lydfiler for at identificere hjertets slag baseret på deres karakteristiske frekvenser. Sprektral analyse hvor man laver en analyse af båndbredde og frekvensindhold i signaler, der sendes over kommunikationskanaler. Tidsfrekvensanalyse er når signalet er tidsvarierende, og vi ønsker at forstå frekvensindholdets ændringer over tid. det kan være analyse af biologiske signaler som EKG eller EEG, hvor frekvenser kan variere over tid. - Hvorfor er jeres sample rate relevant, når I analyserer jeres data? Den sampling rater der bliver valgt til at analysere et signal skal være mindste dobbelt så meget som signalets højeste frekvenskomponent hvis ikke det overholdes, kan frekvenser, der er højere end halvdelen af sampling raten, skabe fejl i signalet, kendt som aliasing. Når man **down sampler** så vil du miste nogle af samplingerne, det vil medføre aliasing. Hvis du halverer samplingerne, vil du kun få hver anden sampling det er kaldet decimering. Føre du overvejer at nedsample skal du kigge på filtere signalet med en lav pass filter for at lave anti aliasing filter for at undgå aliasing. Filtering sikre at frekvenskomponenter over nye nyquist-frekvens fjernes, før signalet decimeres. Grundene til at man down sampler er for at reducere datamængden og spare lagerplads eller processorkraft. For at tilpasse signalet til en enhed eller et system med en lavere sampling rate. Når højere sampling rater ikke giver nogen ekstra information, fordi signalet ikke har høje frekvenskomponenter. Opsampling er hvor man øger samplingsrate, hvilket indebærer at tilføje flere samplings mellem de eksisterende samples. Det gøres ofte ved at anvende interpolationsmetoder, som gætter de nye værdier baseret på de oprindelige samplings. for at undgår nye alialise frekvenser bruger man et low pass filter til at fjerne aliaserne så det passer med det oprindelige signal spektrum. Grundene til at vi opsampler er at vi får et mere smooth plot dermed forbedre det visuelle plot og For at muliggøre yderligere behandling, som kræver en højere tidsopløsning. - Beskriv overordnet jeres dataprocessering fra dataopsamling til det færdigbehandlede signal - I vil blive spurgt til jeres eventuelle anvendelse af filtrer i delen af eksamen der er afsat til projektet.