数字信号处理实验报告.docx_第1页
数字信号处理实验报告.docx_第2页
数字信号处理实验报告.docx_第3页
数字信号处理实验报告.docx_第4页
数字信号处理实验报告.docx_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京理工大学20112012学年第一学期数字信号处理实验报告数字信号处理实验报告姓名:班级:学号:实验1 基2-fft算法实现一、实验目的1.掌握基2-fft的原理及具体实现方法。2.编程实现基2-fft算法。3.深刻理解fft算法的特点。二、实验设备与环境计算机,matlab软件环境。三、 实验基础理论fft是dft的一种快速算法,能使dft的计算大大简化,运算时间缩短。fft利用了wnnk的三个固有特性。即对称性,周期性和可约性,将长序列的dft分解为短序列的dft,合并了dft运算中的某些项,从而减少了dft的运算量。fft算法基本上可分为两大类,即按时间抽取法和按频率抽取法。在实现fft算法时,要重点考虑两个问题,注意数据的读取和存储:(1)输入输出的排序;(2)蝶形运算的实现。按时间抽取算法中输入反序输出顺序,按频率抽取算法中输入顺序输出反序;运算过程中的每一级都有n/2个蝶形运算构成,每一个蝶形运算单元中,两个节点变量运算后得到的结果为下一列相同位置的节点变量,而和其他节点变量无关,可以采用原位运算,节省存储单元。另外,蝶形运算中的复系数wnnk可以存储为能及时查阅的系数表,这样可以借阅运算量,但是需要n/2哥复数存储器。matlab中提供了用于计算fft的函数fft,可将实验中所得到的结果与利用matlab中fft函数计算的结果相比较,以此验证结果的正确性。4. 实验内容及实验过程1. 编程实现序列长度为n=8的按时间抽取的基2-fft算法。给定一个8点序列,采用编写的程序计算其dft,并与matlab中fft函数计算的结果相比较,以验证结果的正确性。代码如下:x=1 2 3 4 5 6 7 8;m=3; %x序列长度为2的3次幂n=8;nxd=bin2dec(fliplr(dec2bin(1:n-1,m)+1; %求倒序列y=x(nxd); for mm=1:m %对x做m次基2分解nz=2mm;u=1; wn=exp(-i*2*pi/nz); for j=1:nz/2for k=j:nz:nkp=k+nz/2; t=y(kp)*u; %蝶形运算乘项y(kp)=y(k)-t; %加项y(k)=y(k)+t; endu=u*wn;endendyy1=fft(x) %对比matlab的ffty = columns 1 through 3 36.0000 -4.0000 + 9.6569i -4.0000 + 4.0000i columns 4 through 6 -4.0000 + 1.6569i -4.0000 -4.0000 - 1.6569i columns 7 through 8 -4.0000 - 4.0000i -4.0000 - 9.6569iy1 = columns 1 through 3 36.0000 -4.0000 + 9.6569i -4.0000 + 4.0000i columns 4 through 6 -4.0000 + 1.6569i -4.0000 -4.0000 - 1.6569i columns 7 through 8 -4.0000 - 4.0000i -4.0000 - 9.6569i2、 编程实现序列长度为n=8的按频率抽取的基2-fft算法。给定一个8点序列,采用编写的程序计算其dft,并与matlab中fft函数计算的结果相比较,以验证结果的正确性。代码如下:l=2048;m=256; x=ones(1,l); n=0:m-1; h=cos(0.2*pi*n); ticy1=conv(x,h);tocticx=fft(x,l+m -1);h=fft(h, l+m -1);y=x.*h;y2=ifft(y);toc运行结果如下:(分别为线形卷积和快速卷积)elapsed time is 0.003352 seconds.elapsed time is 0.007167 seconds.l=4096;m=256; x=ones(1,l); n=0:m-1; h=cos(0.2*pi*n); ticy1=conv(x,h);tocticx=fft(x,l+m -1);h=fft(h, l+m -1);y=x.*h;y2=ifft(y);toc运行结果如下:(分别为线形卷积和快速卷积)elapsed time is 0.003666 seconds.elapsed time is 0.030134 seconds.3.将上述fft程序推广大序列长度为n=2v的情况,要求利用原位运算。代码如下:l=2048;m=256; n=0:m-1; h=cos(0.2*pi*n);l=128;x=ones(1,l);q=0;tich=fft(h,l+m-1);x=fft(x,l+m-1);y=x.*h;y=ifft(y);yp=y;for i=2:16q=q+l;yq=zeros(1,q),y;yp=yp,zeros(1,l);yp=yq+yp;endtoc运行结果如下:elapsed time is 0.018875 seconds.4.l=2048;m=256;n=0:m-1;h=cos(0.2*pi*n);x=ones(1,l);lx=2048;m=256;m1=m-1;n=512;l=n-m1;tich=h,zeros(1,n-m); x=zeros(1,m1),x,zeros(1,n-1); a=floor (lx+m1-1)/(l)+1; y=zeros(1,n); for k=0:a-1 xk=x(k*l+1:k*l+n); b=fft(xk,n); c=fft(h,n); z=b.*c; y(k+1,:)=ifft(z,n); endy=y(:,m:n);y=(y(:)toc运行结果如下:elapsed time is 0.035329 seconds.实验2 利用dft分析信号频谱一、 实验目的1、 加深对dft原理的理解。2、 应用dft分析信号的频谱。3、 深刻理解利用dft分析信号频谱的原理,分析实现过程中出现的现象及解决方法。二、 实验设备与环境计算机、matlab软件环境三、 实验基础理论1、 dft与dtft的关系序列的n点dft实际上就是序列的dtft在n个等间隔频率点上的采样样本。2、 利用dft求dtft方法一:利用差值运算其中为内插函数方法二:在实际matlab计算中,采用增加数据的长度n,使得到的dft谱线更加精细,用其包络近似计算dtft。如果数据量不足,可采用补零来增加数据长度。3、 利用dft分析连续时间信号的频谱1) 确定时域采样间隔t,得到离散序列2) 确定截取长度m,得到m点离散序列,这里为窗函数3) 确定频域采样点数n,要求4) 利用fft计算离散序列的n点dft,得到5) 由计算采样点的近似值。4、 可能用到的matlab函数与代码实验中dft运算采用matlab中提供的函数fft来实现。dtft可以利用matlab矩阵运算的方法进行计算。四、 实验内容1、(1)n=0:3;x=2 -1 1 1;w=-pi:0.01*pi:pi;x=x*exp(-j*n*w);subplot(211)plot(w,abs(x);axis tightsubplot(212)plot(w,angle(x)/pi);axis tight(2)在原基础上增加代码:n=0:3;x= 2 -1 1 1;n=4;k=0:3;y=fft(x);w=0:0.01*pi:2*pi;x=x*exp(-j*n*w);m=0:2*pi/4:3/2*pisubplot(211);plot(w,abs(x);xlabel(omega/pi);title(dtft-magnitude);axis tighthold onstem(m,abs(y);subplot(212);plot(w,angle(x)/pi);xlabel(omega/pi);title(dtft-phase);hold onstem(m,angle(y)(3)在原本基础上设置代码subplot(211);z=fft(x,64); % n=64dftn=0:63;stem(abs(z);subplot(212);stem(angle(z)2、考察序列(1),用dft估计的频谱;将补零加长到长度为100点序列用dft估计的频谱。要求画出相应波形。程序代码:程序输出结果:补零后:程序代码:程序输出结果:(2)时,用dft估计的频谱,并画出波形。程序代码:程序输出结果:(3)根据实验结果,分析怎样提高频谱分辨率。答:减小截取长度或减小采样间隔的方法可以提高频谱分辨率。3、已知信号其中=1hz,=2hz,=3hz。从的表达式可以看出,它包含三个频率的正弦波,但是,从其时域波形来看,似乎是一个正弦信号,利用dft做频谱分析,确定适合的参数,使得到的频谱的频率分辨率符合需要。程序代码:程序输出结果:利用dft近似分析连续时间信号的频谱。分析采用不同的采样间隔和截取长度进行计算的结果,并最终确定适合的参数。程序代码:程序输出结果:通过改变步长可以达到改变采样间隔的结果,输出不同的频谱。实验5、脉冲响应不变法设计iir数字滤波器一、 实验目的1、 掌握利用脉冲响应不变法设计iir数字滤波器的原理及具体方法2、 加深理解数字滤波器和模拟滤波器之间的技术指标转化。3、 掌握脉冲相应不变法设计iir数字滤波器的优缺点及适用范围。二、 实验设备与环境计算机、matlab软件环境三、 实验基础理论1、 基本原理:从时域响应出发,使数字滤波器的单位脉冲响应h(n)模仿模拟滤波器的单位冲激响应。2、 设计步骤:a. 确定数字滤波器性能指标。b. 将数字滤波器频率指标转换成相应的模拟滤波器的频率指标c. 设计模拟滤波器实现方法:脉冲响应不变法 r,p,k=residue(b,a) b,a=residue(r,p,k)d. 模拟滤波器数字化实现方法:bz,az=impinvar(b,a,fs)四、 实验内容1、设采样频率fs=4khz,采用脉冲响应不变法设计一个三阶巴特沃斯数字低通滤波器,其3db截止频率为fc=1khz.首先设计巴特沃斯滤波器:n=3;wc=0.25*pi;b,a=butter(n,wc,s)b = 0 0 0 0.4845a = 1.0000 1.5708 1.2337 0.4845因此,然后脉冲响应不变法计算:bz,az=impinvar(b,a)bz = 1.1702 -1.4212 0.6078 -0.0945az = 1.0000 -1.6286 0.9286 -0.1879得到:画出模拟滤波器和数字滤波器的图像进行对比:h,w=freqs(b,a);subplot(221);plot(w/pi,abs(h);grid on;subplot(222);plot(w/pi,20*log10(abs(h)/max(abs(h);w=0:500*pi/500;h,w=freqz(bz,az);grid on;subplot(223);plot(w/pi,abs(h);grid on;subplot(224);plot(w/pi,20*log10(abs(h)/max(abs(h);grid on;2.设采样频率为fs=10khz,设计数字滤波器满足如下指标通带截止频率:1khz,通带波动:1db,阻带截止频率:1.5khz,阻带衰减:15db分别采用巴特沃斯、切比雪夫i型、切比雪夫ii型和椭圆模拟原型滤波器及脉冲响应不变法进行设计。结合实验结果,分别讨论采用上述方法设计的数字滤波器是否都能满足给定指标要求,分析脉冲响应不变法设计iir数字滤波器的优缺点及适用范围。(1)巴特沃斯滤波器为:wp=0.1*pi;ws=0.15*pi;rp=1;as=15;n=ceil(log10(10(rp/10)-1)/(10(as/10)-1)/(2*log10(wp/ws)oc1=wp/(10(rp/10)-1)(1/(2*n)b,a=butter(n,oc1,s)n = 6oc1 = 0.3516b = 0 0 0 0 0 0 0.0019a = 1.0000 1.3585 0.9227 0.3974 0.1141 0.0208 0.0019得到:bz,az=impinvar(b,a)bz = 1.0e-003 * 0.0000 0.0125 0.2573 0.5194 0.1637 0.0051 0az = 1.0000 -4.6517 9.1374 -9.6829 5.8300 -1.8889 0.2570得到bz,az后,画出模拟滤波器和数字滤波器的图像进行对比:h,w=freqs(b,a);subplot(221);plot(w/pi,abs(h);grid on;subplot(222);plot(w/pi,20*log10(abs(h)/max(abs(h);w=0:500*pi/500;h,w=freqz(bz,az);grid on;subplot(223);plot(w/pi,abs(h);grid on;subplot(224);plot(w/pi,20*log10(abs(h)/max(abs(h);grid on;h,w=freqs(b,a);subplot(221);plot(w/pi,abs(h);grid on;subplot(222);plot(w/pi,20*log10(abs(h)/max(abs(h);w=0:500*pi/500;h,w=freqz(bz,az);grid on;subplot(223);plot(w/pi,abs(h);grid on;subplot(224);plot(w/pi,20*log10(abs(h)/max(abs(h);grid on;(2)切比雪夫型 wp=0.2*pi; ws=0.3*pi; rp=1; as=15; e= e=(10(rp/10)-1)(1/2)e =0.5088 a=10(as/20)a = 5.6234 n=ceil(acosh(a*a-1)(1/2)/e)/acosh(ws/wp)n = 4 b,a=cheby1(n,rp,wp,s)b = 0 0 0 0 0.0383a =1.0000 0.5987 0.5740 0.1842 0.0430(3)切比雪夫型: wp=0.2*pi; ws=0.3*pi; rp=1; as=15; n=4; b,a=cheby2(n,as,ws,s)b =0.1778 -0.0000 1.2637 -0.0000 1.1225a =1.0000 2.3696 3.0322 1.9925 1.1225(4)椭圆模拟原型滤波器: wp=0.2*pi; ws=0.3*pi; rp=1; as=15; e=0.5088; a=5.6234; k1=e/(a*a-1)(1/2)k1 =0.0919 k=wp/wsk = 0.6667 k,e=ellipke(k)k =2.0290e =1.2612 k1,e1=ellipke(1-k1*k1)(1/2)k1 =4.1217e1 =1.0077 k2,e2=ellipke(k1)k2 = 1.6089e2 =1.5340 k3,e3=ellipke(1-k*k)(1/2)k3 =2.1483e3 = 1.2140 n=(k*k1)/(k2*k3)n = 2.4195 n2=2; b,a=ellip(n2,rp,as,ws,s)b = 0.1778 0 0.9379a =1.0000 0.9120 1.0523结果分析:(1)当给定的设计指标相同时,选用椭圆滤波器所要求的结束n最低,切比雪夫滤波器次之,巴特沃斯滤波器最高;(2)从通带的相位相应来看,椭圆滤波器虽然提供了最优秀的幅度平方相应,但通带上的相位相应非线性较大,而巴特沃斯滤波器在通带上具有相当的线性相位,切比雪夫滤波器的相位特征介于两者之间。实验七、窗函数法设计fir数字滤波器一、实验目的掌握窗函数法设计fir数字滤波器的原理及具体方法。二、实验设备及环境计算机、matlab软件及环境三、实验基础理论1.基本原理窗函数设计法的基本思想为,首先选择一个适当的理想的滤波器hd(ejw),然后用窗函数截取它的单位脉冲响应hd(n),得到线性相位和因果的fir滤波器。这种方法的重点是选择一个合适的窗函数和理想滤波器,使设计的滤波器的单位响应尽力逼向滤波器的单位响应。2.设计步骤(1)给定理想滤波器的频率响应hd(ejw),再通带上具有单位增益和线性相位,在阻带上具有零响应。(2)确定这个滤波器的单位脉冲响应hd=sincn-n-为了得到一个h(n)长度为n的因果相位fir滤波器,我们令=n-12(3)用窗函数截取hd(n)得到所设计fir数字滤波器h(n)h(n)= hd(n)w(n)四、实验内容1.设计一个数字低通滤波器,其技术指标如下p=0.2,rp=0.25dbst=0.3,as=50db分别采用矩形窗、汉宁窗、海明窗、布莱克曼窗、凯瑟窗设计该滤波器。结合实验结果,分别讨论采用上述方法设计的数字滤波器是否都能满足给定指标要求。2. 设计一个数字低通滤波器,其技术指标如下下阻带边缘:st1=0.2,as=60db下通带边缘:p1=0.35,rp=1db上通带边缘:p2=0.65,rp=1db上阻带边缘:st2=0.8,as=60db五、代码确定长度:wp=0.2*pi; wst=0.3*pi; width=wst-wp; n=ceil(1.8*pi/width)+1n = 19确定hd(n) n=0:(n-1); wc=(wp+wst)/2; alpha=(n-1)/2; hd=(wc/pi)*sinc(wc/pi)*(n-alpha) wboxcar=boxcar(n); h=hd.*wboxcarsubplot(221); stem(n,hd,filled);axis tight;xlabel(n);ylabel(hd(n); hr,w1=zerophase(h); subplot(222);plot(w1/pi,hr); axis tight;xlabel(omegapi);ylabel(omega); subplot(223);stem(n,h,filled);axis tight;xlabel(n);ylabel(h(n); h,w=freqz(h,1); subplot(224); plot(w/pi,20*log10(abs(h)/max(abs(h); xlabel(omegapi);ylabel(db) grid on由上图可清楚看出:加矩形窗不满足指标用海明窗:wp=0.2*pi;wst=0.3*pi;width=wst-wp;n=ceil(6.6*pi/width)+1n = 67n=0:(n-1);wc=(wp+wst)/2;alpha=(n-1)/2;hd=(wc/pi)*sinc(wc/pi)*(n-alpha);whamming=hamming(n);h=hd.*whamming; subplot(221);stem(n,hd,filled);axis tight;xlabel(n);ylabel(hd(n);hr,w1=zerophase(h);subplot(222);plot(w1/pi,hr);axis tight;xlabel(omegapi);ylabel(omega); subplot(223);stem(n,h,filled);axis tight;xlabel(n);ylabel(h(n);h,w=freqz(h,1);subplot(224);plot(w/pi,20*log10(abs(h)/max(abs(h);xlabel(omegapi);ylabel(db)grid on由上图可清楚看出:加海明窗满足指标汉宁窗:代码:wp = 0.2*pi;wst = 0.3*pi; tr_width = wst-wp; n = ceil(6.2*pi/tr_width)+1; n = 0:(n-1);wc = (wp+wst)/2; alpha = (n-1)/2; hd = (wc/pi)*sinc(wc/pi)*(n-alpha); w_hanning = hanning(n); h = hd.*w_hanning; subplot(221);stem(n,hd,filled); axis tight;xlabel(n);ylabel(hd(n); hr,w1 = zerophase(h); subplot(222);plot(w1/pi,hr); axis tight;xlabel(omega/pi);ylabel(h(omega); subplot(223);stem(n,h,filled); axis t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论