×

实时即时信号识别器(RTISR)开源

消耗积分:0 | 格式:zip | 大小:0.51 MB | 2022-11-07

张昂笙

分享资料个

描述

实时即时信号识别器 (RTISR) 的概念

通过使用两个向量的标量积,我们可以使用两个不同的数组并通过使用归一化相关(归一化互相关)在它们之间进行比较。

基本 RT 即时识别器的工作方式如下:

“标准具信号”的已知 N 计数作为一维数组存储在程序存储器 x[I] 中。

“传入信号”的计数在定时器中断时输入到大小为 N 的环形缓冲区(存储在默认 RAM 存储器中)y[i],ISR 计算“r” - “标准具信号”x[i] 和“传入信号”。

 

poYBAGNkeE6ARv48AAAPVyZDQYg913.png
 

也就是说,RT 即时识别器将“传入信号”x[i] 的最后 N 个计数与标准具信号 y[i] 的固定 N 个计数进行比较。请务必了解延迟 d 和环形缓冲区索引之间的关系。是的,ISR 中有许多循环。

 

好的,系统的要求到此为止——让我们开始工作吧!

我选择以 20[Hz] 频率进行采样(由于系统的技术困难),发现 5 个样本足以识别所需信号。

识别到信号后,系统将不再搜索匹配,也可以随时拨动开关,系统会重新搜索。

此外,可以随时更改所需频率。

用户手册:

1) 使用名为“Input signal”的信号发生器选择要识别的频率 (sin(8, 4, 5 Hz), sqr(8, 4 Hz), trg(8Hz))。

在哪里:

  • Sin 代表频率为 8/4/5 [Hz] 的正弦波。
  • sqr 代表频率为 8/4 [Hz] 的方波脉冲。
  • Trg 代表频率为 8 [Hz] 的三角脉冲。

2) 现在,如果进行了识别 - 系统将打印信号已被识别,此外,系统将根据字母编号打开 LED。

3)识别完成后,您可以按下按钮,系统将开始重新搜索一个新的频率,或者您可以更改输入信号和噪声。

 

RTISR 的实施:

为了创建已知信号,我们编写了一个函数(“CreateEtalonArrays”),它根据信号的采样频率(在我们的例子中为 20 [Hz])计算信号。

这个频率是在更高频率的几次测试之后选择的。我们得出的结论是,在我们的条件下,这是良好的工作系统和时间效率之间的良好权衡。

我选择了 6 个具有这些频率的波(可变):

具有以下频率的正弦波:8、4、5 [Hz]。

具有以下频率的方波:8、4 [Hz]。

以及频率为 8 [Hz] 的三角波。

该程序将打印一个数组,该数组可以直接复制到 Arduino “progmem”内存中。

(运行程序时无法初始化“程序”)

该函数还计算每个信号的平均值(每个信号单独),这些平均值也可以存储在“progmem”中。

为了实现我们的样本,我们必须使用函数生成器,使用 Arduino 从每个函数中采样 5 个样本。

此外,结果打印在串行监视器上,然后我们将数据复制到主程序。(见以下附件)

pYYBAGNkeFGAVPYtAACF8uRvlMg354.png
二次电路&程序输出
 

 

有源混音器使用的一点解释:

在这一部分中,我们使用了 741 运算放大器(非反相求和放大器)

如下图所示:

 

poYBAGNkeFSAOl0GAABQleXL3v4741.png
信号来自左侧的 3 行 - 黄线,噪声来自左下方的 3 行 - 黄线,混合输出来自右上方 3 行的蓝线
 

为了区分不同的信号,可以为每个信号赋予不同的 LED 颜色。

 

poYBAGNkeFqAJSFSAABldq1EnCo029.png
LED 阵列
 

传奇:

8 [Hz] sin – 橙色 LED

5 [Hz] sin – 绿色 LED

4 [Hz] sin – 黄色 LED

8 [Hz] sqr – 蓝色 LED

4 [Hz] sqr – 红色 LED

8 [Hz] trg – 白色 LED

注意

一次只能打开一个 LED。

 

动机的一些信号识别结果:

8 [Hz] sqr 和 40 [Hz] sqr 波噪声(0.5[v] 幅度和 1[v] 峰峰值):

poYBAGNkeFyAbL49AACeQuF-804366.png
 

 

 

4 [Hz] sin 与 40 [Hz] sqr 波噪声(0.5[v] 幅度和 1[v] 峰峰值):

pYYBAGNkeF-AP2xgAACHm94QkSM840.png
 

8 [Hz] trg 与 40 [Hz] 正弦波噪声(0.5[v] 幅度和 1[v] 峰峰值):

 

pYYBAGNkeGGAEGasAACN2aW6MFY334.png
 

实施此系统后我的结论(自行检查!)

从结果中我们可以得出结论,系统可以很容易地识别出幅度和电压偏移的大变体的两个矩形波。

频率为 5 Hz 和 4 Hz 的正弦波都可以毫无问题地被识别,但幅度和偏移电压的变化较小。

然而,频率为 8 Hz 的正弦波和频率为 8 Hz 的三角波都具有较高的灵敏度和较低的偏移电压和幅度变化。

注意:一个可靠的测试是当我们成功识别波浪 4 次时。

特征:

•系统可以识别6种不同的信号:

• 正弦8[Hz]。

• 正弦5[Hz]。

• 正弦4[Hz]。

•矩形8[Hz]。

•矩形4[Hz]。

•三角形8[Hz]。

• 系统可以将输入信号与大量不同的噪声混合——3 种不同的波,每个波都有一个大范围的频率。

•即使噪声很大,系统也能识别波(与输入波相比,噪声频率是输入频率的两倍)。

•我们可以更改我们想要识别的输入信号,而无需重新启动仿真。

 

 

 

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !