Räkna ut frekvens i Excel

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
elshorto
Inlägg: 239
Blev medlem: 19 mars 2016, 22:26:08

Räkna ut frekvens i Excel

Inlägg av elshorto »

Jag har samplat en ”sinus” och vill veta hur frekvensen varierar över tid.
Jag tänker mig att man skulle kunna göra en sinus anpassning, hitta nollgenomgångarna och mäta tiden mellan.

Problemet är att jag inte har en aning om hur jag ska lösa det. Går det ens att lösa i Excel?

Skickar med lite data att jobba med.
En fullständig fil har 700000 samplingar och jag har en hel bunt att gå igenom.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
RDX*
EF Sponsor
Inlägg: 1652
Blev medlem: 28 maj 2003, 22:52:04
Ort: Skåne - Lund

Re: Räkna ut frekvens i Excel

Inlägg av RDX* »

En lösning skulle kunna vara att titta närmare på fft.
PS. Jag såg ingen tid i excel filen, men jag antar att den är känd.
Användarvisningsbild
RDX*
EF Sponsor
Inlägg: 1652
Blev medlem: 28 maj 2003, 22:52:04
Ort: Skåne - Lund

Re: Räkna ut frekvens i Excel

Inlägg av RDX* »

Vill du mäta något i realtid? Eller få frekvensen per fil, eller en frekvensen för ett svepande fönster?
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Räkna ut frekvens i Excel

Inlägg av lillahuset »

Vad är det du vill göra?
Det finns ju flera sätt att göra det men jag tror inte ett kalkylprogram är rätt lösning. De brukar fungera rätt dåligt för tekniska tillämpningar. Sväljer Excel 700000 sample?

Varierar frekvensen inom en fil? Om inte så är enklaste lösningen en FFT. Om den varierar måste du segmentera data, kanske med överlapp och göra en FFT för varje segment.

Om det är en SINUS och inte en "sinus" funkar det nog bra att räkna nollgenomgångar och kompensera för sista ofullständiga cykeln eftersom du vet kurvformen.
Om du samplar med en MYCKET högre frekvens än signalens högsta frekvens spelar inte kurvformen så stor roll eftersom du har många nollgenomgångar.
Om kraven på noggrannhet är låga så klarar du dig förmodligen med relativt låg samplingsfrekvens.

Mer info?
Nerre
Inlägg: 27302
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Räkna ut frekvens i Excel

Inlägg av Nerre »

Jag tror att en "flytande" FFT (ett fönster över en viss tid alltså) är den lösning som är enklast att genomföra, därmed inte sagt att den är direkt trivial.

Problemet här är ju frågeställningen, "Hur frekvensen varierar över tiden". Över vilken tid? Är det skillnaden mellan två efterföljande halvperioder som söks? Eller är det hur en signal runt 100 kHz varierar under 5 minuter?

Om man nu försöker ställa lite följdfrågor här:

Vad räknar du som "frekvensen"? Är det 1/tiden mellan två stigande nollgenomgångar? Eller är det antalet helperioder under en viss tidsperiod? Och i såna fall hur stor tidsperiod?

Inom vilket intervall ligger frekvensen? Hur fort kan den variera? Med vilken upplösning vill du kunna se variationerna?
Användarvisningsbild
swesysmgr
Inlägg: 15042
Blev medlem: 28 mars 2009, 06:56:43
Ort: Göteborg

Re: Räkna ut frekvens i Excel

Inlägg av swesysmgr »

lillahuset skrev:Vad är det du vill göra?
Det finns ju flera sätt att göra det men jag tror inte ett kalkylprogram är rätt lösning. De brukar fungera rätt dåligt för tekniska tillämpningar. Sväljer Excel 700000 sample?

Varierar frekvensen inom en fil? Om inte så är enklaste lösningen en FFT. Om den varierar måste du segmentera data, kanske med överlapp och göra en FFT för varje segment.

Om det är en SINUS och inte en "sinus" funkar det nog bra att räkna nollgenomgångar och kompensera för sista ofullständiga cykeln eftersom du vet kurvformen.
Om du samplar med en MYCKET högre frekvens än signalens högsta frekvens spelar inte kurvformen så stor roll eftersom du har många nollgenomgångar.
Om kraven på noggrannhet är låga så klarar du dig förmodligen med relativt låg samplingsfrekvens.

Mer info?
FFT finns inbyggt i Excel och antalet rader i x64 Excel är begränsat av din dators minne.

