Friday 25 August 2017

Matlab Glidande Medelvärde Signalbehandlings


Med hjälp av MATLAB, hur kan jag hitta 3-dagars glidande medelvärde för en viss kolumn i en matris och lägga till det glidande medlet till den matrisen jag försöker beräkna det 3-dagars glidande medlet från botten till toppen av matrisen jag har gett mig Code. Given följande matris a och mask. Jag har försökt att implementera conv-kommandot men jag får ett fel Här är det kommandot conv som jag har försökt använda på den andra kolumnen av matris a. Den utmatning jag önskar ges i Följer matrisen. Om du har några förslag, skulle jag verkligen uppskatta det Tack. För kolumn 2 i matris a, beräknar jag 3-dagars glidande medelvärde enligt följande och placerar resultatet i kolumn 4 i matrisen a jag omdämnde matrisen a som ÖnskadUtgång för illustration Den 3-dagars genomsnittet av 17, 14, 11 är 14 3-dagars genomsnittet av 14, 11, 8 är 11 3-dagars genomsnittet av 11, 8, 5 är 8 och 3-dagars genomsnittet av 8, 5, 2 är 5 Det finns inget värde i botten 2 rader för den 4: e kolumnen eftersom beräkningen för 3-dagars glidande medel börjar vid Botten Den giltiga utgåvan visas inte förrän minst 17, 14 och 11 Förhoppningsvis är det här meningsfullt Aaron 12/12 kl. 1 28. 28. Det generellt skulle hjälpa till om du skulle visa felet I det här fallet gör du två saker fel . Först måste din convolution divideras med tre eller längden på det rörliga genomsnittet. För det andra märker du storleken på c Du kan inte bara passa c till ett typiskt sätt att få ett rörligt medelvärde skulle vara att använda samma. Men det gör inte Ser ut som vad du vill. Istället är du tvungen att använda ett par linjer. Jag behöver beräkna ett glidande medelvärde över en dataserie, inom en för loop måste jag få det glidande medeltalet över N 9 dagar. Den matris som jag mäter i Är 4 serier av 365 värden M som i sig är medelvärden för en annan uppsättning data Jag vill räkna medvärdena för mina data med det glidande medlet i en plot. Jag googlade lite om glidande medelvärden och conv-kommandot och hittade någonting Som jag försökte implementera i min kod. Så i princip beräknar jag mitt medelvärde och plottar det med aw Rong glidande medelvärde Jag valde wts värdet direkt utanför mathworks webbplatsen så det är felaktig källa Mitt problem är dock att jag inte förstår vad det här är. Kan någon förklara om det har något att göra med vikterna av de värden som är Ogiltig i det här fallet. Alla värden är viktade samma. Och om jag gör det här helt fel, kan jag få lite hjälp med det. Min uppriktiga thanks. asked 23 september 14 på 19 05. Att använda conv är ett utmärkt sätt att genomföra en rörelse Genomsnitt I koden du använder är wts hur mycket du väger varje värde som du gissade summan av den vektorn ska alltid vara lika med en Om du vill vikta varje värde jämnt och göra ett N-rörligt filter så skulle du vilja Att göra. Använda det giltiga argumentet i samtal kommer att resultera i att få färre värden i Ms än du har i M Använd samma om du inte tänker på effekterna av nollpolning Om du har signalbehandlingsverktygslådan kan du använda cconv om du vill försöka Ett cirkulärt glidande medelvärde. Något liknande. Du borde läsa t Han samlar och cconv dokumentation för mer information om du redan har t. You kan använda filter för att hitta ett löpande medelvärde utan att använda en för loop Det här exemplet hittar det löpande genomsnittet av en 16-element vektor, med en fönsterstorlek på 5,2 mjuk som del Av kurvanpassningsverktygslådan som är tillgänglig i de flesta fall. yy smidigt och släpper ut data i kolumnvektorn y med hjälp av ett glidande medelfilter. Resultat returneras i kolumnvektorn yy Standardvärdet för det glidande medlet är 5. I många experiment i Vetenskapen förändras de sanna signalamplituderna y-axelvärdena ganska smidigt som en funktion av x-axelvärdena, medan många typer av brus ses som snabba, slumpmässiga ändringar i amplituden från punkt till punkt inom signalen. I den senare situationen kan det Vara användbar i vissa fall för att försöka minska bruset genom en process som kallas utjämning. Vid utjämning modifieras datapunkterna för en signal så att enskilda punkter som är högre än de omedelbart intilliggande punkterna förmodligen på grund av att F-brus minskar och punkter som är lägre än de intilliggande punkterna ökar Detta leder naturligtvis till en mjukare signal och ett långsammare stegsvar på signaländringar Så länge den sanna underliggande signalen faktiskt är jämn, kommer den sanna signalen inte att vara mycket Förvrängd genom utjämning, men högfrekvent brus kommer att reduceras. Med avseende på frekvenskomponenterna hos en signal fungerar en utjämningsoperation som ett lågpassfilter som reducerar högfrekvenskomponenterna och överför lågfrekvenskomponenterna med liten förändring. Algoritmer De flesta utjämningsalgoritmer är baserade på skift - och multipliceringsmetoden, där en grupp intilliggande punkter i de ursprungliga data multipliceras punkt för punkt med en uppsättning talkoefficienter som definierar den släta formen, produkterna läggs upp och delas upp Med summan av koefficienterna, som blir en punkt av jämndat data, skiftas uppsättningen koefficienter en punkt nedåt de ursprungliga data och processen upprepas. Plustlättningsalgoritmen är den rektangulära lådan eller obelagda glidande genomsnittsglatt, det ersätter helt enkelt varje punkt i signalen med medelvärdet av m intilliggande punkter, där m är ett positivt heltal som kallas den släta bredden. Till exempel för en 3-punkts jämn m 3.för j 2 till n-1, där S j den punkten i den släta signalen, Y j j den punkten i den ursprungliga signalen och n är det totala antalet punkter i signalen. Liknande släta operationer kan konstrueras för Önskad jämn bredd m Normalt m är ett udda antal Om bruset i data är vitt brus som är jämnt fördelat över alla frekvenser och dess standardavvikelse är D då standardavvikelsen för bruset som återstår i signalen efter det första passet Av ett obesvikt glidande medellätt blir ungefär s över kvadratroten av m Dcrt m, där m är den smidiga bredden. Trots enkelheten är detta släta faktiskt optimalt för det vanliga problemet att reducera vitt brus samtidigt som det skarpaste steget återstår Sponse Svaret på en stegförändring är faktiskt linjär så att detta filter har fördelen att svara fullständigt utan någon återstående effekt med sin svarstid, vilket är lika med den släta bredden dividerad med samplingsfrekvensen. Den triangulära släta är som den rektangulära släta, Ovan förutom att det genomför en viktad utjämningsfunktion För en 5-punkts jämna m 5.for j 3 till n-2 och likaledes för andra jämna bredder se kalkylbladet I båda dessa fall är heltalet i nämnaren summan Av koefficienterna i täljaren, vilket resulterar i en enhetstegning som inte har någon effekt på signalen där den är en rak linje och som bevarar området under toppar. Det är ofta användbart att applicera en utjämningsoperation mer än en gång, som Är att släta en redan jämn signal, för att bygga längre och mer komplicerade glattar. Exempelvis är den 5-punkts triangulära släta över ekvivalent med två pass av en 3-punkts rektangulär slät Tre pass av en 3-punkts rektangulär s Mooth resultera i en 7-punkts pseudo-gaussisk eller höstack mjuk, för vilken koefficienterna är i förhållandet 1 3 6 7 6 3 1 Den allmänna regeln är att n passerar av aw-bredd jämn resulterar i en kombinerad jämn bredd av nw - N 1 Exempelvis ger 3 pass av en 17-punkts smidig resultat i en 49-punkts smidig. Dessa multi-pass-smidningar är effektivare för att reducera högfrekventa ljud i signalen än en rektangulär jämn men uppvisa långsammare stegrespons. I alla dessa smooths , Bredden på den släta m är vald för att vara ett udda heltal så att de släta koefficienterna är symmetriskt balanserade runt den centrala punkten, vilket är viktigt eftersom det bevarar x-axelns position av toppar och andra särdrag i signalen. Detta är särskilt Kritisk för analytiska och spektroskopiska applikationer, eftersom toppositionerna ofta är viktiga mätmål. Notera att vi antar här att signalen x-axelns intervall är likformig, det vill säga skillnaden mellan x-axelvärdena för adj Akenta punkter är desamma under signalen Detta antas också i många av de andra signalbehandlingstekniker som beskrivs i denna uppsats och det är en mycket vanlig men inte nödvändig egenskap hos signaler som förvärvas av automatiserad och datoriserad utrustning. Savitzky - Golay släta är baserad på minsta kvadrater anpassning av polynomerna till segment av data. Algoritmen diskuteras i Jämfört med glidande medelglattningar är Savitzky-Golay släta mindre effektiv vid minskning av ljud, men effektivare för att behålla formen av Den ursprungliga signalen Det är kapabel att differentiera såväl som utjämning Algoritmen är mer komplex och beräkningstiderna är större än de smidiga typerna som diskuteras ovan, men med moderna datorer är skillnaden inte signifikant och kod på olika språk är allmänt tillgänglig online. Se. Formen av någon utjämningsalgoritm kan bestämmas genom att applicera den släta till en deltafunktion en signal bestående av alla nollor utom på E-punkten, vilket demonstreras av det enkla Matlab Octave-skriptet DeltaTest m Bullerreducering Utjämning minskar vanligtvis bruset i en signal Om bruset är vitt som är jämnt fördelat över alla frekvenser och dess standardavvikelse är D då standardavvikelsen för bruset kvarstår I signalen efter ett pass av en rektangulär slät blir ungefär D sqrt m, där m är den släta bredden. Om en triangulär slät används istället kommer bruset att bli lite mindre, ungefär D 0 8 kvm. M Utjämningsoperationer kan appliceras mer Än en gång så kan en tidigare jämn signal släpas igen I vissa fall kan det vara användbart om det finns mycket högfrekventa ljud i signalen. Dock är brusreduceringen för vitt brus mindre i varje på varandra följande slät För Exempelvis reduceras tre passager med en rektangulär slät vitstråle med en faktor på ungefär D 0 7 kvm m, endast en liten förbättring över två passager. Frekvensfördelningen av brus, betecknad med ljudfärg Påverkar kraftigt utjämningsförmågan för att minska bullret. Matlab Octave-funktionen NoiseColorTest m jämför effekten av en 20-punkts boxbana obetydlig glidande medelvärde som är jämn på standardavvikelsen för vitt, rosa och blått brus, som alla har en original ojämn standardavvikelse Av 1 0 Eftersom utjämning är en lågpassfiltreringsprocess, påverkar det lågfrekvent rosa och rött ljud mindre och påverkar högfrekventt blått och violett ljud mer än det vita bruset. Notera att beräkningen av standardavvikelsen är oberoende av Datordens ordning och därmed dess frekvensdistributionssortering av en uppsättning data ändrar inte dess standardavvikelse Standardavvikelsen för en sinusvåg är oberoende av dess frekvens. Utjämning ändrar emellertid både frekvensfördelningen och standardavvikelsen för en dataset. En effekter och det förlorade punktproblemet I ekvationerna ovan definieras den 3-punkts rektangulära släta endast för j 2 till n-1 Det finns inte tillräckligt med data i s Ignalera för att definiera en komplett 3-punkts slät för den första punkten i signalen j 1 eller för den sista punkten jn eftersom det inte finns några datapunkter före den första punkten eller efter sista punkten På samma sätt definieras en 5-punkts slät bara för J 3 till n-2, och därför kan en slät inte beräknas för de två första punkterna eller för de sista två punkterna. För en m-bredd jämn blir det m -1 2 poäng vid början av signalen Och m -1 2 poäng i slutet av signalen, för vilken en komplett m-breddsläta inte kan beräknas på vanligt sätt. Vad gör man Det finns två sätt att följa Ett är att acceptera förlusten av poäng och trimma bort dessa punkter eller ersätta dem Med nollor i den släta signalen Det är det synsätt som tagits i de flesta av figurerna i detta papper. Det andra tillvägagångssättet är att använda progressivt mindre slätningar vid ändarna av signalen, till exempel för att använda 2, 3, 5, 7-punkts slätningar för signal Punkterna 1, 2, 3 och 4 och för punkterna n, n-1, n-2, n-3 Den senare tillvägagångssättet kan vara pref Kan användas om signalets kanter innehåller kritisk information, men det ökar körtiden. Den snabbsmooth-funktion som diskuteras nedan kan använda någon av dessa två metoder. Exempel på utjämning Ett enkelt exempel på utjämning visas i Figur 4 Den vänstra halvan av denna signal är en Högljudd topp Högre hälften är samma topp efter att ha genomgått en triangulär utjämningsalgoritm Bullret minskas kraftigt medan toppen själv knappast ändras. Det reducerade bruset gör att signalegenskaperna toppläge, höjd, bredd, yta etc mäts mer exakt genom att Visuell inspektion. Figur 4 Den vänstra halvan av denna signal är en högljudd topp. Den högra halvan är samma topp efter att ha genomgått en utjämningsalgoritm. Ljudet minskar kraftigt medan toppen själv knappt ändras, vilket gör det enklare att mäta toppositionen, höjden , Och bredd direkt genom grafisk eller visuell uppskattning, men det förbättrar inte mätningar gjorda av minsta kvadreringsmetoder se nedan. Den större släta bredden, th E större bullerreduktion men desto större är möjligheten att signalen förvrängs av utjämningsoperationen. Det optimala valet av jämn bredd beror på signalens bredd och form och digitaliseringsintervallet. För topptypsignaler är den kritiska faktorn Är det släta förhållandet förhållandet mellan den släta bredden m och antalet punkter i toppens halvbredd. Generellt ökar ökningen av jämnförhållandet signalen / brusförhållandet men orsakar en minskning av amplituden och ökningen i Bandbredd på toppen Vara medveten om att den släta bredden kan uttryckas på två olika sätt a som antalet datapunkter eller b som x-axelintervallet för spektroskopiska data vanligtvis i nm eller i frekvensenheter De två är helt enkelt relaterade till antalet Datapunkter är helt enkelt intervallet x-axel ökningen mellan intilliggande x-axelvärden. Det släta förhållandet är detsamma i båda fallen. Figurerna ovan visar exempel på effekten av tre olika släta bredder På högljudda Gaussianformade toppar I figuren till vänster har toppen en sann höjd på 20 och det finns 80 poäng i toppens halvbredd. Den röda linjen är den ursprungliga ojämna toppen. De tre överlagda gröna linjerna är de Resultat av utjämning av denna topp med en triangulär jämn bredd från topp till botten 7, 25 och 51 poäng Eftersom toppbredd är 80 poäng, är de smidiga förhållandena för dessa tre jämnheter 7 80 0 09, 25 80 0 31 och 51 80 0 64, med en jämn bredd ökar bruset gradvis, men topphöjden minskar också något. För den största släta ökar toppbreddet något. I figuren till höger har den ursprungliga toppen i rött en sannhet Höjd av 1 0 och en halv bredd på 33 poäng Det är också mindre bullriga än exemplet till vänster De tre överlagda gröna linjerna är resultatet av samma tre triangulära släter av bredd från topp till botten 7, 25 och 51 poäng Men eftersom toppbredd i detta fall bara är 33 poäng, De smidiga förhållandena för dessa tre slätningar är större - 0 21, 0 76 respektive 1 55. Du kan se att toppdistanceförstöringseffekten av topphöjd och ökning i toppbredd är större för den smalare toppen eftersom de smidiga förhållandena är högre Smidiga förhållanden större än 1 0 används sällan på grund av överdriven toppförvrängning Observera att även i värsta fall utförs topplägena inte under förutsättning att de ursprungliga topparna var symmetriska och inte överlappade av andra toppar. Om behållandet av toppens form är kvar Viktigare än att optimera signal-brusförhållandet, har Savitzky-Golay fördelen över glidande medelglattningar. I samtliga fall förblir det totala området under toppen oförändrat om toppbredderna varierar väsentligt, en adaptiv slät som gör det smidigt Bredden som kan variera över signalen kan användas. Problemet med utjämning är att det ofta är mindre fördelaktigt än du kanske tror. Det är viktigt att påpeka att utjämningsresultat som illustrerar D i figuren ovan kan vara bedrägligt imponerande eftersom de använder ett enda prov av en högljudd signal som mjukas i olika grader. Detta medför att betraktaren underskattar bidraget från lågfrekventa brus, vilket är svårt att uppskatta visuellt eftersom det är så få Lågfrekventa cykler i signalrekordet Detta problem kan visualiseras genom att spela in ett antal oberoende prover av en högljudd signal bestående av en enkel topp som illustreras i de två figurerna nedan. Dessa figurer visar tio överlagda tomter med samma topp men med oberoende vit Buller, varje plottad med en annan linjefärg, osmoothed till vänster och jämnas till höger. Inspektionen av de jämnda signalerna till höger visar tydligt variationen i topposition, höjd och bredd mellan de 10 prover som orsakas av lågfrekventa ljudbuller I de släta signalerna utan bruset skulle varje topp ha en topphöjd på 2, toppcentret vid 500 och en bredd på 150 bara för att en signal ser ut Slät betyder inte att det inte finns något ljud Ljudfrekvensbrus kvar i signalerna efter utjämning kommer fortfarande att störa precist mätning av topposition, höjd och bredd. De genererande skripten under varje figur kräver att funktionerna Gaussian m, whitenoise m och fastsmooth m hämtas från. Det bör vara klart att utjämning sällan helt kan eliminera brus, eftersom det flesta bruset sprids ut över ett brett spektrum av frekvenser och utjämning Bara minskar ljudet i en del av sitt frekvensområde Endast för vissa mycket specifika ljudtyper, t. ex. diskret frekvensbrus eller singelpunktspikar, finns det hopp om någonting nära fullständig bruseliminering. Figuren till höger nedan är en annan exempelsignal som illustrerar Några av dessa principer Signalen består av två gaussiska toppar, en lokaliserad vid x 50 och den andra vid x 150 Båda toppar har en topphöjd av 1 0 och en topphalvbredd på 10 och ett normalt distribuerat slumpmässigt vitt brus med En standardavvikelse på 0 1 har lagts till hela signalen. Samplingsintervallet x-axel är emellertid annorlunda för de två toppar det är 0 1 för den första toppen från x 0 till 100 och 1 0 för den andra Topp från x 100 till 200 Det betyder att den första toppen karakteriseras av tio gånger fler poäng som den andra toppen Det kan se ut som den första toppen är bullrigare än den andra, men det är bara en illusion, signal-brusförhållandet för Båda toppar är 10 Den andra toppen ser mindre bullriga bara för att det finns färre ljudprover där och vi tenderar att underskatta dispersionen av småprover. Resultatet av detta är att när signalen släpas är den andra toppen mycket mer sannolikt att den snedvrids Med den smidiga blir den kortare och bredare än den första toppen. Den första toppen kan tolerera en mycket bredare jämn bredd, vilket resulterar i en större grad av brusreducering. Om båda topparna mäts med minsta kvadreringskurvanpassningsmetoden, är passformen för Den första toppen är stabilare med bruset och de uppmätta parametrarna för den toppen kommer att vara ungefär 3 gånger mer exakta än den andra toppen, eftersom det finns 10 gånger fler datapunkter i den toppen och mätmåttets precision Oves ungefär med kvadratroten av antalet datapunkter om bruset är vitt. Du kan ladda ner datafilen utx i TXT-format eller i Matlab MAT-format. Optimering av utjämning Med en jämn bredd ökar utjämningsförhållandet, bullret minskar snabbt Först, då långsammare, och topphöjden minskar också, långsamt först, därefter snabbare. Bullerreduktionen beror på den släta bredden, den släta typen, t. ex. rektangulär, triangulär mm, och ljudfärgen, men topphöjden Minskningen beror också på toppbredd Resultatet är att signal-brus som definieras som förhållandet mellan topphöjden av ljudavvikelsen ökar snabbt först och når så högst detta illustreras i animationen till vänster För en Gaussisk topp med vitt brus producerat av detta Matlab Octave-skript. Den maximala förbättringen i signal-brusförhållandet beror på antalet punkter i toppen, desto mer punkter i toppen kan de större släta bredderna vara Sysselsatt och desto större bullerreduktion Denna figur illustrerar också att det mesta av brusreduceringen beror på brusets högfrekventa komponenter, medan mycket av lågfrekvent brus kvarstår i signalen, även när det slätas. Vilket är det bästa släta förhållandet Det beror på syftet med toppmätningen. Om det ultimata målet med mätningen är att mäta topphöjden eller bredden, ska smidiga förhållanden under 0 2 användas och Savitzky-Golay släta är föredragen. Men om målsättningen för mätarna t Är att mäta toppunktets x-axelvärde av toppen, kan större släta förhållanden användas om så önskas, eftersom utjämning har liten effekt på toppläget såvida inte toppen är asymmetrisk eller ökningen i toppbredd är så mycket att det medför intilliggande toppar Att överlappa Om toppen faktiskt bildas av två underliggande toppar som överlappar så mycket att de verkar vara en topp, är kurvanpassning det enda sättet att mäta parametrarna för underliggande Toppar Tyvärr motsvarar det optimala signal-brusförhållandet ett jämnt förhållande som väsentligt snedvrider toppen, varför kurvanpassning av de osmälta data ofta föredras. I kvantitativa kemiska analysapplikationer baserade på kalibrering med standardprover reduceras topphöjdsreduktionen Orsakad av utjämning är inte så viktigt Om samma signalbehandlingsoperationer tillämpas på proverna och standarderna, kommer topphöjdsminskningen av standardsignalerna att vara exakt samma som för provsignalerna och effekten avbryter exakt i Sådana fall kan smidiga bredder från 0 5 till 1 0 användas om det behövs för att ytterligare förbättra signal-brusförhållandet, vilket visas i figuren till vänster för en enkel glidande medelrektangulär jämnhet. I praktisk analytisk kemi, absolut topphöjd Mätningar behövs sällan Kalibrering mot standardlösningar är regeln Kom ihåg att målet med kvantitativ analys inte är att mäta en signal utan att rathe R för att mäta koncentrationen av det okända. Det är dock väldigt viktigt att tillämpa exakt samma signalbehandlingssteg i standardsignalerna som för provsignalerna, annars kan ett stort systematiskt fel uppstå. För en mer detaljerad jämförelse av alla fyra utjämningar Typer som övervägs ovan, se. När ska du släta en signal Det finns två skäl att släppa en signal. En av kosmetiska skäl att förbereda en snyggare eller mer dramatisk bild av en signal för visuell inspektion eller publikationer, särskilt för att betona långsiktigt beteende över korttid eller b om signalen därefter analyseras med en metod som Skulle försämras av närvaron av alltför högt frekvensfel i signalen, till exempel om topparnas höjder bestäms visuellt eller grafiskt eller med hjälp av MAX-funktionen, av bredden av toppar mäts med halvbreddsfunktionen , Eller om läget av maxima, minima eller inflektionspunkter i signalen skall bestämmas automatiskt genom att detektera nollkorsningar i derivat av signalen. Optimering av mängden och typen av utjämning är viktig i dessa fall se Men i allmänhet om en En dator är tillgänglig för att göra kvantitativa mätningar. Det är bättre att använda minsta kvadreringsmetoder på de ojämna data, i stället för grafiska uppskattningar av jämn data. Om ett kommersiellt instrument har möjlighet att Smidiga data för dig är det bäst att inaktivera utjämning och spela in och spara osmoothed data du kan alltid släta själv själv senare för visuell presentation och det är bättre att använda osmoothed data för en minsta kvadrering montering eller annan behandling som Du kanske vill göra senare Utjämning kan användas för att lokalisera toppar men det ska inte användas för att mäta toppar. Karriär måste användas vid utformning av algoritmer som utnyttjar utjämning. Till exempel är det i en populär teknik för toppfinnande och mätning toppar Genom att detektera nedåtriktade nollkorsningar i det slätade första derivatet men positionen, höjden och bredden av varje topp bestäms av minsta kvadratkurva-montering av ett segment av ursprungliga osmälta data i närheten av nollkorsningen. Om kraftig utjämning är nödvändig för att åstadkomma tillförlitlig diskriminering av bullertoppar, förvrängs toppparametrarna som extraheras genom kurvanpassning inte av utjämningen. När ska du INTE släta en signal En comm I situationer där du inte ska släta signaler är det för statistiska förfaranden som minsta kvadreringskurvanpassning eftersom. En utjämning kommer inte att avsevärt förbättra noggrannheten hos parametermätningen med minsta kvadratmätningar mellan separata oberoende signalprover, b alla utjämningsalgoritmer är åtminstone något förlorande vilket medför åtminstone viss förändring i signalform och amplitud, c är det svårare att utvärdera Passa genom att inspektera resterna om data smutsas, eftersom jämna ljud kan misstas för en verklig signal och d utjämning av signalen kommer allvarligt underskatta parametervärdena som förutsägs av utbredning av felberäkningar och bootstrap-metoden. Beslutande med spikar och utjämnare Ibland är signalerna smittade med mycket långa, smala spikar eller utjämnare som förekommer i slumpmässiga intervaller och med slumpmässiga amplitud, men med bredder på bara ett eller några punkter. Det ser inte bara fult ut, men det försvår också antagandena av minsta kvadratberäkningar eftersom det Är normalt inte distribuerat slumpmässigt buller Denna typ av störning är svår att eliminera med hjälp av ovanstående smoot Hingmetoder utan att förvränga signalen Men ett medianfilter, som ersätter varje punkt i signalen med medianen i stället för genomsnittet av m intilliggande punkter, kan helt eliminera smala spikar med liten förändring i signalen om spetsens bredd är Endast ett eller några punkter och lika med eller mindre än m Se Killspikes m-funktionen använder ett annat tillvägagångssätt som den lokaliserar och eliminerar spikarna genom patchar över dem med linjär interpolering från signalen före och efter. Till skillnad från konventionella slipningar kan dessa funktioner vara lönsamma Appliceras före minsta kvadratiska fittingfunktioner Å andra sidan, om det är spikarna som faktiskt är signalen av intresse, och andra komponenter i signalen stör varandra, se Ett alternativ till utjämning för att minska bruset i uppsättningen Av tio osmoothed signaler som används ovan är ensemble-medelvärde som kan utföras i detta fall mycket enkelt genom Matlab Octave-koden plot x, medelvärdet y visar resultatet en reducering Tion i vitt brus med ca kvadrat 10 3 2 Detta räcker för att bedöma att det finns en enkel topp med Gaussisk form, som sedan kan mätas med kurvanpassning täckt i ett senare avsnitt med hjälp av Matlab Octave-kodens toppfit xmean y, 0,0 1 med resultatet som visar utmärkt överensstämmelse med positionen 500, höjden 2 och bredden 150 av den gaussiska toppen som skapats i den tredje raden av genereringsskriptet över vänster. En stor fördel med ensemble-medelvärdet är att bruset vid alla frekvenser minskas inte Bara högfrekventa ljud som vid utjämning. Överdrivna överdrivna signaler Ibland registreras signaler tätare, det vill säga med mindre x-axelintervaller än vad som verkligen behövs för att fånga alla signalens viktiga egenskaper. Detta resulterar i större än nödvändiga data Storlekar som fördröjer signalbehandlingsprocedurer och kan beskatta lagringskapaciteten. För att korrigera detta kan överförda signaler reduceras i storlek antingen genom att eliminera datapunkter säga att du släpper varje annan punkt eller varje Tredje punkten eller genom att ersätta grupper av intilliggande punkter med sina medelvärden. Den senare tillvägagångssättet har fördelen att använda istället för att bortskaffa utomstående datapunkter och det verkar som utjämning för att ge en viss grad av brusreducering. Om bruset i den ursprungliga signalen är vit och Signalen kondenseras genom att medelvärdesera varje n-punkt, bruset reduceras i den kondenserade signalen med kvadratroten av n men utan förändring i frekvensfördelning av bruset. Matlab Octave script test condensation m visar effekten av boxcar medelvärde med användning av kondenset m Funktion för att minska buller utan att ändra ljudfärgen Visar att boxen minskar det uppmätta bruset och tar bort högfrekventa komponenter men har liten effekt på toppparametrarna. Minsta kvadratkurvanpassning på kondenserade data är snabbare och resulterar i ett lägre monteringsfel men Ingen mer noggrann mätning av toppparametrar. Videodemonstration Denna 18 sekunders, 3 MByte-video visar effekten av triangula R utjämning på en enda Gauss-topp med en topphöjd av 1 0 och toppbredd på 200 Den ursprungliga vita brusamplituden är 0 3, vilket ger ett initialt signal-brusförhållande på ca 3 3 Ett försök att mäta toppamplituden och toppen Bredden på den högljudda signalen, som visas längst ner på videon, är initialt allvarligt felaktig på grund av bruset. Eftersom den smidiga bredden ökas förbättras dock signal-brusförhållandet och noggrannheten i mätningarna av toppamplitud och topp Bredden förbättras Men ovanför en jämn bredd av cirka 40 slätförhållande 0 2 medför utjämningen att toppen är kortare än 1 0 och bredare än 200, även om signal-brusförhållandet fortsätter att förbättras, eftersom den smidiga bredden är Ökad Denna demonstration skapades i Matlab 6 5.SPECTRUM, freeware Macintosh-signalbehandlingsapplikationen, innehåller rektangulära och triangulära utjämningsfunktioner för valfritt antal punkter Kalkylark Utjämning kan göras i kalkylblad med skift och multifunktion Tekniken som beskrivs ovan I kalkylbladen och uppsättningen multipliceringskoefficienter finns i formlerna som beräknar värdena för varje cell i den jämnda data i kolumnerna C och E Kolumn C utför en 7-punkts rektangulär slät 1 1 1 1 1 1 1 Och kolumn E gör en 7-punkts triangulär slät 1 2 3 4 3 2 1, applicerad på data i kolumn A Du kan skriva in eller Kopiera och klistra in alla data du vill ha i kolumn A och du kan förlänga kalkylbladet till längre kolumner Av data genom att dra den sista raden av kolumnerna A, C och E ner efter behov men för att ändra den släta bredden måste du ändra ekvationerna i kolumnerna C eller E och kopiera ändringarna ner hela kolumnen. Det är vanligt att Dela resultaten med summan av koefficienterna så att nätförstärkningen är enighet och området under kurvan för den släta signalen bevaras. Kalkylbladen och innehåller en samling av enhetsförstärkningskoefficienter för rektangulär, triangulär och Gaussisk mjukbredd 3 till 29 i bot h vertical column and horizontal row format You can Copy and Paste these into your own spreadsheets. The spreadsheets and demonstrate a more flexible method in which the coefficients are contained in a group of 17 adjacent cells in row 5, columns I through Y , making it easier to change the smooth shape and width up to a maximum of 17 In this spreadsheet, the smooth is applied three times in succession, resulting in an effective smooth width of 49 points applied to column Gpared to Matlab Octave, spreadsheets are much slower, less flexible, and less easily automated For example, in these spreadsheets, to change the signal or the number of points in the signal, or to change the smooth width or type, you have to modify the spreadsheet in several places, whereas to do the same using the Matlab Octave fastsmooth function below , you need only change the input arguments of a single line of code And combining several different techniques into one spreadsheet is more complicated than writing a Matlab Octave script that does the same thing Smoothing in Matlab and Octave The custom function fastsmooth implements shift and multiply type smooths using a recursive algorithm Click on this link to inspect the code, or right-click to download for use within Matlab Fastsmooth is a Matlab function of the form s fastsmooth a, w, type, edge The argument a is the input signal vector w is the smooth width a positive integer type determines the smooth type type 1 gives a rectangular sliding-average or boxcar smooth type 2 gives a triangular smooth, equivalent to two passes of a sliding average type 3 gives a pseudo-Gaussian smooth, equivalent to three passes of a sliding average these shapes are compared in the figure on the left See for a comparison of these smoothing modes The argument edge controls how the edges of the signal the first w 2 points and the last w 2 points are handled If edge 0, the edges are zero In this mode the elapsed time is independent of the smooth width This gives the fastest execution time If edge 1, the edges are smoothed with progressively smaller smooths the closer to the end In this mode the execution time increases with increasing smooth widths The smoothed signal is returned as the vector s You can leave off the last two input arguments fastsmooth Y, w,type smooths with edge 0 and fastsmooth Y, w smooths with type 1 and edge 0 Compared to convolution-based smooth algorithms, fastsmooth uses a simple recursive algorithm that typically gives much faster execution times, especially for large smooth widths it can smooth a 1,000,000 point signal with a 1,000 point sliding average in less than 0 1 second Here s a simple example of fastsmooth demonstrating the effect on white noise graphic. SegmentedSmooth m illustrated on the right, i s a segmented multiple-width d ata smoothing function, based on the fastsmoo th algorithm, which can be useful if the widths of the peaks or the noise level varies substantially across the signal The syntax is the s ame as fastsmooth m except that the second input argument smoothwidths can be a vector SmoothY SegmentedSmooth Y, smoothwidths, type, ends The function divides Y into a number of equal-length regions defined by the length of the vector smoothwidths , then smooths each region with a smooth of type type and width defined by the elements of vector smoothwidths In the graphic example in the figure on the right, smoothwidths 31 52 91 which divides up the signal into three regions and smooths the first region with smoothwidth 31, the second with smoothwidth 51, and the last with smoothwidth 91 Any number of smooth widths and sequence of smooth widths can be used Type help SegmentedSmooth for other examples examples DemoSegmentedSmooth m demonstrates the operation with different signals consisting of noisy variable-width peaks that get progressively wider, like the figure on the right. SmoothWidthTest m is a simple script that uses the fastsmooth function to demonstrate the effect of smoothing on peak height, noise, and signal-to-noise ratio of a peak You can change the peak shape in line 7, the smooth type in line 8, and the noise in line 9 A typical result for a Gaussian peak with white noise smoothed with a pseudo-Gaussian smooth is shown on the left Here, as it is for most peak shapes, the optimal signal-to-noise ratio occurs at a smooth ratio of about 0 8 However, that optimum corresponds to a significant reduction in the peak height which could be a serious problem A smooth width about half the width of the original unsmoothed peak produces less distortion of the peak but still achieves a reasonable noise reduction SmoothVsCurvefit m is a similar script, but is also compares curve fitting as an alternative method to measure the peak height without smoothing. This effect is explored more completely by the text below, which shows an experiment in Matlab or Octave that creates a Gaussian peak, smooths it, compares the smoothed and unsmoothed version, then uses the max, ha lfwidth and trapz functions to print out the peak height, halfwidth, and area max and trapz are both built-in functions in Matlab and Octave, but you have to download halfwidth m To learn more about these functions, type help followed by the function name. x 0 1 10 y exp - x-5 2 plot x, y ysmoothed fastsmooth y,11,3,1 plot x, y,x, ysmoothed, r disp max y halfwidth x, y,5 trapz x, y disp max ysmoothed halfwidth x, ysmoothed,5 trapz x, ysmoothed.1 1 6662 1 7725 0 78442 2 1327 1 7725 These results show that smoothing reduces the peak height from 1 to 0 784 and increases the peak width from 1 66 to 2 13 , but has no effect on the peak area, as long as you measure the total area under the broadened peak. Smoothing is useful if the signal is contaminated by non-normal noise such as sharp spikes or if the peak height, position, or width are measured by simple methods, but there is no need to smooth the data if the noise is white and the peak parameters are measured by least-squares methods, because the results obtained on the unsmoothed data will be more accurate see. The Matlab Octave user-defined function condense m condense y, n returns a condensed version of y in which each group of n points is replaced by its average, reducing the length of y by the factor n For x, y data sets, use this function on both independent variable x and dependent variable y so that the features of y will appear at the same x values. The Matlab Octave user-defined function medianfilter m medianfilter y, w performs a median-based filter operation that replaces each value of y with the median of w adjacent points which must be a positive integer killspikes m is a threshold-based filter for eliminating narrow spike artifacts The syntax is fy killspikes x, y, threshold, width Each time it finds a positive or negative jump in the data between y n and y n 1 that exceeds threshold , it replaces the next width points of data with a linearly interpolated segment spanning x n to x n width 1 , See killspikesdemo T ype help killspikes at the command prompt. ProcessSignal is a Matlab Octave command-line function that performs smoothing and differentiation on the time-series data set x, y column or row vectors It can employ all the types of smoothing described above Type help ProcessSignal Returns the processed signal as a vector that has the same shape as x, regardless of the shape of y The syntax is Processed ProcessSignal x, y, DerivativeMode, w, type, ends, Sharpen, factor1, factor2, SlewRate, MedianWidth. iSignal is an interactive function for Matlab that performs smoothing for time-series signals using all the algorithms discussed above including the Savitzky-Golay smooth, a median filter, and a condense function, with keystrokes that allow you to adjust the smoothing parameters continuously while observing the effect on your signal instantly, making it easy to observe how different types and amounts of smoothing effect noise and signal, such as the height, width, and areas of peaks Other functi ons include differentiation, peak sharpening, interpolation, least-squares peak measurement, and a frequency spectrum mode that shows how smoothing and other functions can change the frequency spectrum of your signals The simple script iSignalDeltaTest demonstrates the frequency response of iSignal s smoothing functions by applying them to a single-point spike allowing you to change the smooth type and the smooth width to see how the the frequency response changes View the code here or download the ZIP file with sample data for testing. Use the A and Z keys to increase and decrease the smooth width, and the S key to cycle through the available smooth types Hint use the Gaussian smooth and keep increasing the smooth width until the peak shows. Note you can right-click on any of the m-file links on this site and select Save Link As to download them to your computer for use within Matlab Unfortunately, iSignal does not currently work in Octave. An earlier version of his page is available in French, at courtesy of Natalie Harmann and Anna Chekovsky Last updated February, 2017 This page is part of A Pragmatic Introduction to Signal Processing , created and maintained by Prof Tom O Haver Department of Chemistry and Biochemistry, The University of Maryland at College Park Comments, suggestions, bug reports, and questions should be directed to Prof O Haver at Unique visits since May 17, 2008.

No comments:

Post a Comment