当前位置:文档之家› 《现代信号处理》课程设计实验报告

《现代信号处理》课程设计实验报告

《现代信号处理》课程实验报告指导老师:支国明、周扬专业班级:电子信息1101学号:0909110814姓名:周群创一、课程设计题目和题目设计要求1、信号发生器用户根据测试需要,可任选以下两种方式之一生成测试信号:(1)直接输入(或从文件读取)测试序列;(2)输入由多个不同频率正弦信号叠加组合而成的模拟信号公式(如式1-1所示)、采样频率(Hz)、采样点数,动态生成该信号的采样序列,作为测试信号。

100sin(2Πf1t)+100sin(2Πf2t)+…+100sin(2Πfnt)(1-1)2、频率分析使用FFT对产生的测试信号进行频谱分析并展示其幅频特性及相频特性,指定需要滤除的频带,通过选择滤波器类型(IIR/FIR),确定对应的滤波器(低通、高通)技术指标。

3、滤波器设计根据以上技术指标(通带截止频率、通带最大衰减、阻带截止频率、阻带最小衰减),设计数字滤波器,生成相应的滤波器系数,并画出对应的滤波器幅频特性与相频特性。

(1)I IR DF设计:可选择滤波器基型(巴特沃斯或切比雪夫);(2)F IR DF设计:使用窗口法(可选择窗口类型,并比较分析基于不同窗口、不同阶数所设计数字滤波器的特点)。

4、数字滤波根据设计的滤波器系数,对测试信号进行数字滤波,展示滤波后信号的幅频特性与相频特性,分析是否满足滤波要求(对同一滤波要求,对比分析各类滤波器的差异)。

(1)I IR DF:要求通过差分方程迭代实现滤波(未知初值置零处理);(2)F IR DF:要求通过快速卷积实现滤波(对于长序列,可以选择使用重叠相加或重叠保留法进行卷积运算)。

5、选做内容将一段语音作为测试信号,通过频谱展示和语音播放,对比分析滤波前后语音信号的变化,进一步加深对数字信号处理的理解。

要求:使用MATLAB(或其它开发工具)编程实现上述内容,写出课程设计报告。

二、设计思想和系统功能结构及功能说明首先输入由多个不同频率正弦信号叠加组合而成的模拟信号公式、采样频率(Hz)、采样点数,动态生成该信号的采样序列,作为测试信号,然后使用FFT对产生的测试信号进行频谱分析并展示其幅频特性与相频特性,指定需要滤除的频带,接下来使用等波纹法FIR低通滤波器进行滤波,最后进行分析,检查是否满足滤波要求。

三、关键部分的详细描述和介绍,流程图描述关键模块和设计思想1、信号发生器输入由多个不同频率正弦信号叠加组合而成的模拟信号公式采样频率(Hz)、采样点数,动态生成该信号的采样序列,作为测试信号。

代码:clc,clear; %清除命令窗口的内容,清除工作空间的内容%%%%%%%滤波器参数%%%%%%%%%%%%%%%%%%%%%%% Fp=60; %阻带截止频率Fs=[50 60]; %通带截止频率Ft=1000; %采集频率,Ft>2max(f1,f2,f3)As=30; %阻带最小衰减Ap=0.5; %通带最大衰减a=[1 0];dev=[(10^(Ap/20)-1)/(10^(Ap/20)+1) 10^(-As/20)];wp=2*pi*Fp; %wp,ws分别为通带频率和截止频率,Ap为通带最大衰减,As阻带最小衰减。

ws=2*pi*Fs;%%%%%%%输入信号%%%%%%%%%f1=50;f2=150;f3=250; %输入信号的频率N=600; %数据长度N=0.6/0.001 =600个点T=1/Ft;n=0:N-1; %采样时间间隔,n是采样点数t=n*T; %时间序列randn('state',0); %产生一噪声信号y=100*sin(2*pi*f1*t)+100*sin(2*pi*f2*t)+100*sin(2*pi*f3*t) +0.1*randn(1,N); %输入的时间信号,载入波形效果图2、等波纹法FIR低通滤波器代码Y=fft(y,1024); %进行快速傅里叶变换,fft(x,N)算N点的DFT。

(M为x的点数)若M>N,则将原序列截短为N点序列,再计算其N点DFT;若M<N,则将原序列补零至N点,然后计算其N点DFT。

