Komprimering av ljudsignaler
|
|
- Kurt Lindqvist
- för 6 år sedan
- Visningar:
Transkript
1 Komprimering av ljudsignaler Ett projekt i kursen Signaler & System given vid Uppsala Universitet under höstterminen 2002 Utfört av David Nilsson-Jatko Pnr , dani4965@student.uu.se 1
2 1. Innehållsförteckning 1. Innehållsförteckning 2 2. Sammanfattning 3 3. Inledning & bakgrund 3 4. Problemformulering 3 5. Teori Funktionsval Funktionsbeskrivning Bakgrund 5 6. Utförande 6 7. Resultat 6 8. Slutsats 6 9. Appix A: Användarmanual dp3make dp3play Appix B: Källkod dp3make.m dp3play.m hamtafrekvens.m lagpass.m omsampla.m plottafrekvens.m uppsampla.m 19 2
3 2. Sammanfattning Uppgiften, att utveckla metoder för komprimering och dekomprimering av tal- och ljudsignaler har genomförts med mycket gott resultat. Implementeringen av dessa resulterade i verktyg för komprimering och uppspelning av det samtidigt nyskapade ljudformatet DP3. Funktionen bygger på att bl.a. dela upp en ljudvåg i många småblock och skala bort icke intressant information i både frekvens och amplitud hos vart och ett. En komprimeringsfaktor mellan 5 och 10 har uppmätts för slumpmässigt valda signaler av intressant karaktär, vilket är ett mycket gott resultat. 3. Inledning & bakgrund Detta projekt har utförts som en del i kursen Signaler & System, given vid Uppsala Universitet under höstterminen Syftet med projektet har varit att bekanta sig med något område inom signalbehandling som har anknytning till kursen. Jag, David Nilsson-Jatko, valde att arbeta med talsignaler. Om mänskligt tal samplas med 44,1 khz i 16 bitar, så fyller ju detta sällan upp hela signalens spektrum, utan innehåller väldigt mycket redundans som kan skalas bort för att erhålla en mindre datamängd, men med bibehållen meningsfull information. Detta kan t.ex. ske genom att minimera antalet nödvändiga frekvenser, nödvändig signalstyrka, etc. vid olika tidpunkter i signalen. Sådana komprimeringar finns i nästan oändligt många utföranden i olika redan existerande ljudformat. Att sätta sig in i ljudkomprimeringsområdet, och utveckla och implementera något eget inom området verkade som ett lämpligt projekt att ta sig an i kursen. 4. Problemformulering Uppgiften var, att givet en signal i wav-form beståe av samplat mänskligt tal, komprimera denna m.h.a. egenutvecklade rutiner till en fil av mindre storlek utan större avkall på mängden viktig (hörbar) information. Dessutom skulle en avkodare skapas, vilken skulle dekomprimera den skapade filen och åtkådliggjorde denna på lämpligt vis, för jämför med originalet. Lämpliga algoritmer utvecklas och implementeras. Slutprodukten skulle alltså bli en samling algoritmer, som alla verkar på den givna indatan och utnyttjar olika egenskaper hos samplat tal och andra former av ljud såsom musik, etc. för att minska redundandsen och därmed även datamängden så mycket som möjligt. Algoritmerna väljs efter en bedömning av vilka och hur många som kan anses lämpligt för uppgiften. 3
4 5. Teori 5.1. Funktionsval En kombination av olika tekniker valdes för att lösa problemet. Dessa valdes utifrån att ha studerat principerna för andra ljudformat samt kunskaperna hos projektmedlemmen Funktionsbeskrivning Komprimering Komprimeringen fungerar i stora drag på följande vis: Öppna den fil som ska innehålla den komprimerade signalen för skrivning. Dela upp den givna insignalen (I) i block av längden (L). För varje block, gör följande: 1. Ta fram frekvensspektrum för blocket 2. Använd Welchs metod för att ta bort störande varians och utjämna spektrumet 3. Betrakta det erhållna spektrat i logaritmisk form 4. Finn den högsta frekvensen (F), vars signalstyrka är >= en given tröskelkonstant (T). 5. Lågpassfiltrera bort frekvenser över F Hz. 6. Sampla ner datan i blocket till Fx2 Hz. 7. Övergå till tidsdomänen, och finn den största amplituden (A). 8. Normalisera hela blockets amplitud med avsee på A. 9. Minska noggranheten för varje sampels upplösning från 16 bitar till 8 bitar. 10. Skriv den nersamplade datan, dess frekvens, dess amplitudnormaliseringskonstant (A) och dess längd till filen Avkomprimering Dekomprimering av av den ovan beskrivna algoritmen producerade utdatan fungerar på följande vis: Öppna den fil som innehåller den komprimerade signalen Så länge som filen inte är slut, läs in information om för frekvens, längd, amplitudnormaliseringskonstant och data blockvis. För varje block, gör följande: 1. Uppsampla datablocket från den inlästa frekvens en till 44,1 khz (standard-cdkvalitet) genom interpolering. 2. Ändra varje sampels amplitudupplösning från 8 bitar till 16 bitar. 3. Kompensera för amplitudnormaliseringen genom att multiplicera varje sampels amplitudvärde med inversen till A. 4. Foga ihop det erhållna datablocket med tidigare uppackade block Spela upp hela slutliga erhållna datan för åskådliggöring. 4
5 5.3. Bakgrund Metoden förutsätter att användaren vid komprimering specificerat tröskelkonstanten T (vilken tjänar som ett mått på vilken kvalitet som är önskvärd), blocklängden (L) samt källa och destination för in- och utdata. Enligt Nyqvistteoremet kan varje signal som innehåller högsta frekvensen F max entydigt beskrivas med en samplingsperiod på F max x 2. Högre samplingsfrekvenser tillför ast redundans, varpå frekvensen F max x 2 räcker för att kunna återskapa den nersamplade signalen entydigt och korrekt. Om man skulle ha betraktat frekvensspektrat för hela signalen istället för blockvis, skulle den högsta frekvensen F som uppnår tröskelkonstanten T för denna datamängd ha varit densamma som det största värdet som uppnår tröskelkonstanten för alla delblock. Detta är inte effektivt, då vi strävar efter ett så lågt värde på F som möjligt för att minska datamängden. Därför används uppdelningen av den totala datamängden i delblock, vilket ökar redundansborttagningen dramatiskt. Den ändring i amplitudupplösning från 16 till 8 bitar som utföres behöver inte alls medföra någon kvalitetsförsämring. Då en talsignals amplitud oftast inte sträcker sig över hela sitt möjliga område, motverkar ofta amplitudnormaliseringen upplösningsändringen, varpå kvalitén ej minskas även om datamängden minskas. Även denna åtgärd drar stor fördel av blockvis behandling av den totala signalen. Ovanståe algoritmer begränsar alltså inte användningen till att ast operera på ljuddata i talområdet, utan kan med hjälp av sitt variabla frekvensval även komprimera musik och andra ljudsignaler. 5
6 6. Utförande Till uppgiften valdes den mest emminente IT-ingenjören, David Nilsson-Jatko. Eftersom det finns enormt många olika tekniker man kan använda för att lösa problemet, skulle man egentligen kunna arbeta på projektet i all evighet, men här nöjdes med att implementera ovan beskrivna metoder. Efterforskningar om hur man skulle kunna lösa problemet och med hjälp av vilka algoritmer gjordes. Bland annat studerades olika befintliga ljudformats uppbyggnad, bl.a. MP3 och dess uppdelning av datan i s.k. "frames" eller "block". Efter en tids efterforskning ritades den schematiska funktionen hos projektets slutprodukt upp, och ovan nämnd funktionalitet (se kapitlet "Teori") fastställdes. Allting beslöts utföras med hjälp av Matlab (version 6.1); såväl utvecklingen som implementeringen av samtliga nödvändiga algoritmer. Detta val togs p.g.a. Matlabs utvecklingsvänliga miljö och breda inbyggda stöd för signal- och matrismanipulering. Det framtagna nya ljudformatet döptes till DP3, såväl en förkortning av DavidP3 efter den geniale IT-ingenjör som uppfann det hela, som en referens till andra ljudformat som MP3. Implementeringen gjordes i form av ett DP3-enkodningsverktyg och en separat DP3- uppspelare. För filtrering av ljudsignalen i nersamplingsledet används ett Butterworthfilter av ordning 8, då detta gav mycket tillfredsställande resultat vid utprovningar och tester. Vid analys av frekvensspektrum används ett enkelt hammingfönster som fönsterfunktion (datamängden är ju inte oändlig). 7. Resultat Till sist hade två produkter för komprimering och dekomprimering av ljudsignaler framställts, med namnet DP3make och DP3play. Funktionen visade sig vara över förväntan. Utan märkbar (hörbar) kvalitetsskillnad kunde en talsignal i vissa fall förminskas med en faktor 10, och i allmänna fall med ungefär en faktor 5. Detta är att jämföra med t.ex. MP3, som i allmänhet ger en förminskning med en faktor 10, men som å andra sidan är enormt mycket mer komplex. Givetvis är prestandan helt beroe av insignalens komplexitet och natur, men i detta projekt har dock bara "vanliga" signaler som är intressanta som tal- eller musiksignaler ansetts viktiga, helt enligt specifikationerna. Vid små blockstorlekar kan dock störningar orsakade av sammanfogningarna av de olika blocken märkas, men detta är inget strukturellt problem med den bakomliggande teorin, utan kan årgärdas vid vidare utveckling av projektet. Som sagt kan man hålla på i evigheter med att finputsa och implementera bättre och mer avancerade algoritmer, men gränsen dras här, då det hittills erhållna resultatet mer än väl torde motsvara förväntningarna. 8. Slutsats Vi har alltså lyckats implementera en ljudkomprimering som minskar datamängden med ungefär en faktor 5. Givetvis beror kvalitén och komprimeringsfaktorn på insignalens natur, men för denna tillämpning har ast "normalt" tal och musik ansetts intressanta. För dessa erhålles också en mycket tillfredsställande komprimering. 6
7 9. Appix A: Användarmanual 9.1. dp3make Syntax för användning av DP3-enkodaren är i Matlab följande: dp3make(infil,utfil,kvalitet,blockstorlek,detaljer) där infil är den wav-fil (44 khz, 16 bit, mono) vi vill komprimera, utfil är destinationsfilnamnet (*.dp3), kvalitet är tröskelgräns för bortklippning av skräp (rekommerat: 26), blockstorlek blockstorlek som används vid komprimering (rekommerat: 10000) och detaljer: 0 för normal operation, 1 för att visa komprimeringsinfo. Funktionen kräver att signalbehandlingspaketet är installerat i Matlab. Funktionen är testad med Matlav 6.1 och funkar fint med denna version dp3play Syntax för användning av DP3-uppspelaren i Matlav är följande: dp3play(filnamn,superkvalitet,diagram,detaljer) där filnamn är den dp3-fil som ska spelas upp, superkvalitet är 0 för snabbhet eller 1 för kvalitet, diagram är 0 för normal användning, 1 för att visa diagram i slutet el. 2 för högdetaljerat och detaljer är 0 för vanlig operation eller 1 för att visa dekomprimeringsinfo Funktionen kräver att signalbehandlingspaketet är installerat i Matlab. Funktionen är testad med Matlav 6.1 och funkar fint med denna version. För uppspelning av 44,1 khz.wav-fil för jämför med DP3 är syntaxen: wavplay(wavread(filnamn),44100) 7
8 10. Appix B: Källkod dp3make.m function [] = dp3make(filnamn,utfil,troskel,chunkstorlek,detaljer) % Syntax: dp3make(infil,utfil,kvalitet,blockstorlek,detaljer) % infil = den wav-fil (44 khz, 16 bit, mono) vi vill komprimera % utfil = destinationsfilnamn (.dp3) % kvalitet = tröskelgräns för bortklippning av skräp (rekomm: 26) % blockstorlek = blockstorlek som används vid komprimering (rekomm: 10000) % detaljer = 0 för normal operation, 1 för att visa komprimeringsinfo % demonstration=1 el. 0 berornde på om man vill ha uppspelning demonstration=0; %filnamn='c:\m\fsol2.wav'; [total_data,ursp_frek]=wavread(filnamn); datalangd=length(total_data); %chunkstorlek=10000; chunknummer=0; %troskel=kvalitet; disp('======================================================================') disp('dp3 Encoder') disp('======================================================================') disp(sprintf('total datalängd är %d med frekvens %d Hz',length(total_data),ursp_frek)) disp(sprintf('chunkstorleken är %d samples',chunkstorlek)) disp(sprintf('komprimeringströskeln (-kvaliteten) är %d',troskel)) disp('komprimerar...') fut=fopen(utfil,'w'); utfilstorlek=0; while (chunknummer+1)*chunkstorlek<=datalangd % hämta ett nytt block av indatan att arbeta på if chunknummer*chunkstorlek<=datalangd-chunkstorlek dennachunkstorlek=chunkstorlek; dennachunkstorlek=datalangd-chunknummer*chunkstorlek; ursp_data=zeros(dennachunkstorlek,1); for t=1:dennachunkstorlek ursp_data(t)=total_data(chunknummer*chunkstorlek+t); % luska ut vilka frekvenser vi kan klippa bort klippfrek=hamtafrekvens(ursp_data,ursp_frek,troskel,0); if klippfrek==0 % om framen inte uppfyller kriterierna för att hitta frekvenströskeln i operationen ovan utdata=ursp_data; nyfrek=ursp_frek; % lågpassfiltrera bort höga, ointressanta frekvenser lagpassfiltrerat=lagpass(ursp_data,ursp_frek,klippfrek,0); nyfrek=klippfrek*2; % omsampla datan enligt den nya frekvensen utdata=omsampla(lagpassfiltrerat,ursp_frek,nyfrek); if detaljer==1 disp(sprintf('klippfrek. %5d Hz -> Datalängd %5d vid %5d Hz (%3d proc. vunnet)',klippfrek,length(utdata),nyfrek,ceil(100*(1-length(utdata)/length(ursp_data))))) utfilstorlek=utfilstorlek+length(utdata); % vilket element har störst amplitud? storsta=0; for t=1:length(utdata) if abs(utdata(t))>storsta % normalisera amplituden m.a.p. det sampel i blocket med högst amplitud storsta=abs(utdata(t)); 8
9 % skriv all data om blocket till utfilen fwrite(fut,nyfrek,'integer*2'); fwrite(fut,storsta,'real*4'); fwrite(fut,length(utdata),'integer*2'); fwrite(fut,int16(utdata*(128/storsta)),'integer*1'); chunknummer=chunknummer+1; fclose(fut); disp(sprintf('ursprunglig datastorlek: %d bytes',datalangd*2)) disp(sprintf('komprimerad datastorlek: %d bytes (%d procent av originalet)',utfilstorlek,round(100*utfilstorlek/(datalangd*2)))) disp(sprintf('komprimeringseffektivitet: %d procent',100- round(100*utfilstorlek/(datalangd*2)))) % klart 9
10 10.2. dp3play.m function [] = dp3play(filnamn,kval,detaljer,visainfo) % Syntax: dp3play(filnamn,superkvalitet,diagram,detaljer) % filnamn = den dp3-fil som ska spelas upp % superkvalitet = 0 för snabbhet % 1 för kvalitet % diagram = 0 för normal användning % 1 för diagram i slutet % 2 för jättemånga detaljer (jobbigt!) % detaljer = 0 för vanlig operation % 1 för att visa dekomprimeringsinfo % demonstration=1 el. 0 berornde på om man vill ha uppspelning demonstration=0; disp('======================================================================') disp('dp3 Player') disp('======================================================================') totaltinlast=[]; blocknummer=0; fin=fopen(filnamn,'r'); disp('dekomprimerar...') % läs in datablock så länge filen inte är slut while feof(fin)==0 [frek,count]=fread(fin,1,'integer*2'); if count>0 blocknummer=blocknummer+1; [storsta,count]=fread(fin,1,'real*4'); [langd,count]=fread(fin,1,'integer*2'); [datablock,count]=fread(fin,langd,'integer*1'); if visainfo==1 disp(sprintf('block %2d: %5d Hz, %5d samples, normaliseringsvärde %1.4f',blocknummer,frek,langd,storsta)) % kompensera för komprimeringens amplitudnormalisering och amplitudupplösning datablock2=double(datablock)/(128/storsta); % uppsampla datan till 44,1 khz if kval==1 uppsamplat=resample(datablock2,44100,frek)'; uppsamplat=uppsampla(datablock2,frek,44100); % lägg till bearbetat block till de andra, redan bearbetade totaltinlast=[totaltinlast uppsamplat]; if detaljer==2 wavplay(datablock2,frek,'sync'); disp('inläst ljuddata plottas - tryck på någon tangent för att fortsätta') plot(datablock2) pause; fclose(fin); % spela upp disp('spelar upp...') wavplay(totaltinlast,44100,'sync'); % visa ev. detaljer if detaljer>0 disp('tids- och frekvensspektrum visas.') plot(totaltinlast) plottafrekvens(totaltinlast,44100) % slut 10
11 10.3. hamtafrekvens.m function [utfrekvens] = hamtafrekvens(chan1,dt,tolerans, plotta) echo off if plotta==1 % skapa nytt fönster att smacka ut grafik i chan1figtitle = ['Tidsdomän']; hf = figure('name',chan1figtitle,'nmbertitle','on','color','white',... 'Pointer','crosshair','Units','normal','Position',[0.1,0.07,0.8,0.35],... 'InvertHardCopy','off','PaperType','a4letter','PaperUnits','centimeters',... 'PaperPosition',[3.0,10.0,14.0,12.0]); % normalisera datan m.a.p. amplitud ymax = 1.2*max(chan1); ymin = 1.2*min(chan1); if ymax<0.0 ymax = ymax/(1.2*1.2); if ymin>0.0 ymin = ymin/(1.2*1.2); npnts = length(chan1); xmin = 0.0; xmax = npnts*dt; t = 0:dt:dt*(npnts-1); % skapa axlar till fönstret ht = axes('parent',hf,'position',[ ]); % plotta tidsdata plot(t,chan1,'b'); % skapa axlelparametrar set(ht,'xlim',[xmin xmax],'xcolor','black'); set(ht,'ylim',[ymin ymax],'ycolor','black'); htx = text(0,0,'time (sec)'); set(htx,'color','black'); hty = text(0,0,'amplitude'); set(hty,'color','black'); set(hty,'rotation',+90.0); set(ht,'xlabel',htx,'ylabel',hty); % Visa frekvensspektrum % chan1 : tidsvektor % lwin : längden av tidsfönsterfunktion % dt : samplingsfrekvensen lwin = 2048; % vi ska loopa genom datan ett antal ggr n = fix(length(chan1)/lwin); % skala om tidsvektorn till en matris med n kolumner och längd lwin x = reshape(chan1(1:lwin*n),lwin,n); xwin = zeros(size(x)); % kolumner för fönstret -- Hammingfönster används. win =.5*(1 - cos(2*pi*(1:lwin)'/(lwin+1)));; for k=1:n xwin(1:lwin,k) = win.*x(:,k); % fouriertransforma f = fft(xwin); 11
12 % vi vill inte ha negativa frekvenser! f(1+lwin/2:lwin,:) = []; ps = abs(f).^2; % Summera kolumner & ta medlevärde [m,n] = size(ps); if (m==1) (n==1) psa = ps*(dt/lwin); psa(2:lwin/2) = psa(2:lwin/2)*2; psa = sum(ps')*(dt/lwin); psa(2:lwin/2) = psa(2:lwin/2)*2; % Visa frekvensspektrat med linjär x-axel och logaritmisk y-axel df = 1/(dt*lwin); np = lwin/2; f = 0:df:(np-1)*df; if plotta==1 % skalade axlar mn = min(10*log10(psa(1:np))); if mn<0.0, mn=mn*1.2; mn=mn/1.2; mx = max(10*log10(psa(1:np))); if mx>0.0, mx=mx*1.2; mx=mx/1.2; chan1figtitle = ['Frekvensspektrum ',wavefile]; hf = figure('name',chan1figtitle,'numbertitle','on','color','white',... 'Pointer','crosshair','Units','normal','Position',[0.3,0.2,0.65,0.65],... 'InvertHardCopy','off'); hclx = text(0.6,0.9,''); hcly = text(0.93,0.9,''); set(hclx,'color','red'); set(hcly,'color','red'); hcx = text(0.57,0.97,''); hcy = text(0.9,0.97,''); set(hcx,'color','blue'); set(hcy,'color','blue'); % position axes within figure window %%ht = axes('parent',hf,'position',[ ]); %plot(f,10*log10(psa(1:np)),'-b'); % Welch's metod för att minimera varians nyvar=zeros(np,1); for tt=11:np-11 nyvar(tt)=(psa(tt-10)+psa(tt-6)+psa(tt-3)+psa(tt)+psa(tt+3)+psa(tt+6)+psa(tt+10))/7; % lite larv för att inte få log av 0 for tt=1:np nyvar(tt)=nyvar(tt)+1; desibell=10*log10(nyvar); utfrekvens=0; % vi loopar över vår array med steg om 10 for tt=1:10:length(desibell) if desibell(tt)>tolerans utfrekvens=tt/np*22050; utfrekvens=floor(utfrekvens); 12
13 if plotta==1 plot(f,desibell,'-b'); 13
14 10.4. lagpass.m function [utfrekvens] = hamtafrekvens(chan1,dt,tolerans, plotta) echo off if plotta==1 % skapa nytt fönster att smacka ut grafik i chan1figtitle = ['Tidsdomän']; hf = figure('name',chan1figtitle,'nmbertitle','on','color','white',... 'Pointer','crosshair','Units','normal','Position',[0.1,0.07,0.8,0.35],... 'InvertHardCopy','off','PaperType','a4letter','PaperUnits','centimeters',... 'PaperPosition',[3.0,10.0,14.0,12.0]); % normalisera datan m.a.p. amplitud ymax = 1.2*max(chan1); ymin = 1.2*min(chan1); if ymax<0.0 ymax = ymax/(1.2*1.2); if ymin>0.0 ymin = ymin/(1.2*1.2); npnts = length(chan1); xmin = 0.0; xmax = npnts*dt; t = 0:dt:dt*(npnts-1); % skapa axlar till fönstret ht = axes('parent',hf,'position',[ ]); % plotta tidsdata plot(t,chan1,'b'); % skapa axlelparametrar set(ht,'xlim',[xmin xmax],'xcolor','black'); set(ht,'ylim',[ymin ymax],'ycolor','black'); htx = text(0,0,'time (sec)'); set(htx,'color','black'); hty = text(0,0,'amplitude'); set(hty,'color','black'); set(hty,'rotation',+90.0); set(ht,'xlabel',htx,'ylabel',hty); % Visa frekvensspektrum % chan1 : tidsvektor % lwin : längden av tidsfönsterfunktion % dt : samplingsfrekvensen lwin = 2048; % vi ska loopa genom datan ett antal ggr n = fix(length(chan1)/lwin); % skala om tidsvektorn till en matris med n kolumner och längd lwin x = reshape(chan1(1:lwin*n),lwin,n); xwin = zeros(size(x)); % kolumner för fönstret -- Hammingfönster används. win =.5*(1 - cos(2*pi*(1:lwin)'/(lwin+1)));; for k=1:n xwin(1:lwin,k) = win.*x(:,k); % fouriertransforma f = fft(xwin); 14
15 % vi vill inte ha negativa frekvenser! f(1+lwin/2:lwin,:) = []; ps = abs(f).^2; % Summera kolumner & ta medlevärde [m,n] = size(ps); if (m==1) (n==1) psa = ps*(dt/lwin); psa(2:lwin/2) = psa(2:lwin/2)*2; psa = sum(ps')*(dt/lwin); psa(2:lwin/2) = psa(2:lwin/2)*2; % Visa frekvensspektrat med linjär x-axel och logaritmisk y-axel df = 1/(dt*lwin); np = lwin/2; f = 0:df:(np-1)*df; if plotta==1 % skalade axlar mn = min(10*log10(psa(1:np))); if mn<0.0, mn=mn*1.2; mn=mn/1.2; mx = max(10*log10(psa(1:np))); if mx>0.0, mx=mx*1.2; mx=mx/1.2; chan1figtitle = ['Frekvensspektrum ',wavefile]; hf = figure('name',chan1figtitle,'numbertitle','on','color','white',... 'Pointer','crosshair','Units','normal','Position',[0.3,0.2,0.65,0.65],... 'InvertHardCopy','off'); hclx = text(0.6,0.9,''); hcly = text(0.93,0.9,''); set(hclx,'color','red'); set(hcly,'color','red'); hcx = text(0.57,0.97,''); hcy = text(0.9,0.97,''); set(hcx,'color','blue'); set(hcy,'color','blue'); % position axes within figure window %%ht = axes('parent',hf,'position',[ ]); %plot(f,10*log10(psa(1:np)),'-b'); % Welch's metod för att minimera varians nyvar=zeros(np,1); for tt=11:np-11 nyvar(tt)=(psa(tt-10)+psa(tt-6)+psa(tt-3)+psa(tt)+psa(tt+3)+psa(tt+6)+psa(tt+10))/7; % lite larv för att inte få log av 0 for tt=1:np nyvar(tt)=nyvar(tt)+1; desibell=10*log10(nyvar); utfrekvens=0; % vi loopar över vår array med steg om 10 for tt=1:10:length(desibell) if desibell(tt)>tolerans utfrekvens=tt/np*22050; utfrekvens=floor(utfrekvens); 15
16 if plotta==1 plot(f,desibell,'-b'); 16
17 10.5. omsampla.m function [filtrerat] = omsampla(data,gammalfrek,nyfrek) steg=gammalfrek/nyfrek; %disp(length(data)) filtrerat=zeros(floor(length(data)/steg),1); for t=1:length(filtrerat) uppdelning=(t*steg-floor(t*steg)); filtrerat(t)=(1-uppdelning)*data(floor(t*steg))+uppdelning*data(ceil(t*steg)); 17
18 10.6. plottafrekvens.m function [] = plottafrekvens(chan1,dt) % visar frekvensspektra % snarlik funktion finns i hamtafrekvens.m % se den filen för kommentering! lwin = 2048; n = fix(length(chan1)/lwin); x = reshape(chan1(1:lwin*n),lwin,n); xwin = zeros(size(x)); win =.5*(1 - cos(2*pi*(1:lwin)'/(lwin+1)));; for k=1:n xwin(1:lwin,k) = win.*x(:,k); f = fft(xwin); f(1+lwin/2:lwin,:) = []; ps = abs(f).^2; [m,n] = size(ps); if (m==1) (n==1) psa = ps*(dt/lwin); psa(2:lwin/2) = psa(2:lwin/2)*2; psa = sum(ps')*(dt/lwin); psa(2:lwin/2) = psa(2:lwin/2)*2; df = 1/(dt*lwin); np = lwin/2; f = 0:df:(np-1)*df; mn = min(10*log10(psa(1:np))); if mn<0.0, mn=mn*1.2; mn=mn/1.2; mx = max(10*log10(psa(1:np))); if mx>0.0, mx=mx*1.2; mx=mx/1.2; chan1figtitle = ['Frekvensspektrum ']; hf = figure('name',chan1figtitle,'numbertitle','on','color','white',... 'Pointer','crosshair','Units','normal','Position',[0.3,0.2,0.65,0.65],... 'InvertHardCopy','off'); hclx = text(0.6,0.9,''); hcly = text(0.93,0.9,''); set(hclx,'color','red'); set(hcly,'color','red'); hcx = text(0.57,0.97,''); hcy = text(0.9,0.97,''); set(hcx,'color','blue'); set(hcy,'color','blue'); nyvar=zeros(np); for tt=11:np-11 nyvar(tt)=(psa(tt-10)+psa(tt-6)+psa(tt-3)+psa(tt)+psa(tt+3)+psa(tt+6)+psa(tt+10))/7; desibell=10*log10(nyvar); plot(f,desibell,'-b'); 18
19 10.7. uppsampla.m function [uppsamplat] = uppsampla(indata,gammalfrek,nyfrek) %uppsamplat=resample(indata,nyfrek,gammalfrek); %indata=[ ] %gammalfrek=500 %nyfrek=1000 steg=nyfrek/gammalfrek; uppsamplat=zeros(floor(length(indata)*steg),1)'; borjan=1; for t=1:length(indata)-1 borjan=borjan; slutet=floor((t+1)*steg); antalsteg=slutet-borjan+1; for t2=0:antalsteg-1 %((antalsteg-t2)/antalsteg) %(1-((antalsteg-t2)/antalsteg)) uppsamplat(t2+borjan)=((antalsteg-t2)/antalsteg)*indata(t)+(1-((antalstegt2)/antalsteg))*indata(t+1); borjan=slutet; 19
Signalbehandling Röstigenkänning
L A B O R A T I O N S R A P P O R T Kurs: Klass: Datum: I ämnet Signalbehandling ISI019 Enk3 011211 Signalbehandling Röstigenkänning Jonas Lindström Martin Bergström INSTITUTIONEN I SKELLEFTEÅ Sida: 1
EKG-klassificering. Andreas Bergkvist, Michael Sörnell,
EKG-klassificering Projektrapport i Signaler och system Uppsala Universitet Inst. för signaler och system 2002-2-0 För: Mattias Johansson Av: Andreas Bergkvist, andreasbergkvist@hotmail.com Michael Sörnell,
Tillämpning av komplext kommunikationssystem i MATLAB
(Eller: Vilken koppling har Henrik Larsson och Carl Bildt?) 1(5) - Joel Nilsson joelni at kth.se Martin Axelsson maxels at kth.se Sammanfattning Kommunikationssystem används för att överföra information,
Bildbehandling i frekvensdomänen
Uppsala Tekniska Högskola Signaler och system Handledare: Mathias Johansson Uppsala 2002-11-27 Bildbehandling i frekvensdomänen Erika Lundberg 800417-1602 Johan Peterson 790807-1611 Terese Persson 800613-0267
Laboration 3 Sampling, samplingsteoremet och frekvensanalys
Laboration 3 Sampling, samplingsteoremet och frekvensanalys 1 1 Introduktion Syftet med laborationen är att ge kunskaper i att tolka de effekter (speglingar, svävningar) som uppkommer vid sampling av en
Flerdimensionell signalbehandling SMS022
Luleå tekniska universitet Avd för signalbehandling Frank Sjöberg Flerdimensionell signalbehandling SMS022 Laboration 4 Array Processing Syfte: Syftet med den här laborationen är att få grundläggande förståelese
DT1130 Spektrala transformer Tentamen
DT3 Spektrala transformer Tentamen 6 Tentamen består av fem uppgifter där varje uppgift maximalt ger 4 p. Normalt gäller följande betygsgränser: E: 9 p, D:.5 p, C: 4 p, B: 6 p, A: 8 p Tillåtna hjälpmedel:
TSBB16 Datorövning A Samplade signaler Faltning
Name: ID number: Passed: LiU-ID: Date: TSBB16 Datorövning A Samplade signaler Faltning Utvecklad av Klas Nordberg Computer Vision Laboratory, Linköping University, Sweden 24 augusti 2015 Introduktion Denna
Introduktion till MATLAB
29 augusti 2017 Introduktion till MATLAB 1 Inledning MATLAB är ett interaktivt program för numeriska beräkningar med matriser. Med enkla kommandon kan man till exempel utföra matrismultiplikation, beräkna
TSKS21 Signaler, Information och Bilder Lab 2: Digitalisering
TSKS21 Signaler, Information och Bilder Lab 2: Digitalisering Mikael Olofsson 8 februari 2017 Fyll i detta med bläckpenna Laborant Personnummer Datum Godkänd 1 1 Allmänt Denna laboration syftar till att
Spektrala Transformer
Spektrala Transformer Kurssammanfattning Fyra kärnkoncept Sampling Faltning Poler och nollställen Fouriertransform Koncept #1: Sampling En korrekt samplad signal kan rekonstrueras exakt, dvs ingen information
Tillämpad digital signalbehandling Laboration 1 Signalbehandling i Matlab och LabVIEW
Institutionen för data- och elektroteknik 004-03-15 Signalbehandling i Matlab och LabVIEW 1 Introduktion Vi skall i denna laboration bekanta oss med hur vi kan använda programmen Matlab och LabVIEW för
Psykoakustik. Ljudtrycksnivå. Hörselns omfång. Hörnivå(loudness) Människans hörsel är ganska väl studerad och det finns bra modeller för den.
Psykoakustik Ljudtrycksnivå Människans hörsel är ganska väl studerad och det finns bra modeller för den. Detta kan utnyttjas vid ljudkodning för att placera distorsionen (kvantiseringsbruset) så att det
Digital Signalbehandling i Audio/Video
Digital Signalbehandling i Audio/Video Institutionen för Elektrovetenskap Laboration 1 (del 1) Martin Stridh Lund 2005 2 Kapitel 1 Musikkompression Denna laboration handlar om kompression av ljud och musik
Digital signalbehandling Digitalt Ljud
Signalbehandling Digital signalbehandling Digitalt Ljud Bengt Mandersson Hur låter signalbehandling Institutionen för elektro- och informationsteknik 2008-10-06 Elektronik - digital signalbehandling 1
Laboration i tidsdiskreta system
Laboration i tidsdiskreta system A. Tips Användbara MATLAB-funktioner: conv Faltning square Skapa en fyrkantvåg wavread Läs in en ljudfil soundsc Spela upp ett ljud ones Skapa en vektor med godtyckligt
Signaler och System Höstterminen -02 IT3 Rasha Alshammari Andreas Nissemark Zakai kass-saliba Pavel Carballo
Finn Fem Fel - ett försök att hitta skillander i bilder Signaler och System Höstterminen -02 IT3 Rasha Alshammari Andreas Nissemark Zakai kass-saliba Pavel Carballo Innehållsförteckning Introduktion 3
Mätningar med avancerade metoder
Svante Granqvist 2008-11-12 13:41 Laboration i DT2420/DT242V Högtalarkonstruktion Mätningar på högtalare med avancerade metoder Med datorerna och signalprocessningens intåg har det utvecklats nya effektivare
Projekt Spektralanalys med hjälp av den diskreta Fouriertransformen
Projekt Spektralanalys med hjälp av den diskreta Fouriertransformen Marcus Björk Forskare Signalbehandling Systemteknik (IT) Dept. of Information Technology, Division of f Systems and Control Översikt
Projekt 3: Diskret fouriertransform
Projekt 3: Diskret fouriertransform Diskreta fouriertransformer har stor praktisk användning inom en mängd olika områden, från analys av mätdata till behandling av digital information som ljud och bildfiler.
Frekvensplanet och Bode-diagram. Frekvensanalys
Frekvensplanet och Bode-diagram Frekvensanalys Signaler Allt inom elektronik går ut på att manipulera signaler genom signalbehandling (Signal Processing). Analog signalbehandling Kretsteori: Nod-analys,
Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska
Matlab-föreläsning 3 (4), 17 september, 2015 Innehåll Sekvenser (från förra föreläsningen) Upprepning med for-slingor och while-slingor Villkorssatser med if - then -else - Logik Sekvenser - repetion från
Grundläggande signalbehandling
Beskrivning av en enkel signal Sinussignal (Alla andra typer av signaler och ljud kan skapas genom att sätta samman sinussignaler med olika frekvens, Amplitud och fasvridning) Periodtid T y t U Amplitud
DIGITALA FILTER. Tillämpad Fysik Och Elektronik 1. Frekvensfunktioner FREKVENSSVAR FÖR ETT TIDSDISKRET SYSTEM. x(n)= Asin(Ωn)
DIGITALA FILTER TILLÄMPAD FYSIK OCH ELEKTRONIK, UMEÅ UNIVERSITET 1 Frekvensfunktioner x(n)= Asin(Ωn) y(n) H(z) TILLÄMPAD FYSIK OCH ELEKTRONIK, UMEÅ UNIVERSITET 2 FREKVENSSVAR FÖR ETT TIDSDISKRET SYSTEM
Laboration i Fourieroptik
Laboration i Fourieroptik David Winge Uppdaterad 30 januari 2015 1 Introduktion I detta experiment ska vi titta på en verklig avbildning av Fouriertransformen. Detta ska ske med hjälp av en bild som projiceras
Faltningsreverb i realtidsimplementering
Faltningsreverb i realtidsimplementering SMS45 Lp1 26 DSP-system i praktiken Jörgen Anderton - jorand-3@student.ltu.se Henrik Wikner - henwik-1@student.ltu.se Introduktion Digitala reverb kan delas upp
Programmering B PHP. Specialiseringen mot PHP medför att kursens kod i betygshanteringen heter PPHP1408.
Programmering B PHP DTR1208 - Programmering B 50 poäng Specialiseringen mot PHP medför att kursens kod i betygshanteringen heter PPHP1408. Mål Mål för kursen (Skolverket) Kursen skall ge fördjupade teoretiska
Övervakningssystem. -skillnader i bilder. Uppsala Universitet Signaler och System ht Lärare: Mathias Johansson
Uppsala Universitet Signaler och System ht 02 2002-12-07 Övervakningssystem -skillnader i bilder Lärare: Mathias Johansson Gruppen: Jakob Brundin Gustav Björcke Henrik Nilsson 1 Sammanfattning Syftet med
När man vill definiera en matris i MATLAB kan man skriva på flera olika sätt.
"!$#"%'&)(*,&.-0/ 177 Syftet med denna övning är att ge en introduktion till hur man arbetar med programsystemet MATLAB så att du kan använda det i andra kurser. Det blir således inga matematiska djupdykningar,
En generell prediktiv kodare utnyttjar signalens utseende N steg tillbaka i tiden för kodningen, dvs vi kodar efter den betingade fördelningen
Prediktiv kodning Närliggande sampel i en signal är oftast starkt korrelerade med varandra, det kan därför vara en bra ide att försöka utnyttja denna korrelation (minnet) innan kvantiseringen för att få
Linjär prediktion. Prediktiv kodning. Linjär prediktion. Prediktiv kodare och avkodare
Prediktiv kodning Linjär prediktion Närliggande sampel i en signal är oftast starkt korrelerade med varandra, det kan därför vara en bra ide att försöka utnyttja denna korrelation (minnet) innan kvantiseringen
TEM Projekt Transformmetoder
TEM Projekt Transformmetoder Utförs av: Mikael Bodin 19940414 4314 William Sjöström 19940404 6956 Sammanfattning I denna laboration undersöks hur Fouriertransformering kan användas vid behandling och analysering
Flerdimensionella signaler och system
Luleå tekniska universitet Avd för signalbehandling Magnus Sandell (reviderad av Frank Sjöberg) Flerdimensionell signalbehandling SMS033 Laboration 1 Flerdimensionella signaler och system Syfte: Den här
Ulrik Söderström 20 Jan Signaler & Signalanalys
Ulrik Söderström ulrik.soderstrom@tfe.umu.se 20 Jan 2009 Signaler & Signalanalys Sinusspänning Sinus och cosinus samma form men fasförskjutna Fasförskjutning tidsfördröjning Sinus och cosinus är väldigt
Resttentamen i Signaler och System Måndagen den 11.januari 2010, kl 14-19
Resttentamen i Signaler och System Måndagen den 11.januari 2010, kl 14-19 Tillåtna hjälpmedel: Valfri miniräknare (utan möjlighet till trådlös kommunkation). Valfri litteratur, inkl. kursböcker, formelsamlingar.
Spektralanalys - konsten att hitta frekvensinnehållet i en signal
Spektralanalys - konsten att hitta frekvensinnehållet i en signal Bengt Carlsson, Erik Gudmundson och Marcus Björk Systems and Control Dept. of Information Technology, Uppsala University 7 november 013
Lab 1 Analog modulation
2 Lab-PM för TSEI67 Telekommunikation Lab 1 Analog modulation Med Simulink kan man som sagt bygga upp ett kommunikationssystem som ett blockschema, och simulera det. Ni ska i denna laboration inledningsvis
Tentamen del 2 SF1511, , kl , Numeriska metoder och grundläggande programmering
KTH Matematik Tentamen del 2 SF1511, 2018-03-16, kl 8.00-11.00, Numeriska metoder och grundläggande programmering Del 2, Max 50p + bonuspoäng (max 4p). Rättas ast om del 1 är godkänd. Betygsgränser inkl
Ulrik Söderström 19 Jan Signalanalys
Ulrik Söderström ulrik.soderstrom@tfe.umu.se 9 Jan 200 Signaler & Signalanalys l Sinusspänning Sinus och cosinus samma form men fasförskjutna Fasförskjutning tidsfördröjning Sinus och cosinus är väldigt
Spektrala Transformer
Spektrala Transformer Fouriertransformer Fourier Gif mig en wågform och jag skola skrifva den som en summa af sinuswågor! Jean-Baptiste Fourier 768-830 Fouriertransformen Transformerar kontinuerliga signaler
Grundläggande signalbehandling
Digital Signalbehandling Lab 1 Grundläggande signalbehandling Denna version: juli 2007 LERTEKNIK REG Namn: Personnr: AU T O MA RO TI C C O N T LINKÖPING L Datum: Godkänd: 1 Introduktion Syftet med denna
INT 3 F4. Bildkomprimering. Run Length Encoding. Medieteknik Del2. Komprimering, ljud och rörliga bilder. Olika algoritmer för bildkomprimering:
INT 3 F4 Medieteknik Del2 Komprimering, ljud och rörliga bilder DSV Peter Mozelius Bildkomprimering Olika algoritmer för bildkomprimering: Icke-förstörande komprimering RLE Run Length Encoding Huffman-kodning
Teori... SME118 - Mätteknik & Signalbehandling SME118. Johan Carlson 2. Teori... Dagens meny
Tidigare har vi gått igenom Fourierserierepresentation av periodiska signaler och Fouriertransform av icke-periodiska signaler. Fourierserierepresentationen av x(t) ges av: där a k = 1 T + T a k e jkω
Numeriska metoder, grundkurs II. Dagens program. Hur skriver man en funktion? Administrativt. Hur var det man gjorde?
Numeriska metoder, grundkurs II Övning 1 för I2 Dagens program Övningsgrupp 1 Johannes Hjorth hjorth@nada.kth.se Rum 163:006, Roslagstullsbacken 35 08-790 69 00 Kurshemsida: http://www.csc.kth.se/utbildning/kth/kurser/2d1240/numi07
Spektrala Transformer
Spektrala Transformer Tidsdiskreta signaler, kvantisering & sampling Tidsdiskreta signaler Tidskontinuerlig signal Ex: x(t) = sin(ωt) t är ett reellt tal ω har enheten rad/s Tidsdiskret signal Ex: x(n)
Projekt 2 (P2) Problembeskrivning och uppdragsspecifikation
Projekt 2 (P2) Problembeskrivning och uppdragsspecifikation Projekt 2 Möjligheter/Problem med 2-dimensionella mätdata Uppstart: Se planen (kursens hemsida) Etapp 1 Mätdata i 2 dimensioner behöver utredas/signalbehandlas
Elektronik. Viktor Öwall, Digital ASIC Group, Dept. of Electroscience, Lund University, Sweden-
Analogt och Digital Bertil Larsson Viktor Öwall Analoga och Digitala Signaler Analogt Digitalt 001100101010100000111110000100101010001011100010001000100 t Analogt kontra Digitalt Analogt få komponenter
DT1120 Spektrala transformer för Media Tentamen
DT Spektrala transformer för Media Tentamen 77 Tentamen består av fem uppgifter där varje uppgift maximalt ger 4 p. Normalt gäller följande betygsgränser: 3:9 p, 4: 3 p, 5: 7 p Tillåtna hjälpmedel: räknare,
Laplace, Fourier och resten varför alla dessa transformer?
Laplace, Fourier och resten varför alla dessa transformer? 1 Bakgrund till transformer i kontinuerlig tid Idé 1: Representera in- och utsignaler till LTI-system i samma basfunktion Förenklad analys! Idé
Laboration i Fourieroptik
Laboration i Fourieroptik David Winge Uppdaterad 4 januari 2016 1 Introduktion I detta experiment ska vi titta på en verklig avbildning av Fouriertransformen. Detta ska ske med hjälp av en bild som projiceras
Analys/syntes-kodning
Analys/syntes-kodning Många talkodare bygger på en princip som kallas analys/syntes-kodning. Istället för att koda en vågform, som man normalt gör i generella ljudkodare och i bildkodare, så har man parametrisk
2 Laborationsutrustning
Institutionen för data- och elektroteknik 2002-02-11 1 Inledning Denna laboration syftar till att illustrera ett antal grundbegrepp inom digital signalbehandling samt att närmare studera frekvensanalys
Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,
Uppsala universitet Institutionen för informationsteknologi Teknisk databehandling Tentamen i Beräkningsvetenskap I/KF, 5. hp, 215-3-17 Skrivtid: 14 17 (OBS! Tre timmars skrivtid!) Hjälpmedel: Bifogat
Laboration 3 Grunderna i Ljudinspelning
Mitthögskolan Institutionen för Informationsteknologi och medier. Jan-Erik Jonsson 060-14 87 90 Laboration 3 Grunderna i Ljudinspelning Interaktiva multimedier v1.0 2001-12-07 lab_3_2001-12-07.doc Sida
Signalbehandling, förstärkare och filter F9, MF1016
Signalbehandling, förstärkare och filter F9, MF1016 Signalbehandling, inledning Förstärkning o Varför förstärkning. o Modell för en förstärkare. Inresistans och utresistans o Modell för operationsförstärkaren
Vad är spektralanalys? Spektralanalys. Frekvensinnehåll. Enkelt exempel
Vad är spektralanalys? Analys av frekvensinnehållet i en tidsserie/signal. Spektralanalys Erik Gudmundson Vad innebär Analys av frekvensinnehållet? Vad är en tidsserie/signal? Tidsserie: mätning av någon
Projekt 1 (P1) Problembeskrivning och uppdragsspecifikation
Projekt 1 (P1) Problembeskrivning och uppdragsspecifikation Etapp 1 Problem med mätsignalen m.a.p. sampling, vikning och spektraltäthet Problembeskrivning Uppdragsgivaren överväger att skaffa nya A/D-omvandlare
DT1130 Spektrala transformer Tentamen
DT Spektrala transformer Tentamen 72 Tentamen består av fem uppgifter där varje uppgift maximalt ger 4 p. Normalt gäller följande betygsgränser: E: 9 p, D:.5 p, C: 4 p, B: 6 p, A: 8 p Tillåtna hjälpmedel:
MMA132: Laboration 2 Matriser i MATLAB
MMA132: Laboration 2 Matriser i MATLAB Introduktion I den här labben skall vi lära oss hur man använder matriser och vektorer i MATLAB. Det är rekommerad att du ser till att ha laborationshandledningen
TAIU07 Matematiska beräkningar med Matlab
TAIU07 Matematiska beräkningar med Matlab Datorlektion 2. Villkor och Repetition 1 Logiska uttryck Uppgift 1.1 Låt a=3 och b=6 Vad blir resultatet av testerna ab? Uppgift 1.2 Låt a, b,
Projekt 6. Fourieroptik Av Eva Danielsson och Carl-Martin Sikström
Projekt 6. Fourieroptik Av Eva Danielsson och Carl-Martin Sikström Introduktion I detta experiment ska vi titta på en verklig avbildning av fouriertransformen. Detta ska ske med hjälp av en bild som projiceras
Spektrala Transformer
Spektrala Transformer Tidsdiskreta signaler, kvantisering & sampling Tidsdiskreta signaler Tidskontinuerlig signal Ex: x(t) = sin(ωt) t är ett reellt tal ω har enheten rad/s Tidsdiskret signal Ex: x(n)
Laboration 4: Tidsplan, frekvensplan och impedanser. Lunds universitet / Fakultet / Institution / Enhet / Dokument / Datum
Laboration 4: Tidsplan, frekvensplan och impedanser Decibel Ett relativt mått på effekt, med enheten [db]: Man kan också mäta absoluta värden genom att relatera till en referens: Impedans på ingång och
Laboration 5: Regressionsanalys. 1 Förberedelseuppgifter. 2 Enkel linjär regression DATORLABORATION 5 MATEMATISK STATISTIK FÖR I, FMS 012, HT-08
LUNDS TEKNISKA HÖGSKOLA MATEMATIKCENTRUM MATEMATISK STATISTIK Laboration 5: Regressionsanalys DATORLABORATION 5 MATEMATISK STATISTIK FÖR I, FMS 012, HT-08 Syftet med den här laborationen är att du skall
Grafiska system. Färgblandning. Samspel mellan ytor. Ögats. fysionomi. Ljusenergi. Signalbehandling och aliasing
Grafiska system Signalbehandling och aliasing Gustav Taxén gustavt@nada.kth.se Processor Minne Frame buffer 2D1640 Grafik och Interaktionsprogrammering VT 2006 Färgblandning Pigmentblandning för f att
REGLERTEKNIK Laboration 5
6 SAMPLADE SYSTEM 6. Sampling av signaler När man använder en dator som regulator, kan man endast behandla signaler i diskreta tidpunkter. T.ex. mäts systemets utsignal i tidpunkter med visst mellanrum,
Vad gör vi när vi bara har en mätserie och ingen elegant matematisk funktion? Spektrum av en samplad signal. Trunkering i tiden
Vad gör vi när vi bara har en mätserie och ingen elegant matematisk funktion? 1 Spektrum av en samplad signal Samplingsprocessen kan skrivas som Fouriertranformen kan enligt linjäritetsoch tidsskiftsatsen
MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...
Allt du behöver veta om MATLAB: Industristandard för numeriska beräkningar och simulationer. Används som ett steg i utvecklingen (rapid prototyping) Har ett syntax Ett teleskopord för «matrix laboratory»
Funktionsteori Datorlaboration 2
Funktionsteori Funktionsteori Datorlaboration 2 Fourierserier Inledning Största delen av denna laboration handlar om Fourierserier, men vi startar med seriesummation. Vissa filer kan du behöva hämta på
Exempelsamling Grundläggande systemmodeller. Klas Nordberg Computer Vision Laboratory Department of Electrical Engineering Linköping University
Exempelsamling Grundläggande systemmodeller Klas Nordberg Computer Vision Laboratory Department of Electrical Engineering Linköping University Version: 0.11 September 14, 2015 Uppgifter markerade med (A)
Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration
10 februari 2017 Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration Syfte med övningen: Introduktion till ett par numeriska metoder för lösning av ekvationer respektive
Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB
MAI/Linköpings universitet Fredrik Berntsson Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB Redovisning Lös först uppgifterna i Matlab. Då du har en
Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan
MAI/Linköpings universitet Fredrik Berntsson Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan 8.00-12.00 Redovisning Lös först uppgifterna i Matlab.
Hemuppgift för E2 SF1635, HT 2007
Utjämnare Hemuppgift för E2 SF635, HT 2007 Introduktion Ett vanligt problem när man överför data är att en fördröjd och amplitudskalad version av signalen adderas till ursprungssignalen. Inom telefoni
Föreläsning 5 Innehåll
Föreläsning 5 Innehåll Algoritmer och effektivitet Att bedöma och jämföra effektivitet för algoritmer Begreppet tidskomplexitet Datavetenskap (LTH) Föreläsning 5 VT 2019 1 / 39 Val av algoritm och datastruktur
Signalanalys med snabb Fouriertransform
Laboration i Fourieranalys, MVE030 Signalanalys med snabb Fouriertransform Den här laborationen har två syften: dels att visa lite på hur den snabba Fouriertransformen fungerar, och lite om vad man bör
Digital Signalbehandling i Audio/Video
Digital Signalbehandling i Audio/Video Institutionen för Elektrovetenskap Laboration 1 (del 2) Stefan Dinges Lund 25 2 Kapitel 1 Digitala audioeffekter Den här delen av laborationen handlar om olika digitala
Sekantmetoden Beräkningsmatematik TANA21 Linköpings universitet Caroline Cornelius, Anja Hellander Ht 2018
Sekantmetoden Beräkningsmatematik TANA21 Linköpings universitet Caroline Cornelius, Anja Hellander Ht 2018 1. Inledning Inom matematiken är det ofta intressant att finna nollställen till en ekvation f(x),
Spektrala Transformer
Spektrala Transformer Fouriertransformer Fourier Gif mig en wågform och jag skola skrifva den som en summa af sinuswågor! Jean-Baptiste Fourier 1768-1830 Fouriertransformen Transformerar kontinuerliga
Fouriermetoder MVE295 - bonusuppgifter
Fouriermetoder MVE295 - bonusuppgifter Edvin Listo Zec 920625-2976 edvinli@student.chalmers.se Sofia Toivonen 910917-4566 sofiato@student.chalmers.se Emma Ekberg 930729-0867 emmaek@student.chalmers.se
Introduktion och övningar
Introduktion och övningar 1. Inspelning av ljud Denna övning kommer att visa dig hur ljudinspelning fungerar i Sound Studio. Övningen visar hur man ändrar bitdjup och samplingsfrekvens vid ljudinspelning
Enklast att skriva variabelnamn utan ; innehåll och variabelnamn skrivs ut
F5: Filhantering in- och utmatning (kap. 2 och 8) 1 Utskrift på skärm, inläsning från tangentbord (kap. 2) Spara och hämta variabler med save och load (kap. 2) Kommandot textread Mer avancerad filhantering:
International Olympiad in Informatics 2011 22 29 July 2011, Pattaya City, Thailand Tävlingsuppgifter Dag 2 Svenska 1.3. Papegojor
Papegojor Yanee är fågelentusiast. Sedan hon läst om IP over Avian Carriers (IPoAC), har hon spenderat mycket tid med att träna en flock papegojor att leverera meddelanden över långa avstånd. Yanees dröm
2F1120 Spektrala transformer för Media Tentamen
F Spektrala transformer för Media Tentamen 68 Tentamen består av fem uppgifter där varje uppgift maximalt ger p. Normalt gäller följande betygsgränser: :9 p, : p, 5: 7 p Tillåtna hjälpmedel: räknare, formelblad
Instruktion för laboration 1
STOCKHOLMS UNIVERSITET MATEMATISKA INSTITUTIONEN Avd. för matematisk statistik ANL/TB SANNOLIKHETSTEORI I, HT07. Instruktion för laboration 1 De skrifliga laborationsrapporterna skall vara skrivna så att
Datorövning 1 Fördelningar
Lunds tekniska högskola Matematikcentrum Matematisk statistik FMSF20: MATEMATISK STATISTIK, ALLMÄN KURS, 7.5HP FÖR E, HT-15 Datorövning 1 Fördelningar I denna datorövning ska du utforska begreppen sannolikhet
Newtons metod. 1 Inledning. 2 Newtons metod. CTH/GU LABORATION 6 MVE /2013 Matematiska vetenskaper
CTH/GU LABORATION 6 MVE011-2012/2013 Matematiska vetenskaper 1 Inledning Newtons metod Vi skall fortsätta med att lösa ekvationer. I förra veckan såg vi på intervallhalveringsmetoden. Den är pålitlig men
Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Hjälpmedel: MATLAB
MAI/Linköpings universitet Fredrik Berntsson Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Hjälpmedel: MATLAB Redovisning Lös först uppgifterna i Matlab. Då du har en
Dagens föreläsning (F15)
Dagens föreläsning (F15) Problemlösning med datorer Carl-Mikael Zetterling bellman@kth.se KP2+EKM http://www.ict.kth.se/courses/2b1116/ 1 Innehåll Programmering i Matlab kap 5 EKM Mer om labben bla Deluppgift
Elektronik Dataomvandlare
Elektronik Översikt Analoga och digitala signaler Dataomvandlare Pietro Andreani Institutionen för elektro- och informationsteknik Lunds universitet Nyquistteorem Kvantiseringsfel i analog-till-digital
Signal- och Bildbehandling FÖRELÄSNING 4. Multiplikationsteoremet. Derivatateoremet
Signal- och Bildbehandling FÖRELÄSNING 4 Fouriertransformen, forts Mer egenskaper av fouriertransformen Enkel tillämpning: Filtrera bort oönskat buller från vacker visselton Fouriertransformen, slutsats
GRUNDKURS I SIGNALBEHANDLING (454300), 5sp Tentamen
GRUNDKURS I SIGNALBEHANDLING (454300), 5sp Tentamen 26.02013 kursens övningsuppgifter eller gamla tentamensuppgifter, eller Matlab-, Scilab- eller Octave- programmerbara kalkylatorer eller datorer. 1.
Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.
TAIU07 Föreläsning 3 Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter. 27 januari 2016 Sida 1 / 21 Logiska variabler
Inlämningsuppgift 4 NUM131
Inlämningsuppgift 4 NUM131 Modell Denna inlämningsuppgift går ut på att simulera ett modellflygplans rörelse i luften. Vi bortser ifrån rörelser i sidled och studerar enbart rörelsen i ett plan. De krafter
MODELLERING AV DYNAMISKA SYSTEM OCH INLUPP 2
UPPSALA UNIVERSITET AVDELNINGEN FÖR SYSTEMTEKNIK EKL och PSA, 2002, rev BC 2009, 2013 MODELLERING AV DYNAMISKA SYSTEM DATORSTÖDD RÄKNEÖVNING OCH INLUPP 2 1. Överföringsfunktioner 2. Tillståndsmetodik Förberedelseuppgifter:
Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:
TANA81: Beräkningar med Matlab - Variabler och Matriser - Logiska uttryck och Villkor - Repetitionssatser - Grafik - Funktioner Variabler I Matlab skapas en variabel genom att man anger dess namn och ger
a = a a a a a a ± ± ± ±500
4.1 Felanalys Vill man hårddra det hela, kan man påstå att det inte finns några tal i den tillämpade matematiken, bara intervall. Man anger till exempel inte ett uppmätt värde till 134.78 meter utan att
Föreläsning 3: Dekomposition. Dekomposition
Föreläsning 3: Dekomposition Dekomposition Dekomposition är en generell metod för att lösa problem Metoden bygger på att man delar upp ett problem i delproblem av samma typ som ursprungsproblemet Uppdelningen
Instruktion för laboration 1
STOCKHOLMS UNIVERSITET MATEMATISKA INSTITUTIONEN Avd. för matematisk statistik MD, ANL, TB (rev. JM, OE) SANNOLIKHETSTEORI I Instruktion för laboration 1 De skriftliga laborationsrapporterna skall vara
Digital signalbehandling fk Laboration 5 Ett antal signalbehandlingstillämpningar
Institutionen för data- och elektroteknik 1999-11-21 Inledning Denna laboration avser att ge illustration av och inblick i ett antal områden för digital signalbehandling. Vi kommer att studera exempel