1、数字信号处理上机实验报告 学号: 姓名: 实验题目一 1. 实验要求:序列卷积计算 (1)编写序列基本运算函数,序列相加、相乘、翻转、求和; (2)使用自定义函数计算序列线性卷积,并与直接计算结果相比较。两个序列分别为: , 1 ,0 5 0,others n n x n 2 ,0 3 0,others n n x n 2. 实验过程和步骤:包含题目分析,实验程序和流程图(程序要有必要的注释) 3. 实验结果和分析:包含程序运行结果图,结果分析和讨论 (一) 基本运算函数 1. 原序列 2. 序列相加序列相加程序 function y,n=sigadd(x1,n1,x2,n2) %implem
2、ents y(n)=x1(n)+x2(n) %- % y,n = sigadd(x1,n1,x2,n2) % y = sum sequence over n, which includes n1 and n2 % x1 = first sequence over n1 % x2 = second sequence over n2 (n2 can be different from n1) % n=min(min(n1),min(n2):max(max(n1),max(n2); %duration of y(n) y1=zeros(1,length(n); y2=y1; y1(find(n=mi
3、n(n1) x2=0:3; n1=0:5; n2=0:3; leng1=length(x1); leng2=length(x2); %定义序列 x1 和 x2 N=leng1+leng2-1; %计算卷积后的序列长度 f=zeros(1,N); %创建存放卷积结果的序列 x21,n2 = sigfold(x2,n2); %调用翻转子函数将 x2 翻转 for i=0:1:N-1; %移位计算卷积,循环 N 次 x21,n2=sigshift(x21,n2,1); %调用移位子函数将右移 1位 y=sigmult(x1,n1,x21,n2); %调用相乘子函数将移位后的序列相乘 z=sum(y)
4、; %将相乘后的序列求和 f(1,N)=z; %将求和的值放入 f 的最后一项 f=circshift(f,-1); %将 f 循环左移一位,为下一个序列求和做准备 end f=circshift(f,2); %循环中循环左移多了两次,将序列调整回正常位置 y=conv(x1,x2) %直接调用 conv 计算线性卷积存入 y figure(1) subplot(211) stem(f) %绘制自定义函数计算的卷积结果图 xlabel(自定义函数计算线性卷积) subplot(212) stem(y) %绘制调用 conv 函数计算的卷积结果图 xlabel(使用 conv 计算线性卷积)4.
5、 实验结果和分析 a) 实验结果图 b) 结果分析和讨论 使用自定义函数计算的卷积结果和调用 conv 计算的卷积结果一致,本实验再现了使用 MATLAB 计算线性卷积的过程,加深了对线性卷积的认识。实验题目二 1. 实验要求:设计 FIR 数字滤波器 使用汉宁窗设计带阻 FIR 滤波器,性能指标为:阻带边界频率 ,低通边界 0.4 0.6 : 频率 ,高通边界频率 ,通带纹波 ,阻带纹波 ,描述设计过程,并绘 0.3 0.7 1dB 50dB 制其频率特性图。 2. 实验过程和步骤:包含题目分析,实验程序和流程图(程序要有必要的注释) 3. 实验结果和分析:包含程序运行结果图,结果分析和讨论
6、 (一)实验过程和步骤: 1. 题目分析 在电子电路设计中,滤波器起着非常重要的作用。利用滤波器可以改变信号中所含频 率的相对比例或滤除某些频率分量。在当今的电子设计中,数字部分所占的比重越来越大, 滤波器设计也由传统的模拟滤波器转变成了数字滤波器。相比于模拟滤波器,数字滤波器 的性能更加容易控制,并且性能稳定。如何设计好数字滤波器,已经成为当今电子设计人 员不可缺少的本领。 数字滤波器分为无限长冲击响应滤波器(IIR)和有限长冲击响应滤波器(FIR)两种。 由于IIR滤波器的设计需要考虑稳定性问题,并且具有相位非线性的特点,应用比较少。 FIR的低通滤波器设计一般采用窗函数法,利用已知窗函数
7、的特性来设计所需性能的滤 波器。常用的窗函数由汉名窗,海宁窗,布莱克曼,恺撒窗等,其中除了恺撒窗外都有固 定的性能参数(截止频率,通代纹波,阻带衰减等),而恺撒窗通过对参数的改变可以 实现各种其他窗函数的性能。 综合以上所述,本文简单介绍了用汉宁窗设计FIR型数字滤波器的过程。 窗函数法设计FIR 滤波器的基本步骤 (1) 根据技术要求确定待求滤波器的单位取样响应 如果已知待求滤波器的频响:Hd(ejw),则: d e e H n h n j j d d ) ( 2 1 ) ( 如果已知通带和阻带衰减和边界频率的要求,可选用理想滤波器作为逼近函数: H d (e jw ) IDFT h d (
8、n) = | | , 0 | | , ) ( c c a j j d e e H ) ( ) ( sin( ) ( a n a n n h c d (2) 根据过渡带及阻带衰减要求,确定窗函数及其长度 设过渡带宽为:,其值近似于窗函数主瓣宽度。 与窗口长度N成反比:N A/ ,A的窗口形式;如:矩形窗:A=4;海明窗: A=8; 选择窗口函数的原则:在保证阻带衰减满足要求的前提下,尽量选择主瓣窄的窗 函数。 (3) 计算滤波器的单位采样响应h(n) ) ( ) ( ) ( n w n h n h d (4) 验算技术指标是否满足要求,计算设计的滤波器频率响应: 计算设计的滤波器频率响应: 1
9、0 ) ( ) ( N n n j j d e n h e H 汉宁窗定义 汉宁窗(Hanning)函数时域形式可表示为: Hn 1 2 1 cos ( ) 2 1 N n W n R n N 利用傅利叶变换的调制特性,由上式可得汉宁窗的平谱函数为: 1 2 1 2 Hng 2 2 0.5 0.25 1 1 ( ) g g g j Hn Hn N j R R R N j W e FT W n W W W e N N W e 当N远大于1时,上式可近似表示为: g g g Hng 2 2 ( ) 0.5 0.25 0.5 0.5 R R R W W W W N N 这三部分之和使旁瓣互相抵消,能
10、量更集中在主瓣,汉宁窗函数的最大旁瓣值比主 瓣值低31dB,但是主瓣宽度比矩形窗函数的主瓣宽度增加了1倍,为8/N。 2. 实验程序 wp1=0.3*pi; ws1=0.4*pi; ws2=0.6*pi; wp2=0.7*pi; %设计指标参数赋值wdelta=ws1-wp1; %计算过渡带宽度 N0=ceil(6.2*pi/wdelta); %计算阶数 N0,ceil(x)取大于等于 x的最小整数 wc=(ws1+wp1)/2,(ws2+wp2)/2; %设置理想带通截止频率 N=N0+mod(N0+1,2); %确保 h(n)长度是奇数 n=0:N0-1; b=fir1(N0,wc/pi,
11、stop,hanning(N); %调用 firl 计算带阻 FIR 滤波器的 h(n) H,f=freqz(b,1,512,100); %计算滤波器的幅频特性 figure(1) plot(f,20*log10(abs(H) xlabel(频率/Hz);ylabel(振幅/dB);grid on;title(频率特性); figure(2) impz(b,1) %滤波器的单位脉冲响应 xlabel(n); ylabel(h(n); grid on; title(单位脉冲响应); figure(3) zplane(b,1) %滤波器的极点分布 3. 流程图 开始 计算过渡带宽 确定窗函数长度 计算h(n) 调用绘图程序绘 制其频率特性图 结束 (二)实验结果和分析a) 程序运行结果图b) 结果分析和讨论 设计的FIR滤波器满足了阻带边界频率 ,低通边界频率 ,高通边 0.4 0.6 : 0.3 界频率 的要求,但是由于汉宁窗的阻带最小衰减是44dB,达不到题目的要求,如果 0.7 选择哈明窗、布莱克曼窗或者凯塞窗都能达到实验题目要求。