Pure tone: unmodulated sinusoid, matlab function:
% Ft: frequency of the tone
% Fs: sample rate
% Td: last seconds
% Output is a row vector s containing the sampled point
% t is an optional and is the time axis associated with s
function [s, t] = tonegen(Ft, Fs, Td)
t = [1:Fs*Td]/Fs;
s = sin (2 * pi * t * Ft);
% example:
y = tongen(440, 16000, 5);
soundsc(y, 16000);
Generate sound with different frequency:
% frc: time-varying frequency
% Fs: sample rate
function [snd]=freqgen(frc, Fs)
th=0;
fr=frc*2*pi/Fs;
for si=1:length(fr)
th=th+fr(si);
snd(si)=sin(th);
th=unwrap(th);
end
% example
>> freq=[440*(1+zeros(1,1000)),415.2*(1+zeros(1,1000)),392*(1+zeros(1,1000))];
>> music=freqgen(freq, 8000);
>> soundsc(music, 8000);
No comments:
Post a Comment