Nödvändig bandbredd för FSK?

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 8413
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: Nödvändig bandbredd för FSK?

Inlägg av AndersG »

Och som svar på den initiala frågan hittade jag detta:
As shown in Figure 10, it can be seen that virtually
all the energy in the mark and space tones is within a bandwidth equal to twice the baud
rate, centered about the mark and space frequencies,
Bandbredd.png
370Hz, fast det kanske är överspelat om jag löser det med DSP. Exemplet antar 1kHz IF. En 18-seriens PIC kan digitalisera 12 bitar under 3us.

Edit: Hittade detta verktyg för att beräkna filter.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 8413
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: Nödvändig bandbredd för FSK?

Inlägg av AndersG »

OK. "DSP Filters for Dummies" - Har jag fattat detta rätt?

Grunden är att man digitaliserar signalen i diskreta samples och stoppar i en (ring)buffer. För att få utsignalen Y multiplicerar invärdet X med en konstant A, det föregående invärdet med en annan konstant etc.

Eller Y[n] = X[n] * A0 + X[n-1] * A1 + X[n-2] * A2 + X[n-3] * A3....

Hur många samples bak man behöver bestäms av hur brant man vill att filtret skall vara. 2-pol behöver två samples, 4-pol fyra samples etc. I pratktiken tar man flera, kanske 32?

Typen av filter och dess karakteristika bestäms helt av konstanterna?

Edit: Den valda mellanfrekvensen... Begränsningen är väl bara att den skall rymma all info i insignalen. I så fall kan jag välja den så låg som 100bps * 10 = 1kHz?
guckrum
Inlägg: 1671
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Nödvändig bandbredd för FSK?

Inlägg av guckrum »

Du är helt rätt på det där med DSP! Det du korrekt beskriver är ett FIR (Finite Impulse Response) filter, och karakteristiken bestäms helt av dina A-värden. Dessa filter är alltid stabila, och om de är symmetriska från mitt-tappen har de dessutom linjär fas.
Den andra varianten är IIR (Infinite Impulse Response), och där låter man gamla y-värden ingå i utsignalen, tex Y[n] = 0.9*Y[n-1]. Dessa kan vara instabila.

Jag tänkte återkomma med lite mera info om avkodningsdetaljer, och funderar på referenser.
Så, om jag kör 1kHz IF så borde det räcka om jag samplar med 2kHz (Nyqvist). Vad behöver jag då för CPU-kraft för att förvekliga filtren?
Detta är antagligen helt klart, men av tydlighetsskäl då. Om 1kHz är centerfrekvensen så måste du få med hela den högra sidan också. Din bild säger 1185Hz, så sampla minst i 2370Hz. Det är bra att ha filter så att man inte har effekt över halva samplingsfrekvensen, för den kommer ju att vikas in i din signal, så eventuellt vill du ha lite utrymmer för dina analoga filter också. Eller sampla 2kHz och lägg IF-en lite lägre. Att sampla lägre än 2kHz går nog, men det är antagligen inte värt det.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 8413
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: Nödvändig bandbredd för FSK?

Inlägg av AndersG »

Ja, du har rätt. Tack för påpekandet. Som jag förstod dokumentet tidigare så borde en matchat-filter detektor vara bättre ur störningshänseende än en kvadraturdito, men om jag sätter samplingsfrekvensen till 4x så kan jag ju köra vilken som i mjukvara?

Om jag kikas på "Matched Mark"
MatchedMark.png
Så skulle det bli något i stil med:
Hämta in en sample
Kör beräkningen för mark-filtret, resultat i M
Kör beräkningen för space-filtret, resultat i S
Om M>S har vi mark, annars space

Eller borde jag behandla M och S på något sätt, exempelvis summera över n samples?

Det borde gå att göra på en PIC24 tex. Microchip har ett exempel för PIC18 (AN852), men det är PIC18. PIC24 har halva instruktionstiden och dessutom en 17-bits multiplikator i hårdvara. Dessutom flexiblare indirekt adressering.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 8413
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: Nödvändig bandbredd för FSK?

Inlägg av AndersG »

OK. Dagens bulletin 1520UT från Tallinn:

Kod: Markera allt

ZCZC UA40
151230 UTC AUG
FINNISH NAV WARN 129/17
SEA OF ALAND
LIGHTHOUSE MRKET NR 6106
POS 60-18.058 N 019-07.886 E
IS UNLIT
NNNN


