- 21
- 0
- 约5.67千字
- 约 17页
- 2019-11-27 发布于湖北
- 举报
通信系统工程应用训练实验报告
题目:数字音频回声系统的处理
专业:通信工程
姓名: 吕迪
学号指导教师:孙恩昌
完成日期:2016年6月6日
一、实验目的
加深对IIR滤波器基本原理的理解;
学习利用IIR滤波器的C语言程序;
了解数字音频回声处理的方法,提高分析和解决问题的能力。
二、实验内容
下面是一个对实际效果模拟的组合方案,如图3所示。其中左面的子系统是延迟相加模块,滤波器参数分别为
=0.75,b=1,R=29
=0.75,b=0.9,R=37
=0.75,b=0.8,R=44
=0.75,b=0.7,R=50
右面的子系统是第二个延迟相加模块,参数为
=0.75, R=27
=0.75, R=31
输入一个脉冲信号,观察输出信号的波形(脉冲响应)。
求和 1.0
求和
0.9
0.8
0.7
图3 数字音频回声系统模拟
三、实验思路及流程图
开始
开始
结束对结果求DFT变换,画出频谱图求和得到的结果作为后边延时器的输入,输出结果
结束
对结果求DFT变换,画出频谱图
求和得到的结果作为后边延时器的输入,输出结果,画出图形
对上一级输出进行求和,,画出对应输出图形
分别将x1[60]加载到滤波器中,得到对应的输出文件,并画出对应的输出图形
初始化画板、画笔,画出x、y轴
定义
定义并且初始化全局变量数组a[60],b[60],c[60],d[60]存储各级延时器的输出,初始化文件指针用于输出数据,定义数组x1[60]存放输入信号单位冲击响应
四、实验结果
单位冲击响应时延29滤波后图形
单位冲击响应时延37滤波后图形
单位冲击响应时延44滤波后图形
单位冲击响应时延55滤波后图形
滤波后求和后图形
求和后时延27滤波后图形
再次时延31滤波后图形
DFT变换后频谱图
五、实验程序
#include stdafx.h
#includeD:\x_math.cpp
#includeD:\x_graph.cpp
void Filter1(int t,double x[]); //延迟相加模块一
void Filter2(double a,double b,double x[],int c0); //延迟相加模块二
void Filter3(double a,double b,double x[]); //延迟相加模块三
void plotgri2test(COLORREF gridcolor,COMPLEX p[],int N); //二维绘图函数
double a[60];
double b[60];
double c[60];
double d[60];
int main(int argc, char* argv[])
{
int i;
double x1[60];
COMPLEX X2[60],X3[60];
FILE *txtfile1;
FILE *txtfile2;
FILE *txtfile3;
FILE *txtfile4;
FILE *txtfile5;
FILE *txtfile6;
FILE *txtfile7;
x1[0]=1; //在零时刻提供一个脉冲
for(i=1;i60;i++)x1[i]=0;
for(i=0;i60;i++)a[i]=0;
window2(IIR数字滤波器-29,-2,3,70,-1,t,f(t));
HPEN pen1=CreatePen(PS_SOLID,5,BLACK),oldpen=(HPEN)SelectObject(win2.hdc,pen1);//创建画笔
HPEN pen2=CreatePen(PS_SOLID,1,RED);
HPEN pen3=CreatePen(PS_SOLID,5,BLUE);
xy2(GREEN);//画xy轴。
Filter1(29,x1);
SelectObject(win2.hdc,pen3);
for(int n=0;n60;n++)
{
line2(n,0,n,a[n]);
}
SelectObject(win2.hdc,pen2);
for( n=0;n60;n++)
{
line2(n,0,n,x1[n]);
}
getch();//等待
for(i=0;i60;i++){
b[i]=a[i];
} //将结果存进数组b,进行求和
txtfile1=fopen(1.tx
原创力文档

文档评论(0)