co robie zle??

Hej mam taki dziwny problem. Zbudowalem karte pomiarowa 36x ADC 16 bit, 250kHz (AD7656), rownoczesne probkowanie i przetwarzanie we wszystkich kanalach. No i zaczalem jej testy. Zbudowalem generator na mostku Wiena, zebralem SignalTapem 8192 probek, wrzucilem do Matlaba no i jaja.. tutaj jest wynik FFT

formatting link
widmo w ten sposob:

spectrum = 20*log(abs(fft( data(:,2) .* BLACKMAN(8192)))./5.1404e7); plot(spectrum(1:4096))

wektor danych ma 2 kolumny - index oraz dane, dlatego uzywam: data(:,2) mnoze go przez okno Blackman'a. W przypadku okien hanninga otrzymuje podobny poziom tla. Bez okna mam listki boczne, ale poziom tla jest podobny. Ta liczba: 5.1404e7 jest poziomem 1 prazka, dziele cale widmo w celu znormalizowania do 0dB. Ale to bez znaczenia, chodzi tylko by sie od 0 dB zaczynalo. Niezaleznie czy biore 1024, 2048 czy 8192 probek, poziom tla mam ponizej -150dB, co jest niemozliwe dla takiego ADC. Do tego ten generator.. czyzby udalo mi sie zbudowac taki superprecyzyjny zeby mial tak male znieksztalcenia, iz nie widze 2 harmonicznej? Nie chce mi sie wierzyc..

Oczywiscie uzycie okna redukuje energie sygnalu, w przypadku Blackmann'a jest to 0.55x, ale tutaj chodzi raczej o rzedy wielkosci. Przetwornik jest poprzedzony wzmacniacem instrumentancyjnym i filtrem RC

80kHz 2-giego rzedu.

Zapewne robie cos glupiego, ale patrzymy z kumplem i kombinujemy i jak na razie bez pomyslow...

Reply to
Greg(G.Kasprowicz
Loading thread data ...

Wrzuć plik z tymi próbkami, to może ktoś się pobawi i coś odkryje (taki pomysł).

Mirek.

Reply to
Mirek

[...]

Hej, Uzyskanie takich wyników jest nawet teoretycznie niemożliwe (dla ADC 16bit) z uwagi na szum kwantyzacji. W pdf-e na stronie 14 masz przebiegi odniesienia i takie można w praktyce uzyskać. Błąd może tkwić w przeskalowaniu, nie znam Matlab-a na tyle aby pomóc.

Warto też zwrócic uwagę, że "podłoga" jest płaska, zbyt płaska. Trzeba wrócic do podstaw, wyświetlic przebieg z funkcji czasu, obliczenia uruchomić na przebiegach wygenerowanych a nie policzonych. K.

Reply to
John Smith

Możliwe, możliwe - szum kwantyzacji jest rozłożony w widmie.

Wyniki symulacji:

formatting link
Wykres niebieski sama kwantyzacja obliczona wg: floor(sin()*2^15)

Wykres czerwony to dodany szum gaussowski SNR=50 dB

Reply to
pisz_na.mirek

Tak się nigdy nie robi - bo to bez sensu i może mylić gdy porównujesz pomiary dla różnych częstotliwości sygnału. Normalizuje się moc/energię.

Normalizacja amplitudy prążka widma ma sens jedynie w przypadku tzw. widma koherentnego/synchronicznego (gdy nie ma przecieku widma).

Co zmierzyłeś to nie wiem ;)

Ale wg moich symulacji (też blackman ale w octave;) masz SNR ~ 50dB, interpretacja widma to nie taka bułka z masłem.

To wynik symulacji kwatyzacja 16-bit sinus full zakres (niebieski) + szum SNR=50dB (czerwony):

formatting link
Wystaw gdzieś surowe dane.

Reply to
pisz_na.mirek

a jaka czestotliwosc generatora/probkowania ?

Bo pierwsza sprawa - jesli okresow nie miesci sie dokladna wielokrotnosc, to powinno poszerzyc prazek.

W zasadzie mozliwe - Mirek dobrze pisze - szum jest rzedu -90dB, ale w calym pasmie. Czyli we wszystkich probkach razem.

A w jaki sposob zbudowales ? Bo brak parzystych moze byc uzasadniony.

Gorzej z trzecia.

Zapomnieliscie usunac z programu testowego generowania sinusa ? :-)

J.

Reply to
J.F.
Reply to
Greg(G.Kasprowicz

probkowanie to 75MHz/256 generator - ok 1kHz, nie mierzylem dokladnie.

tyle ze w datasheetcie jest to ok -120dB

mostek Wiena + porstownik na wyjsciu, regulator PD i optorezystor do regulacji wzmocnienia.

to byloby dobre:) Aczkolwiek nie mam programu testowego... czysty hardware, lacznie z odczytem ADC. Wyjscie ADC czytam SignalTapem, dane importuje bezposrednio do Matlaba. Co ciekawe, inne kanaly przetowrnika widza 2 i 3 harmoniczna sygnalu, tylko ten jeden, "trefny" jej nie widzi. w 2 losowo wybranych 2 harmoniczna jest na poziomie - 86 dB o ile dobrze kojarze.

