Audio 信号过零时如何解码调幅? 我试图在C++程序中从三菱VISITEL电话图像发送器解码图像信号。它被编码为用~1764Hz正弦波载波调制的模拟音频信号。 我从声卡输入读取的音频是44.1kHz的有符号8位,这为载波提供了大约25个采样周期。显然,模拟信号不会很好地落在样本边界上,因此假设这可能会偏移+/-1个样本。 我第一次尝试解码信号是将信号的峰值作为像素值。这几乎奏效,但似乎有一些“非相位”像素,图像最终会倾斜。 最终,我通过将像素时钟与峰值解耦并将其与样本绑定,得到了一个信号。我还必须对每一条扫描线分别计时,因为它并没有以像素倍数结束。 但这个信号并不十分正确,黑暗区域不知怎么地出现了反转。 最终我意识到在光/暗转换中存在相位不连续性。这向我表明调制信号正越过零点,导致产生的信号中的相位不连续,因为它驱动载波负,反转了峰/谷关系。 虽然我可以尝试修改我的状态机来检测这种类型的转换,但它似乎有点混乱,而且容易出错。 我一直认为,必须有一个适当的数学y方法来解调调幅信号,其中调制器穿过零点。但我发现的所有例子似乎都只是简单的基于峰值的包络检测器。我发现的产品检测器解释似乎依赖于您的载波和相位完全正确,我不确定您是否还为过零信号买了任何东西。 在调制器过零的情况下,什么是经党批准的解调调幅信号的正确方法?

Audio 信号过零时如何解码调幅? 我试图在C++程序中从三菱VISITEL电话图像发送器解码图像信号。它被编码为用~1764Hz正弦波载波调制的模拟音频信号。 我从声卡输入读取的音频是44.1kHz的有符号8位,这为载波提供了大约25个采样周期。显然,模拟信号不会很好地落在样本边界上,因此假设这可能会偏移+/-1个样本。 我第一次尝试解码信号是将信号的峰值作为像素值。这几乎奏效,但似乎有一些“非相位”像素,图像最终会倾斜。 最终,我通过将像素时钟与峰值解耦并将其与样本绑定,得到了一个信号。我还必须对每一条扫描线分别计时,因为它并没有以像素倍数结束。 但这个信号并不十分正确,黑暗区域不知怎么地出现了反转。 最终我意识到在光/暗转换中存在相位不连续性。这向我表明调制信号正越过零点,导致产生的信号中的相位不连续,因为它驱动载波负,反转了峰/谷关系。 虽然我可以尝试修改我的状态机来检测这种类型的转换,但它似乎有点混乱,而且容易出错。 我一直认为,必须有一个适当的数学y方法来解调调幅信号,其中调制器穿过零点。但我发现的所有例子似乎都只是简单的基于峰值的包络检测器。我发现的产品检测器解释似乎依赖于您的载波和相位完全正确,我不确定您是否还为过零信号买了任何东西。 在调制器过零的情况下,什么是经党批准的解调调幅信号的正确方法?,audio,encoding,signal-processing,modulation,Audio,Encoding,Signal Processing,Modulation,复(正交或IQ)乘积检测器是一种可行的方法。即使你的解调载波很近而且不精确;一个小的频率误差仅仅意味着结果将有一个直流偏移,可以在后期处理阶段删除。一个复杂的(正交或IQ)产品检测器是一个不错的选择。即使你的解调载波很近而且不精确;一个小的频率误差仅仅意味着结果将有一个直流偏移,可以在以后的处理阶段删除。您需要确定载波的相位,然后可以使用产品检测器。正交检波器可以让你在事后确定相位,但既然你必须这样做,你最好先这样做 VisiTel很可能在图像之前发送某种同步信号,该图像将用于确定载波相位并指示

复(正交或IQ)乘积检测器是一种可行的方法。即使你的解调载波很近而且不精确;一个小的频率误差仅仅意味着结果将有一个直流偏移,可以在后期处理阶段删除。

一个复杂的(正交或IQ)产品检测器是一个不错的选择。即使你的解调载波很近而且不精确;一个小的频率误差仅仅意味着结果将有一个直流偏移,可以在以后的处理阶段删除。

您需要确定载波的相位,然后可以使用产品检测器。正交检波器可以让你在事后确定相位,但既然你必须这样做,你最好先这样做


VisiTel很可能在图像之前发送某种同步信号,该图像将用于确定载波相位并指示开始向接收器发送图像。您可能应该将其用于预期目的。

您需要确定载体的相位,然后您可以使用产品检测器。正交检波器可以让你在事后确定相位,但既然你必须这样做,你最好先这样做


VisiTel很可能在图像之前发送某种同步信号,该图像将用于确定载波相位并指示开始向接收器发送图像。您可能应该将其用于预期目的。

通常,您所做的是将信号乘以载波频率f_c处的正弦波,然后过滤掉产生的2f_c信号-一个简单的低通滤波器通常就足够了。为了获得更好的精度,您可以乘以正弦和余弦载波,进行滤波,然后计算平方幅度信号,这样您就可以保持相位不变。有了适当的过滤(信号倍增后),您就不必担心过零伪影。此外,我强烈认为在GnuraDo这样的环境中实现这一点,它已经实现了所有相关滤波器的高质量实现,比如AM接收器。@ NeNeNeNo听起来像“产品检测器”。我担心的实现会对没有精确的载波频率和相位敏感。。。不是这样吗?另外,一个简单的低通滤波器不只是平滑掉一些峰值,还是会丢失负数据吗?这不是一次性的,而是需要一个独立的程序。我不能要求用户将数据文件拖到Gnu无线电进行解释,因此我必须能够将其包含在我的源代码中。同时使用正弦和余弦的产品检测器能够容忍频率和相位误差。它或多或少是一个只输出振幅的I-Q解调器。如果你做这个产品,你会发现“载波”的频率大大提高,因此用低通滤波器变得更容易平滑。通常你要做的是用载波频率f_c处的正弦波乘以信号,然后过滤掉产生的2f_c信号——一个简单的低通滤波器通常就足够了。为了获得更好的精度,您可以乘以正弦和余弦载波,进行滤波,然后计算平方幅度信号,这样您就可以保持相位不变。有了适当的过滤(信号倍增后),您就不必担心过零伪影。此外,我强烈认为在GnuraDo这样的环境中实现这一点,它已经实现了所有相关滤波器的高质量实现,比如AM接收器。@ NeNeNeNo听起来像“产品检测器”。我担心的实现会对没有精确的载波频率和相位敏感。。。不是这样吗?另外,一个简单的低通滤波器不只是平滑掉一些峰值,还是会丢失负数据吗?这不是一次性的,而是需要一个独立的程序。我不能告诉你