Saturday 14 October 2017

Glidande Medelvärde Filter Användning Vhdl


Jag har en fråga relaterad till kontinuerlig medelvärde av ADC-värden. Tillvägagångssättet som jag använde är kontinuerlig medelvärde av exempel 256 prover. Adcaout-värdet som visas i koden nedan som jag får på mina GUI-inkrementer långsamt. Exempelvis, om jag förväntar mig värde 100mA, Min GUI visar 4mA, 8mA, 15mA och sedan äntligen efter 2 minuter får jag ett stabilt 100mA-värde Jag vill se 100mA direkt på min GUI från adcaout istället för stegvärden och stabilisera efter en gång En annan fråga är det, kan jag på något sätt göra denna process Snabbt så att jag inte behöver vänta i 3 minuter för att få stabil 100 mA från adcaout Klockan clk i den digitala designen nedan är 20 MHz Klockan för att ta emot ADC-värden på FPGA-kortet är 15 KHz. Filen är under . Din kod ändras enligt följande. Den slutliga utmatningen som jag tittar på min GUI är slvvalue1 och slvvalue2.How om detta vid återställning eller när som helst om du vill, tilldela datainvärdet till alla element i din scenmatris. Detta borde Omedelbart inställd ditt medelvärde till det aktuella värdet. Exemplet nedan visar den fullständiga koden för en glidande medelräknare. Mitt förslag är att du studerar det tills du förstår det. Försök sedan använda det i din design. Slutligen, och först efter att du har en grundläggande krets som arbetar , kan du ändra det för att tillfredsställa dina konstruktionsbegränsningar databredd, antal prover, intervall av heltal, användning av signerade vs heltal etc. Finally, om du vill använda ovanstående kod för att hålla två separata medelvärden för två separata signaler, enkelt instansera den genomsnittliga enheten twice. Edit Som jag förstår från dina kommentarer kan du behöva en extra ingång för att ställa in genomsnittsvärdet direkt till det aktuella inmatningsvärdet. I det fallet kan du använda en belastningsinmatning enligt nedan. ansvarig 26 nov 13 kl 15 45 . Det är möjligt att implementera ett glidande medelvärde i C utan att det behövs ett fönster på prover. Jag har funnit att jag kan optimera lite genom att välja en fönsterstorlek som är en kraft av två för att tillåta bitskiftning istället för att dela upp, Men behöver inte buffert skulle vara trevligt Finns det ett sätt att uttrycka ett nytt glidande medelresultat endast som en funktion av det gamla resultatet och det nya provet. Ange ett exempel som rör genomsnittet, över ett fönster på 4 prov att vara. Lägg till nytt prov eA glidande medelvärde kan vara implementeras rekursivt men för en exakt beräkning av det rörliga genomsnittsvärdet måste du komma ihåg det äldsta inmatningsprovet i summan, dvs a i ditt exempel. För ett längd N rörligt medelvärde beräknar du. Där yn är utsignalen och xn är ingångssignalen Eq 1 kan skrivas rekursivt som. Så du behöver alltid komma ihåg provet x nN för att kunna beräkna 2. Som påpekat av Conrad Turner kan du använda ett oändligt långt exponentiellt fönster istället, vilket gör det möjligt att beräkna utmatningen endast från det tidigare resultatet och den aktuella ingången. Men det här är inte ett vanligt obetydligt glidande medelvärde, men ett exponentiellt vägt rörligt medelvärde, där proverna i det förflutna har en mindre vikt, men åtminstone teoretiskt glömmer du aldrig någonting som vikterna bara g et mindre och mindre för prover långt ifrån. Jag genomförde ett glidande medelvärde utan individuellt objektminne för ett GPS-spårningsprogram som jag skrev. Jag börjar med 1 prov och dela med 1 för att få den aktuella avg. I lägger sedan till och klickar på och delar upp med 2 till den nuvarande avg. This fortsätter tills jag kommer till längden av genomsnittet. Varje gång efteråt lägger jag till i det nya provet, får medelvärdet och tar bort det genomsnittet från summan. Jag är inte en matematiker men det verkade som ett bra sätt att göra det jag trodde det skulle vända på en riktig matte kille, men det visar sig att det är ett av de accepterade sätten att göra det Och det fungerar bra Kom bara ihåg att ju högre längden desto långsammare följer den vad du vill följa Det kan inte ha betydelse för det mesta, men när du följer satelliter, om du är långsam kan spåret vara långt ifrån den verkliga positionen och det kommer att se dåligt ut. Du kan ha ett mellanrum mellan mitten och de efterföljande punkterna I valde en längd på 15 uppdaterad 6 gånger per minut för att bli adekvat Te utjämning och inte komma för långt från den faktiska lätta positionen med de släta spårpunkterna. Svarade 16 november 16 vid 23 03.initialisera totalt 0, räkna 0 varje gång vi ser ett nytt värde. Då en input scanf lägger man till totalt nyttValue, en inkrement räkna, en dela genomsnittlig totalräkning. Detta skulle vara ett glidande medelvärde över alla inmatningar. För att beräkna genomsnittet över endast de senaste 4 ingångarna, skulle kräva 4 inputvariables, kanske kopiering varje ingång till en äldre ingångsvariabel och sedan beräkna det nya glidande genomsnittet som summa av de 4 ingångsvariablerna dividerat med 4 högerskift 2 skulle vara bra om alla ingångar var positiva för att göra den genomsnittliga beräkningen. svarade 3 februari kl. 04 06. Det kommer faktiskt att beräkna det totala genomsnittet och INTE det glidande medeltalet Som räknas Blir större påverkan av något nytt insamlingsprov blir försvinnande liten Hilmar 3 feb kl 15 på 13 53. Ditt svar.2017 Stack Exchange, Inc. Moving Avergare Filter MAF i VHDL 2008 för DE0-NANO med FPGA Cyclone IV. Detta filter fungerar med fast Peka på att th e antal bitar beror på ADC. About Moving Average Filter. A Moving Average Filter är ett digitalt filter som genomsnittet av ingången s sista M 1 termer som följande expresion. Using den andra direktformen kan vi definiera hn som Den här hnxnh n-1.Så du kan uttryckas i denna waw ynhn-h nM M 1.Struktur av filtret. Topphierarkin är den som definierar alla filter s struktur. För att generera från h n-1 till h nM, flip - flops används för att försena. Du kan inte utföra den åtgärden just nu. Du loggade in med en annan flik eller ett fönster. Uppdatera för att uppdatera din session. Du loggade ut i en annan flik eller ett fönster. Uppdatera för att uppdatera din session.

No comments:

Post a Comment