数字信号处理综合设计报告

江  南  大  学

物联网工程学院

课题:数字信号处理综合设计报告

设计题目:   信号处理系统综合设计  

专    业:       通信工程         

班    级:       通信0902            

姓    名:        吴磊          

学    号:      0702090225      

指导教师:     陈文驰  张建平      

20##年6月29日

一、设计概述(目的和要求)

数字信号处理是一门理论性和实践性都很强的学科,通过课程设计可以加深理解掌握基本理论,培养学生分析问题和解决问题的综合能力,为将来走向工作岗位奠定坚实的基础,因此做好课程设计是学好本课程的重要教学辅助环节。

本指导书结合教材《数字信号处理教程》的内容,基于MATLAB程序语言提出课程设计的题目及要求,在做课程设计之前要求学生要尽快熟悉MATLAB语言,充分预习相关理论知识,独立编写程序,以便顺利完成课程设计。

二、设计任务

课程设计的过程是综合运用所学知识的过程。课程设计主要任务是围绕数字信号的频谱分析、特征提取和数字滤波器的设计来安排的。根据设计题目的具体要求,运用MATLAB语言完成题目所规定的任务及功能。设计任务包括:查阅专业资料、工具书或参考文献,了解设计课题的原理及算法、编写程序并在计算机上调试,最后写出完整、规范的课程设计报告书。课程设计地点在信息学院机房,一人一机,在教师统一安排下独立完成规定的设计任务。

三、设计题目

1、DFT在信号频谱分析中的应用

    本课题中我们通过对DTFT、DFT及补零DFT等有关概念的学习,加深了对信号频谱的理解,最后达到用DFT和补零DFT的方法来计算信号的频谱,并用用MATLAB语言编程来实现的目的。

2、有噪声情况下信号幅度谱的研究

    本课题中我们掌握了白噪声的产生方法及正弦信号和白噪声信号的相关函数求法,最后用MATLAB语言编程来实现了在正弦信号加白噪声情况下对其其幅度谱及相关函数的求解。

  3、离散时间系统频域分析

本课题我们主要掌握离散时间系统频率特性的计算方法,理解其与滤波特性的关系并掌握离散时间系统的系统参数、系统零极点及系统频率特性间的关系,最后用MATLAB语言编程进行分析。

四、内容及结果

1、DFT在信号频谱分析中的应用

 (1)、用MATLAB语言编写计算序列x(n)的N点DFT的m函数文件dft.m。并与MATLAB中的内部函数文件fft.m作比较。

假设x(n)为由1、0组成的有限离散数列,程序如下:

a)%用DFT计算序列x(n)的N点

  function[Xk]=dft(xn,N)

  N=16;

  M=8;

  xn=[ones(1,M),zeros(1,N-M)];

  n=0:N-1;

  k=n;

  Xk=xn*(exp(-j*2*pi/N)).^(n'*k);

  subplot(2,1,1);

  plot(n,Xk);grid;

  title('DFT');

  xlabel('n');ylabel('Xk');

  %用FFT计算

  Xk16=fft(xn,16);

  subplot(2,1,2);

  plot(n,Xk16);

  title('FFT');

  xlabel('n');ylabel('Xk16');

  grid;

b)%DFT与FFT计算时间的比较

  xn=[1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0];

  t=cputime;

  y1=fft(xn,N);

  Time_fft=cputime-t;

  t1=cputime;

  y2=dft(xn,N);

  Time_dft=cputime-t1;

  t2=cputime;

结论:通过输出结果及图形的比较可知,用DFT和FFT计算信号频谱所得结果相同,但Time_fft =0.0312,Time_dft =0.9516,DFT的运算时间约为FFT的30倍,由此可见FFT算法比直接计算DFT速度快得多。

 (2)、对离散确定信号    作如下谱分析:

① 截取使成为有限长序列N(),(长度N自己选)写程序计算出的N点DFT ,并画出相应的幅频图

取N=10:

     程序如下:

              n = 0:9;

              xn=cos(0.48*pi*n)+cos(0.52*pi*n);

              Xk = fft  (xn, 10);

              subplot(2,1,1); stem(n, xn); grid;

              subplot(2,1,2); stem(n, abs(Xk)); grid;

图像:        

② 将1中补零加长至M点(长度M自己选),编写程序计算的M点DFT ,并画出相应的图

补零 M选 20 ,70

程序:n = 0:9; xn=cos(0.48*pi*n)+cos(0.52*pi*n);

     n1 = 0:19; xn1 = [xn, zeros(1,5)];

     n2= 0:69; xn2 = [xn, zeros(1,50)];

     Xk1 = fft(xn1, 20);

     Xk2 = fft(xn2, 70);

     subplot(3,1,1); stem(n, xn); grid;

     subplot(3,1,2); stem(n1, abs(Xk1)); grid;

     subplot(3,1,3); stem(n2, abs(Xk2)); grid;

图像:     

