gpt4 book ai didi

Delphi和离散信号: Getting a fixed volume signal with fixed silence

转载 作者:行者123 更新时间:2023-12-03 15:55:09 26 4
gpt4 key购买 nike

这是我已经在这里提出的另一个问题的后续How can I play a single tone or custom wave with Delphi?

长话短说,我使用 MMSystem 的 waveOutWrite() 创建一个离散信号,但似乎它要么没有按我的预期工作,要么我没有得到它。

我用固定的空间向缓冲区写入了两个离散信号,如下所示 Samples[i] := round(vol*sin(2*Pi*AFreq*t));

其中信号的音量为 1000,而“空格”为一些 0 音量信号。

这就是它的样子,而我期待的东西会像 |...| enter image description here

我是否把 Signal 的内容搞错了,或者是我没有正确使用 WinAPI?我希望每个固定信号在图表上看起来都一样

P.S:我使用的是 Windows 的立体声混音,因此没有干扰P.P.S:这是将 Binary 转换为 Signal 的代码段

function CreateBinaryTone(BinaryString: String): TWaveformSamples;
var
I: Integer;
omega,
dt: double;
vol: double;
begin
omega := 2*Pi*AFreq;
dt := 1/Format.nSamplesPerSec;

SetLength(Samples, Length(BinaryString));

for I := 1 to Length(BinaryString) do
begin
{ Discrete Time }
Vol := StrToInt(BinaryString[I]) * 1000;
Samples[I] := vol * sin(omega * dt * I);
end;

Result := Samples;
end;

最佳答案

您的位时间需要比载波(正弦)频率的周期长得多,并且采样率也需要大于载波频率的 2 倍。因此您的样本生成循环可能需要更长的时间。

关于Delphi和离散信号: Getting a fixed volume signal with fixed silence,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8490090/

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