接https://blog.csdn.net/pxy198831/article/details/87017571DSP TMS320C5509A 控制DDS AD9854芯片进行AM幅度调制

AM-MSK调制是MSK的变种,用于航空ACARS通信。

以1200Hz表示数据位和前一位不同,2400Hz表示数据位和前一位相同。两种高低频率的相位连续。

由于传送速率为2400Hz,传输一位数据2400Hz的调制信号是一个周期的波形,而1200Hz则是半个周期的波形。

由于起始相位不同,0,1分别对应4种不同的情况,这样做的好处是能够保证相位连续。

2400Hz和1200Hz的ROM表可以用MATLAB生成,可以生成通用的也可以根据采用频率生成

专用的ROM表,具体看代码。

interrupt void dmaCh0Isr(void)
{int I_Q_result;static int AM_MSK24[18]={0,12062,22430,29648,32702,31166,25248,15788,4106,-8149,-19261,-27666,
-32188,-32188,-27666,-19261,-8149,4106};static int AM_MSK12[34]={0,6141,12062,17557,22430,26509,29648,31739,32702,32509,31166,
28715,25248,20886,15788,10125,          4106,-2058,-8149,-13953,-19261,-23888,-27666,-30468,-32188,-32678,-32188,-30468,-27666,-23888,-19261,-13953,    -8149,-2058};static int AM_MSK_DATA[10]={0,1,0,0,1,1,1,0,0,1};int ATW;static int noise_flag = 0,i_18=0,j_34=0,k_10=0;unsigned char AM_H,AM_L;static int fase=0;//unsigned int AM_register = 0;//float ac,dc;//float temp;//static int i;//long int tmp;//处理接收到的事情
//  dmaCh0Process();//Read the DMA status register to clear it so new interrupts will be seenDMA_RGETH(hDMACH0,DMACSR);DMA_start(hDMACH0);                          /* Begin Transfer *///  head++;*/if (dds_flag == 1){if(k_10==10){k_10=0;}if ((j_34==17)||(j_34==34)){j_34=0;k_10++;}  if (i_18==18){i_18=0;k_10++;}if (k_10 == 0){if(AM_MSK_DATA[k_10]==0){I_Q_result =  AGC_audio(AM_MSK12[j_34]);}else{I_Q_result =  AGC_audio(AM_MSK12[j_34+17]);}j_34++;}else{if(AM_MSK_DATA[k_10]==AM_MSK_DATA[k_10-1]){if(AM_MSK_DATA[k_10]==0){I_Q_result =  0-AGC_audio(AM_MSK24[i_18++]);   }else{I_Q_result =  AGC_audio(AM_MSK24[i_18++]); }}else{if(AM_MSK_DATA[k_10]==0){I_Q_result =  AGC_audio(AM_MSK12[j_34]);}else{I_Q_result =  AGC_audio(AM_MSK12[j_34+17]);}j_34++;}}fir((DATA *)&I_Q_result, (DATA *)B_BS,(DATA *)&I_Q_result, BS_dbuf,1,BL_BS);
//      audio_DDS[Index] += 32768;//      I_Q_result = 2*A*((float)I_Q_result)/(1+A);if (I_Q_result > 0){I_Q_result = ((float)I_Q_result)/8192*2048;} if (I_Q_result < 0){I_Q_result = ((float)I_Q_result)/8192*2048;}//    dc = 2048;//   dc = ((1-A)*0x3fff)/(1+A);//  ac = (2*A*I_Q_result)/(1+A);ATW = (2*A*I_Q_result)/(1+A) + 2048;// temp = ATW;//  ATW = (temp/65536)*4096;AM_H = (ATW&0x0f00)>>8; AM_L = ATW&0xff;audio_DDS[Index] = (AM_H<<8)|AM_L;if(Index>=200){Index = 0;}if (audio_DDS[Index++] > 1000){if (noise_flag<200){noise_flag++;}            }else{noise_flag = 0;}if (noise_flag != 200){AD9854_WR_Byte(OSK_I1_ADDRESS,AM_H);   //设置I通道幅度AD9854_WR_Byte(OSK_I2_ADDRESS,AM_L);}else{AD9854_WR_Byte(OSK_I1_ADDRESS,0xff);     //设置I通道幅度AD9854_WR_Byte(OSK_I2_ADDRESS,0xff);}ad9854_update(); rear++;}
}

