数字信号处理.docx
- 文档编号:26704383
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:16
- 大小:173.58KB
数字信号处理.docx
《数字信号处理.docx》由会员分享,可在线阅读,更多相关《数字信号处理.docx(16页珍藏版)》请在冰豆网上搜索。
数字信号处理
《数字信号处理》实验报告
专业电子信息工程系
学号091308
姓名
实验一利用FFT实现快速卷积
一、实验目的
1.加深理解FFT在实现数字滤波(或快速卷积)中的重要作用,更好的利用FFT进行数字信号处理。
2.掌握循环卷积和线性卷积两者之间的关系。
二、实验报告要求
1.简述实验原理及目的。
2.记录调试运行情况及所遇问题的解决方法。
3.给出实验结果,并对结果作出分析。
4.简要回答思考题。
三、实验原理
用FFT来快速计算有限长度序列的线性卷积。
这种方法就是先将输入信号x(n)通过FFT变换为它的频谱采样值
,然后再和FIR滤波器的频响采样值H(k)相乘,H(k)可事先存放在存储器中,最后再将乘积H(k)X(k)通过快速傅里叶变换(简称IFFT)还原为时域序列,即得到输出y(n)。
现以FFT求有限长序列的卷积及求有限长度序列与较长序列间的卷积为例来讨论FFT的快速卷积方法。
序列x(n)和h(n)的长差不多。
设x(n)的长为N1,h(n)的长为N2,要求
用FFT完成这一卷积的具体步骤如下:
①为使两有限长序列的线性卷积可用其循环卷积代替而不发生混叠,必须选择循环卷积长度
,若采用基2-FFT完成卷积运算,要求
(
为整数)。
②用补零方法使x(n)和h(n)变成列长为N的序列。
③用FFT计算x(n)和h(n)的N点离散傅里叶变换。
④完成X(k)和H(k)乘积,
⑤用FFT计算
的离散傅里叶反变换得
四、主要实验仪器及材料
微型计算机、Matlab6.5教学版。
五、实验内容
1.数字滤波器的脉冲响应为
。
输入序列x(n)可选下列几种情况
①
。
②
。
③
。
2.实验前,预先编制一个应用FFT实现数字滤波器的通用程序。
3.上机独立调试,并打印或记录实验结果。
4.将实验结果与预先笔算的结果比较,验证其正确性。
六、实验程序
xn1=[1,1,1,1,1,1,1,1];%建立x1(n)序列
xn2=[1/2,1/4,1/8,1/16,1/32,1/64,1/128,1/256];%建立x2(n)序列
N=length(xn1);
n=0:
N-1;k=0:
N-1;
Xk1=fft(xn1,N);%由x1(n)的FFT求X1(k)
Xk2=fft(xn2,N);%由x2(n)的FFT求
Yk=Xk1.*Xk2;%Y(k)=X1(k)X2(k)
yn=ifft(Yk,N)%由Y(k)的IFFT求y(n)
yn=abs(yn)
subplot(2,3,1),stem(n,xn1,'k');
title('x1(n)');
subplot(2,3,2),stem(n,xn2,'k');
title('x2(n)');
subplot(2,3,3),stem(n,yn,'k');
title('y(n)');
subplot(2,3,4),stem(k,abs(Xk1),'k');
title('X1(k)');
subplot(2,3,5),stem(k,abs(Xk2),'k');
title('X2(k)');
subplot(2,3,6),stem(k,abs(Yk),'k');
title('Y(k)');
七、实验结果
yn=0.99610.99610.99610.99610.99610.99610.99610.9961
yn=0.99610.99610.99610.99610.99610.99610.99610.9961
八、思考题
1.N同时取8、16、32时,线性卷积和循环卷积的结果有何不同,为什么?
2.分析直接计算线性卷积和利用FFT计算线性卷积的时间。
实验二数字滤波器的结构
一、实验目的
(1)加深对数字滤波器分类与结构的了解;
(2)明确数字滤波器的基本结构及其相互间的转换方法;
(3)掌握用MATLAB进行数字滤波器各种结构相互间转换的子函数及程序编写方法。
二、实验原理
一个离散LSI系统可用系统函数来表示;
也可用差分方程来表示:
当
至少有一个不为0时,则在有限z平面上存在极点,表示一个IIR数字滤波器;当
全都为0时,系统不存在极点,表示一个FIR系统。
IIR数字滤波器的基本结构分为直接Ⅰ型、直接Ⅱ型、级联型和并联型。
FIR数字滤波器的基本结构分为横截型、级联型、并联型、、线性相位型和频率抽样型。
三、实验仪器
微型计算机、MATLAB
四、实验内容
(1)已知一个IIR系统的系统函数为
将其从直接型转换为级联型和并联型结构,并画出各种结构的流程图。
(2)已知一个FIR系统的系统函数为
将其从横截型转换为级联型结构,并画出各种结构的流程图。
五、实验程序
(1)b=[0.1,-0.4,0.4,-0.1];%输入系统函数b参数
a=[1,0.3,0.55,0.2];%输入系统函数a参数
[sos,g]=tf2sos(b,a)%由直接型转换为级联型
[C,B,A]=dir2par(b,a)%由直接型转换为并联型
(2)>b=[0.2,0.885,0.212,0.2120.885];%输入系统函数b参数
a=[1];%输入系统函数a参数
[sos,g]=tf2sos(b,a)%由横截型转换为级联型
六、试验结果与分析
(1)sos=1.0000-2.618001.00000.35190
1.0000-1.38200.38201.0000-0.05190.5683g=0.1000
C=-0.5000
B=-0.57860.0148
1.17860
A=1.0000-0.05190.5683
1.00000.35190
(2)sos=1.00005.28304.63861.000000
1.0000-0.85800.95401.000000
g=0.2000
实验三用双线性变换法设计IIR数字滤波器
一、实验目的
(1)加深对双线性变换法设计FIR数字滤波器的基本原理的理解;
(2)掌握用双线性变换法设计数字低通、高通、带通滤波器的设计;
(3)了解MATLAB有关双线性变换法设计的常用子函数。
二、实验原理
1.设计思想
s平面与z平面之间满足以下映射关系:
s平面的虚轴单值地映射于z平面的单位圆上,s平面的左半平面完全映射到z平面的单位圆内。
双线性变换不存在混叠问题。
双线性变换时一种非线性变换
,这种非线性引起的幅频特性畸变可通过预畸而得到校正。
2.设计步骤
(
(1)确定数字滤波器的性能指标:
通带临界频率
、阻带临界频率
;通带内的最大衰减
;阻带内的最小衰减
;
(2)确定相应的数字角频率
;
(3)计算经过预畸的相应模拟低通原型的频率
;
(4)根据
计算模拟低通原型滤波器的阶数N,并求得低通原型的传递函数
;
(5)用上面的双线性变换公式代入
,求出所设计的传递函数
;
(6)分析滤波器特性,检查其指标是否满足要求。
三、实验仪器
微型计算机、MATLAB
四、实验内容
(1)采用双线性变换法设计一个巴特沃斯数字低通滤波器,要求:
通带截止频率
,阻带截止频率
,滤波器的采样频率
,并画出滤波器的幅频响应曲线和相频响应曲线以及零极点图。
五、实验程序
%双线性变换法设计巴特沃斯数字低通滤波器
%数字滤波器指标
wp=0.25*pi;%滤波器的通带截止频率
ws=0.4*pi;%滤波器的阻带截止频率
Rp=1;As=15;%输入滤波器的通阻带衰减指标
ripple=10^(-Rp/20);
Attn=10^(-As/20);
%转换为模拟原型滤波器指标
Fs=100;T=1/Fs;
Omgp=(2/T)*tan(wp/2);
Omgs=(2/T)*tan(ws/2);
%模拟原型滤波器计算
[n,Omgc]=buttord(Omgp,Omgs,Rp,As,'s')%计算阶数n和截止频率
[z0,p0,k0]=buttap(n);%归一化切比雪夫1型原型设计
ba=k0*real(poly(z0));%求原型滤波器系数b
aa=real(poly(p0));%求原型滤波器系数a
[ba1,aa1]=lp2lp(ba,aa,Omgc);%变换为模拟低通滤波器
%注意,以上4行求滤波器系数ba1、aa1的程序,可由下一条程序替代
%[ba1,aa1]=butter(n,Omgc,'s');%直接求模拟滤波器系数
%用双线性变换法计算数字滤波器系数
[bd,ad]=bilinear(ba1,aa1,Fs)%双线性变换
[sos,g]=tf2sos(bd,ad)%由直接型变换为级联型
%求数字系统的频率特性
[H,w]=freqz(bd,ad);
dbH=20*log10(abs(H)/max(abs(H)));%化为分贝值
subplot(2,2,1),plot(w/pi,abs(H));
ylabel('|H|');title('幅度响应');axis([0,1,0,1.1]);
set(gca,'XTickMode','manual','XTick',[0,0.25,0.4,1]);
set(gca,'YTickMode','manual','YTick',[0,Attn,ripple,1]);grid
subplot(2,2,2),plot(w/pi,angle(H)/pi);
ylabel('\phi');title('相位响应');axis([0,1,-1,1]);
set(gca,'XTickMode','manual','XTick',[0,0.25,0.4,1]);
set(gca,'YTickMode','manual','YTick',[-1,0,1]);grid
subplot(2,2,3),plot(w/pi,dbH);title('幅度响应(dB)');
ylabel('dB');xlabel('频率(\pi)');axis([0,1,-40,5]);
set(gca,'XTickMode','manual','XTick',[0,0.25,0.4,1]);
set(gca,'YTickMode','manual','YTick',[-50,-15,-1,0]);grid
subplot(2,2,4),zplane(bd,ad);
axis([-1.1,1.1,-1.1,1.1]);title('零极图');
六、试验结果与分析
n=5
Omgc=103.2016
bd=0.00720.03620.07250.07250.03620.0072
ad=1.0000-1.94341.9680-1.07020.3166-0.0392
sos=1.00001.003701.0000-0.31930
1.00002.00231.00231.0000-0.69840.2053
1.00001.99400.99401.0000-0.92570.5976
g=0.007
七、思考题
使用双线性变换法时,数字频率与模拟频率有何关系?
会带来什么影响?
如何解决?
实验四用窗函数法设计FIR数字滤波器
一、实验目的
(1)加深对窗函数法设计FIR数字滤波器的基本原理的理解;
(2)学习用MATLAB语言的窗函数法编写设计FIR数字滤波器的程序;
(3)了解MATLAB有关窗函数法设计的常用子函数。
二、实验原理
1.设计思想
从时域从发,设计
逼近理想
。
设理想滤波器
的单位脉冲响应为
。
一般是无限长的,且是非因果的,不能直接作为FIR滤波器的单位脉冲响应。
要想得到一个因果的有限长的滤波器h(n),最直接的方法是截断
,即截取为有限长因果序列,并用合适的窗函数进行加权作为FIR滤波器的单位脉冲响应。
2.设计步骤
(1)根据过渡带和阻带衰减设计指标选择窗函数的类型,并估算滤波器的阶数
:
(2)由数字滤波器的理想频率响应
求出理想的单位冲激响应
。
(3)计算数字滤波器的单位冲激响应
。
(4)检查设计出的滤波器是否满足技术指标。
若不满足技术指标,则需重新选择或调整窗函数的类型,估算滤波器的阶数
,再重复前面的四个步骤,直到满足指标为止。
三、实验仪器
微型计算机、MATLAB
四、实验内容
选择合适的窗函数设计FIR数字低通滤波器。
要求:
通带截止频率
,阻带截止频率
,描绘实际滤波器的脉冲响应、窗函数及滤波器的幅频响应曲线和相频响应曲线。
五、实验程序
%FIR低通滤波器
wp=0.3*pi;ws=0.45*pi;%输入设计指标
deltaw=ws-wp;%计算过渡带的宽度
N0=ceil(6.6*pi/deltaw)%按哈明窗计算滤波器长度N0
N=N0+mod(N0+1,2)%为实现FIR类型I偶对称滤波器,应确保N为奇数
windows=(hamming(N))';%使用哈明窗,并将列向量变为行向量
wc=(ws+wp)/2;%截止频率取通阻带频率的平均值
hd=ideal_lp(wc,N);%建立理想低通滤波器
b=hd.*windows%求FIR系统函数系数
[db,mag,pha,grd,w]=freqz_m(b,1);%求解频率特性
n=0:
N-1;dw=2*pi/1000;%dw为频率分辨率,将0~2π分为1000份
Rp=-(min(db(1:
wp/dw+1)))%检验通带波动
As=-round(max(db(ws/dw+1:
501)))%检验最小阻带衰减
subplot(2,2,1),stem(n,b,'filled','k');
axis([0,N,1.1*min(b),1.1*max(b)]);title('实际脉冲响应');
xlabel('n');ylabel('h(n)');
subplot(2,2,2),stem(n,windows,'filled','k');
axis([0,N,0,1.1]);title('窗函数特性');
xlabel('n');ylabel('wd(n)');
subplot(2,2,3),plot(w/pi,db,'k');
axis([0,1,-80,10]);title('幅频响应');
xlabel('频率(单位:
\pi)');ylabel('H(e^{j\omega})');
set(gca,'XTickMode','manual','XTick',[0,wp/pi,ws/pi,1]);
set(gca,'YTickMode','manual','YTick',[-50,-20,-3,0]);grid
subplot(2,2,4),plot(w/pi,pha,'k');
axis([0,1,-4,4]);
title('相频响应');
xlabel('频率(单位:
\pi)');ylabel('\phi(\omega)');
set(gca,'XTickMode','manual','XTick',[0,wp/pi,ws/pi,1]);
set(gca,'YTickMode','manual','YTick',[-pi,0,pi]);grid
functionhd=ideal_lp(wc,N)
%hd=点0到N-1之间的理想脉冲响应
%wc=截止频率(弧度)
%N=理想滤波器的长度
tao=(N-1)/2;
n=[0:
(N-1)];
m=n-tao+eps;%加一个小数以避免0作除数
hd=sin(wc*m)./(pi*m);
%freqz_m.m
function[db,mag,pha,grd,w]=freqz_m(b,a);
[H,w]=freqz(b,a,1000,'whole');
H=(H(1:
501))';w=(w(1:
501))';
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
pha=angle(H);
grd=grpdelay(b,a,w);
六.试验结果
N0=44
N=45
b=
Columns1through10
0.0008-0.0005-0.0016-0.00080.00190.0033-0.0000-0.0057-0.00560.0038
Columns11through20
0.01260.0060-0.0136-0.02190.00000.03310.0316-0.0216-0.0738-0.0389
Columns21through30
0.11040.29270.37500.29270.1104-0.0389-0.0738-0.02160.03160.0331
Columns31through4
0.0000-0.0219-0.01360.00600.01260.0038-0.0056-0.0057-0.00000.0033
Columns41through45
0.0019-0.0008-0.0016-0.00050.0008
Rp=0.0428
As=50
七、结果分析
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理