Podsumuję: Sinus przyjmuje wartości -1 do 1 więc nic nie da tablicowanie tab tab_sin[n]=(int) (sin((double) (n/20*(2*M_PI))))... Problemem w tym przypadku jest wyrażenie n/20 gdzie n typu int Rózne kompilatory róznie to potraktują. W niektórych (chyba wiekszości) wynik bedzie takiego typu jak użyte...
Najprostsze rozwiązanie. Tworzysz w pamięci programu tablicę funkcji sinus (na 8 bitach). Tworzysz trzy wskażniki do danych w tablicy, przesunięte o 1/3 rozmiaru tablicy. Ze zmienną częstotliwością (zmienianą np. przerwaniem od timera) odczytujesz wartości z tablicy i wystawiasz na trzy porty. Zwiększasz wskaźniki. I to chyba cały algorytm
tutaj w dziedzinie czasu wyjdzie najprawdopodobniej przebieg, który jest sumą przebiegów typu eksponenta razy sinus i eksponenta razy cosinus zerknij w tablicę transformat Laplace'a i spróbuj przekształcić jakoś sensownie to napięcie, które ci wyszło
Witam Żeby dowiedzieć się jakie jest przesunięcie między prądem a napieciem sieci nie musisz wcale liczyć FFT. Proponuje następujące rozwiązanie (na przykładzie): 1. Jeśli znasz dokładną częstotliwość napięcia sieci, wygeneruj sobie tablicę sin[] i cos[], gdzie w sin[] powinna się znaleźć funkcja sinus o częstotliwości równej aktualnej częstotliwości...
Witam! Pozwolicie, że się wtrącę... jeśli chodzi o uniwersalną tablicę sinusów... cosinusów itp., to może da się to zrobić uniwersalnie, ale tylko na poziomie VHDL'a... tak jak napisałeś post wcześnie -> stworzyłeś funkcję, która tworzy układ kombinacyjny itp. W rzeczywistości musisz się zastanowić, na czym to będzie zaimplementowane... (o ile będzie...
z przerwaniami próbowałem ale działa to jeszcze gorzej, w zasadzie nic nie daje, potencjometr cyfrowy odpada ze względu na małą rozdzielczość, nie ma 12 bitowych, przerwania są tutaj nieuzasadnione, bo program jest tak mały, że w pętli głównej jest tylko kilka czynności które nie obciążają procesora więc niczego nie przyspieszą, tutaj spowalnia tylko...
Robisz tablicę sinusa. Wartości od -127 do 127 (kodowanie U2). Teraz uruchamiasz któryś Timer. W Timerze pobierasz wartość próbki z tablicy. Pobierasz z jakieś zmiennej wartość amplitudy. Mnożysz to. Wychodzi liczba ze znakiem (w kodzie U2). Przesuwasz to żeby uzyskać wartości dodatnie i wystawiasz na port. Amplitudę zmieniasz zmieniając tą zmienną...
Wiedza sprawdzona pazurami, klucz do telegrafii zrobiony na Atmega 8 C++ Atmel Studio 7 Potrzebny timer wyznaczający rytm próbkowania (9600/s do 20000/s) , i drugi zatrudnić do PWM (chyba że chip ma C/A), przerwania, te rzeczy. Naiwny kod w arduino trzeba sobie wybić z głowy 1. Arytmetyka sinusa jest wiele bardziej skomplikowana niż piły, prostokąta...
W najprymitywniejszych rozwiązaniach (gdzie na wyjściu mamy prostokąt) występuje 6 stanów włączenia/wyłączenia 6 kluczy tranzystorowych. Dokładnie w trojfazowym falowniku (nie biorę pod uwagę falowników wielopoziomowych) mamy 8 stanów, z tym że dwa stany to tzw. stany zerowe. Co do modulacji to przykładowo masz zapisaną w pamięci tablicę sinusa i pozniej...
Okres funkcji sinus to 2π z tego sinus dla 1/50 okresu to sin(2π/50) = sin(π/25) Dalej to przeliczasz wartość kąta z radianów na stopnie i sięgasz po tablicę albo możesz z kalkulatora naukowego skorzystać.
Witam Chcąc budować układ przetwornika cyfrowo-analogowego. Zbudowałem układ zaprezentowany na schemacie ideowym. https://obrazki.elektroda.pl/5046839200_... Wyjście przetwornika zostało podłączone dla napięcia 5V. Zaprogramowałem mikrokontroler AVR ATmegę 32 z zewnętrznym rezonatorem kwarcowym wynoszącym 11,0952 MHz. Wykorzystałem...
W pomiarach urządzeń audio stosuje się też: - metoda generator sinus - urządzenie - analizator Mierzy się na wybranej ilości częstotliwości: poziom i zniekształcenia zwykle częstotliwości są rozłożone np. co 1/3 oktawy (przy bardzo dokładnych np. co 1/12 oktawy) lub przemiata się całe pasmo akustyczne i wykreśla odpowiednią charakterystykę. Tu jeden...
Twoim sposobem dla 12-bitowego przetwornika będziesz potrzebował 2^12 * 1,5 = 6k pamięci (8k gdy nie będziesz upakowywał sampli). Dzięki symetrii fcji sinus możesz mieć tablicę tylko dla zakresu [0, pi/2], resztę sobie prosto policzysz w locie - to albo 4x mniej pamięci, albo dokładniejsze przybliżenie funkcji w tej samej ilości pamięci. Pozdrawiam,...
...niestety nie znam asemblera. Nie musisz znać. Jak przeczytasz uważnie i zrozumiesz zasadę, to sam napiszesz procedurę obsługi przerwania w C. Dla częstotliwości PWM rzędu kilkunastu kiloherców i zegara CPU 8MHz przerwanie występuje co ponad 500 taktów, więc nawet procedura napisana w C nie będzie za długa (myślę, że nie powinna przekroczyć 100 taktów)....
Żeby nie wprowadzić Cię w błąd to nie. Z matlabem miałem do czynienia jakieś 5 lat temu i składni nie pamiętam. Zbuduj tablicę z czasem i wartościami funkcji sinus od tego czasu przy określonej w, a następnie nadpisz ją za pomocą warunku do tej samej tablicy. Zakładając że masz już y=sin... mniej więcej tak : for k=1:length(y), if (y(k) >=0) y(k)=A,...
ale je chcę wykorzystać ten DAC w procku, nie zewnętrzny dlatego potrzebuję jakiś wzór matematyczny który mi to zrobi, wydaje mi się że mnożenie zwiększy amplitudę od zero w zwyż a nie w dwie strony, ja mam sinusa na poziomie 2,7V (środek) i jego minimum to 2V ponad zerem i maksimum 3,5V i potrzebuję zwiększać 3,5V i jednocześnie zmniejszać 2V Dodano...
Dr.Vee Stablicować mówisz, hmm jeżeli wystarczy pamięci będzie to dobry pomysł Taka dokładność to tylko 360 punktów na sin/cos, i 180 punktów na tg/ctg (wykorzystujesz symetrię i antysymetrię). Sinus prosto wynika z cosinusa, więc jedną tablicę możesz opuścić. No i rzeczywiście, zostaje jeszcze interpolacja... Pozdrawiam, Dr.Vee
Takie rzeczy robi się ogólnie w ten sposób: Masz tablicę tfun np. o długości N gdzie najlepiej jak jest potęgą 2 (upraszcza adresowanie). Tablica ta zawiera próbki jednego okresu generowanego przebiegu, np. sinus dla argumentu od <0 do 2*Π). Wartości kolejne tablicy liczysz z wzoru: tfun dla i=0...N-1 potem realizujesz w przerwaniach odczyt...
VCO to oscylator przestrajany napięciem. Jakie przebiegi to cudo ma generować ?. Sinuska, fale prostokątną czy coś innego ? Jaka maksymalna częstotliwość ?. To zadanko ze szkoły ( bo może da się zrobić lepsze rozwiązanie). Na szybko jak ja bym to zrobił - pod ADC podpiąć strojenie napięciem. Cyklicznie odczytywać wartość i umownie zamieniać ją na częstotliwość...
Ktoś z kolegów czytał dokument atmela na temat generacji tonów DTMF (AVR314)...? Wygenerować sinus nie jest tak trudno... Acha jeszcze warto zaglądnąć do działu DIY do tematu http://www.elektroda.pl/rtvforum/topic90... Ja robiłem to bazując właśnie na tych dwóch lekturach... Napisałem sobie prościutki programik na PC'ta który tworzy mi tablicę...
Chyba czegoś tu nie rozumiem. Początkowo chodziło mi o to, by uniknąć zakłóceń podczas odtwarzania przebiegów z tablicy, np. piły, na której bardzo dobrze to widać. Problem polegał na tym, że wartość kroku była inna niż wartość tablicy stąd powstawały te zakłócenia, widziane na oscyloskopie jako "drgające zbocza". Jak więc interpolacja ma pomóc mi...
Witam, mam problem z tablicowaniem funkcji sinus. Stworzyłem tablicę z krokiem 0,0061599855952741 (256 elementów dla 1. ćwiartki układu współrzędnych) i za pomocą 'IFów' chciałem zagospodarować całą rozpiętość sinusa dla φ od 0 do 2\pi i tu zaczynają się kłopoty: nie wychodzi mi :-p, tzn. wyniki sinusów nie pokrywają się z rzeczywistością. Może...
Ale ja mówię że działa. Wyświetla poprawne kolory. Nie ma żadnych bad pixeli. Wszystko jest na swoim miejscu. Nie wiem co masz na myśli. Wskaźnik wskazuje na tablicę Plasma_colors i nie wychodzi po za nią. Jeżeli sam fakt że Plasma_colors nie należy do obszaru przydzielonego wskaźnikowi uważasz za błąd no to mamy inne zdanie na ten temat i tyle. Przecież...
Witam. Trafiłem tu ze względnie podobnym problemem. Jeśli jeszcze ktoś śledzi temat byłbym wdzięczny za pomoc ;) Mianowicie co do: fm=(m*fp)/N gdzie: fm - Czestotliwośc m-tej próbki fp - częstotliwość próbkowania m - numer próbki N- całkowita ilośc próbek Próbuję to u mnie wykonać (Delphi). Mam tablicę z danymi już po FFT. Teraz chcąc każdej próbce...
Witam. Trafiłem tu ze względnie podobnym problemem. Jeśli jeszcze ktoś śledzi temat byłbym wdzięczny za pomoc ;) Mianowicie co do: fm=(m*fp)/N gdzie: fm - Czestotliwośc m-tej próbki fp - częstotliwość próbkowania m - numer próbki N- całkowita ilośc próbek Próbuję to u mnie wykonać (Delphi). Mam tablicę z danymi już po FFT. Teraz chcąc każdej próbce...
Jak ma być sinus to wzmacniacz w klasie D (np TPA3116) no i jakieś źródło sinusa np jakiś modulik mikrokontrolera z PWM i tablica sinusa względnie DAC R2R - do ogarnięcia - sinus będzie czystszy niż w sieci.
Dane sa zwizualizowane. To mam sobie je odczytać z tego obrazka? Wklej dane tutaj (tablicę). BTW dla sinusa jakiego Ty rozumiesz (wartości od 0-255) RMS jest różny od 255/sqrt(2).
Wielkość tablicy nie musi być potęgą dwójki, ale jeżeli jest, to znacznie ułatwia indeksowanie i przyspiesza pracę algorytmu wyliczającego wartości. To co potrzebujesz zamyka się w tych kilku linijkach wywoływanych cyklicznie przez kontroler DMA pracujący w trybie cyklicznym; w połowie transferu i po zakończeniu. Ta funkcja wypełnia połowę bufora DMA...
:arrow: pawelskot Wejdź na [url=http://www.myplace.nu/avr/minidds/i... AVR pages - MiniDDS, przeczytaj opis i ściągnij źródło w assemblerze. Znajdziesz w nim tablicę próbek dla przebiegu sinusoidalnego i piłokształtnego (a może jeszcze jakiegoś trzeciego - nie pamiętam). Robiłem generator sinusa na podstawie tych tablic i wychodzi bardzo...
Przykro mi, ale nie rozumiem co napisałeś. Co to są wartości naturalne? Wielokrotności 1 Hz? Jeżeli odwzorowanie sygnału jest bliskie 0, to znaczy, że ten sygnał został pominięty. Chyba nie o to chodzi :/ Widzę tutaj dziwne liczby jak na programowanie: 400 i 2PI. Coś tu chyba wymaga poprawy w algorytmie. Tablica o wielkości będącej potęgą liczby 2 jest...
Do sinusa tak czy siak musisz użyć tablicy.
Jeżeli mają to byc nieduże częstotliwości to polecam ATTiny15L, lub ATTiny26. Wykorzystujesz wtedy ich wewnętrzny PWM (pracuje > 100 KHz). Wpisujesz do Flasha tablicę wartości sinusa i co przerwanie podmieniasz wartości dla PWM'a. Dołączasz potem tylko filtr RC i generator gotowy ... Problemy: sygnał w miarę "przyzwoity" do max. 2kHz i niezbyt płynna...
Częstotliwość wyjściowa wynika z faktu, że odtworzenie jednego okresu z tablicy wymaga wykonania 240 kolejnych odczytów czyli, że: Fwy=Fprzerwań/240 {Rąbnąłem się w pierwszym poście :oops: } A ogólnie: Fwy:=Fprzerwań/N gdzie Fprzerwań - częstotliwość przerwań N - długość tablicy sinusa. Użyta metoda zmiany częstotliwości przerwań dla zmiany Fwy ma pewną...
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)
Co to znaczy analogowy? I używanie DDS do generacji tonu wygląda na prowokację Cyfrowe wersje nie tylko umiem, ale wykonywałem, a nawet dopieszczałem. Akurat na uniwersalnym uK z PWM przebieg sinusoidalny z 16 albo 32 próbek (×4 ćwiartki po odwróceniu). Tablicę sobie wygenerowałem metodami "naukowymi". :) Generalnie "radzę sobie". Tak na marginesie,...
Witam robię po prostu DFT dla interesujących mnie prążków mam rację? Co do tablicy cosinusa, mogę zamiast tablicy cosinusa używać przesuniętej o pi/2 tablicy sinusa.
8 najbardziej znaczących bitów akumulatora adresuje tablice sinusów (po przesunięciu otrzymuje zakres 0 - 255)
Mikrokontroler, tablica wartości dla sygnału sinusoidalnego i odpowiednia prędkość przełączania kolejnych wartości i ustawianie napięcia na wyjściu wg tych wartości. Najszybciej, najstabilniej, piękny sinus.
Przeczytaj tę instrukcję co podałeś (tam jest podana teoria). Dodajesz przebiegi sinusoidalne o tej samej częstotliwości i różnej fazie. A (sin (ωt)+sin(ωt+φ)) są w tablicach wzory na sumę sinusów, użyj ich. Woltomierz reaguje na wartość średnią wyprostowaną tego napięcia ale nie pokazuje fazy ( a -sin(φ)=sin(-φ) ) więc nie...
Gdzie tu się zmieniają parametry? Częstotliwość jest stała, amplituda jest stała. Spróbuj zrozumieć jak działa ta funkcja generująca po 512 próbek dla 16 (NoteMax = 16) różnych kanałów dźwiękowych na podstawie sampli w czasie rzeczywistym na STM32F746. Próbkowanie z częstotliwością 48 kHz. [syntax=c]void dds_generator(uint16_t len) { for(uint8_t NoteIndex=0;...
A przeglądałeś noty aplikacyjne Atmela jest kilka na ten temat. W tablicy sinusa dla oszczedności kodu można umieścić I ćwiartkę a resztę indeksować. Lepszy jest tu fast pwm zobacz np. w Atiny26. Pozdr. N
Według mnie taka pompka nie potrzebuje idealnego sinusa, sterowniki pieców CO regulują obroty wentylatorów (też silnik indukcyjny z kondensatorem) przy pomocy sterowania fazowego na triaku i przy tak małych mocach jakoś to działa. Kolega oczekuje że dla niego ktoś zaprojektuje przetwornicę i da schemat. Nawet gdyby tak było to od schematu bardzo daleka...
Witam potrzebuje do wykonania FFT na procesorze TMS320F2812 wrzucić do pamięci programu tablice sinusów zawierającą 512 liczb typu float, mój problem polega na tym jak to zrobić? Nie moge sie doszukać konkretnego polecenia... stąd prosze o pomoc forumowiczów.
Ze względu na symetrię okręgu wystarcza znajdywanie współrzędnych dla 1/8 (czyli 45°). Jedną z metod jest krótka tablica sinusa (kilka wartości) i niestety cosinusa (albo tylko jednego ale na 90°) - i potem interpolacja wielomianowa.
Policz np w Exelu, dodaj stosowne przesunięcia i zapisz jako tablicę do odczytu przez procka i wysyłanie na przetwornik. Nic tu więcej nie trzeba kombinować W załączniku stałe wartości dla rozdzielczości 8 bitów i 256 próbek na okres
No jeszcze jedno , w moim procku nie miesci się tablica o 820 pozycjach... chyba zostaje przeliczanie na żywo... stosuję ADUC842 z rdzeniem 8052 mieszczę jedynie tablicę z wyliczonym sinusem o 32 pozycjach i trochę zmiennych, już stosuję dwie inne tablice (z sinusami wzorcowymi) ale umieszczam je we flashu, co spowalnia mi sinusa. Chcę wygenerować sinusa...
Ładowanie do rejestru Z (indeks dla operacji LPM) adresu tablicy sinusa (bajtowej, dlatego to przesuwanie bitów). Poczytaj o organizacji pamięci w procesorach AVR to wszystko stanie się jasne. Zastanów się także co kompilator zrobi z tym: SINUS: .db (...) 254, 255, 256, 256, 256, 255, (...) Symulacja w AVR Studio Twoim przyjacielem.
Sekundę, od początku: Zrobiłem tablicę która posiadało 180 elementów - wartości sinusa od 0-180. Przerobiłem je tak by pokrywały się z wypełnieniem w PWM. Skonfigurowałem sobie dwa Timery - TIM2 był skonfigurowany jako przerwanie w którym inkrementowana była wartość od 0-360. W przedziale od 0-180 zapisuję do TIM1->CCR1 wartości z tablicy sinusa. Uruchomienie...
Najprościej to zrobić tablicę z wartościami sinusa. Pytanie tylko czy Arduino ma opcję generowania przerwania od PMWa (może być różnie, bo to PWM programowy).
Się to nazywa odwrotne zadanie kinematyki i dla takiego robota, który nie jest nadmiarowy jest dość proste. Zrób tablice sinusa w pamięci mikrokontrolera, wtedy odwołuj się do niej za pomocą indeksu, który będzie wartością kąta szukanego sinusa, zeżre to troche pamięci, ale jak się postarasz to uzyskasz tyle poziomów dyskretnych, że dokładnośc odczytywanego...
tablicę podświetlaną tablicę struktur tablicę rejestracyjną
volvo silnika maszyna singer szycia excel usuwanie danych
kościół wyświetlacz kościół wyświetlacz
Daewoo Lanos 2000 – lokalizacja wyłącznika krańcowego lampki bagażnika Wyłącznik nadprądowy Hager Legrand ABB – schemat podłączenia, kolejność faz, moment dokręcania