function downconvert() omega_lp = 0.48; N_lp = 101; N = 10000; w = 2*pi; n = (0:N-1); rf = 0.4*cos(0.25*w*n); lo_r = cos(0.25*w*n); lo_i = -sin(0.25*w*n); w_lp = FIRCalcLowpass(omega_lp, N_lp); im = 2*rf .*lo_r + i*2*rf.*lo_i; im_f = filter(w_lp, 1, real(im)) + i*filter(w_lp, 1, imag(im)); subplot(2, 1, 1) plot(n, rf, '-*'); grid; axis ([0 N-1 -1 1]); subplot(2, 1, 2) plot(n, real(im_f), '-*', n, imag(im_f), '-*'); grid; axis ([0 N-1 -1 1]); wavwrite(rf, 48000, 16, 'ddc_rf.wav'); wavwrite(im, 48000, 16, 'ddc_im.wav'); wavwrite(im_f, 48000, 16, 'ddc_imf.wav');