%This script implements the digital sine wave generator. %The digital sine wave generator implements this difference equation. %y(n) = 2cos(wT)*y(n-1) - y(n-2) clear NUM_OF_SAMPLES = 200; freq = 120; %frequency amplitude = 1; %amplitude of sine wave w = 2*pi*freq; T = 1/8e3; wn = w*T; %establish normalized frequency y = [.09,zeros(1,NUM_OF_SAMPLES+3)]; %establish buffer and initial condition for i = 3:(NUM_OF_SAMPLES) y(i) = (2*cos(wn)*y(i-1) - y(i-2)); %recursive algorithm for digital oscillator end y = y.*amplitude; %scale to amplitude plot(y),axis([0 NUM_OF_SAMPLES -1 1]),grid;