ZCZC UA38
121650 UTC AUG
SEA OF LAND. UNDERSTEN.
R/V 'ELECTRA AF ASK' / SBUE IS CONDUCTING SURVEYS AND BOTTOM
SAMPLING IN THE 
AREA OUTSIDE 'UNDERSTEN' FROM AUG 13 TO AUG 16 IN AN AREA BOUND
BY:
60-23.9N 018-52.6E
60-23.4N 019-09.2E
60-13.0N 019-05.6E
60-13.4N 018-54.5E
THE VESSEL WILL AT TIMES HAVE HEAVY EQPMT DEPLOYED AND 
BE UNABLE TO MOVE.
WIDE BERTH REQUESTED.
THE VESSEL CAN BE CONTACTED ON TEL: +46 (0)73 707 88 10 OR 
ON VHF CH. 72 AND 16.
NNNN


ZCZC UA37
111315 UTC AUGVST_MMMKY
M_ZBT C__GHCO&+'8 8_._/(2'/14-15 AUG 17
UNDERWATER WORKS
CENTERED 59-47.3N 024-58.9E
ZONE RADIUS 0,5 NM
STANDING BY VHF CH 16, 61
NNNN


ZCZC UA36
111042 UTC AUG
PETERSBURG NAV WARN 239/17
EASTERN GULF OF FINLAND
SHIPS EXERCISES 15 THRU 19 AUG 0200 TO 1400 UTC
IN AREA 
60-00.5N 027-16.5E 
60-05.4N 027-34.0E
59-53.0N 027-48.0E 
59-48.0N 027-31.0E
AREA TEMPORARILY DANGEROUS TO SHIPPING
CANCEL 191500 UTC AUG
NNNN


ZCZC UA35
111042 UTC AUG
PETERSBURG NAV WARN 238/17
EASTERN GULF OF FINLAND
SHIPS EXERCISES 14 THRU 18 AUG 0200 TO 1900 UTC
IN AREA KR-107 CENTERED IN 60-07.0N 028-44.0E
AREA TEMPORARILY DANGEROUS TO SHIPPING
CANCEL 182000 UTC AUG
NNNN


ZCZC UA34
111042 UTC AUG
PETERSBURG NAV WARN 237/17
EASTERN GULF OF FINLAND
SHIPS EXERCISES 14 THRU 18 AUG 0200 TO 1900 UTC
IN AREA KR-105 CENTERED IN 60-06.0N 029-08.0E
AREA TEMPORARILY DANGEROUS TO SHIPPING.
CANCEL 182000 UTC AUG
NNNN


ZCZC UA09
210900 UTC JUL
FINNISH NAV WARN 109/17
FINNISH EEZ
UNDERWATER OPERATIONS IN PROGRESS
BY EDDA FON / LMER3 IN GULF OF FINLAND
500M WIDE BERTH REQUESTED
NNNN


ZCZC UA06
200032 UTC JUL
FINNISH NAV WARN 105/17  
FINNISH EEZ
UNDERWATER OPERATIONS IN PROGRESS BY VOS SATISFACTION/PHKK IN
GULF OF FINLAND 
500M WIDE BERTH REQUESTED
NNNN


ZCZC UA02
150900 UTC OF JUL
FINNISH NAV WARNING 103/17
GULF OF FINLAND
FINNISH EEZ
UNDERWATER OPERATIONS IN PROGRESS
BY STRIL EXPLORER / LAZT7
500 M WIDE BERTH REQUESTED
NNNN

OFE_
Har en fil inspelad i Audacity, men den är för stor för att läggas som bilaga. Återkommer.
xxargs
Inlägg: 10183
Blev medlem: 23 september 2006, 14:28:27
Ort: Södertälje

Re: Nödvändig bandbredd för FSK?

Inlägg av xxargs »

grunnade lite när jag satt i köerna hem.

en variant - om du vill påverka den befintliga konstruktionen så lite som möjligt...

Är att du kanske har en större storlek PIC eller bättre CPU (med HW-multiplikator i sig helst) som sköter själva filterbank och komparatorfunktionen med A/D-omvandlare och samplingar och låter den sedan simulera omslag på utgången (kanske omräknad i tid) den signalen som skulle ha kommit från den ursprungliga komparatorn i orginaldesignen (när den får stark signalstyrka)

med den extra-PIC eller annan DSP -processor så förbättrar du och nyttjar den befintliga informationen i signalen bättre vid låga och störda nivåer än en helt rå komparatorlösning som befintliga konstruktionen använder sig av. Du gör förmodligen ganska många - troligen mer än en tiotal dB vinst med just bättre processning på mottagarsidan.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 8413
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: Nödvändig bandbredd för FSK?

Inlägg av AndersG »

Det är i de banorna jag funderat, se inlägget ovan. PIC24 har 17-bits hårdvarumultiplikation.

