Jeg har et spørsmål relatert til kontinuerlig gjennomsnittlig ADC-verdi. Tilnærmingen som jeg brukte, er kontinuerlig gjennomsnittlig for eksempel 256 prøver. Adcaout-verdien vist i koden nedenfor som jeg mottar på min GUI-trinn sakte. For eksempel, hvis jeg forventer verdi 100mA, Min GUI viser 4mA, 8mA, 15mA og så til slutt etter 2 minutter blir jeg stabil 100mA verdi Jeg vil se 100mA direkte på min GUI fra adcaout i stedet for økningsverdier og stabilisering etter en gang. Et annet spørsmål er det, kan jeg på en eller annen måte gjøre denne prosessen raskt slik at jeg ikke må vente i 3 minutter for å motta stabile 100 mA fra adcaout Klokken CLK i den digitale designen nedenfor er 20 MHz Klokken for mottak av ADC-verdier på FPGA-kortet er 15 KHz. Filen er under . Din kode er endret som følger. Den endelige utgangen som jeg ser på min GUI er slvvalue1 og slvvalue2.How om dette ved tilbakestilling eller til enhver annen tid hvis du vil, tilordne datainverdi til alle elementene i ditt scenarium Dette bør umiddelbart satt ditt gjennomsnitt til dagens verdi. Eksempelet nedenfor viser hele koden for en glidende gjennomsnittlig kalkulator. Mitt forslag er at du studerer det til du forstår det. Prøv deretter å bruke det i designet. Endelig, og først etter at du har en grunnleggende krets som virker , kan du endre det for å tilfredsstille designbegrensningene data bredde, antall prøver, rekkefølge av heltall, bruk av signert vs heltall etc. Finally, hvis du vil bruke den ovennevnte koden for å holde to separate gjennomsnitt for to forskjellige signaler, kan du bare ordne gjennomsnittlig enhet twice. Edit Som jeg forstår fra dine kommentarer, kan det hende du trenger en ekstra inngang for å angi gjennomsnittet øyeblikkelig til gjeldende inngangsverdi. I så fall kan du bruke en belastningsinngang som vist under. ansvaret 26. november kl. 13 kl. 15 45 . Gjennomsnitt Enkel glidende gjennomsnitt. Gjennomsnitt Enkel glidende gjennomsnitt Du oppfordres til å løse denne oppgaven i henhold til oppgavebeskrivelsen, ved hjelp av hvilket som helst språk du kan kjenne til det enkle glidende gjennomsnittet av en rekke tall. Opprett en statlig funksjon klasseeksempel som tar en periode og returnerer en rutine som tar et tall som argument og returnerer et enkelt bevegelige gjennomsnitt av sine argumenter så langt. Et enkelt glidende gjennomsnitt er en metode for å beregne et gjennomsnitt av en strøm av tall ved bare å gjennomsnittsføre den siste P tall fra strømmen, hvor P er kjent som perioden. Det kan implementeres ved å kalle en initialiseringsrutine med P som argument, IP, som deretter skal returnere en rutine som når den blir kalt med individuelle suksessive medlemmer av en strøm av tall, beregner gjennomsnittet av opp til, den siste P av dem, lar vi ringe denne SMA. Ordet stateful i oppgavebeskrivelsen refererer til behovet for SMA å huske visse opplysninger mellom samtaler til den. Perioden, P. An bestilt beholder på minst de siste P-tallene fra hver av sine individuelle samtaler. Statisk betyr også at etterfølgende anrop til jeg, initialisereren, skal returnere separate rutiner som ikke deler lagret tilstand, slik at de kan brukes på to uavhengige datastrømmer. Pseudo-torsk e for en implementering av SMA er. Denne versjonen bruker en vedvarende kø for å holde de nyeste p-verdiene. Hver funksjon som returneres fra init-moving-gjennomsnittet, har sin tilstand i et atom som holder en køverdi. Denne implementeringen bruker en sirkulær liste for å lagre tall i vinduet i begynnelsen av hver iterasjonspeker refererer til listecellen som holder verdien bare flyttet ut av vinduet og erstattes med den nettopp verdiene. Bruk en avslutningsredigering. I øyeblikket kan denne sma ikke være nok fordi Det tildeler en lukking på bunken. Noen rømningsanalyser kan fjerne heapallokalet. Bruke en strukturredigering. Denne versjonen unngår bunteallokeringen av lukkingen, og lagrer dataene i stakkrammen til hovedfunksjonen. Samme utgang. For å unngå flytpunkts-tilnærminger fortsett å hakke og vokse, kan koden utføre en periodisk sum på hele sirkulær køarrangering. Denne implementeringen produserer to funksjonsobjekter delestatus Det er idiomatisk i E for å skille inn input fra utgangslesen fra skrive i stedet for å kombinere dem til ett objekt. Strukturen er den samme som implementeringen av Standard Deviation E. Elixir-programmet nedenfor genererer en anonym funksjon med en innebygd periode p, som brukes som perioden for det enkle glidende gjennomsnittet. funksjonen leser numerisk inngang og overfører den til den nyopprettede anonyme funksjonen, og deretter kontrollerer resultatet til STDOUT. Utgangen vises nedenfor, med gjennomsnittet, etterfulgt av gruppert inngang, som danner grunnlaget for hvert bevegelige gjennomsnitt. Langt har nedleggelser, men uforanderlige variabler En løsning er da å bruke prosesser og en enkel melding som passerer baserte API. Matrix-språk har rutiner for å beregne glidningsavstandene for en gitt sekvens av elementer. Det er mindre effektivt å sløyfe som i de følgende kommandoene. Kontinuerlig ber om en inngang I som legges til slutten av en liste L1 L1 kan bli funnet ved å trykke 2ND 1, og gjennomsnitt kan finnes i Liste OPS. Press ON for å avslutte programmet. Funksjon som returnerer en liste fort aining gjennomsnittlig data for det medfølgende argumentet. Program som returnerer en enkel verdi ved hver invocation. list er listen som er gjennomsnittlig p er perioden 5 returnerer den gjennomsnittlige listen. Eksempel 2 Bruke programmet movinav2 i, 5 - Initialisere glidende gjennomsnittlig beregning, og definer en periode på 5 movinav2 3, xx - nye data i listen verdi 3, og resultatet blir lagret på variabel x, og vises movinav2 4, xx - ny dataverdi 4, og det nye resultatet blir lagret på variabel x, og vises 4 3 2.Beskrivelse av funksjonen movinavg variabel r - er resultatet den gjennomsnittlige listen som vil bli returnert variabel i - er indeksvariabelen, og den peker til slutten av underlisten listen er gjennomsnittlig variabel z - en hjelpesvariabel. Funksjonen bruker variabel i for å bestemme hvilke verdier av listen som skal vurderes i neste gjennomsnittlige beregning. Ved hver iterasjon peker variabel jeg på den siste verdien i listen som skal brukes i gjennomsnittlig beregning. Så vi trenger bare å finne ut hvem ch vil være den første verdien i listen Vanligvis må vi vurdere p-elementer, så det første elementet vil være det som er indeksert av ip 1 Men på de første iterasjonene vil denne beregningen vanligvis være negativ, slik at følgende ligning vil unngå negative indekser maks ip 1,1 eller, ordne ligningen, maks ip, 0 1 Men antall elementer på de første iterasjonene vil også være mindre, den riktige verdien vil være sluttindeks - begynn indeks 1 eller, ordne ligningen, i - maks ip, 0 1 1, og deretter, i-max ip, 0 Variabel z holder den vanlige verdien maks ip, 0 slik at begynnelsesindeksen vil være z 1 og tallfeltene vil bli iz. mid-listen, z 1, iz vil returnere listen av verdi som vil være gjennomsnittlig sum vil summen summen vil gjennomsnittlig dem og lagre resultatet på riktig sted i resultatlisten. fp1 oppretter en delvis søknad som fastsetter i dette tilfellet den andre og tredje parameteren. Jeg prøver å skrive en VHDL glidende gjennomsnittlig jevnt vektet modul som bruker FSMD ata Fra det jeg understa nd, statene som trengs, ville være noe som å hente, dele, utdata. Nedenfor er prosessen jeg skrev, men jeg føler at logikken min er litt av. Vær oppmerksom på at dataene jeg beregner er bare et konstant utvalg av 8 bitnumre, så jeg skjønte det burde være fint å bruke en ikke-årsakssammenheng. Dataene har 64 oppføringer, og for øyeblikket er vinduet for gjennomsnittet 4. Hvor feil ser dette ut. Noen problemer kan jeg se med en gang. Du kan ikke - initialiser temp hvor som helst. Du har ikke noen grensekontroll for teller er det en undertype eller bare et heltall. Hva skjer med mønstertelling i når du nærmer deg grensen. Hvordan ruller du over? Din forløp er 0 til len - er du er sikker på at du ikke mener 0 å len - 1. Siden hele tilstandsavkodingsprosessen er klokket, trenger du ikke virkelig nstate i det hele tatt. Vær oppmerksom på at du ikke en gang initialiserer cstate, men du avkodner det fortsatt. Enten gjør staten din avkode en separat kombinasjonsprosessen eller bare bli kvitt natala og tilordne seg til cstate directly. Otherwise, det avhenger av ditt design mål Hvis du ikke bryr deg om gjennomstrømning, men trenger å kjøre med en svært høy klokkefrekvens, kan du kanskje utføre tillegget ditt i rekkefølge i stedet for parallelt, for eksempel. ansvaret september 5 14 på 13 32.tanker, som definitivt gjør ting bedre om count rollover, jeg er ikke sikker på hvordan jeg skal gjøre det fordi for hvert mønster teller opptil 63, vil jeg vise verdien og gjennomsnittet av vinduet rundt det, så hvis jeg ruller rundt på land, burde det ikke gå ut av grensen, men det vil ikke vise full data hvis jeg gjorde en årsaksmessig gjennomføring, jeg ville ha litt forsinkelse ved starten, er det en lignende ting jeg trenger her, men hos sluttbrukeren 1710566 5. september klokken 23 23.my elsif clk event da hvis telle 64 så telle 0 ellers beregne ende hvis i forløp setter jeg en exit hvis telle jeg var større enn 63 user1710566 Sep 6 14 på 0 05.
No comments:
Post a Comment