期末专题老师给了一段程式要求我们改成变声器,或者叫我们自己写。。要求输出的声音能听清楚就可以了,但是改了半天还是无法清晰的听到声音,要从哪里下手呢
// program scrambler.c
#include "DSK6713_AIC23.h" // codec support
Uint32 fs=DSK6713_AIC23_FREQ_16KHZ; //set sampling rate
#define DSK6713_AIC23_INPUT_MIC 0x0015
#define DSK6713_AIC23_INPUT_LINE 0x0011
Uint16 inputsource=DSK6713_AIC23_INPUT_LINE; // select line in
#include "sine160.h"
#include "lp3k64.cof" //filter coefficient file
float yn1, yn2; //filter outputs
float x1[N],x2[N]; //filter delay lines
int index = 0;
interrupt void c_int11()
{
short i;
// first filter input
x1[0] = (float)(input_left_sample()); //get new input into delay line
yn1 = 0.0; //initialise filter output
for (i=0 ; i<N ; i++) yn1 += h[i]*x1[i];
for (i=(N-1) ; i>0 ; i--) x1[i] = x1[i-1];
// next mix with 3300Hz
yn1 *= sine160[index++];
if (index >= NSINE) index = 0;
// now filter again
x2[0] = yn1; //get new input into delay line
yn2 = 0.0; //initialise filter output
for (i=0 ; i<N ; i++) yn2 += h[i]*x2[i];
for (i=(N-1) ; i>0 ; i--) x2[i] = x2[i-1];
output_left_sample((short)(yn2)); //output to codec
return;
}
void main() //main body of program does nothing
{
comm_intr(); //initialise McBSP, AD535
while(1); //infinite loop
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
就是说需要把上面程式改成:输入一个音频,然后可以听到另外一个声音。。
老师叫我们用matla输出
b#include "sine160.h"
#include "lp3k64.cof" //filter coefficient file
这两个文件,LP3K64低通滤波器,滤掉3K以上的音频
sine160.h 是一个fc=3.3KHz 之數位三角函數波,Fs=16KHz,用matlab取样160点..
这个是老师给的课件。。。
就是需要把这个改成用麦克风讲话输入,然后输出可以听到另外一个清楚的声音。。
不知道您能否看清楚,,谢谢
一周热门 更多>