| Hello list!
Here is the frequency shifter instrument I announced.
Jens Groh
gisin ftgen 0,0,65536,10,1
instr 1
; input signal:
awvin = .....
;------ begin "third method" SSB modulation
ifs4 = sr * 0.25
; frequency shift (+/-) in Hertz:
kfrqshf = .....
; shift mode: 0.0 ... 1.0
; 1.0 -> "normal" SSB, spectral components shifted off [0,sr/2] are mirrored and overlap.
; 0.0 -> components shifted off [0,sr/2] are cut, the other end is augmented by mirror image, no overlap.
kshfmod = .....
; first quadrature oscillator:
ko1frq = ifs4 - (1.0 - kshfmod) * kfrqshf
aqo1r oscil 1.0, ko1frq, gisin, 0.25
aqo1i oscil 1.0, ko1frq, gisin, 0.0
; first modulator:
awq1r = awvin * aqo1r
awq1i = awvin * aqo1i
; filter coefficients (6th order elliptical filter, fc=sr/4):
ifc0 = 0.051532459925
ifb01 = 1.0
ifb11 = 1.6375276435
ifb21 = 1.0
ifa01 = 1.0
ifa11 = -0.93027644018
ifa21 = 0.37171017225
ifb02 = 1.0
ifb12 = 0.56037176307
ifb22 = 1.0
ifa02 = 1.0
ifa12 = -0.40320752514
ifa22 = 0.73736786626
ifb03 = 1.0
ifb13 = 0.19165327787
ifb23 = 1.0
ifa03 = 1.0
ifa13 = -0.15398586410
ifa23 = 0.94001488557
; lowpass filters:
awf1r biquad awq1r, ifb01, ifb11, ifb21, ifa01, ifa11, ifa21
awf2r biquad awf1r, ifb02, ifb12, ifb22, ifa02, ifa12, ifa22
awf3r biquad awf2r, ifb03, ifb13, ifb23, ifa03, ifa13, ifa23
aw1fr = awf3r * ifc0
awf1i biquad awq1i, ifb01, ifb11, ifb21, ifa01, ifa11, ifa21
awf2i biquad awf1i, ifb02, ifb12, ifb22, ifa02, ifa12, ifa22
awf3i biquad awf2i, ifb03, ifb13, ifb23, ifa03, ifa13, ifa23
aw1fi = awf3i * ifc0
; second quadrature oscillator:
ko2frq = ifs4 + kshfmod * kfrqshf
aqo2r oscil 1.0, ko2frq, gisin, 0.25
aqo2i oscil 1.0, ko2frq, gisin, 0.0
; second modulator:
awq2r = aw1fr * aqo2r
awq2i = aw1fi * aqo2i
; summing up:
awvout = awq2r + awq2i
;------ end "third method" SSB modulation
out awvout
endin |