③ 利用补零DFT计算 (1)中N点有限长序列频谱并画出相应的幅频图

程序: N=90 ,M=100

          n = 0:9; xn=cos(0.48*pi*n)+cos(0.52*pi*n);

          n1 = 0:99; xn3 = [xn, zeros(1,90)];

          Xk3 = fft(xn3, 100);plot(n1, abs(Xk3));

          grid;

    图像:

         

图1  离散确定信号的频谱分析图

 (3)研究高密度谱与高分辨率频谱。

     对连续确定信号

1对不同的α考虑恰当的采样频率进行取样分析,说明理由。

答:奈奎斯特定理:=103时,抽样频率可以选择为32khz,因为满足32Khz大于两倍最高频率 

    for n=0:15

xn(n+1)=cos(2*pi*6.5*1000*n/32000)*exp(-1*1000*n/32000)

end

subplot(2,1,1)

stem(0:15,xn)

dft16=dft(xn,16);

subplot(2,1,2);

stem(0:15,dft16);

   =104时,抽样频率可以选择为64khz

 for n=0:15

 xn(n+1)=cos(2*pi*6.5*1000*n/64000)*exp(-1*10000*n/64000)

 end

 subplot(2,1,1)

 stem(0:15,xn)

 dft16=dft(xn,16);

 subplot(2,1,2);

 stem(0:15,dft16);

=105时,抽样频率可以选择为320khz

 

for n=0:15

xn(n+1)=cos(2*pi*6.5*1000*n/320000)*exp(-1*100000*n/320000)

end

subplot(2,1,1)

stem(0:15,xn)

dft16=dft(xn,16);

subplot(2,1,2);

131.jpg132.jpg

132.jpg

图2  不同的α对应的x(n)

    2对某一个α采样数据选取适当长度,计算DFT,画出相应的~ω。

N=[0:0.00005:0.004];

t=[0:2.8*10^-5:2.8*10^-3];

x=cos(2*pi*6.5*10^3*N).*exp(-10^3*N);

xn=cos(2*pi*6.5*10^3*t).*exp(-10^3*t);

Xk=fft(xn,101);

magXk=abs(Xk);

subplot(3,1,1);

stem(t,xn);

xlabel('t');

ylabel('xn');

title('xn信号');

subplot(3,1,2);

stem(1./t,Xk);

xlabel('f');

ylabel('Xk');

title('频域序列图Xk');

subplot(3,1,3);

stem(2*pi./t,magXk);

xlabel('w');

ylabel('X(ejw)');

title('幅频特性曲线X(ejw)');

图3  α=103时x(n)对应的频谱图

2、有噪声情况下信号幅度谱的研究

 (1)编写产生均匀分布白噪声序列的M函数文件drand.m 。

程序如下:p=10;

N=10000;

u=rand(1,N);

u=u-mean(u);%均值为零

a=sqrt(12*p);

u1=u*a;

power_u1=dot(u1,u1)/N; 

plot(u1(1:500));grid on;

title('白噪声信号');

ylabel('u(n)');    

xlabel('n'); 

 (2)编写计算序列x(n) 正弦信号加白噪声的自相关序列的M函数文件dcor.m。同时编写m程序文件,分析含噪信号的相关函数及功率密度谱。

程序如下:N=500;p1=1;p2=0.1;f=1/8;

Mlag=100;u=randn(1,N);

n=0:N-1;s=sin(2*pi*f*n);

u1=u*sqrt(p1);x1=u1(1:N)+s;

rx1=xcorr(x1,Mlag,'biased');

subplot(3,1,1);

plot(x1(1:Mlag));

title('正弦信号加白噪声x(n)');

xlabel('n');ylabel('x1(n)');grid on;

subplot(3,1,2);

plot((-Mlag:Mlag),rx1);grid on;

title('相关函数R(τ)');

xlabel('τ');ylabel('R(τ)');

Fs=1000;

n=0:1/Fs:1;

xn=sin(2*pi*f*n)+randn(size(n));

window=boxcar(length(xn));

nfft=1024;

[Pxx,f]=periodogram(xn,window,nfft,Fs);

subplot(3,1,3);

plot(f,10*log10(Pxx));

title('功率密度谱P(f)');

xlabel('f');ylabel('P(f)');

 

图4  正弦信号加白噪声 x(n)

3、离散时间系统频域分析

 (1)用MATLAB语言编写计算N阶差分方程所描述系统频响函数的m函数文件fr.m。

function[H]=fr(b,a,w)

m=0:length(b)-1;

l=0:length(a)-1;