Att IF är satt till 6kHz i mickes orginaldesign är ingen slump. LO genereras i processorn. En timer som räknar ned/dividerar. Det går att få till 1kHz med, men det kräver ju 517kHz, eller 519kHz och således en litet mera udda kristall.

Testar RF-delen nu och då kör jag med en HP8116 som LO så kan jag välja frekvens fritt. Med 2uV på ingången har jag ca 2mV 1kHz på utgången.
Schema_20170815_194322_resized.jpg
Standardkomponenter. Spolarna är vanliga 455kHz IF burkar, utan konding.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
YD1150
Inlägg: 1943
Blev medlem: 29 oktober 2010, 22:41:10

Re: Nödvändig bandbredd för FSK?

Inlägg av YD1150 »

Det finns en dsPIC30F3012 som jag använde till ett radioprojekt för digital filtrering.

http://www.elektronikforumet.com/forum/ ... =3&t=62731

Den finns i DIL-kapsel så den är lätt att handskas med. Du ser lite vad processorkraften räcker till.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 8413
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: Nödvändig bandbredd för FSK?

Inlägg av AndersG »

Jo, det är fördelen med PIC, det mesta finns som DIL. Skall testa med en 24F först som jag har hemma, men tack för tipset! Ser att du använder samma SENO Glanstenn som jag :)
guckrum
Inlägg: 1671
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Nödvändig bandbredd för FSK?

Inlägg av guckrum »

@xxargs: Snyggt med audacity, jag tänkte inte på det. Det skall jag prova nästa gång. Bra ide' att sätta in en "mellanprocessor".
@YD1150: Gillar skarpt att du hittar en morsekodad signal i smeten sådär bara.
guckrum
Inlägg: 1671
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Nödvändig bandbredd för FSK?

Inlägg av guckrum »

Jag har avkodat lite av signalen och kommit så långt att landskoden är 'U' och ett första meddelande är av typ 'A', meddelandenummer '06', och det är ju väldigt likt det du plockat fram, så nu känns det stabilt.

För detta jobbet har jag använt (gnu) octave, som är en öppen och väldigt kompatibel variant av Matlab som funkar överallt. I denna posten kommer som ett preludium insignalens spektrum och en naiv bandpassfiltrering.

Först konverterade jag filen till WAV-formatet via sox. Det skulle säkert gå bra med ffmpeg eller något annat program också.

Kod: Markera allt

sox Röst\ 003\ -\ kopia.amr.zip rost.wav
(Massor av varningslampor tänds här - konverterar den rätt? Hur ser datan ut? osv, men jag har struntat i det och gått vidare. Någon gång bör man kanske backa och kolla detta steg mera i detalj.)

Sedan kommer octave-programmet. Först sätter vi några konstanter och läser in filen. (Jag hade issues med octave på gamla debian 7, man skall nog köra octave 4 eller mera.)

Kod: Markera allt

# Set sample rate
Fs = 8000;
# Wanted signal center frequency
Fc = 1385;

# Read "received" signal into r
r = audioread('rost.wav');
och så plottar vi spektrum. Matlabs plot-syntax lämnar en del övrigt att önska.

Kod: Markera allt

# plot input signal power spectrum
figure(1); subplot(2,1,1);
plot((0:length(r)-1)/length(r)*Fs, 20*log10(abs(fft(r))));
axis([0,Fs/2,0,50])
grid on
xlabel 'Hz';
ylabel 'dB'
title 'input signal spectrum'
plot tar två invektorer (x,y) som plottas mot varandra. Därför den där "(0:length..."-grejen som bara är till för att skapa en vettig frekvensaxel på grafen.

Sedan skapar vi ett enkelt filter

Kod: Markera allt

