gpt4 book ai didi

audio - 使用相位产生正弦波

转载 作者:行者123 更新时间:2023-12-02 23:08:51 24 4
gpt4 key购买 nike

我正在使用以下方法生成正弦波-

sampling rate = 22050;
theta = 0;

for (i = 0; i < N; i++)
{
theta = phase * 2 * PI;
signal[i] = amplitude * sin(theta);
phase = phase + frequency/sampling rate;
}

当我生成频率为8000 Hz的信号时,输出中会出现失真。低于此频率(例如6000 Hz)的频率会正确产生。如果我像这样检查相位,则会正确产生8000 Hz信号-
if (phase > 1)  
{
float temp = phase - 1;
phase = temp;
}

我认为这与Xcode中的正弦函数有关,可能是它可以接受的一系列值?在Matlab中,带有和不带有相位环绕的相同代码没有区别。有人可以解释这里发生了什么吗?

最佳答案

我相信计算应该是(2.0 * PI)*频率/采样

这将为您提供下一个弧度相位增量。然后可以将该值输入到Sin函数中以计算相位。注意,您需要累积弧度值。

从技术上讲,您的第一个陈述在措词上是不正确的。 FS / 2是奈奎斯特值。您可以产生高于此的频率,但是它们会混叠。

在阶段包装方面,有不同的方法来管理它。

我对弧度的理解是,当相位围绕2 pi值旋转时,相位的“线性”表示不会重复。因此,如果您通过管理弧度来管理相位,则可能不会出现包装问题。

很高兴被更多知识渊博的人纠正。

关于audio - 使用相位产生正弦波,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36179393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com