# A simple USB radio script for BasicDSP # By Niels PE1OIT, Nov 2008. # # Slider 1 controls the frequency # Slider 2 controls the volume samplerate = 48000 # down-convert to 1st IF: z = mod1(z+slider1); ai = ini * cos1(z) - inq*sin1(z) aq = inq * cos1(z) + ini*sin1(z) # filter IF: bi = biquad(ai, 0.0014603166, -1.8890331, 0.89487433, 2, 1) ci = biquad(bi, 0.0014603166, -1.8890331, 0.89487433, 2, 1) bq = biquad(aq, 0.0014603166, -1.8890331, 0.89487433, 2, 1) cq = biquad(bq, 0.0014603166, -1.8890331, 0.89487433, 2, 1) # down-convert to DC y = mod1(y+0.0275) audio = ci*cos1(y) + cq*sin1(y) # AGC x = audio*audio; lvl = lvl * 0.999 + 0.001*x; lvl2 = lvl2 * 0.9995 + 0.0005*lvl; gain = 0.1 / (sqrt(lvl2) + 0.00001); # output uitL = audio * gain * slider2 uitR = audio * gain * slider2