DSP TMS320C5509A 控制DDS AD9854芯片进行AM-MSK调制相关推荐

  1. DSP TMS320C5509A 控制DDS AD9854芯片进行AM幅度调制时的噪声抑制

    接上一节https://blog.csdn.net/pxy198831/article/details/87017571 TMS320C5509A 控制DDS AD9854芯片进行AM幅度调制 话音调 ...

  2. DSP TMS320C5509A 控制DDS AD9854芯片进行AM幅度调制

    接上一节https://blog.csdn.net/pxy198831/article/details/86738839DSP TMS320C5509A 控制DDS AD9854芯片驱动 各种调制中最 ...

  3. DSP TMS320C5509A之DMA

    https://blog.csdn.net/pxy198831/article/details/86615497 DSP TMS320C5509A之ADC MAX121中的ADC芯片即是采用DMA的方 ...

  4. xmos驱动_XMOS推出了Xcore.ai处理器,单个设备中提供高性能AI,DSP,控制和IO,价格从1美元起!...

    作者:XMOS,排版整理:晓宇 微信公众号:芯片之家(ID:chiphome-dy) 近日,英国半导体科技公司XMOS宣布推出Xcore.ai ,它是一款面向AIoT市场的超强性能跨界处理器,该处理器 ...

  5. FPGA控制不其他芯片

    1.1 FPGA控制不其他芯片 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA控制不其他芯片: 5)结束语. 1.1.2 本节引言 "不积跬步,无以至 ...

  6. NPC中点箝位三电平 SVPWM控制 T型三电平 羊角波调制

    NPC中点箝位三电平 SVPWM控制 T型三电平 羊角波调制 中点电位平衡 simulink仿真和c语言实现 正弦波完美

  7. 嵌入式STM32入门之定时器控制LED闪烁与产生PWM脉冲宽度调制信号

    定时器控制LED闪烁与产生PWM脉冲宽度调制信号 一.前言 二.定时器基本介绍 (一)STM32定时器 (二)通用定时器主要功能 (三)计数器模式 (四)定时器工作原理 三.实验(1)初识定时器 (一 ...

  8. DSP电机控制串行通信系统电路设计_电动机控制电路图讲解

    电路图简介: 分析了数字信号处理芯片TMS320LF2407A DSP的串行外设接口SPI,及串行通信接口SCI模块.在电机控制实验系统中,给出了由这2个模块构成的串行通信应用实例.重点讲述了相关的串 ...

  9. ds1302模块 树莓派_Arduino控制DS1302时钟芯片(ds1302引脚图及功能和应用电路)

    DS1302应用电路 应用电路一: DS1302的电路一个重点就是时钟电路,它所使用的晶振是一个32.768k的晶振,晶振外部也不需要额外添加其他的电容或者电阻电路了.时钟的精度,首先取决于晶振的精度 ...

  10. DSP TMS320C5509A之DAC8164

    DAC8164,16位四通道SPI接口DAC,发热量较大,不推荐使用,程序如下: #include <csl.h> #include <csl_mcbsp.h> #includ ...

最新文章

  1. Windows脚本初探之PowerShell流程控制if
  2. 多项目管理,研发管理,敏捷开发软件
  3. 进程间通信——DLL共享节
  4. JS系统库:预定义对象(内建对象)
  5. Git 添加到Git 仓库
  6. 深入Java -JVM 垃圾回收
  7. 使用线性回归识别sklearn中的手写数字digit
  8. 数学建模 时间序列分析
  9. sql关于视图的sql_学习SQL:SQL视图
  10. 树莓派VI命令大全(附vim使用异常,卸载重新安装步骤)
  11. Spring定时器corn表达式详解
  12. CentOS依赖包查找工具(https://centos.pkgs.org)
  13. java语言诞生的主要贡献者_2020年12月编程语言排行+GitHub 年度报告正式发布,JavaScript 霸榜、TypeScript 爆发!...
  14. 网页怎么看不到css,怎么查看网页的CSS代码?如何阅读?
  15. SecureCRT通过vim打开文件时显示行号
  16. java静态变量、静态方法、代码块、main方法
  17. 网安技术与应用(4)——配置iptables防御常见攻击
  18. vue+echarts实现省份地图展示
  19. 竣工验收报告主要内容
  20. 敏感词过滤之——自定义构建查询词库与快速查询实现

热门文章

  1. matlab中acos得到的弧度范围,C语言acos()函数:求余弦值为 x 的弧度数
  2. ubuntu 22.04 修复 key is stored in legacy trusted.gpg keyring
  3. 笔记本电脑计算机的配置表,笔记本组装配置清单_笔记本电脑配置单及价格
  4. Jquery点击事件触发多次解决办法
  5. android框架百大排行榜
  6. oracle数据库教程ppt,Oracle 数据库入门教程 PPT
  7. 【笔记】Android APP 上架 Google Play 采坑记之「应用签名证书」
  8. 90后小伙自己开发APP年赚10亿,自己开发APP需要什么工具
  9. 怎么把多个pdf文件合并成一个pdf?
  10. Global.asax 文件是什么