Moim zdaniem takie problemy najlepiej rozwiązują noty aplikacyjne producenta MCU: http://www.atmel.com/dyn/resources/prod_... Albert
Błędem jest to, że przesuwanie rejestrów Multiplier i wynik jest taktowane tym samym zboczem zegara co dodawanie rejestru wynik do Multiplicand. Zawartość rejestru wynik jest w tym czasie nieustalona. To że jest typem inout nie ma znaczenia, ponieważ syntezer ze składni programu i tak wie, że musi ze zmiennej Multiplier utworzyć rejestr przesuwny.
Zasada działania algorytmu mnożenia wyjaśniona poniżej. Niestety po niemiecku ale graficznie dobrze zobrazowane. [url=https://www.mathetreff-online.de/wi... Albo [url=https://www.youtube.com/watch?v=Xaj... tym filmie Praktyczny przykład: [url=http://www.holzers-familie.de/schul...
Witam. Przeglądnij procedury na stronie: http://www.8052.com/codelib.phtml Może znajdziesz coś podobnego. Pozdrawiam.
Mnożysz zawsze przez liczbę, a tę szybciej jest pobrać z tablicy współczynników niż wyliczać (wartość funkcji sinus wylicza się z rozwinięcia w odpowiedni szereg, a to zajmuje czas, zaś w FFT używane jest tylko kilka stałych wartości tej funkcji więc liczysz je raz na początku przed rozpoczęciem obliczeń FFT)
Funkcje trygonometryczne realizuje się często przez rozwinięcie ich w szereg Taylora. Ponadto powstał też algorytm CORDIC, który o ile dobrze pamiętam wymaga tylko operacji przesunięcia i dodawania, przez co świetnie nadaje się do implementacji w małych uC, czy FPGA (google). Do mnożenia stosuje się algorytm Bootha (niektóre rozwiązania sprzętowe działają...
Algorytm jest wzięty prosto z "kartki". Pierwsze co musisz określić to liczbę bajtów. Ten algorytm dla uproszczenia mnoży czynniki o tej samej długości. Czyli jeżeli jeden jest 2 a drugi 1 bajtowy to trzeba wybrać ten dłuższy.
Witam. Przeszukuję sieć w celu znalezienia skutecznego algorytmu mnożenia 16 bitów (16x16) z wynikiem 32 bitowym. Oto przykład z sieci (jakich wiele): mpy16u: clr m16u3 ;clear 2 highest bytes of result clr m16u2 ldi mcnt16u,16 ;init loop counter lsr mp16uH ror mp16uL m16u_1: brcc noad8 ;if bit 0 of multiplier set add m16u2,mc16uL ;add multiplicand...
Witam. Mam mały problem z projektem. Muszę napisać algorytm równania, a wygląda to tak: wszystkie stałe mają być 8-bitowe i zapisane w kodzie U2, mnożenie wykonać metodą booth, piszę w asemblerze. Teraz pytanie jak pomnożyć np: -1/2 * 3,25. Wszędzie w necie są przykłady jak mnożyć same ułamki bez cześci całkowitych. Proszę o pomoc.
#include<stdio.h> #include<conio.h> int main() { int a, b, c; printf("podaj liczby do mnozenia: \na= "); scanf ("%d", &a); printf ("b= "); scanf("%d", &b); printf("%d*%d=%d", a,b,a*b); system("PAUSE"); return...
Witam. Mam do napisania taki programik a w zasadzie dwa. Pierwszy jest to programik ktory wczytuje stringa w postaci wyrazenia algebraicznego a nastepnie przetwarza go w nastepujacy sposob ze jesli mamy mnozenie nawiasow to je upraszcza w sensie ze mnozy wszystko przez wszystko zeby otrzymac wielomian podobnie z potegami. Drugi programik to jakby kontunuacja...
Jeżeli do celów edukacyjnych to ja bym to widział tak: Licznik zliczający w tył, do którego możesz wpisać wartość początkową (mnożnik powiedzmy) Rejestr mnożnej (drugiego czynnika) Sumator szesnastobitowy (na przyklad dwa osmibitowe połączone kaskadowo) Wyjscia sumatora, podajesz spowrotem na wejscia (odpowiedniego słowa oczywiście), na wejścia drugiego...
chodzi głównie o algorytm mnożenia liczb zaszła potrzeba rozwiązania równania kwadratowego. Występują ujemne współczynniki. głownie chodzi o pomnożenie dwóch bajtów.
Poza tym pobieżnie przejżałem DS ATTiny i nie widzę instrukcji analogicznej do DIV w 8051?? Jak w nim dzielić liczby?? A czy znalazłeś MUL? ;) Do takich obliczeń niestety trzeba pisać własne funkcje. Można mnożyć i dzielić poprzez wielokrotne dodawanie lub odejmowanie danej liczby, ale to jest oczywiście dosyć mało optymalna metoda. Oczywiście mnożenie...
Witam. Czy mógłby mi ktoś napisać programik Algorytm Strassena mnożenie macierzy w Visual C++? Byłbym bardzo wdzięczni
mogę tak od szczała podać ci dwa algorytmy mnożenia kombinacyjny i sekwencyjny jeśli cię to interesuje ale zaimplementować w VHDL-u musisz sobie sam (co zresztą nie jest trudne) jeśli cię to interesuje to daj znać bardziej wyszukane mnożenia musisz sobie poszukać w necie
Witam. Dostalem sie do grupy seminaryjnej o nieszczesliwej jak dla mnie tematyce. Za zadanie mam do zrobienia " implementacja prostego algorytmu mnożenia liczb stałoprzecinkowych z wykorzystaniem sumatorów. Uruchomienie i przetestowanie układu w trybie symulacyjnym a następnie na platformie sprzętowej z wykorzystaniem układów Virtex firmy Xilinx ......
Algorytmy mnożenia i dzielenia, a także innych działań są dokładnie opisane m.in. w książce Józefa Kalisza Podstawy elektroniki cyfrowej . Sporo algorytmów można znaleźć na stronach producentów mikrokontrolerów w działach aplikacje. Jeśli znasz choć trochę asembler '51, to na pewno dasz radę. Pozdrawiam.
Mógłbyć jednak zadać jakieś pytanie. Czy może przyszedłeś się pochwalić, że znalazłeś błąd w kompilatorze/algorytmie? BTW: przy mnożeniu masz możliwy int overflow.
a nie mozna w C zadeklarowac zmiennej jako 64 bit? long long zmienna; W asm wykonywana operacja to: A = A + B, bo tak najprościej i najczęściej się stosuje :] Dodajesz po kolei bajty zaczynając od najmniej znaczącego. Pierwsze dodawanie wykonujesz jako ADD, każde następne jako ADC (z przeniesieniem z poprzedniego) Mnozenie, hmm... Wiesz, jak wygląda...
troche późno odpowiadam ale jak to mówią lepiej... więc najpierw mnożenie i dzielenie wydaje mi się że dałem Ci najlepszą rade jaką mozesz dostać, mnożenie i dzielenie są dość skąplikowane to fakt, dlatego nie sądziesz chyba że ktoś napisze to za Ciebie Ja natomiast dałem Ci linka do strony gdzie masz i mnożarki i dzielarki gotowe do ściągnięcia i do...
Po obejrzeniu wykładu "dlaczego komputer kwantowy wciąż nie działa" https://www.elektroda.pl/rtvforum/viewto... niewiele więcej rozumiem xD, w każdym razie był tam podany przykład, że przy użyciu komputerów kwantowych, można by próbować łamać RSA, który to algorytm polega na 'łatwości' mnożenia liczb (pierwszych) i 'trudności'...
Napisałem program z algorytmem mnożenia dużych liczb. Jeśli masz chwilę czasu rzuć na to okiem. Oceń, czy zmierzam we właściwym kierunku. Wydaje mi się, że nie do końca działa prawidłowo. http://remek62.republika.pl/Tymcz/tymcz.... Algorytm wg. schematu w załaczniku (ponieważ wklejony do postu wychodzi połamany) na podstawie http://rudy.mif.pg.gda.pl/~bogdro/dos/a_...
Mam 3 algorytmy: bootha karatsuby i jeden inny wszystkie mnożą mi liczby 32 bitowe w symulatorze Isim (Web Pack ise). Podczas symulacji moge ustawić dowolny czas symulacji ale nie wiem jak długo sam taki algorym liczy. Wiek ktoś w jaki sposób można by było porównać czas mnożenia tych algorytmów?.
Nie sprecyzowałeś problemu i metody w odpowiedziach masz z różnych dziedzin. Nie wiemy czy problemem jest sygnał w postaci fizycznej (zwykle sprowadzonej do elektrycznej) co pozwoliłoby może zastosować metody elektroniczne (proponowano heterodynę), czy też mamy do czynienia jedynie z cyfrową reprezentacją sygnału (i wtedy raczej tylko metody cyfrowe)....
Mam częste problemy (czasowe) z konwersją wielkości fizycznych w małych 8-bitowcach na wyświetlacze i stąd moja adoracja dla metod wykorzystujących tablice. Wbrew temu, co wyżej napisano proces obsługi wyświetlacza nawet kilka razy na sekundę może być na tyle absorbujący, że zabraknie czasu na ważniejsze operacje. Pozdrawiam. a.. i jeszcze mała uwaga....
Witam Jestem w trakcie pisania programu do pracy inżynierskiej, który używał by optymalny algorytm Crouta i nie mogę sobie poradzić z pomijaniem zer. Mam już napisany pełny algorytm Crouta, lecz on wykonuje mnożenia i dzielenia przez zero. Optymalny algorytm pomija zera i nie wykuje działań przez co skraca się czas obliczeń. Będę bardzo wdzięczny za...
Bo cała uroda języków wywodzących się z LOGO polega na tym, aby unikać instrukcji przypisania jak .. goto w innych ;-) Potęgowanie należy zastąpić rekurencyjnym wywoływaniem mnożenia Albert
Witam Stosuję obliczenia numeryczne tylko w asemblerze z całkiem dobrymi efektami. Na stronie ATMELA można znaleźć gotowe procedury dzielenia i mnożenia wielokrotnej precyzji, jest pełno stron z przykładami działających procedur. Znalazłem nawet pierwiastkowanie (nie potrafię zrozumieć algorytmu :cry: ). Pisanie programów w asemblerze daje nieograniczone...
Panowie, dlaczego dyskutujemy o dzieleniu? Przecież w algorytmach filtrów itp. najczęściej wykorzystuje się operację mnożenia i dodawania.
BIN na BCD (spakowane po dwie cyfry w jednym bajcie) 1. Wyznaczamy wielkość pola wynikowego (znakowego BCD) dla danej BIN (pole wynikowe to pełne bajty nawet jeśli to za wiele) 2.pole wynikowe BCD wstępnie zerujemy. ----------------------------------- ALGORYTM: 1. - Pole wynikowe BCD mnożymy przez dwa (czyli dodajemy je do samego siebie) oczywiście...
A może wypadało by poszukać trochę w googlach jak mnoży się macierze [url=http://www.matematyka.pl/56375.htm]... wynik w googlu oraz [url=http://edu.i-lo.tarnow.pl/inf/utils... opisany algorytm i przykład w C++
Cześć. Chciałbym zrobić układ do mnożenia dwóch liczb 3-bitowych za pomocą bramek logicznych. Z tego względu że na wyjściu jest więcej jak jedna kombinacja, to nie wiem, jak sobie z tym poradzić za pomocą tablic Karnaugha. Ktoś pomoże i mi poradzi oraz powie, jaki jest algorytm projektowania dla tego zagadnienia? Cześć! Projektowanie układu do mnożenia...
Witam, zabieram się za stworzenie prostego, ale efektywnego algorytmu rysowania trójkątów. Pośrednio do osiągnięcia celu potrzebuję algorytm do rysowania linii ukośnych. Najpierw chciałbym zaimplementować to w dowolnym współczesnym języku programowania, a docelowo zaimplementować sprzętowo. Samych algorytmów rysowania linii jest co najmniej kilka, jednak...
[syntax=c] uint32_t bin2BCD(uint32_t val) { uint32_t retval; uint8_t count, i, *ptr = &retval; retval = 0; for (count = 0; count < BCD_DIGITS * 4; count++) { for(i = 0; i < 4; i++) { ptr[i] += 0x33; if((ptr[i] & 0x08) == 0) ptr[i] -= 0x03; if((ptr[i] & 0x80) == 0) ptr[i] -= 0x30; } retval <<= 1; if(val & (0x08L << ((BCD_DIGITS...
W mnożeniu w kodzie U1 postępując według algorytmu nie we wszystkich wypadkach wychodzi prawidłowy wynik. oto jeden z przykładów -11*3=-33 3->0011 -11-> 0100         ... RH   RL    M        1111 0011 0100      +0100        -------       ...
Jeszcze tylko pytanie, dlaczego ten kalkulator tak dziwnie liczy potęgi za pomocą funkcji Wyjaśnienie jest dość "proste". W kalkulatorach operacje bardziej złożone, takie jak potęgowanie, w których konieczne byłyby wielokrotne, pośrednie, operacje mnożenia są zastępowane przez operacje prostsze, które wymagają tylko jednokrotnego mnożenia przez układ...
Zacznij od skrócenia ułamka, przez który mnożysz: 980/512 = 490/256 = 245/128 Potem spróbuj przedstawić go jako sumę lub różnicę: = (2 * 128 - 11) / 128 = 2 - 11/128 Proste?
Chyba udało mi się znaleźć algorytm. Wydaje się jednak dziwnie prosty. Ok, działa, bo w zasadzie musi. Liczysz po prostu korelacje próbek z zadanym sinusem i kosinusem, tak z definicji. Ale jednak masz jeszcze dość ciężki obliczeniowo algorytm. Na każdą próbkę liczysz sinus i kosinus i masz dwa mnożenia. Co prawda sinus można wstępnie stablicować....
Nie jesteś na dobrej drodze. Zrób sobie przykład na piechotę (na papierze) i jak się wynik zgodzi to ubierz to w rozkazy. Na razie nie widze algorytmu który chcesz zastosowac do mnożenia. I jeśli będziesz umieszczał program do analizy na forum, to bardzo dokładnie opisz każdy rozkaz do czego służy (co robi)
Poczytaj sobie jeszcze w przepisach jak wygląda algorytm zaokrąglania groszy w rozliczeniach finansowych...
witam i podziwiam :) nie chce mi się wyciągać ZX z szafki i znowu gapić się w ten zielony monitor :) Dzięki Sinclairowi za Spectruma ! gdyby nie ten komputer to nie znałbym się na mikroelektronice. Rok temu przesiadłem się na PCta, i przekładam swoje programy na intelowskie mnemoniki '25 * 255 ORG 0 ; jeśli to "samoróba" ORG 32768 ; jeśli...
DSP mają specjalne mechanizmy, które pozwalają na uzyskiwanie bardzo dużych mocy obliczeniowych w specyficznych dla przetwarzania cyfrowego algorytmach. Mowa tutaj np o filtrach FIR, gdzie robi się wielokrotne mnożenie z akumulacją. Typowe w DSP jest to, że taką opoerację jak: mnożenie, dodawania zwiększanie/ zmniejszanie kilku rejestrów, itp jednocześnie...
Rozwiązanie prawie jak na tacy: http://www.engr.colostate.edu/EE251/Labs... opis jest dla MC 68HC12. Jak słusznie zauważyłeś, Motorola 68K nie ma rozkazu mnożenia (ani dzielenia) BCD, trzeba więc najpierw wykonać konwersję do bin, przemnożyć i wynik zamienić na BCD. Na upartego, można ręcznie mnożyć BCD, algorytm jest opisany tu: http://www.evergreen.edu/biophysics/tech...
Nie jestem biegły w C... ale z tego co widzę, ten Twój algorytm jest mądrzejszy od mojego (trochę teoretycznego) o to, że próg decyzyjny cisza/niecisza jest ustalany nie w odniesieniu do bezwzględnego zera, ale dynamicznie, w odniesieniu do obliczonego wcześniej poziomu tła, czyli niejako jest bardziej adaptacyjny do sygnału rzeczywistego. Po to wprowadzili...
Najprościej to znak po znaku, jak algorytm napotka cyfrę to mnoży to co ma przez 10 i dodaje cyfrę, jak napotka na kropkę to zwiększa numer operowanej zmiennej.
Doskonale rozszyfrowane, gratuluje ko_rex Jest to faktycznie IP www.elektroda.net Tak jak napisałem liczyło się głównie poprawne rozszyfrowanie przekazu, natomiast zastosowana metoda nie miała znaczenia. Liczyło się głównie prawidłowe przeanalizowanie sygnału i zastosowanie odpowiednich metod aby dotrzeć do celu. Dla porządku powiem jak przekaz został...
Musisz wynik podzielić przez 1000. Algorytmy dzielenia można znaleźć na stronie www.atmel.com w notach aplikacyjnych.
Czy nie ma szybszych alglorytmów? Oczywiście, że są. Wykorzystaj algorytm mnożenia i dzielenia pisemnego. Dzięki temu znacznie ograniczysz ilość dodawań czy odejmowań. Na przykład 1234 * 5678 zrobione metodą powyższą to 1234 dodawania (zakładam, że program jest chytry i sprawdza na początek która liczba jest mniejsza i ją bierze jako licznik pętli)....
RitterX - Myśląc nad architekturą tego urządzenia jeszcze na wczesnym etapie musiałem przemyśleć bardzo dokładanie te kwestie o których wspominasz. W końcu podjąłem decyzję i zdecydowałem się na sposób podobny do strzelania z broni palnej, a mianowicie: załaduj i strzel. Upraszczając - "załaduj" oznacza pobranie z kolumny pamięci kodu instrukcji i ewentualnie...
To ja dodam algorytm bez operacji dzielenia, modulo ani mnożenia. Warunkiem wykorzystania algorytmu jest to, że z góry trzeba znać zakres w jakim się poszukuje liczb. Tworzysz tabelę byte od 1 do 100. Zerujesz ją. Uznajesz że indeks 1 reprezentuję liczbę 1, a indeks 2 liczbę 2 itd. Dla każdej wielokrotności liczby 7 inkrementujesz zawartość tablicy....
Faktycznie, definicja FFT. :) Jednak algorytm podsunięty przez Freddiego bardziej przemawia na pierwszy rzut oka. Dwa razy mniej mnożeń (z dużym przybliżeniem). Co więcej, nie będę musiał stosować praktycznie żadnej filtracji wstępnej. Duży plus ! (dla obu rozwiązań ):) Dzięki Panowie !
Witam mam do zrobienia układ do mnożenia długich liczb. Próbuje zrobić układ w programie WeBPack Xilinxa w języku VHDl używając algorytm karatsuby ale komplenie mi to nie wychodzi. Czy jest ktoś kto ma o tym zielone pojęcie i dałby mi jakieś wskazówki. Byłbym dozgonnie wdzięczny.
Jak liczba 62-bitowa jest stała to mnożenie jest jeszcze prostsze bo wystarczy napisać stały algorytm bez żadnych skipbittestów - to jedna sprawa. Po drugie lepiej takie mnożenie robić w bazie danych - transmisja będzie 2x szybsza a i samo mnożenie na PC-ie szybsze.
Deczko mało optymalny algorytm... Poszukaj w sieci - są znacznie szybsze, bez potrzeby rozpoznawania kierunku, bez mnożenia i dzielenia. :arrow: tmf Właśnie o to mi chodziło
Ten algorytm przedstawia prosta metode mozenia ktora czesto byla stosowana w procesorach nie posiadajacych instrukcji mnozenia. wykozystuje sie w nich rotacje bitow i dodawanie. Algorytm jest bardzo prosty w realizacji.
Ciekawy projekt. Choć z braku czasu na pewno nie będę mógł pomóc w praktycznej realizacji, to chciałem zwrócić uwagę na parę spraw. Program jako taki nie wydaje się być skomplikowany, jednak ew. realizacja musi zostać poprzedzona dobrymi przemyśleniami. Załóżmy, że układ selektora jest ok i bez problemu wyłapuje rytm. Np. taki, jak na rysunku w załączniku....
Korzystając z najprostszego algorytmu i nie używając żadnych układów sekwencyjnych, żeby pomnożyć 2 liczby 4-ro bitowe, potrzebujesz 3 pełnych sumatorów 4-ro bitowych.
Macierze w ujęciu C++ to w sumie tablice 2 wymiarowe Dodawanie macierzy jest proste odpowiadające sobie pola dodajesz lub odejmujesz z mnożeniem też nie jest źle ale musisz znaleść algorytm gdyż po prostu go nie pamiętam.
No jasne że tak, jeżeli w swoim formacie Q stosujesz U2 to dla procesora nie ma znaczenia czy dodaje "zwykłe" liczby czy ze stałym przecinkiem. Na twoim miejscu zrobiłbym zamiast Q7 to Q6 i nie bawił z przenisieniem gdy wystąpi przepełninie. No i trzeba pamiętać że dodawać i odejmować można liczby w tym samym Q a przy dzieleniu i mnożeniu to już jest...
Mnożący to zwykły wzmacniacz o wzmocnieniu K - gdzie K ;Uwy = K* Uwe. K jest operatorem mnożenia przez stalą.
Witam, Potrzebuję zbudować mnożarkę dwóch wektorów o długości 512-bit każdy. Posiadam układ Spartan3E 500 dysponujący 20 mnozarkami 18x18 .Zrealizowałem mnożenie dwóch licz binarnych o długości 512 bit-ów - mnożenie wg. algorytmu "shift-add". W najgorszym wypadku mnożenie trwa 512 cykli zegara. Naturalnie architektóra ta została syntezowana do rejestrów...
Już kilka razy pisano Ci powyżej, że problem leży w tym, że wynik mnożenia dwóch liczb 16-bitowych na AVR ma 16 bitów, i że wystarczy napisać: suma+= (uint32_t) tab[indeks]*tab[indeks]; żeby iloczyn miał 32 bity, to po pierwsze. Po drugie - algorytm, który przyjąłeś, jest zabójczy dla 8-bitowego AVR. Co chwila zmieniasz założenia, a kompletnego kodu...
Podstawą jest Pełny 1 bitowy sumator (FullAdder): https://obrazki.elektroda.pl/3093507700_... Z niego można zbudować sumator wielobitowy łącząc w szeregu wiele jednostek: https://obrazki.elektroda.pl/5294488100_... W rzeczywistych układach stosuje się inne rozwiązania bo powyższy jest tym wolniejszy im więcej bitów...
tjanusz :arrow: znam troszke c# na tyle ile mi jest to potrzebne, ale w c# przecież można także wstawiać kod asemblera tworząc np. swoje własne algorytmy dzałań matematycznych. Pszepraszam, ale nie wiem co to znaczy " żródełko" gcc lub FreePascal i jak mogę do tego dotrzeć :arrow: elektryk dokładnie np. teraz pracuję nad potęgowaniem modulo metodą iterowanego...
...rozbiłem cyfrę na dwie części. Funkcje dodawania chyba jest. Dodałem najpierw nagłówki dwóch cyfr:) później resztę (po kropce) i podzieliłem przez 100 aby ewentualnie zasilić nagłówek. Nie masz traktować tej liczby jako dwóch części, po prostu dodajesz części ułamkowe do siebie a potem części całkowite + przeniesienie z części ułamkowej. Bo wpadłem...
Chyba doczytałeś tylko do pierwszego algorytmu na w/w stronie... :] Oczywiście mnożenie dwóch zmiennych 32 bitowych da Ci 64 bity wyniku, więc i mnożenie i dzielenie modulo musisz wykonywać na takich argumentach. Pozdrawiam, Dr.Vee
Tu jest taki dość "przyjazny" algorytm, bez dzielenia i mnożenia, ale potrzebne są instrukcje przesunięć logicznych, porównywania, oraz AND i OR http://www.cp.eng.chula.ac.th/~krerk/pub... Jest jeszcze coś takiego, myślę, że Ci będzie pasować. Liczy pierwiastek z 32 bitowej liczby naturalnej (n), wynik w root: root=0 for(N=15;...
Starszy półbajt mnożysz przez 10 i dodajesz do młodszego.
Witam, Wiadomo, że rdzeń M4 - to inny procesor, myśle, ze koledze "marcinlas" chodziło o porównanie nie koniecznie możliwości DSP. Rdzeń M3 nie posiada DSP - trudno tylko w tym go porównywać. Raczej chodziło o np. czasy dostępu do pamięci przy 168MHz, ogólnie szybkość komunikacji z peryferiami, no i zwykłe algorytmy: mnożenie dzielenie z przecinkiem...
Witam ! Mam pewien układ do stworzenia... Układ mnozacy 16x16bitów z wyświetlaniem na LEDach. Rozmiar specjalnie tak dobrano żeby nie wykorzystywać ROMu. Dodatkowo nie można używać mikroprocesorów jak i mikrokontrolerów. Dane powinny być wprowadzane za pomocą mikroprzełączników. Myślę, że jako algorytm trzeba by wykorzystać może mnożenie z przeniesieniem...
Nadal nie bardzo rozumiem w jaki sposób chcesz uzyskać potęgę systemy liczbowego, załóżmy 13, przy pozycji np. 999. Chcesz mnożyć 13 999 razy?
Masz wykonać 1 mnożenie, które Twój sprzęt umie zrobić, bo ma taki rozkaz. Zamiast tego robisz jakieś cuda. Po co? Przeanalizuj jeszcze raz w czym problem. Napisz dobry algorytm (wystarczy słowami, ale ma robić to co chcesz zawsze i przy pomocy tego co potrafi 51). Potem pójdzie jak z płatka Albert
Nie. Z definicji dzielenia wielomianów masz M(x)*x^n = Q(x)*G(x) + R(x), stąd zauważasz, że M(x)*x^n - R(x) = Q(x) * G(x), czyli wielomian podzielny przez G(x). Jako że St(R(x)) < n, to w wyniku operacji M(x)*x^n - R(x) zmieniają się tylko bity dodane do wiadomości przez operację mnożenia. Jeśli więc przetransmitujesz M(x)*x^n - R(x), to w odbiorniku...
Takie algorytmy (chociażby RSA) są dość silne, ale niestety okupione jest to dużym zapotrzebowaniem na pamięć programu i danych. Ja bym powiedział że większym problem jest ograniczona moc obliczeniowa mikroprocesora, musi działać na liczbach o bardzo dużej ilości bitów. O ile dla szyfrowania symetrycznego wystarczy użyć odpowiednio wielu zagnieżdżonych...
Generalnie można, ale nikt w ten sposób tego nie robi z powodu zbyt wolnej zbieżności szeregu, a co za tym idzie dużej ilości dodawań, mnożeń i DZIELEŃ. W praktyce korzysta się z algorytmu CORDIC lub z szeregów Czebyszewa lub innych szybkozbieżnych. A w niektórych zastosowaniach wystarczają tablice.
Od czasu do czasu stykam się z pojęciem urządzenia analogowe i cyfrowe. I chociaż definicję można odszukać w internecie nie jestem w stanie określić, które urządzenia są analogowe a które cyfrowe. Czy możecie podać jakiś prosty sposób na zaklasyfikowanie urządzenia do jednej bądź drugiej grupy? Problem polega na tym że świat jest analogowy, urządzenie...
Dzielenie jest łatwe w uproszczeniu, jeśli np. obie liczby mają jednakową ilość zer z prawej strony, to o tyle mozna je przesunąć w prawo. Ogólnie algorytm dzielenia jak liczb dziesiętnych w podstawówce. Mnożenie jest już w µkontrolerze i to nawet w postaci cząstkowej fmul .
Moim zdaniem znacznie szybsze i dokładniejsze będzie skorzystanie nawet z I rozwinięcia Taylora. Wcale bym się tablicami nie zajmował, gdyż zabiorą dużo pamięci, po której skakanie też może okazać się mało wydajne. Jedyne, co trzeba będzie zrobić, to badać zakres i dokonywać odpowiednich przekształceń (sin(90+x)=sin(90-x); sin(180+x)=-sin(x)). Zabójcza...
Bierzesz najmłodszy bit i mnożysz go przez 2 podniesione do potęgi odpowiadającej pozycji bitu od prawej (począwszy od 0). Potem kolejny na lewo bit, znów mnożysz jak wyżej i dodajesz do wyniku. Ot, cały algorytm.
Jeśli nawet się nie da, to są tam operacje kopiowania rejestrów 16<->32 bit, coś się powinno dopasować. Algorytm w poście wyżej uzupełniłem, zakłada że mnożenie i dzielenie działają na 32 bitach. Sprawdź i daj znać o wynikach :)
Uważasz, że rozrusznik zasilany z akumulatora nie uruchomi silnika ? Skąd taki wniosek? Jeśli przedstawię wykres napięcia i prądu, będą miały ten sam znak, nieważne czy dodatni, ale iloczyn będzie zawsze dodatni, a więc... . To samo wyjdzie w przypadku prądu przemiennego. Nie ma tu sprzeczności. Właśnie dlatego bronię Boczkowskiego, wg mnie jest dobrze...
A kto powiedział że nie można dzielić i mnożyć? Wszystko włącznie z całkowaniem i różniczkowaniem oraz wszelkimi operacjami macierzowymi jest możliwe, wszystko zalezy tylko od algorytmu. Do pomiaru prędkości i obrotów sugeruje zapoznać się z przykładowymi programami częstościomierza, bo w sumie chodzi o pomiar impulsów w jednostce czasu.
Zastosowałem lepszy filtr aktywny antyaliasingowy, oraz podałem na we całą sinusoidę - i dalej to samo.. Coś może z algorytmem tym nie tak.. No właśnie, jaki zastosowałeś filtr? Jaka częstotliwość odcięcia, rodzaj charakterystyki? Tak jak pisze krru, lepiej sobie odpowiednio daleko odsunąć f_3dB od twojego pasma użytecznego (żeby nie mieć zafalowań...
Taki kod nie powinien tyle zjadać. A ilość wejść też nie powinna mieć wpływu na długość kodu, przecież to (powinna być) procedura lub ciało pętli. Może kompilator dorzuca Ci jakieś niepotrzebne biblioteki, może używasz niepotrzebnie dzielenia lub mnożenia? Daj ten kod i namiary na użyte narzędzia i ich opcje jeśli możesz. Albert
To trochę śmieszne, że masz zamienić sygnał cyfrowy udający sygnał analogowy na sygnał cyfrowy, ale niech będzie ;) Punkty XY możesz traktować jako sygnał f(t) gdzie czas t to oś X wartość tej funkcji to twoje Y. Punkty otrzymujesz już z jakąś daną częstotliwością, czyli są już spróbkowane, ale w zadaniu zapewne chodzi o to aby jeszcze to spróbkować,...
zadeklarowales int tab tab[0][0]=a; tab[0][1]=0; tab[0][2]=0; tab[1][0]=0; tab[1][1]=b; tab[2][0]=0; tab[2][1]=0; tab[2][2]=1; Zastanos sie najpierw nad tym co robisz z pamiecia. nastepnie zacznij szukac problemow w algorytmach.
Pamiętaj, że funkcja _firFilterPut() implementuje bufor cykliczny. Wewnątrz struktury filtra zawsze będzie przechowywanych 'order' próbek. Ogólne użycie dla filtra 3 rzędu (pseudokod): _firFilterPut(ADC) _firFilterPut(ADC) _firFilterPut(ADC) for (i = 1..n) filteredsample usage: b = fir1(n, w Przeanalizuj działanie kodu i wypożycz z biblioteki jakąś...
Jest tak skonstruowany, że szybko wykonuje operacje mnożenia i dodawania, które są bardzo mocno wykorzystywane przy cyfrowym przetwarzaniu sygnałów, np FFT jest przykładem takiego algorytmu, który w większości przypadków nie wyrabiałby się na zwykłych procach, a na dsp jakoś chodzi. Oczywiście w dużym uproszczeniu.
Witam mam zrobić algorytm który z podanych 10 liczb ma podać mniejsze od 0. Oczywiście w programie ELI, siedziałem na tym dobre kilka godzin ale nie umie tego zrobić :( Dodawać odejmować mnożyć dzielić umie ale tego nie:( Proszę o pomoc:)
Zaczynasz wprowadzanie znaków od najstarszych pozycji, nie? Jeśli zaczniesz od 0, to będziesz miał (na starcie) liczba = 0 liczba = 0*2 + '0' - '0' // kody ascii objaśnił Łuk_F czyli liczba się nie zmieni, ciągle będzie wartość 0. Gdy trafisz na pierwszą jedynkę dostaniesz liczba = 0*2 + '1' - '0' czyli w liczbie pojawi się 1. Kolejna jedynka liczba...
Witam, Mam następujacy problem chcialbym zrealizować następującą funckję: Y = 440 - 0,014*X gdzie Y,X to liczby 2 bajtowe Czy ktoś ma jakiś pomysł jak jakimś prostym (mało zajmującym miejsca) algorytmem to zrobić? Ew. Jak sie wykonuje mnożenie i dzielenie 2 bajtowych liczb optymalnie? Chodzi o język asambler. z góry dziękuje
Wiesz, jak wykonuje się mnożenie pod kreską? Ten sam algorytm możesz śmiało zaimplementować w oparciu o tablice mnożąc absolutnie dowolnej wielkości liczby. Najszybciej chyba znajdziesz rozwiązania oparte o assemblera, ale żaden problem przenieść to na język wysokiego poziomu. Coś podobnego (choć oparte o kod BCD) znajdziesz np w [url=http://www.dzyszla.aplus.pl/program...
Może chcą Wam zrobić przedsmak 'tablic przejść' automatów, zwłaszcza asynchronicznych... Ale to zupełnie co innego. Jakieś nic tak naprawdę nikomu nie mówiące 'grafy', to tylko mieszają i więcej przyniosą złego, niż dobrego. Układy iteracyjne są układami czysto kombinacyjnymi, więc najlepiej opisują je tablice prawdy. A potem ich poprawna, antyhazardowa...
Czytaj komunikaty błędów. Dzielenie jest niesyntezowalne, chyba, że oba agrumenty są stałe, wówczas podzieli je kompilator i zostaną zaimplementowane jako stałą, lub jest realizowane jako dzielenie przez potęgi dwójki, czyli przesuwanie w prawo o odpowiednią ilość bitów. Jeśli chcesz zrealizować dzielenie w FPGA to musisz albo zaprojektować układ dzielący...
Czyli zapewne chodzi Ci o projekcję 3D->2D, a jest to rzecz banalna ;) Założenia są takie: środek układu współrzędnych, to środek ekranu. oś X w prawo, Y do gólry, Z od obserwatora do monitora. x2 = w*x3/z3 y2 = h*y3/z3 z dwójką - współrzędne 2D z trójką - współrzędne 3D wszystkie względem środka ekranu w i h - odpowiednio szerokość i wysokość ekranu...
No, to już można stwierdzić, że to nie jest CRC z wielomianu w arytmetyce modulo 2 - jak wziąłem wszystkie dane, i przeliczyłem, to na końcu było: 00000006 => 1502 (5DE) 00000005 => 0173 (0AD) 00000004 => 1895 (767) 00000003 => 1865 (749) 00000002 => 1831 (727) 00000001 => 1716 (6B4) Gdyby to było takie CRC z wartością początkową, to exclusive-or (operator...
A czego tu nie rozumieć ? Po prostu musisz sobie zrobić osobne procedury albo etykiety dla każdego rodzaju przeliczeń czyli osobną dla Mohm, Kohm ,Ohm . Następnie układasz algorytm np coś takiego. Wybór jednostki wejściowej Mohm Kohm Ohm i teraz wybierasz sobie rodzaj jednostki następnie z klawiatury zczytujesz wybór z menu i teraz musisz mieć wszystkie...
ponieważ 51 nie ma sprzętowego dzielenia liczb 16 bitowych więc kolega musi poszukać sobie algorytmu do dzielenia takowych liczb i ten algorytm sobie zaimplementować prosta sprawa jeśli nie uda się znaleźć to ja udostępnie ale uprzedzam jest po angielsku jak zresztą cała współczesna elektronikia (no poza drobnymi wyjątkami) :D
Najpierw przetestuj sobie algorytm kondycjonowanie+filtr+demodulacja w jakimś środowisku: Matlab/LabView, żebyś dokładnie wiedział jak ma działać. Demodulacja synchroniczna cyfrowo jest bardzo prosta w realizacji jeśli znasz częstotliwość nośnej (sprowadza się jedynie do mnożenia).
układ mnożenia tabliczka mnożenia algorytm obsługa algorytm naprawa
indesit wymiana termostatu sterownik centralnego pobór prądu zmywarka reset włączyć
FAAC 740 – programowanie pilota XT2, XT4, XR2-433, SLH, dodawanie pilota MASTER Krups Sensation EA910B10 Reset Steps: Soft, Factory, and Service-Level Procedures