num=b*exp(-j*m'*w);

den=a*exp(-j*l'*w);

H=num./den;

 (2)根据频响特性与系统零极点的关系,自己构造一个N阶差分方程,使该差分方程为数字低通滤波器。利用MATLAB程序画出相应的幅频图

function[hd]=ideal(wc,N)

q=(N-1)/2;

n=0:N-1;

m=n-q+eps;

hd=sin(wc*m)./(pi*m);

 (3)改变(2)中差分方程的系数,使该差分方程分别为数字高通及全通滤波器。利用MATLAB程序画出相应的幅频图

%低通滤波器

b=[1,1];

a=[2,-0.9,0.35];

[H,w]=freqz(b,a,512);

subplot(3,1,1);

plot(w,abs(H),'k');

title('低通滤波器');

ylabel('H(e.^jw)')    

xlabel('w')

axis([0,pi,0,1.2*max(abs(H))])

%高通滤波器

b=[0.1326,-0.2653,0.1326];

a=[1.000,0.7394,0.2699];

[H,w]=freqz(b,a,512);

subplot(3,1,2);

plot(w,abs(H),'k');

title('高通滤波器');

ylabel('H(e.^jw)')    

xlabel('w')

axis([0,pi,0,1.2*max(abs(H))])

%全通滤波器

 b=[1,1,1];

a=[1,1,1];

[H,w]=freqz(b,a,512);

subplot(3,1,3);

plot(w,abs(H),'k');

title('全通滤波器');

ylabel('H(e.^jw)')    

xlabel('w')

axis([0,pi,0,1.2*max(abs(H))])

图5  滤波器示意图

五、思考题及体会

1、思考题

(1)   对比设计内容2中(1)(2) (3)的图,说明补零DFT的作用。

答:在有限长序列的尾部增补若干个零值,介意改变原序列的长度。这样加长的序列作DFT时,由于点数增加就相当于调整了原来栅栏的间隙即间隔频率,可以使得原来的不到反映的那些较大的频率分量落在采样点上而得到反映。但要注意,由于栅栏效应,使得被分析的频谱变得较为稀疏,为此,在采样样本序列x(n)后补零,在数据长度不变的情况下,可以改变频谱的频率取样密度,得到高密度频谱。

(2)分析白噪声的特点,白噪声有哪些主要参数?如何调整随机序列的输出平均功率和平均值?

答:白噪声或白杂讯,是一种功率频谱密度为常数的随机信号或随机过程。其主要参数有功率谱密度、自相关函数、平均功率等。可通过调整信号的直流分量和各次谐波分量来调整随机序列的输出平均功率和平均值。

(3) 计算正弦信号的平均功率、功率密度谱和自相关函数,当截取的点数N不为正弦信号周期的整数倍时,会有什么结果?

答:非整周期截断下周期信号产生的频谱图除了主谱线以外,其他频率点上都存在着一系列的非零谱线,但其自相关函数仍为周期信号,其周期与信号本身的周期相同,而且随着信号周期的改变而改变。

(4)设计中应当如何正确选择点数?

答:点数N应该为正弦信号周期的整数倍。

(5)你所构造的数字滤波器是IIR还是FIR?试画出该滤波器的运算结构图。

答:

图6  FIR滤波器的直接型结构

图7  FIR滤波器的级联型结构

(6)解释系统参数、系统零极点与系统频响特性的关系。

答:频响特性就是系统在正弦信号激励下稳态响应随信号频率的变化情况。其实就是系统在输入不同频率的正弦信号时放大倍数和相移跟频率的关系。教材217页详细推导了线性系统在输入正弦信号时输出是同频率的正弦信号,改变的是幅度和初相位。由H(s)导出H(jw),H(jw)就是系统频率特性,是w的函数。对不同频率的正弦输入信号,将w代入H(jw)即得系统对该频率输入信号的幅度加权(放大倍数)和相移。根据频响特性将系统分为低通、高通、带通、带阻滤波网络。

(7)说明在数字域上如何定义高通、低通、带通、全通滤波器。

答:按照系统的幅频响应特性,可以将系统分为低通滤波器、带通滤波器、高通滤波器、带阻滤波器、全通滤波器。高通滤波器容许高频信号通过, 但减弱(或减少)频率低于於截止频率的信号的通过;低通滤波器容许低频信号通过, 但减弱(或减少)频率高於截止频率的信号的通过;
带通滤波器容许一定频率范围信号通过, 但减弱(或减少)频率低于於下限截止频率和高于上限截止频率的信号的通过;全通滤波器并不衰减任何频率的信号,但它会改变输入信号的相位,利用这个特性,全通滤波器可以用做延时器、延迟均衡等。

2、个人体会

   本次设计分为三部分,通过第一部分,我们学习了解DFT计算信号频谱以及补零对信号频谱的影响。通过第二部分研究,我们对比了有无噪声对信号的影响,掌握了白噪声的产生方法及正弦信号和白噪声信号的相关函数求法。第三部分,我们主要掌握离散时间系统频率特性的计算方法,理解其与滤波特性的关系并掌握离散时间系统的系统参数、系统零极点及系统频率特性间的关系。

   3次课题研究,我们加深对信号的理解,同时也认识到自己的不足,matlab相关编程的不熟悉,对信号分析的肤浅,以后都有待提高改进!

相关推荐