# Create a simple bandpass filter.  NB: length is actually Ntaps+1.  Sorry.
Ntaps = 70;
h = sinc(2*(-(Ntaps/2):(Ntaps/2))/(Ntaps/2)) .* sinc((-(Ntaps/2):(Ntaps/2))/(Ntaps/2)) .* exp(j*2*pi*Fc/Fs*(0:Ntaps));
h = h ./ (h*h');   # normalise amplitude
Strunta i detta om det är oklart. Det är bara genereringen av filtertappar till ett bandpassfilter. Det är en sinc som fönstras med en annan sinc och som sedan "skruvas upp" till den önskade centerfrekvensen. Sincfilter approximerar ett rektangulärt utsnitt i spektrum, och det bättras på lite med fönstringen. Det blir ett lågpassfilter, så därav multiplikationen med exp(...) för att skicka upp den i frekvens.

Filtrera sedan insignalen med bandpassfiltret

Kod: Markera allt

# bandpass filter receied signal
r_filtered = filter(h,1,r);
Här är "h" FIR-tapparna och "1" IIR-tapparna. Det är alltså ett rent FIR-filter. Plotta sedan

Kod: Markera allt

# plot filtered signal power spectrum
figure(1); subplot(2,1,2);
plot((0:length(r)-1)/length(r)*Fs, 20*log10(abs(fft(r_filtered))));
axis([0,Fs/2,0,50])
grid on
xlabel 'Hz';
ylabel 'dB'
title 'spectrum after IF filter'
Såhär ser det ut.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 8413
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: Nödvändig bandbredd för FSK?

Inlägg av AndersG »

Snyggt. Måste kika litet mera på octave. Det övre spektrat ser litet ut som skärmen i seatty, dvs pucklarna höjer sig nätt och jämt över bruset.

Ny fil, från i går: Navtex_Tallinn_20170815_1520UTC.zip

Inspelad från NASA HF3 med Audacity
kodar-holger
EF Sponsor
Inlägg: 916
Blev medlem: 26 maj 2014, 12:54:35
Ort: Karlskoga

Re: Nödvändig bandbredd för FSK?

Inlägg av kodar-holger »

Det kanske kan vara värt besväret att ögna igenom den här artikeln också:
001-15224_AN2336_PSoC_1_Simplified_FSK_Detection.pdf
Jag läste en liknande för några år sen men hittade inte exakt den just idag. Kan vara samm fast med nya layout och lite utökad. Intressant princip även om dom använder programmerbara analoga kretsar för att realisera så borde det gå även med digitalteknik.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 8413
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: Nödvändig bandbredd för FSK?

Inlägg av AndersG »

Testade Octave. Den är ju 1,5Gb stor... Får dock inget vettigt med den filen jag sparat ned i Audacity. Kanske något fel på den?
xxargs
Inlägg: 10183
Blev medlem: 23 september 2006, 14:28:27
Ort: Södertälje

Re: Nödvändig bandbredd för FSK?

Inlägg av xxargs »

Kikade på den och lyssnade (underskatta inte öronen) - i början finns det bara brus och brum men sedan finns det märkbart identifierbar data signal på ena kanalen - den andra är tyst.

du spelade in i stereo så ena kanalen har ingen signal medans den andra har signal - du kan behöva sära ut dom och göra monokanaler med waw för att tex octave skall förstå dem.

att bandpass-filtrera (med equlizern mellan 1000 och 2000 Hz) gör det klart mer öronvänligt och man blir av med den hårda nätstörningsljudet.

man ser på den kvarvarande signalen av modulationen att amplituden varierar ganska mycket och att köra hård detektor som komparator i ursprungliga designen är inte att rekommendera vid signalen med relativt liten S/N som här

när du micklar med audiocity så kommer du finna att köra sampel som 22 ksampel-takt ger ingen fördel behandlingsmässigt när man skall köra FFT, filter eller andra metoden - det bara smetar ihop pch att köra större sampelfönster för mer detaljer är heller inte lösningen - för ljudinformation kring 1000 Hz så räcker 8k-sampel bra (4 kHz) om man ser till att ha antialisingfilter som bryter hårt innan 4 KHz innan samplingen (annars viks brus och störningar ned)
anders_G_resamplad_8K_partial_BP_filtrerad 1070-1470Hz.zip
Resamplad fil till 8K sampel och partiellt filtrerad (bara en liten snutt av orginalfilen)

lämnade lite av orginalbruset i början, därefter bruset efter filtrering (som klingar ganska mycket den också) och i detta börja moduleringen.
anders_G-data.png
grafiskt bild på detta - den 'blå' blocket är alltså den filtrerade varianten med equlizern med bandpass på 1070 - 1470 i frekvens ungefär

visningen är i spektrogram-mode och inte som tidsdiskret kurvform - det är nästan omöjligt att se frekvensskiften när man ser kurvformen men i spektrogram så syns det ganska tydligt

anders_G-data_2.png
här tidsskarven precis bara brus och när ton kommer - inte speciellt lätt att se

anders_G-data_3.png
i spektrummod syns det tydligare. (dock detaljerna blir mer uppenbara ju mindre man zoomar in...) ojämnheten amplitudmässigt på datasignalen beror till stor del på den överlagrade bruset

man inser att mottagaren inte har lätt jobb när signalerna är svaga över brusgolvet och det är ändå ganska fantastiskt att mottagare ändå reder ut det så bra det ändå gör (dvs. avser mottgare med processning och signalanpassade filter eller minst bandpass filter för resp frekvens)

anders_G-data_4.png
kunde inte låta bli att leka lite - här med gassusisk med 3.5 i förnster i FFT 256 i spektral-mode
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Skriv svar