signaalspectrum na bemonstering

Moderators: jkien, Xilvo

Reageer
Gebruikersavatar
Berichten: 4.534

signaalspectrum na bemonstering

Bekend is dat onderbemonstering problemen oplevert bij signaalreconstructie.
Om dit voor mezelf een beetje helder te krijgen stel ik me zoiets als dit voor:
Een signaal opgebouwd uit 1kHz/10V en 1,8kHz/5V wordt gesampled (N samples) in een window van 5ms.
Teken het (na DFT/FFT) verkregen signaalspectrum (dus de betrouwbare-/valse-/spiegel- en herhaling componenten) tot en met de 16e harmonische voor N=8 ,N=16 en N=32
Ik heb wel een idee hierover maar of dat juist is..


Gebruikersavatar
Berichten: 4.534

Re: signaalspectrum na bemonstering

Pittig documentje :geek:
De spectrumresolutie (1e harmonische k=1) is 1/Twindow=200Hz
Dan verwacht ik onderstaand plaatje te zien op een spectrumanalyzer (Als ik het Samplingtheorema tenminste goed begrepen heb)
signaalspectrum na bemonstering.png
Minimaal N=32 geeft voor 1kHz/10V en 1,8kHz/5V een betrouwbaar (=eenduidig)spectrum tot 3200Hz (k=16)
N=4 geeft spiegelfrequenties en een herhalingspatroon.(geen betrouwbaar spectrum)tot 3200Hz (k=16)
N=8 geeft spiegelfrequenties.(geen betrouwbaar spectrum)tot 3200Hz (k=16)

ik heb in het document niet als zodanig herkend of vergis ik me nu?

Gebruikersavatar
Berichten: 7.463

Re: signaalspectrum na bemonstering

Is het de bedoeling dat je een analoog signaal met opzet té spaarzaam sampled en dan bekijkt wat je krijgt als je dat gesamplede signaal weer in een analoog signaal omzet? Dat zou je kunnen meten, bijvoorbeeld met een oscilloscoop. Maar ik verwacht niet dat je dan veel hogere frequenties zal aantreffen want digitale signaalbewerking is nu juist gebaseerd op het vantevoren en ook na afloop weer verwijderen van alle te hoge frequenties die met de gehanteerde samplefrequentie niet te behappen zijn. Storingen door het nemen van te weinig samples verschijnen dan ook als extra frequenties (binnen de frequentieband waarin het systeem werkt) die in het oorspronkelijke signaal niet aanwezig waren.

Gebruikersavatar
Berichten: 4.534

Re: signaalspectrum na bemonstering

Ja,opzettelijk.De bedoeling is te voorspellen welke (extra)frequentiecomponenten er nu eigenlijk bij onderbemonstering voorkomen in een bepaald frequentiegebied (in dit geval tot k=16=3200Hz) ten gevolge van Folding (=Aliasing) en herhaling van frequenties na k=N.
Aliasing kan eenvoudig worden voorkomen door een anti Aliasing filter (LDF) voor de sample and hold unit te plaatsen ,maar dat geeft meestal verlies van informatie.De juiste manier om informatieverlies te voorkomen is natuurlijk de samplingfrequentie minimaal 2xzo hoog te maken als de hoogst voorkomende signaalfrequentie (plus nog een beetje voor de tussenruimte om het signaal goed te kunnen reconstrueren). En zelfs als je voldoet aan het sampling theorema dan nog kunnen zijbandcomponenten van het sincspectrum ten gevolge van convolutie (bemonstering met een blokgolf) een signaalspectrum verstoren. Door de vorm van het samplewindow wat vloeiender te maken (smoothing) door windowing vooraf- of weighting achteraf,is deze verstoring te verminderen.Tevens wordt bij een geschikt window (en dat zijn er nog al wat),de detectie van dichtbij elkaar gelegen of zeer zwakke echosignaal componenten sterk verbeterd.(bijvoorbeeld Doppler frequentie)

Gebruikersavatar
Berichten: 4.534

Re: signaalspectrum na bemonstering

