
サインカーブ(正弦波)の計算をしたいと思います
やりたいことは以下のとおりです
イ.0~255段階の振幅がある
ロ.1振幅の時間軸を調整できるようにし、その数値にあわせて1回の振幅をする
ハ.たとえば、127に設定すると、127カウントで一回の振幅がある
ニ.たとえば、127に設定した場合、0から127の任意の場所の振幅のレベルを取り込みたい
補足
1カウントあたりの時間軸は固定です
1振幅の時間軸を127に設定している場合、0~127の数値を順に読み取りながら出力すれば1振幅し、これを繰り返し行うことで正弦波となる
時間軸をたとえば255に設定すると、周波数は2倍になる
分かりにくいと思いますが、これをC言語で計算しようとすると、どういうプログラムになるのでしょうか?
1振幅の時間軸をX、取り出したい時間軸の位置をYとしてお願いします
以下のプログラムで正弦波になると思います
int i = 0; //カウンター用
z = 128; //1振幅の時間軸(127)
main()
{
while(1)
{
print get(z, i);
i++;
if (i == z) i = 0;
}
}
void get(int x, int y)
{
(計算式)
}
私の頭では計算できません
どうか、お力をお貸しください

No.3
- 回答日時:
おおむね回答2でいいですが、正確には
127.5 * sin(2 * M_PI * y / x) + 127.5
じゃないかな。
関数 sin、定数 M_PI は math.h に宣言/定義されているので、#inlude <math.h> を忘れないこと
あと、sin は周期関数なので、関数getの引数yは 0~x-1に収まって無くても問題ないです。「if (i == z) i = 0;」は不要
ご指摘のとおり、 math.h をインクルードして計算式を利用させていただくことにします
本当に助かりました、ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
VBAの再計算が反映されない件に...
-
モジュラス103の計算とは何でし...
-
C言語初心者。静磁場の計算。台...
-
エクセルで特定のセルのみを任...
-
数値計算の高速化 (cos, sin, exp)
-
なぜオーバーフローになるので...
-
VBAで関数をつくる
-
EXCELなどで「返す」という表現
-
DLL(VC++で作った)で稼動中の...
-
Matlabでのニュートン法について
-
再帰呼び出しを用いるnPk,nCk ...
-
科学技術計算の仕事について
-
小数点以下を切り捨てたい
-
Vba Cells.Findについて教えて...
-
Perlで時間の計算
-
WEBページ上で計算をさせるには...
-
matlabで計算終了
-
窓関数について質問です。
-
[急募]Pythonについてです。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
VBAの再計算が反映されない件に...
-
EXCELなどで「返す」という表現
-
matlabで計算終了
-
排他的論理和 BCC(水平パリテ...
-
変化させるセルが変化しない
-
モジュラス103の計算とは何でし...
-
傾いた四角形内の範囲の条件式
-
VBAで関数をつくる
-
[急募]Pythonについてです。
-
数値計算の高速化 (cos, sin, exp)
-
C言語についての質問です。 ル...
-
切り上げたい
-
DLL(VC++で作った)で稼動中の...
-
CとFORTRANの計算速度はどちら...
-
趣味で「乗換案内」みたいなソ...
-
CGIの実行権限(ディスク容...
-
エクセルで特定のセルのみを任...
-
functionを含んだプログラムを...
-
時間差を求める
おすすめ情報