Generate Alternating Tones Based On Number Of Cycles

2 Ansichten (letzte 30 Tage)
Elijah Hamilton
Elijah Hamilton am 2 Nov. 2022
Bearbeitet: Davide Masiello am 2 Nov. 2022
Hi, I need to generate a sine wave that alternates between 5 cycles of 651hz, and 4 cycles of 465hz, 100 times.
My current code works, but the frequency gets rounded to a frequency divisible by 48000.
Can I get any help?
  3 Kommentare
Elijah Hamilton
Elijah Hamilton am 2 Nov. 2022
The code generates a single cycle of a square wave, at a given frequency in hertz.
48000 is the sampling rate in hertz.
465hz would be "rouned" to 461.5384615384615hz.
function f = wave(n)
num = 48000 * (0.5 / n);
f(1:num) = 1;
f = [f, f.*-1];
end
Davide Masiello
Davide Masiello am 2 Nov. 2022
So you want to generate a square wave.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Davide Masiello
Davide Masiello am 2 Nov. 2022
Bearbeitet: Davide Masiello am 2 Nov. 2022
I am still quite unsure if this is what you are asking, but I will give it a go.
[t,w] = wave(465);
plot(t,w)
function [t,f] = wave(freq)
t = linspace(0,1/freq,48000);
f(1:48000/2) = 1;
f(48000/2+1:48000) = -1;
end

Kategorien

Mehr zu Audio I/O and Waveform Generation finden Sie in Help Center und File Exchange

Tags

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by