Reply to
Greg(G.Kasprowicz
Reply to
Greg(G.Kasprowicz

"Greg(G.Kasprowicz)" <Grzegorz.Kasprowicz_usunto snipped-for-privacy@CERN.CH wrote in message news:g3e5gf$6cp$ snipped-for-privacy@inews.gazeta.pl...

Hmmm - mi to wyglada jakbyscie gdzies przyjeli zla skale i rozciagneli o

2, wszystko pokazuje ze noise floor jest na poziomie 70 paru dB i to patrzac na amplitude probek ma to rece i nogi (blad w algorytmie - zle skalowanie?)
Reply to
PAndy

na to wyglada ze chodzi o wspolczynnik 2.. zebralem probki z innego kanalu i wychodzi noise floor na -260dB!!! co juz jest totalna bzdura. Jesli przyjme do obliczen 10log to wyglada jak w datasheet'cie. Ale chcialbym zrozumic dlaczego Mtlab tak mi to liczy.

Reply to
Greg(G.Kasprowicz

Jest wystarczająco szeroki. Okno skutecznie go zwęża.

Szacunek SNR na podstawie danych czasowych Grega: 47dB Obliczony wg:

w=abs(fft( X .* BLACKMAN(8192)); ps=sum(w(130:150).^2); pc=sum(w(1:end/2).^2); snr=10*log10(ps/(pc-ps)) Greg błędnie przy wyznaczaniu widma użył funkcji log zamiast log10. log w matlabie to logarytm naturalny.

Dlatego napisałem - nie wiem co zmierzył ;)

Reply to
pisz_na.mirek

Mnie wyszło (dla tego fs), że sygnał ma 4973.7 Hz (odchylenie std 0.5Hz) z wyjątkiem ...

... no właśnie - w przebiegu masz 6 chwil czasowych (widać je ładnie na wykresie plot(diff(X))), w których są duże zakłócenia impulsowe (sieją po całym paśmmie) i one sporo zaniżają SNR.

Jak weźmiesz fragment przebiegu y=x(2500+(1:2*1024)); to na widmie ładnie widać 2 i 3 harmoniczną oraz coś przy 60 kHz

Reply to
pisz_na.mirek
Reply to
Greg(G.Kasprowicz

Oni chyba znow cos naciagneli - 16 bitowy przetwornik ma sumarycznie ~90dB. No i w dataszicie podobna liczba pada.

Natomiast spectrum .. to juz chyba zalezy na ile probek rozciagneli.

Ale na czym wzmacniacz ? Bo symetria moze byc uzasadniona, petla widze tez profesjonalna ..

J.

Reply to
J.F.

Tutaj:

formatting link
na stronie 2.42 dół strony od akapitu zaczynającego się od "Figure 2.44 shows the FFT output for an ideal 12-bit ADC" jest przedstawiony sposób liczenia noise floor dla przetwornika idealnego. Po podstawieniu do odpowiednich wzorów, N=16 bit i M=4096 punktów FFT otrzymuję: RMS QUANTIZATION NOISE LEVEL = 98.08dB zaś FFT NOISE FLOOR = 98.08 + 33.11 = 131.19dB a to jest znacznie odległe od uzyskanych przez Ciebie 300dB. Za chiny ludowe nie chce wyjść inaczej. Może robię coś źle? K.

Reply to
John Smith

On Fri, 20 Jun 2008 11:41:02 +0000 (UTC),

I tak na oko odbiegaja o blisko 4096 i 8192.

Ciekawe .. przeklamuje transmisja cyfrowa, czy czasem przetwornikowi przeklamuje SAR ?

A tak swoja droga - usiluje dopasowac sinusoide ... i nie wychodzi :-(

0.1064546 rad/probke [ 4235,69 Hz przy 250ksps]. Najlepiej pasujaca amplituda - 30502

A jednak roznica siega ok 50 i jest pierwsza harmoniczna [zmodulowana kolejna sinusoida].

No i nie wiem - nie trafilem z czestotliwoscia, czy amplituda minimalnie plywa ?

Ale zawartosc harmonicznych i tak swietna.

J.

Reply to
J.F.

Greg pisał, że fs = 75MHz/256 ~ 292.97 kHz - czyli masz 4963.7 Hz

Przesadzasz ;) 20*log10(50/30502) = -55.70 dB

A to moje próby estymacji:

1) funkcja expfit (Prony) z octave:

f=0.1064541 rad/probke A=30534.14 amplituda różnica przekracza 33, ale rms różnicy to tylko SNR=63.740 dB (w odniesieniu do rms sygnału)

A Prony jak to Prony ;) w takim sygnale nic więcej nie znajdzie.

2) mój faworyt - metoda pęku macierzowego Sarkar, a konkretnie to implementacja:
formatting link
2a) Dla standardowych ustawień (tol=1e-3):

f=0.10645458 rad/probke A=30521.52 SNR=65.370 dB, max różnica 21.4

2b) dla tol=1e-5 mpencil znalazł 2 i 3 harmoniczną oraz wspomniane zakłocenie 60kHz, ale także jakieś fluktuacje f1 (nie wiem czy to błędy numeryki czy własność sygnału ;)

SNR=84.303 dB, max różnica 4.48

dB Hz rad/sample -59.52220 0.00000 0.00000 -81.22014 4.89945 0.10508 0.00029 4.96370 0.10645 -99.80767 5.20857 0.11171 -84.77337 9.93031 0.21297 -86.62847 14.89060 0.31935 -92.12940 60.04270 1.28771

Wszystko możliwe

Potwierdzam

Reply to
pisz_na.mirek

Dziękuję za śliczny link, jak znajdę czas to odpowiem na twoje obserwacje.

Reply to
pisz_na.mirek

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.