%%%%%FIR低通等波纹滤波器%%%%%%%%[k,fo,ao,w] = firpmord(Fs,a,dev,Ft);b = firpm(k,fo,ao,w);[h,w]=freqz(b,1,1024,Ft); %等号左边输出,右边输入根据参数求出频率响应figure(3)subplot('211');plot(w*Ft*0.5/pi,20*log10(abs(h)));title('滤波器幅频特性');ylabel('振幅/dB');xlabel('频率/Hz');subplot('212');plot(w*Ft*0.5/pi,180/pi*unwrap(angle(h)));title('滤波器相频特性');ylabel('相位');xlabel('频率/Hz');z=filter(b,1,y);m=fft(z,1024); %求滤波后的信号figure(1)subplot(4,2,3);plot(abs(m),'r'); %x轴范围不填就默认。

函数的长度title('滤波后信号的频谱');grid;%画分割线subplot(4,2,4);plot(z,'b');title('滤波后的信号波形');grid;subplot(4,2,2);plot(y,'b');title('滤波前信号的波形');grid;subplot(4,2,1);plot(abs(Y),'r');title('滤波前信号的频谱');grid;p=angle(m);q=angle(y);subplot(4,1,3);plot(q,'b');title('滤波前相位'); grid;subplot(4,1,4);plot(p,'b');title('滤波后相位'); grid效果图四、总结在做的过程中,最开始只做出了信号发生器,进行了快速傅里叶变换,但是没有做出滤波器,经过询问同学,咨询老师,以及查询资料之后,成功解决了问题,证明了自己的能力。

这次课程设计对我各方面的综合能力有了很大的提高,对我以后的工作,实践都有很大的帮助。

五、参考文献【1】程佩青.数字信号处理教程,第二版【M】.北京:清华大学出版社,2011【2】赵树杰等.数字信号处理【M】.西安:西安电子科技大学出版社,1997【3】陈怀琛等.MATLAB及在电子信息课程中的应用【M】,北京:电子工业出版社,2002六、程序源代码清单%%%%%%%%%%%%%%%%%%%%%%%%%基于Matlab的数字信号处理课程设计%%clc,clear; %清除命令窗口的内容,清除工作空间的内容%%%%%%%%%%%%%%%%%%%%%%%%%滤波器参数%%%%%%%%%%%%%%%%%%%%%%%Fp=60; %阻带截止频率Fs=[50 60]; %通带截止频率Ft=1000; %采集频率,Ft>2max(f1,f2,f3)As=30; %阻带最小衰减Ap=0.5; %通带最大衰减a=[1 0];dev=[(10^(Ap/20)-1)/(10^(Ap/20)+1) 10^(-As/20)];wp=2*pi*Fp; %wp,ws分别为通带频率和截止频率,Ap为通带最大衰减,As阻带最小衰减。

ws=2*pi*Fs;%%%%%%%%%%%%%%%%%%%%%%%%%%输入信号%%%%%%%%%%%%%%%%%%%%%%%%%f1=50;f2=150;f3=250; %输入信号的频率N=600; %数据长度N=0.6/0.001 =600个点T=1/Ft;n=0:N-1; %采样时间间隔,n是采样点数t=n*T; %时间序列randn('state',0); %产生一噪声信号y=100*sin(2*pi*f1*t)+100*sin(2*pi*f2*t)+100*sin(2*pi*f3*t)+0.1*randn(1,N);%输入的时间信号,载入波形Y=fft(y,1024); %进行快速傅里叶变换,fft(x,N)算N点的DFT。

(M为x的点数)若M>N,则将原序列截短为N点序列,再计算其N点DFT;若M<N,则将原序列补零至N 点,然后计算其N点DFT。

%%%%%%%%%%%%%%%%%%%%%%%%%%FIR低通等波纹滤波器%%%%%%%%%%%%%%%%%[k,fo,ao,w] = firpmord(Fs,a,dev,Ft);b = firpm(k,fo,ao,w);[h,w]=freqz(b,1,1024,Ft); %等号左边输出,右边输入根据参数求出频率响应figure(3)subplot('211');plot(w*Ft*0.5/pi,20*log10(abs(h)));title('滤波器幅频特性');ylabel('振幅/dB');xlabel('频率/Hz');subplot('212');plot(w*Ft*0.5/pi,180/pi*unwrap(angle(h)));title('滤波器相频特性');ylabel('相位');xlabel('频率/Hz'); z=filter(b,1,y);m=fft(z,1024); %求滤波后的信号figure(1)subplot(4,2,3);plot(abs(m),'r'); %x轴范围不填就默认。

函数的长度title('滤波后信号的频谱');grid;%画分割线subplot(4,2,4);plot(z,'b');title('滤波后的信号波形');grid;subplot(4,2,2);plot(y,'b');title('滤波前信号的波形');grid;subplot(4,2,1);plot(abs(Y),'r');title('滤波前信号的频谱');grid;p=angle(m);q=angle(y);subplot(4,1,3);plot(q,'b');title('滤波前相位');grid;subplot(4,1,4);plot(p,'b');title('滤波后相位');grid。

相关主题