Witam,
Mam mały problem czy w pakiecie DSP do Quartusa jest jakiś komponent do przesunięcia sygnału analogowego podanego na przetwornik A/C o 90 stopni ?? Nie wiem czy jest sens kupować ten pakiet do tego problemu. A może zna ktoś jakiś sposób na rozwiązanie problemu. Komponent musi działać od prawie 0 Hz do powiedzmy 100Hz
Nie do końca rozumiem problem, wydaje mi się że przesunięcie sygnału to zwykłe przesunięcie próbek. Nie rozumiem o chodzi z tym zakresem częstotliwości, bo jeśli chcesz mieć przesunięcie o 90* sygnału względem siebie to albo masz gwarancje że sygnał składa sie z jednej częstotliwości albo musisz określić co rozumiesz przez pojęcie przesunięcia o 90* sygnału składającego się z wielu sygnałów sinusoidalnych.
Coś mi świta że całkowanie powoduje przesunięcie o 90', może potrzebujesz poprostu filtr dolnoprzepustowy, niekoniecznie cyfrowy. Może napisz coś więcej, czy potrzebujesz praktyczne rozwiązanie czy akademickie. Może J.Akiś ekspert podpowie więcej w kwestii Quartus-a.
dobrze kolega prawi tylko że jeszcze dochodzi 'minus' ale to chyba nie problem.
∫sin(x)=-cos(x)+C , także sin(x)'=cos(x) jeśli mowa o sygnale składającym się z jednej częstotliwości. Niektóre filtry mają ciekawe charakterystyki , może taki wykorzystać- filtr Hilberta (-90stopni)m filtr rózniczkujący(90stopni).
dobrze kolega prawi tylko że jeszcze dochodzi 'minus' ale to chyba nie problem.
∫sin(x)=-cos(x)+C , także sin(x)'=cos(x)
Nie żebym się czepiał ale -cos(x)=sin(x-pi/2), więc chyba jest O.K.
dex wrote:
jeśli mowa o sygnale składającym się z jednej częstotliwości.
Nigdzie w tych wzorach nie widzę zależności od częstotliwości, więc przyznam że nie rozumiem dlaczego miałoby tak być akurat tylko dla jednej częstotliwości. Jeśli tak, to pytanie dla jakiej?
Nie wchodzę w zaczepki.. To co napisałem to proste wzory ze szkoły średniej które można znaleźć w każdych tablicach. Wynika z nich że można przesunąć fazę w 'lewo lub w prawo' całkując czy to rózniczkując. Każdy przekształci sobie to co mu pasuje.
Co do częstotliwości to się zastanów jak przy złozonym pasmowym,sygnale, będziesz analizował przesunięcie fazy.
Moim zdaniem układy całkujące i różniczkujące się nie nadadzą ze względu na swoją charakterystykę amplitudową. Ja bym się zainteresował transformatą i filtrem Hilberta. Filtr Hilberta posiada teoretycznie "płaską" charakterystykę amplitudową. Nie wiem niestety jak się go realizuje w praktyce - można policzyć splot. Charakterystyka fazowa może być płaska jednak tylko w pewnym zakresie.
Jeśli używasz Matlaba to taki cyfrowy filtr możesz sobie zaprojektować w fdatool i wygenerować kod VHDL za pomocą HDL Coder. Może jest prostszy sposób ale ja znam taki.
Hmm przeglądałem właśnie teorię o filtrze Hilberta i właśnie chodziło mi o coś takiego. Problem jest w tym że znalazłem gdzieś na jakiejś stronie że jest to filtr teoretycznie niesyntetyzowalny. Ciekawe co to znaczy Czy wie ktoś czy znajdę go w jakimś pakiecie (np. DSP do Quartusa) ? Ewentualnie czy to dobra droga opisana przez "Sosen21". Nigdy nie robiłem tego w ten sposób choć wydaje się ciekawy.
Idealnego filtru Hilberta nie zrealizujesz w praktyce. Da się jedynie zrobić taki filtr dla pewnego zakresu częstotliwości i odpowiedniego rzędu aby charakterystyka amplitudowa była w miarę płaska w zadanym zakresie. Bo po co Ci filtr idealny jeśli masz jakieś swoje, zadane próbkowanie, które jest sporo niższe od nieskończoności;) Wszystko możesz dobrać w Matlabie. Jeśli jednak jest prostszy sposób (gotowy komponent) to oczywiście warto spróbować. Pozdrawiam.
Właśnie o to mi chodzi. Mi potrzeba filtr Hilberta działający w zakresie powiedzmy 1Hz - 1kHz. Wie może ktoś czy jest on w jakimś pakiecie do jakiejś rodziny FPGA ?
Nigdzie w tych wzorach nie widzę zależności od częstotliwości, więc przyznam że nie rozumiem dlaczego miałoby tak być akurat tylko dla jednej częstotliwości. Jeśli tak, to pytanie dla jakiej?
A widzisz więcej niż jedną? We wzorach podane jest sin(x) i tyle, a nie ma sin(w1*t)+sin(w2*t) etc.
Zgodnie z transformatą Fouriera każdy sygnał niesinusoidalny można rozbić na harmoniczne, jeśli teraz każdą harmoniczną przesunąć o 90* i zrobić odwrotną transformatę to masz sygnał taki o jaki pytasz. Problem jest tylko jak to zrobić matematycznie na jakimś układzie cyfrowym, bo transformata FFT czy DFT to nie problem, przesunięcie o 90* też da się zrobić, ale wynikiem tego będzie charakterystyka przypominająca "grzebień". Te częstotliwości które będą dokładnie w prążka widma będą dokładnie przesunięte, inne mogą nie być dokładnie, albo w ogóle wycięte.
psiemek wrote:
Właśnie o to mi chodzi. Mi potrzeba filtr Hilberta działający w zakresie powiedzmy 1Hz - 1kHz. Wie może ktoś czy jest on w jakimś pakiecie do jakiejś rodziny FPGA ?
Ale filtr Hilberta to model abstrakcyjny, tam gdzie się go używa do modulacji stosuje się kompletne modulatory analogowe. A co do problemu, to musisz jeszcze określić o jaką "dokładność" przesunięcia chodzi. Wszystko ogranicza się do pasma w jakim ma układ działać, jeśli będzie bardzo wąskie to wystarczy próbkować sygnał (o częstotliwości Y Hz) z częstotliwością X Hz, a następnie opóźnić sygnał o X/(4*Y) próbek. Tyle że to będzie działać wyłącznie dla częstotliwość Y (oraz bliskich). Najlepiej to sobie przesymulować, np w Matlab.
W Matlabie można zaprojektować odpowiedni filtr (HDL Coder napisze go za nas w VHDLu lub Verilogu). Im wyższy rząd filtru tym bardziej płaska charakterystyka amplitudowa. Oczywiście można poddać taki filtr symulacji. Nie wiem jak obliczeniowo poradzi sobie FPGA z filtrem Hilberta wyższego rzędu (nie znam się) ale można spróbować. W załączniku kilka przykładowych charakterystyk amplitudowych (w funkcji unormowanej częstotliwości) dla filtrów rzędu 20, 50 i 100. Jak widać filtr rzędu 100 daje już całkiem przyzwoite rezultaty. Gdybym miał czas to sam bym się pobawił - to dla mnie ciekawy temat (FPGA+DSP).
Dzięki za informacje. Tyle że nadal nikt mi nie odpowiedział czy w którymś pakiecie jest ten filtr Hilberta. Jeżeli ma ktoś pakiet DSP do Quartusa to proszę o info czy tam jest taki klocek. Pomysł z Matlabem jest fajny ale na razie szukam prostszej metody o ile jest takowa.