Goto page 1, 2 Next
Greg(G.Kasprowicz)
Guest
Thu Jun 19, 2008 6:37 pm
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
https://gkasprow.web.cern.ch/gkasprow/temp/ADC_spectrum.png
Licze 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...
Mirek
Guest
Thu Jun 19, 2008 9:53 pm
Greg(G.Kasprowicz) wrote:
Quote:
Wrzuć plik z tymi próbkami, to może ktoś się pobawi i coś odkryje (taki
pomysł).
Mirek.
John Smith
Guest
Thu Jun 19, 2008 10:06 pm
Greg(G.Kasprowicz) wrote:
Quote:
Hej
mam taki dziwny problem.
[...]
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.
J.F.
Guest
Thu Jun 19, 2008 11:56 pm
On Thu, 19 Jun 2008 19:37:18 +0200, Greg(G.Kasprowicz) wrote:
Quote:
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
https://gkasprow.web.cern.ch/gkasprow/temp/ADC_spectrum.png
Licze widmo w ten sposob:
spectrum = 20*log(abs(fft( data(:,2) .* BLACKMAN(8192)))./5.1404e7);
plot(spectrum(1:4096))
a jaka czestotliwosc generatora/probkowania ?
Bo pierwsza sprawa - jesli okresow nie miesci sie dokladna
wielokrotnosc, to powinno poszerzyc prazek.
Quote:
Niezaleznie czy biore 1024, 2048 czy 8192 probek, poziom tla mam
ponizej -150dB, co jest niemozliwe dla takiego ADC.
W zasadzie mozliwe - Mirek dobrze pisze - szum jest rzedu -90dB, ale
w calym pasmie. Czyli we wszystkich probkach razem.
Quote:
czyzby udalo mi sie zbudowac taki superprecyzyjny zeby mial tak male
znieksztalcenia, iz nie widze 2 harmonicznej?
Nie chce mi sie wierzyc..
A w jaki sposob zbudowales ? Bo brak parzystych moze byc uzasadniony.
Gorzej z trzecia.
Quote:
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...
Zapomnieliscie usunac z programu testowego generowania sinusa ? :-)
J.
Greg(G.Kasprowicz)
Guest
Fri Jun 20, 2008 12:06 am
Quote:
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ę.
OK, ale to tylko zmienia w skali logarytmicznej polozenie 0dB
Quote:
Normalizacja amplitudy prążka widma ma sens jedynie w przypadku tzw.
widma koherentnego/synchronicznego (gdy nie ma przecieku widma).
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.
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):
http://www.zind.ikem.pwr.wroc.pl/tmp/elektronika/spectrum1.pdf
Wystaw gdzieś surowe dane.
plik jest tutaj:
https://gkasprow.web.cern.ch/gkasprow/temp/ADC_data.txt
dzieki za zainteresowanie
Greg(G.Kasprowicz)
Guest
Fri Jun 20, 2008 12:10 am
Quote:
spectrum = 20*log(abs(fft( data(:,2) .* BLACKMAN(8192)))./5.1404e7);
plot(spectrum(1:4096))
a jaka czestotliwosc generatora/probkowania ?
probkowanie to 75MHz/256
generator - ok 1kHz, nie mierzylem dokladnie.
Quote:
Bo pierwsza sprawa - jesli okresow nie miesci sie dokladna
wielokrotnosc, to powinno poszerzyc prazek.
Niezaleznie czy biore 1024, 2048 czy 8192 probek, poziom tla mam
ponizej -150dB, co jest niemozliwe dla takiego ADC.
W zasadzie mozliwe - Mirek dobrze pisze - szum jest rzedu -90dB, ale
w calym pasmie. Czyli we wszystkich probkach razem.
tyle ze w datasheetcie jest to ok -120dB
Quote:
czyzby udalo mi sie zbudowac taki superprecyzyjny zeby mial tak male
znieksztalcenia, iz nie widze 2 harmonicznej?
Nie chce mi sie wierzyc..
A w jaki sposob zbudowales ? Bo brak parzystych moze byc uzasadniony.
mostek Wiena + porstownik na wyjsciu, regulator PD i optorezystor do
regulacji wzmocnienia.
Quote:
Gorzej z trzecia.
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...
Zapomnieliscie usunac z programu testowego generowania sinusa ? :-)
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.
Greg(G.Kasprowicz)
Guest
Fri Jun 20, 2008 12:12 am
Quote:
Wrzuć plik z tymi próbkami, to może ktoś się pobawi i coś odkryje (taki
pomysł).
plik jest tutaj:
https://gkasprow.web.cern.ch/gkasprow/temp/ADC_data.txt
Guest
Fri Jun 20, 2008 12:53 am
John Smith <dam9723@buziaczek.pl> wrote:
Quote:
Greg(G.Kasprowicz) wrote:
Hej
mam taki dziwny problem.
[...]
Hej,
Uzyskanie takich wyników jest nawet teoretycznie niemożliwe (dla ADC 16bit)
z uwagi na szum kwantyzacji.
Możliwe, możliwe - szum kwantyzacji jest rozłożony w widmie.
Wyniki symulacji:
http://www.zind.ikem.pwr.wroc.pl/tmp/elektronika/spectrum1.pdf
Wykres niebieski sama kwantyzacja obliczona wg: floor(sin()*2^15)
Quote:
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.
Wykres czerwony to dodany szum gaussowski SNR=50 dB
Guest
Fri Jun 20, 2008 1:05 am
"Greg\(G.Kasprowicz\)" <Grzegorz.Kasprowicz_usunto_@cern.ch> wrote:
Quote:
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.
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).
Quote:
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.
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):
http://www.zind.ikem.pwr.wroc.pl/tmp/elektronika/spectrum1.pdf
Wystaw gdzieś surowe dane.
PAndy
Guest
Fri Jun 20, 2008 8:33 am
"Greg(G.Kasprowicz)" <Grzegorz.Kasprowicz_usunto_@CERN.CH> wrote in
message news:g3e5gf$6cp$1@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?)
Greg(G.Kasprowicz)
Guest
Fri Jun 20, 2008 9:29 am
Quote:
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?)
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.
Guest
Fri Jun 20, 2008 12:11 pm
J.F. <jfox_xnospamx@poczta.onet.pl> wrote:
Quote:
Bo pierwsza sprawa - jesli okresow nie miesci sie dokladna
wielokrotnosc, to powinno poszerzyc prazek.
Jest wystarczająco szeroki. Okno skutecznie go zwęża.
Quote:
Niezaleznie czy biore 1024, 2048 czy 8192 probek, poziom tla mam
ponizej -150dB, co jest niemozliwe dla takiego ADC.
W zasadzie mozliwe - Mirek dobrze pisze - szum jest rzedu -90dB, ale
w calym pasmie. Czyli we wszystkich probkach razem.
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.
Quote:
Zapomnieliscie usunac z programu testowego generowania sinusa ?
Dlatego napisałem - nie wiem co zmierzył
Guest
Fri Jun 20, 2008 2:41 pm
"Greg\(G.Kasprowicz\)" <Grzegorz.Kasprowicz_usunto_@cern.ch> wrote:
Quote:
spectrum = 20*log(abs(fft( data(:,2) .* BLACKMAN(8192)))./5.1404e7);
plot(spectrum(1:4096))
a jaka czestotliwosc generatora/probkowania ?
probkowanie to 75MHz/256
generator - ok 1kHz, nie mierzylem dokladnie.
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
Greg(G.Kasprowicz)
Guest
Fri Jun 20, 2008 8:32 pm
Quote:
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.
dzieki, zrobilem obliczenia przy uzyciu programiku napisanego w C i wyszlo
podobnie jak Tobie..
Okazuje sie ze to byl trefny kanal - chyba cos sie odlutowalo.
W sasiednich mam noise floor na poziomie -120dB i tak powinno byc.
Dzieki.
J.F.
Guest
Fri Jun 20, 2008 9:15 pm
On Fri, 20 Jun 2008 01:10:31 +0200, Greg(G.Kasprowicz) wrote:
Quote:
W zasadzie mozliwe - Mirek dobrze pisze - szum jest rzedu -90dB, ale
w calym pasmie. Czyli we wszystkich probkach razem.
tyle ze w datasheetcie jest to ok -120dB
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.
Quote:
A w jaki sposob zbudowales ? Bo brak parzystych moze byc uzasadniony.
mostek Wiena + porstownik na wyjsciu, regulator PD i optorezystor do
regulacji wzmocnienia.
Ale na czym wzmacniacz ? Bo symetria moze byc uzasadniona, petla widze
tez profesjonalna ..
J.
Goto page 1, 2 Next