Exempel:
http://www.kpap.net/notes/item.php?id=FFTExcel

Det behövs som sagt lite mer info (tidsstämplar/samplingsintervall) än enbart de uppmätta värdena men det går bra med Excel och är inte särskilt svårt.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Räkna ut frekvens i Excel

Inlägg av lillahuset »

Jag hade en gång en chef som använde Excel till "allt". Har också haft en kund där Power point användes till nästan allt. En hantverkare jag anlitade använde hammaren till det mesta inklusive kapa brädor där det inte spelade någon roll hur det såg ut.

Med det sagt tror jag inte Excel är särskilt lämpligt till FFTer om man har datafiler med 700000 punkter. Visst, det går säkert men kan nog vara ganska plågsamt. :badgrin:
rikkitikkitavi
Inlägg: 16123
Blev medlem: 21 juni 2003, 21:26:56
Ort: Väster om Lund (0,67 mSv)

Re: Räkna ut frekvens i Excel

Inlägg av rikkitikkitavi »

swesysmgr skrev:
lillahuset skrev:Vad är det du vill göra?
Det finns ju flera sätt att göra det men jag tror inte ett kalkylprogram är rätt lösning. De brukar fungera rätt dåligt för tekniska tillämpningar. Sväljer Excel 700000 sample?

Varierar frekvensen inom en fil? Om inte så är enklaste lösningen en FFT. Om den varierar måste du segmentera data, kanske med överlapp och göra en FFT för varje segment.

Om det är en SINUS och inte en "sinus" funkar det nog bra att räkna nollgenomgångar och kompensera för sista ofullständiga cykeln eftersom du vet kurvformen.
Om du samplar med en MYCKET högre frekvens än signalens högsta frekvens spelar inte kurvformen så stor roll eftersom du har många nollgenomgångar.
Om kraven på noggrannhet är låga så klarar du dig förmodligen med relativt låg samplingsfrekvens.

Mer info?
FFT finns inbyggt i Excel och antalet rader i x64 Excel är begränsat av din dators minne.

Exempel:
http://www.kpap.net/notes/item.php?id=FFTExcel

Det behövs som sagt lite mer info (tidsstämplar/samplingsintervall) än enbart de uppmätta värdena men det går bra med Excel och är inte särskilt svårt.
Awesome. Har funderat på detta till en applikation för produktinsstöd, men då hade det involverat Matlab för dataanalysen
rikkitikkitavi
Inlägg: 16123
Blev medlem: 21 juni 2003, 21:26:56
Ort: Väster om Lund (0,67 mSv)

Re: Räkna ut frekvens i Excel

Inlägg av rikkitikkitavi »

lillahuset skrev:Jag hade en gång en chef som använde Excel till "allt". Har också haft en kund där Power point användes till nästan allt. En hantverkare jag anlitade använde hammaren till det mesta inklusive kapa brädor där det inte spelade någon roll hur det såg ut.

Med det sagt tror jag inte Excel är särskilt lämpligt till FFTer om man har datafiler med 700000 punkter. Visst, det går säkert men kan nog vara ganska plågsamt. :badgrin:
Du underskattar modrna datorers beräkningskapacitet. Och överskattar Matlabs exekveringshastighet.
Överlag är inte 700 ksmpls FFT kul på något system utom dedikerade signalanalyssystem


Excel är bra till mycket utom datavisualisering. Där suger det elefantk-k.
Användarvisningsbild
rvl
Inlägg: 7031
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: Räkna ut frekvens i Excel

Inlägg av rvl »

Excel är användbart till allt möjligt. :D http://hackaday.com/2014/10/24/using-ex ... s-at-work/

On topic kan jag inte säga så mycket, men antagligen blir det bra med nån form glidande fönster (med lämplig mjuk fönsterfunktion nånstans mellan boxcar och Blackman-Harris) och FFT, eller kanske DFT om det rör sig om nåt begränsat frekvensintervall.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Räkna ut frekvens i Excel

Inlägg av lillahuset »

rikkitikkitavi: C är väl ett trevligt språk. :) Men det är klart, det hjälper ju om man har en hyfsad verktygslåda. Står man på ruta ett kan det vara lite tungt.
xxargs
Inlägg: 10189
Blev medlem: 23 september 2006, 14:28:27
Ort: Södertälje

Re: Räkna ut frekvens i Excel

Inlägg av xxargs »

