generovanie FM
Naprstek Jiri-R54332
Jiri.Naprstek
Středa Březen 17 12:03:23 CET 2004
No, mate pravdu, je to blbe <tezka ostuda> ....
Nastoupim-li na problem zcela matematicky, vyjde mi neco takovehoto:
y(t)=A*sin(2*Pi*integral[0,t](1+M*mod(t))dt)
(integral[a,b] - tim minim meze - od a do b)
mod(t) - modulacni funkce
Mozna by to slo nejak upravit, ale asi bych se na to vybod a implementoval ten integral "numericky", tedy (vicemene, jak pise pan Cesko) cyklus jet podle t, ale mit treba promennou Phi a v ni mit aktualni uhel a ten menit, pricitat k nemu v kazdem cyklu delta(Phi)+modulace. mod(t) pak muze byt zcela "nematematicky" signal.
V Ccku by to mozna slo takhle:
for(t=Phi=0; t+=step;) Vystup(A*Sin(Phi+=2*Pi*bfreq*step*(1+M*mod(t))));
Kde:
step delka jednoho kroku ve vterinach (1Msample-> step=1e-6)
A amplituda vystupniho signalu
bfreq frekvence nosne
M modulacni zdvih (0;1)
mod(t) modulacni funkce (0;1)
t prubezny cas ve vterinach
Pro konkretni aplikaci to samozrejme pujde zjednodusit - cas nepojede ve vterinach ale primo v samplech, 2*Pi*bfreq*step pak bude predpocitana konstanta a tak...
Tak ted uz je to snad dobre :-)
Jirka N.
> -----Original Message-----
> From: Igor Cesko [mailto:cesko@internet.sk]
> Sent: Tuesday, April 17, 2001 3:27 PM
> To: Multiple recipients of list
> Subject: RE: generovanie FM
>
>
> Zdravim!
> Omyl! Ten vzorecek je blbe :-( . Musime brat do uvahy okamzitu
> frekvenciu a nie hned pocitat od casu t=0.
> Vysvetlenie: pre velmi velky cas (t=vela) sa stane, ze zmena
> frekvencie v jednom kroku (napr. z i=x do i=x+1) bude dostatocne
> velka na to aby okamzita hodnota signalov frekvencie z kroku x a z
> kroku x+1 bola uplne rozdielna. To je ako keby ste si nakreslili
> frekvenciu f1=K a frekvenciu f2=K+0.005Hz (tych 0.005Hz
> predstavuje zmenu frekvencie v jednom kroku z i=x na i=x+1)a po
> dostatocne dlhom case zistite, ze tie dva signaly su rozidene.
> Potom zalezi aj na malickom frekvencnom zdvihu - priebehy sa
> mozu navzajom predbehnut o velmi vela period: vysledkom je
> potom totalna nahoda - sum, ktory ste dostali.
>
> Spravny vzorec asi nebude jednoduchy, lebo sa musi menit
> "okamzita" frekvencia. Tusim, ze som to naposledy cital v knihe
> "Moderni Radioelektronika" od BEN.
>
> Algoritmicky by to islo asi tak, ze by sa k signalu so zmenenou
> frekvenciou v kazdom kroku pripocital fazovy posun z
> predchadzajuceho kroku starej frekvencie : ale to je len teraz tak
> narychlo co ma napadlo - mozno je to blbost ;-).
>
> S pozdravom
> Igor
>
> P.S.: Vcelku zaujimavy dotaz - musim to nastudovat z tej knihy
> (ved z priebehu toho signalu sa odvadza frekvencne zlozenie FM-
> signalu)
>
> > Ten vzorecek je dobre, nevidim v nem chybu, nicmene
> vzpominam si, ze jsem mel jedou problem s tim, ze mi BorladC
> (tusim 3.neco) kompiloval tu matematiku podle dosti divokych
> klicu, jestli se pojede celociselne neco floatove. Nevim jak
> je to v pascalu, ale bud bych pretypoval vsude na float,
> nebo predem definoval vsechny promenne tak, aby byly schopny
> chapat desetinna cisla. Taky bych zkusil prepsat ten vzorecek
> do tvaru A*sin((2*Pi*t*(fc+delta*mod(t)))/samples) - aby se
> nejdriv nasobilo a pak delilo, presneji, aby dilci vypocty
> vychazely ve vetsich cislech a nebyl problem se
> zaokrouhlovanim...
> >
> > Jirka N.
> >
> > > -----Original Message-----
> > > From: Puskajler Robert [mailto:robert.puskajler@telecom.sk]
> > > Sent: Tuesday, April 17, 2001 9:34 AM
> > > To: Multiple recipients of list
> > > Subject: generovanie FM
> > >
> > >
> > > Zdravim HW,
> > >
> > > v jednej aplikacii potrebujem generovat FM signal
> > > (AM a PM generovanie mi funguje bez problemov),
> > > pouzivam priblizne nasledovny algortimus:
> > >
> > > A ... amplituda vysledneho signalu
> > > samples ... pocet vzoriek (1/vzorkovacia_frekvencia)
> > > fc ... nosna frekvencia
> > > delta ... frekvencny zdvih
> > > mod(t) ... modulacny signal , vysledok <-1..0..+1>
> > >
> > > t:= 0;
> > > repeat
> > > F:= A * sin (2*pi*t/samples*(fc+delta*mod(t)));
> > > inc(t);
> > > until koniec
> > >
> > > aj pri modulacii s malym zdvihom (delta = 1 Hz) po
> > > relativne kratkom case dostanem len sirokopasmovy sum ;-)
> > >
> > > budem vdacny za spravne nasmerovanie pripadne linky ...
> > > (vyhladavace som uz skusil ...)
> > >
> > > vdaka,
> > > robert
> > >
> > >
> > >
> >
>
>
>
> -------------------------
> Ing. Igor Cesko
> Hardware & Software
> http://www.cesko.host.sk
> E-mail: cesko@internet.sk
>
> Applied Precision Ltd.
> Technicka 5
> 821 04 Bratislava
> SLOVAKIA
> Tel,Fax: +421-7-4342 6628
> Tel: +421-7-4363 3151
> Tel: +421-7-4333 7340
> E-mail: info@appliedp.sk
> Web: http://www.appliedp.sk
> -------------------------
>
Další informace o konferenci Hw-list