Enkele window spectra
Groen is het sincspectrum van een rectangular window (deze heeft wel de smalste hoofd lus, maar veel zijlussen die in amplitude maar relatief langzaam afnemen.
window spectra.png

Gebruikersavatar
Berichten: 7.463

Re: signaalspectrum na bemonstering

Wat er gebeurt bij onderbemonstering is dat er een frequentie wordt gereconstrueerd die niet in het oorspronkelijke signaal zat. Dat kan wanneer het oorspronkelijke signaal tussen twee samples behalve een deel van zijn eigen periode bovendien nog een of meer (laten we zeggen m) volledige eigen perioden doorloopt. Het systeem dat de reconstructie verzorgt kan die doorlopen volledige extra perioden dan niet zien (want daar is immers niet gesampled) zodat een verkeerde te lage frequentie wordt gereconstrueerd. Gegeven een samplefrequentie fs en een echte signaalfrequentie f > 1/2 fs kun je dan uitrekenen welke valse frequentie fv < 1/2 fs er in dat geval (bij die m) wordt gereconstrueerd.

Gebruikersavatar
Berichten: 4.534

Re: signaalspectrum na bemonstering

Stel het signaal f(t)=10sin(2Π500t+Π/3)+6cos(2Π1500t)-3sin(2Π3000t) wordt onderbemonsterd (N=8) in een window van 2ms. Het spectrum dat door DFT/FFT wordt verkregen t/m k=16 kun je volgens mij zelf tekenen door rekening te houden met spiegelfrequenties en herhaling van frequenties.
probeer maar eens..
spectrum bij onderbemonstering.png
spectrum bij onderbemonstering.png (2.39 KiB) 4426 keer bekeken

Gebruikersavatar
Berichten: 7.463

Re: signaalspectrum na bemonstering

Aliasing begrijp ik, maar van de DFT/FFT weet ik op het moment nog onvoldoende af om je daar mee te kunnen helpen. Voor het begrip van aliasing heb je de DFT/FFT ook niet nodig.

Gebruikersavatar
Berichten: 4.534

Re: signaalspectrum na bemonstering

Da's waar..
ik denk dat het spectrum van f(t)=10sin(2Π500t+Π/3)+6cos(2Π1500t)-3sin(2Π3000t)
voor N=8 en N=16 voor de harmonischen tot k=16 er uitziet als:
spectrum bij onderbemonstering.png
500Hz is de grondgolf of 1e harmonische (k=1)
Alle componenten op het interval k=0 t/m k=(N/2)-1 zijn betrouwbaar als er minimaal 24=16 samples genomen worden in een window van 2ms
Bij N=8 ontstaan er allerlei valse componenten.
Als in het signaal frequenties zitten die geen veelvoud zijn van de grondgolf,dan wordt de amplitude ervan verdeeld over de twee aan weerskanten gelegen harmonischen in het spectrum,ongewenst dus.in zo'n geval moet de windowtijd worden vergroot zodat er weer sprake is van een veelvoud van de 1e harmonische (grondgolf).

Berichten: 12.262

Re: signaalspectrum na bemonstering

ukster schreef: za 27 jul 2019, 15:30 Een signaal opgebouwd uit 1kHz/10V en 1,8kHz/5V wordt gesampled (N samples) in een window van 5ms.
Als je weet dat de gesampelde signalen uitsluitend tussen 1000 en 1800 Hz kunnen zijn heb je een samplerate nodig van 1600 Hz. Je zou kunnen denken dat het 2x1800=3600 Hz moet zijn, maar dat is niet het geval:

Je hebt 2x de -bandbreedte- nodig om alle informatie te verwerken, niet 2 keer de maximale frequentie.

Als je dit zou sampelen op 1600 Hz zo het onbewerkt wel valse signalen opleveren, maar die vallen dan buiten het 1000-1800 Hz gebied. Als je weet dat het gesampelde signaal in bandbreedte beperkt is tot dat gebied, weet je ook dat elk signaal dat buiten die frequenties valt vals is.

Bij audio of iets dergelijks sample je meestal gewoon vanaf DC tot de maximale frequentie die je wilt, met samplerates als 44.1 KHz voor muziek etc. Dat het stukje tussen DC en 20 Hz geen zinvolle informatie bevat maakt hier niet zoveel uit, het is een promille van je bandbreedte dus geen reden om moeite te doen om dat te besparen.

Bij andere toepassingen is het echter een heel ander verhaal: Denk aan software defined radio en dergelijke. Daar sample je bijvoorbeeld met 4 MHz maar rond een middelpunt van 450 MHz. Je weet dat je alleen signalen moet herkennen die tussen 449 en 451 MHz zitten, al het andere dat je mogelijk ook oppikt moet een alias zijn.

Gebruikersavatar
Berichten: 4.534

Re: signaalspectrum na bemonstering

Hmm..
Stel: Je wilt een signaalspectrum onderzoeken op uitsluitend betrouwbare- (dus geen valse) frequentiecomponenten t/m 63,98MHz met een resolutie van 20kHz.
Wat is dan de benodigde windowtijd, het minimaal aantal te nemen samples en de Samplerate?
Volgens mij:
Windowtijd Tw = 1/20kHz = 50μs
Hoogste betrouwbare harmonische component: kmax = (Nmin/2)-1 = 63980kHz/20kHz= 3199
(Nmin/2)-1=3199
Nmin/2=3200
Minimum aantal te nemen samples: Nmin=6400
Samplerate = Nmin/Tw =6400/50μs = 128MHz

en dat is net iets meer als 2 x de hoogste betrouwbare frequentiecomponent 63,98MHz

Berichten: 12.262

Re: signaalspectrum na bemonstering

Het idee dat je slechts een samplerate nodig hebt die 2x de bandbreedte (en dus niet maximale frequentie) van een signaal nodig hebt is wel op basis van een 'oneindig' aantal samples. Bij dingen als SDR en zelfs audio is dat een redelijke aanname - je neemt continu tienduizenden tot miljoenen samples per seconde.

Overigens is het wel een tamelijk theoretisch verhaal, vaak filtert men het signaal voor ADC om aliasing to voorkomen. Dat is in de praktijk gemakkelijker dan achteraf uitrekenen wat een echt sample en wat een alias is, al is dat theoretisch niet onmogelijk.

Bij radiofrequente signalen (zeg 500 MHz) oid gebruikt men meestal een een systeem dat het gewenste signaal mengt met een signaal daar vlakbij (bijvoorbeeld 498 MHz) en dan de lage kant van het mengsel bemonsterd. Die bemonstering is dan wel van zowel fase als amplitude, waardoor je allerlei modulatietechnieken kunt gebruiken en betrouwbaar kunt reconstrueren.

Dat klinkt (en is) allemaal behoorlijk complexe signaalverwerking, maar ook een massaproduct: Chipsets voor de ontvangst van DVB-T of DAB+ kosten hoogstens een paar euro, en die doen ook nog de demodulatie, decodering en rencodering naar een hdmi signaal voor dat geld.

Neemt niet weg dat je die chips ook voor andere dingen kunt gebruiken: die voor digitale radio en televisie over de ether kun je kopen als usb sticks, en die leveren een rauw signaal van 2 MHz bandbreedte met zowel frequentie als faseinformatie... voor pakweg 2 tientjes inclusief verzendkosten ;)

Reageer