工具/软件:Code Composer Studio
主席先生,下午好。
IAM 正在执行自适应噪声消除项目、其中 AM 使用带 CCSV5.5的 TMS320C6713 DSK。
SIR、当我转储 DSK 套件中的代码时、 没有收到错误、但我 无法在 CRO 中看到输出
主席先生,我可以建议我如何使用这些滑块位置。
为 DSK A 音频提供的 IAM 输入。
/*
* main.c
*
#include "dsk6713.h"
#include "DSK6713_AIC23.h"
#include "stdlib.h"
#include "math.h"
uint32 fs=DSK6713_AIC23_FREQ_8kHz;//设置采样率
#define DSK6713_AIC23_INPUT_MIC 0x0015
#define DSK6713_AIC23_INPUT_LINE 0x0011
uint16 inputsource=DSK6713_AIC23_input_line;
#define BETA 1E-12 //收敛速率
#define N 30 //权重数(系数)
#define Left 0 //左通道
#define RIGHT 1/// RIGHT CHANNEL
浮动 w [N];//调整滤波器的重量
浮点延迟[N];//输入缓冲器以适应滤波器
短路输出;//整体输出
SHORT OUT_TYPE = 1;滑块的//输出类型
volatile union{unsigned int uint;short channel[2];}AIC23_data;
中断 void c_int11 ()//ISR
{
短接 I;
float yn = 0、E = 0、dplusn = 0、desired = 0、noise = 0;
AIC23_data.uint = input_sample ();//来自两个通道的输入
所需=(AIC23_data.channel[LEFT]);//输入左侧通道
噪声=(AIC23_data.channel[RIGHT]);//输入右通道
dplusn =所需+噪声;//desired +噪声
延迟[0]=噪声;//作为输入来调整 FIR
对于(I = 0;I < N;I++)//计算出自适应 FIR
yn +=(w[i]*延迟[i]);//自适应滤波器输出
E =(所需+噪声)- yn;//"error" signal=(d+n)-yn
对于(i = N-1;i >=0;i--)//更新权重和延迟
{
w[i]= w[i]+ BETA * E*延迟[i];//更新权重
delay[i]= delay[I-1];//更新延迟样本
}
if (out_type = 1)//if 滑块位于位置1
output=((short) E);//error 信号作为输出
否则、如果(out_type=2)//if 滑块位于位置2
output=((short) dplusn);//输出(所需+噪声)
output_left_sample_sample (output);//总体输出结果
返回;
}
void main()
{
短接 T = 0;
对于(T = 0;T < 30;T++)
{
W[T]= 0;用于权重的//init 缓冲器
延迟[T]= 0;//init 延迟采样缓冲器
}
COMM_intr ();//init DSK、编解码器、McBSP
while (1);//无限循环
}
