完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,我正在做一个项目,需要同时产生多个正弦波来驱动高音喇叭。背景是我想把图像转换成声波。每个像素将被设计成具有特定振幅和频率的特定正弦波。如果我想将图像转换为64×64分辨率,则需要生成的正弦波量为4096。
这里有一个问题,我查阅了使用WaveDAC8的波形生成技术文档,但是CouthtimePayStudio实际上是通过使用两个DAC并行地将两个不同的正弦波相加。我知道在PSoC 5 LP中使用数千个DAC不可能增加数千个正弦波。因此,我研究了WaveDACK的局限性,其结果是,我可以同时产生最大的4个波。一个应用工程师建议我设计一个算法,在把这些正弦波加到DMA之前,把这些数千个正弦波相加,然后用DMA通道把最终结果传送到一个WaveDAC8。这是可行的吗? 如果可行的话,有人能帮助我进一步分享我的相关技术文件吗?我不知道如何将这些正弦波添加到编码前的DMA中,然后如何设置WaveDaBibe。我能做的是创建一个振幅表和对应于图像像素的频率表,通过matlab编码。 多谢! 术语 |
|
相关推荐
5个回答
|
|
当你把同样的问题发布到多个、无关联的论坛时(你的问题既不是一个已知的问题),也不是与“设备编程”有关的问题,它并没有真正的帮助。
答案应在这里处理:HTTP//wwwyCyp.com /FoMU/PSOC-5架构/问题波形生成-PSOC-5-LP |
|
|
|
生成正弦波的阵列的算法很简单。您可以在电子表格中使用公式=Sin(2×PI-(*)*A1/61)* 0.75,其中61表示单个波周期中的样本数,0.75表示振幅。如果你在C中做了很多这些,我想你很快就会看到某些问题。首先,在没有内存不足的情况下,不能有4096个数组,因此在汇总两个数组的值之后,您希望重新使用数组。其次,假设你的数组长度是128个样本。对于在128中没有整数倍的波长的任何波长,当输出回到样本[0 ]时,在样本(127)上不会交叉在零上。因此,你会在这些频率上产生严重的交叉失真。下面是一段代码,它预先生成两个不同频率和振幅的正弦波,并将两个正弦波相加。我不是说这是一个解决办法,事实上,我认为这说明了你可能会遇到什么问题。您可能想在硬件中寻找模拟解决方案。
定义π3.14159265α定义幅值1,0.5,UTIN 8 i,j;浮子SnWaW1[128 ],SnWal2[128 ];浮子SUFFOWAL(128);(i=0;I & lt;128;i++)SUFOFWORD [I]=0;(i=0;I & lt;128;i++){SnWav1=(i*2*π/128)*振幅1;/ /结束点在ZE的包装RO到下一个波形SnWav2=(i*2×π/61)*振幅2;(或)注意在零SUFFWORD中两端将不交叉 += SnWav1 + SnWav2;}输出(SUFFWAVE);/ /一些将输出信号的函数; |
|
|
|
|
|
|
|
卿小知1 发表于 2019-10-11 11:40 我试图产生一个正弦波,但我失败了。结果显示我有一个4V直流电压(可能是因为我设置了DAC规模:0~4.08V),请看一下我的代码,看看有什么不对吗?我还尝试了你的方程式正弦波=(i×2×π/800)*振幅;(假设每周期需要800个样本),但结果是相同的。也许我认为完全错了?我在调试中花了很多时间,但没法弄清楚。 我的代码: 项目包括H.& Gt; *定义表大小1000 / /样本量,定义两个ππ(3.14159×2),定义振幅1,定义Max FRIQ 400,定义FRQQ1 200,定义最大频率800。 It主(){浮点样本[TablaySime];浮点时间增量=(1 /Max FRIQ)/ SamplePerPeriod;int数字结果[TablaySime];浮点T[表大小];/ /每个采样点浮点ADCdP=(2×振幅)/255;int i;vdAc811x启动();(i=0;i;lt;TablySige;I++){t=i *时间增量;样本=幅值*Sin(TooOiπ* FrqY1*t);//样本((i*TooOiπ)/ SamplePerPeriod)*幅度;数字结果[I] =(int)((样本 +振幅)/ADC增量);VDAC811StValk(DigialReal);CyDelayUs(1);//时间intErVar是3.13US }//}返回0;} 多谢!! 当做, 术语 |
|
|
|
您可以尝试在第一个循环中创建具有数据的表,然后使用第二个循环将它们发送到DAC。这样,您可以在第一个循环之后放置断点(或者通过UART发送到PC),并检查其中的值确实是正确的。
|
|
|
|
只有小组成员才能发言,加入小组>>
752个成员聚集在这个小组
加入小组2071 浏览 1 评论
1827 浏览 1 评论
3639 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1761 浏览 6 评论
1513 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
511浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
361浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
410浏览 2评论
357浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
858浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 06:17 , Processed in 1.011091 second(s), Total 85, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号