资源描述:
《现代信号处理课设报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、中南大学课程设计报告题目现代信号处理课程设计学生姓名万义武指导教师周扬、支国明学院信息科学与工程学院学号0909118219专业班级电子信息专业1102班一、课程设计题目1、信号发生器用户根据测试需要,可任选以下两种方式之一生成测试信号:(1)直接输入(或从文件读取)测试序列;(2)输入由多个不同频率正弦信号叠加组合而成的模拟信号公式(如式1-1所示)、采样频率(Hz)、采样点数,动态生成该信号的采样序列,作为测试信号。12100sin(2)100sin(2)100sin(2)nftftftppp+++(1-1)2、频谱分析使用FFT对产生的测试信号进行频谱分析并展示其幅频特性与相频特性,指
2、定需要滤除的频带,通过选择滤波器类型(IIR/FIR),确定对应的滤波器(低通、高通)技术指标。3、滤波器设计根据以上技术指标(通带截止频率、通带最大衰减、阻带截止频率、阻带最小衰减),设计数字滤波器,生成相应的滤波器系数,并画出对应的滤波器幅频特性与相频特性。(1)IIRDF设计:可选择滤波器基型(巴特沃斯或切比雪夫型);(2)FIRDF设计:使用窗口法(可选择窗口类型,并比较分析基于不同窗口、不同阶数所设计数字滤波器的特点)。4、数字滤波根据设计的滤波器系数,对测试信号进行数字滤波,展示滤波后信号的幅频特性与相频特性,分析是否满足滤波要求(对同一滤波要求,对比分析各类滤波器的差异)。(1
3、)IIRDF:要求通过差分方程迭代实现滤波(未知初值置零处理);(2)FIRDF:要求通过快速卷积实现滤波(对于长序列,可以选择使用重叠相加或重叠保留法进行卷积运算)。5、选做内容将一段语音作为测试信号,通过频谱展示和语音播放,对比分析滤波前后语音信号的变化,进一步加深对数字信号处理的理解。二、设计过程《1》、第一、二题:(1).信号发生器。①直接输入(或从文件读取)测试序列;②输入由多个不同频率正弦信号叠加组合而成的模拟信号公式。③使用FFT对产生的测试信号进行频谱分析并展示其幅频特性与相频特性。(2).源代码t=(0:0.00001:1);n=0:100;f1=50;y=sin(2*pi
4、*f1*t);f=input('pleasef=');T=1/f;x=sin(2*pi*f1*n*T);m=fft(x);h=abs(m);figure(1);subplot(321)plot(t,y);subplot(322)stem(n,x,'.');title('xulitu');subplot(323)plot(n,h);title('fupintu');subplot(324)xi=interp1(n,x,t*f1,'linear');plot(t,xi);title('chongjiantu');(3)结果(4)分析:采样原理:对模拟信号进行采样可以看作是一个模拟信号通过一个电子
5、开关S。设电子开关每隔周期T合上一次,每次合上的时间为τ,在电子开关输出端得到其采样信号,一般τ很小,τ越小,采样输出脉冲的幅度越接近输入信号在离散时间点上的瞬时值。《2》、第三、四题(1)题目(滤波器设计与数字滤波)滤波器设计—根据输入的数字滤波器的技术指标,包括通带截止频率,通带最大衰减,阻带截止频率,阻带最小衰减,设计滤波器,生成相应的滤波器系数,并画出对应的滤波器幅频、相频特性。IIRDF设计:可选择滤波器基型(巴特沃斯或切比雪夫型);(2)源代码i=input('pleaseinputi(choosefuction)=');switchfix(i)case{1}%低通滤波wp=in
6、put('pleaseinputwp=');ws=input('pleaseinputws=');ap=input('pleaseinputap=');as=input('pleaseinoutas=');fs=1;T=1/fs;wp1=(2/T)*tan(wp/2);ws1=(2/T)*tan(ws/2);[n,wn]=buttord(wp1,ws1,ap,as,'s');[b,a]=butter(n,wn,'s');[bz,az]=bilinear(b,a,fs);w=linspace(0,2*pi,1000);h=freqz(bz,az,w);subplot(311)plot(w(1:
7、500)/pi,abs(h(1:500)));grid;title(['N=',num2str(n)]);text(0.1,0.8,['b=',num2str(bz)]);text(0.1,0.4,['a=',num2str(az)]);xlabel('w/pi');ylabel('幅度(dB)');subplot(312)plot(w/pi,angle(h));xlabel('w/pi');ylabel('