How to create a MATLAB code for generating audio sine wave signal of frequency ranges from 1Hz to 15kHz and plot it on real time.
17 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I use MATLAB for Engineering computations for almost 3 years, however I don't have any idea how to "How to create a MATLAB code for generating audio sine wave signal of frequency ranges from 1Hz to 15kHz and plot it on real time." I request the staff to help me in generating this code.
0 comentarios
Respuestas (2)
Geoff Hayes
el 28 de Sept. de 2021
Zafar - see the relevant parts of the noisy signal example on how to generate a sine wave with a particular frequency. You will need to determine how you transition between the different frequencies (or are they separate plots?) and what the "real time" component is.
jibrahim
el 29 de Sept. de 2021
% Generate and visualize a sine wave with variable frequency
osc = audioOscillator('sine');
scope = timescope('SampleRate',osc.SampleRate,...
'TimeSpanSource','property','TimeSpan',0.1, ...
'YLimits',[-1.5 1.5],...
'Title','Variable-Frequency Sine Wave');
counter = 0;
while (counter < 1e4)
counter = counter + 1;
scope(osc());
if mod(counter,1000)==0
osc.Frequency = osc.Frequency + 50;
end
end
2 comentarios
jibrahim
el 7 de Oct. de 2021
Editada: jibrahim
el 7 de Oct. de 2021
Hi Zafar,
If you want to generate a periodic signal based on a custom wave, then I suggest you take a look at wavetableSynthesizer.
If your signal is a long MATLAB vector, and you want to stream it, you can pass it one frame at a time to the for loop. Something like this:
x = randn(1e6,1); % let's say this is your signal
frameLength = 1024;
counter = 1;
while (counter < floor(size(x,1)/frameLength))
frame = x((counter-1)*frameLength+1:counter*frameLength);
counter = counter + 1;
scope(frame);
end
Ver también
Categorías
Más información sobre Audio I/O and Waveform Generation en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!