《现代信号处理》课程设计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《现代信号处理》
课程实验报告
指导老师:支国明、周扬
专业班级:电子信息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 %%%%%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;