FFT har också sina begränsningar - tex. hur stor är frekvensvariationen - "frekvenupplösningen" är 1/antal sampel i FFT-upplösningen och blir inte så bra om man baserar det på fönster med 64 sampel och kör man på 65536 sampel så blir peaken suddig och utsmetad om frekvensen varierar under sampel-fönstret, blir också utsmetad om frekvensen inte går jämt upp med antal sampel i fönstret och man får två spetsar med lägre amplitud istället för en med högre amplitud samt 'kjolar' med 'falsk' signalenergi på frekvenser runt omkring de högsta spetsarna om inte samplen i början och slutet av sampelfönstret ligger precis på 0 ( värde skilt från noll ger en dirac-puls som smetar ut sig på samtliga frekvenskomponenter i FFT-fönstret) och det är därför man provar med olika fönsterfunktioner för att undertrycka dessa med förstås olika påverkan (Hamming, Hanning raised cosinus etc.) och beroende på vad man vill visa.

Där kanske man skall snarare simulera olika detektionsmetoder och tex. mixa (multiplicera) inkommande signal med en referens-sinus i mitten av frekvensområdet av det tänkta sinusfrekvensen och på utgången ser man då skillnadsfrekvensen mellan inkommande signal och referens-sinus (kort sagt en enkel radiomottagare) och frekvensen är 0 om inkommande frekvensen och referensoscillatorn är precis lika, men har en 'beat-ton' om det avviker det minsta lilla - nackdelen är dock att man inte kan avgöra om inkommande frekvens ligger över eller under referensfrekvensen - bara att det skiljer.

Kör man med 0/90 graders fasskillnad referens oscillator och två parallella multiplikationer av inkommande signal så får man ut en vektor som vandrar plus eller minus antal grader gentemot referensfrekvensen beroende på frekvens-avvikelsen och här kan man nu avgöra om frekvensen är lägre eller högre än referensoscillatorn beroende på vinkeländringen är positiv eller negativ mellan varje sampling och det fina är att man ser tendensen på varje sampel och inte bara vid mätning på nollgenomgångarna.

Själv skulle jag nog hacka detta i C/C++/python etc. och som stöder komplexa tal som datatyper då värdet från de två multiplikatorerna kan stoppas in som komplex tal och sedan kan presenteras som en punkt med x och y värde (kartetisk presentation och plottas ut i tex. konstellationsdiagram ) eller som vektor i form av belopp och vinkel och sedan jämför man varje sampel mellan föregående och nästa tex. om det går plus eller minus ett antal grader mellan varje sampel.

till detta får man vara beredd på att stoppa in olika filter om signalen är mycket störd eller brusig och detta är också en hel värld att studera och välja ut rätt filter då dessa också påverkar signalen både fas och amplitudmässigt.
Senast redigerad av xxargs 20 augusti 2016, 14:25:17, redigerad totalt 1 gång.
Användarvisningsbild
elshorto
Inlägg: 239
Blev medlem: 19 mars 2016, 22:26:08

Re: Räkna ut frekvens i Excel

Inlägg av elshorto »

Samplingshastighet: 200kSPS kan tyvärr inte sampla fortare.
Frekvensen varierar antagligen +/-50%
Behöver inte vara i realtid.
Jag vill mäta frekvensen för varje period och göra en graf med frekvens på y-axeln och tid på x-axeln. Att dela upp kurvan i små avsnitt/fönster skulle också kunna fungera.
Totala tiden är 700000 sample / 200000 sample per sekund = 3,5 sekunder.
FFT på segment skulle kunna vara ett alternativ.
"sinus" skrev jag för att frekvensen varierar något, alla nollgenomgångar är med.

Tycker Excel hanterar 700000 sample helt OK.
Kan inte Matlab och har ingen lust att köpa en licens.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Räkna ut frekvens i Excel

Inlägg av lillahuset »

Och frekvensen är ungefär? Är signalen en SINUS eller en "sinus"?
Användarvisningsbild
elshorto
Inlägg: 239
Blev medlem: 19 mars 2016, 22:26:08

Re: Räkna ut frekvens i Excel

Inlägg av elshorto »

Lillahuset: du behöver inte vara rädd för att öppna filen jag bifogade, den innehåller bara på 1000 punkter. ca 15 kHz.

Såhär ser 100 punkter ut i ett Exceldiagram. Men är det en riktig sinus? :?
Enligt många är det nog en sinus, enligt matematiknördar är det inte en sinus.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Skriv svar