用C/C++编写了一个三维正弦波发生器
代码:
#include <stdio.h>
#include <math.h>
#include <unistd.h>
#define cursorForward(x) printf("\033[%dC", (x))
#define cursorBackward(x) printf("\033[%dD", (x))
#define cursorUp(x) printf("\033[%dA", (x))
#define cursorDown(x) printf("\033[%dB", (x))
#define clearScreen printf("\033[2J")
#define width 40
#define height 15
#define amplitudeHeight 10
#define period 0.1
char *values = " .,o#";
float time = 0;
int main()
{
while(1) {
for(int y = 0; y < heigth; y++) {
for(int x = 0; x < width; x++) {
printf("%c ", values[(int) (amplitudeHeight * (sin(period * sqrt((x - width / 2) * (x - width / 2) + (y - height/ 2) * (y - height/ 2)) + time) + 1)) % 5]);
}
printf("\n");
}
usleep(1000 * 100);
time += 0.1;
cursorBackward(width);
cursorUp(heigth);
}
return 0;
}
amplitudeHeight * //controls the AmplitudeHeight
(sin(period * //controls the period width
sqrt((x - width / 2) * (x - width / 2) + //controls x position
(y - height/ 2) * (y - height/ 2)) + //controls the y position
time) + 1) //time
% 5 // i only have 5 representative chars
. . , , o # # . , o # # . . , , o o o o o , , . . # # o , . # # o , , .
. . , o o # . , , o # . . , o o o # # # o o o , . . # o , , . # o o , .
. , , o # # . , o # . , o o # # # # o o , . # o , . # # o , ,
. , , o # . , o # . , o o # # o o , . # o , . # o , ,
. , , o # . , o # # . , o # . . . . . # o , . # # o , . # o , ,
. , o o # . , o # . , o o # . . , , , . . # o o , . # o , . # o o ,
. , o o # . , o # . , o # . , , o , , . # o , . # o , . # o o ,
. , o o # . , o # . , o # . , o o o , . # o , . # o , . # o o ,
. , o o # . , o # . , o # . , , o , , . # o , . # o , . # o o ,
. , o o # . , o # . , o o # . . , , , . . # o o , . # o , . # o o ,
. , , o # . , o # # . , o # . . . . . # o , . # # o , . # o , ,
. , , o # . , o # . , o o # # o o , . # o , . # o , ,
. , , o # # . , o # . , o o # # # # o o , . # o , . # # o , ,
. . , o o # . , , o # . . , o o o # # # o o o , . . # o , , . # o o , .
. . , , o # # . , o # # . . , , o o o o o , , . . # # o , . # # o , , .
# # , o o # . , . o . o # # # o o , o o # # # o . o . , . # o o , #
# o . . , . # o o . o # # o . # # # . o # # o . o o # . , . . o
# o # # . o . . o # # o o . # # # . o o # # o . . o . # # o
# , o o # . . # o o , # # o , # . # . # , o # # , o o # . . # o o ,
# . , , o . # o # # . o # , . . . , # o . # # o # . o , , .
# . . . , , . . o # o . . , , . . o # o . . , , . . .
# . . . , , , , . # # o # # . . . # # o # # . , , , , . . .
# . . , o , , . # # , # # # . . # . . # # # , # # . , , o , . .
# . . . , , , , . # # o # # . . . # # o # # . , , , , . . .
# . . . , , . . o # o . . , , . . o # o . . , , . . .
# . , , o . # o # # . o # , . . . , # o . # # o # . o , , .
# , o o # . . # o o , # # o , # . # . # , o # # , o o # . . # o o ,
# o # # . o . . o # # o o . # # # . o o # # o . . o . # # o
# o . . , . # o o . o # # o . # # # . o # # o . o o # . , . . o
# # , o o # . , . o . o # # # o o , o o # # # o . o . , . # o o , #
amplitudeHeight的值应为2.5,以说明符号的数量。你要剪裁振幅从0..20开始的波,然后取mod5。
我如何建立一个方程来产生扫频正弦波。我是信号处理新手,在网上找不到太多关于生成扫描正弦波的话题。请告诉我一些我可以用来生成方程式并在代码中使用的源代码。非常感谢。
我试图生成一组点,当绘制成一个图表示1个周期的正弦波。要求是: 1个周期的正弦波 下限=29491 上限=36043 点数=100 振幅=3276 零偏移量=32767 代码: 我正在生成并存储一个文件中的点。当这些点被绘制出来时,我得到了下面的图。 但我只需要一个循环。我怎么能这么做?
问题内容: 第一次海报在这里。我通常喜欢自己找到答案(通过研究或反复试验得出),但是我很困惑。 我要做什么: 我正在构建一个简单的android音频合成器。现在,我只是在实时播放正弦音,UI中的滑块会随着用户的调整而改变音的频率。 如何构建它: 基本上,我有两个线程- 工作线程和输出线程。每当调用其tick()方法时,工作线程就用正弦波数据填充一个缓冲区。一旦缓冲区被填满,它会警告输出线程数据已准
问题内容: 在Java中以任何频率生成正弦波声音的最简单方法是什么?样本大小大于2个字节会有所帮助,但这并不 重要。 问题答案: 见一个自包含的例子。 也许更简单? 如链接答案顶部所示,这51行代码段(在下面重复-分隔为单行和行内注释)大约与 生成音调一样简单(好的,您可以取出5行以上用于谐波)。 人们似乎认为这应该是工具包中内置的一种产生 纯净音调的方法。并非如此,要花一点时间就可以做到。
我试图在y有最高值时显示x位置。在if语句中,我试图将y值与120进行比较,但它似乎从来都不是真的,所以它没有使用文本函数显示我的x位置。我也试着取整y值,但结果仍然不是我想要的。有人能帮我吗?
我正在做一个项目,我想通过组合不同的正弦波来产生(简单的)声音。我使用的是arduino mkrZero,因为它内置了I2S接口,似乎有足够的处理能力来满足我的需求。 教程代码工作得很好,我从扬声器中得到了一个简单的方波音调。 现在我修改了生成正弦波的代码,有一个sin函数的查找表,使其足够快: 如果我稍微修改一下代码,然后写 而不是 一切都破裂了,扬声器发出的声音听起来像是可怕的尖叫 //阻塞