Generate Alternating Tones Based On Number Of Cycles

2 ビュー (過去 30 日間)
Elijah Hamilton
Elijah Hamilton 2022 年 11 月 2 日
編集済み: Davide Masiello 2022 年 11 月 2 日
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 件のコメント
Elijah Hamilton
Elijah Hamilton 2022 年 11 月 2 日
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 2022 年 11 月 2 日
So you want to generate a square wave.

サインインしてコメントする。

回答 (1 件)

Davide Masiello
Davide Masiello 2022 年 11 月 2 日
編集済み: Davide Masiello 2022 年 11 月 2 日
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

カテゴリ

Help Center および File ExchangeMultirate Signal Processing についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by