文档视界 最新最全的文档下载
当前位置:文档视界 › 数字信号处理课程设计实验报告

数字信号处理课程设计实验报告

数字信号处理课程设计实验报告
数字信号处理课程设计实验报告

基础实验

实验一离散时间系统及离散卷积

一、实验原理

利用Matlab软件计算出系统函数的零极点分布、单位脉冲响应和系统频率响应等的图像并于笔算结果进行比较,找出异同。编译合适程序能计算取值范围不同的离散卷积。二、实验目的

(1)熟悉MATLAB软件的使用方法。

(2)熟悉系统函数的零极点分布、单位脉冲响应和系统频率响应等概念。

(3)利用MATLAB绘制系统函数的零极点分布图、系统频率响应和单位脉冲响应。

(4)熟悉离散卷积的概念,并利用MATLAB计算离散卷积。

三、实验源程序及实验结果

1.离散时间系统的单位脉冲响应

function pr1() %定义函数pr1

a=[1,-1,0.9]; %定义差分方程y(n)-y(n-1)+0.9y(n-2)=x(n)

b=1;

x=impseq(0,-20,120); %调用impseq函数

n=[-20:120]; %定义n从-20 到120

h=filter(b,a,x); %输入x为滤波前序列,b为分子,a为分母figure(1) %绘图figure 1 (冲激响应)

stem(n,h); %在图中绘出冲激

title('冲激响应'); %定义标题为:'冲激响应'

xlabel('n'); %绘图横座标为n

ylabel('h(n)'); %绘图纵座标为h(n)

figure(2) %绘图figure 2

[z,p,g]=tf2zp(b,a); %绘出零极点图

zplane(z,p)

function [x,n]=impseq(n0,n1,n2) %声明impseq函数

n=[n1:n2];

x=[(n-n0)==0];

-1

-0.5

00.5

1

-1

-0.8-0.6-0.4-0.200.20.4

0.60.81Real Part

I m a g i n a r y P a r t

-20

20

40

60

80

100

120

-1-0.8-0.6-0.4-0.200.20.40.60.81冲激响应

n

h (n )

2.离散系统的幅频、相频的分析方法 function pr2()

b=[0.0181,0.0543,0.0543,0.0181]; a=[1.000,-1.76,1.1829,-0.2781];

m=0:length(b)-1; %m 从0 到3 l=0:length(a)-1; %l 从0 到3

K=500;k=1:K;w=pi*k/K; %角频率w

H=(b*exp(-j*m'*w))./(a*exp(-j*l'*w));%对系统函数的定义 magH=abs(H); %magH 为幅度 angH=angle(H); %angH 为相位 figure(1)

subplot(2,1,1); %在同一窗口的上半部分绘图 plot(w/pi,magH); %绘制w(pi)-magH 的图形 grid;

axis([0,1,0,1]); %限制横纵座标从0到1 xlabel('w(pi)'); %x 座标为 w(pi) ylabel('|H|'); %y 座标为 angle(H)

title('幅度,相位响应'); %图的标题为:'幅度,相位响应' subplot(2,1,2); %在同一窗口的下半部分绘图 plot(w/pi,angH); %绘制w(pi)-angH 的图形 grid; %为座标添加名称 xlabel('w(pi)'); %x 座标为 w(pi) ylabel('angle(H)'); %y 座标为 angle(H)

00.10.20.30.4

0.50.60.70.80.91

0.5

1

w(pi)

|H |

幅度,相位响应

0.1

0.2

0.3

0.4

0.50.6

0.7

0.8

0.9

1

-4-202

4w(pi)

a n g l e (H )

3.离散卷积的计算 function pr3()

n=-5:50; %声明n 从-5到50

u1=stepseq(0,-5,50); %调用stepseq 函数声用明u1=u(n) u2=stepseq(10,-5,50); %调用stepseq 函数声用明u2=u(n-10) x=u1-u2; %x(n)=u(n)-u(n-10) h=((0.9).^n).*u1; %h(n)=0.9^n*u(n) L=length(x)+length(h)-1; X=fft(x,L); H=fft(h,L);

y=ifft(X.*H)

subplot(3,1,1);stem(n,x);axis([-5,50,0,2]);title('输入序列');xlabel('n');ylabel('x(n)'); %输入序列

subplot(3,1,2);stem(n,h);axis([-5,50,0,2]);title('冲激响应序列'); xlabel('n'); ylabel('h(n)');%冲激相应序列 n=0:L-1;

subplot(3,1,3); stem(n,real(y));title('输出响应

');xlabel('n');ylabel('y(n)'); %卷积结果 function [x,n]=stepseq(n0,n1,n2) n=n1:n2;

x=[(n-n0)>=0];

-5

5

10

15

20

25

30

35

40

45

50

012

输入序列

n

x (n )

-5

5

10

15

20

25

30

35

40

45

50

012

冲激响应序列

n h (n )

20

40

6080

100

120

-10010

输出响应

n

y (n )

实验二 离散傅立叶变换与快速傅立叶变换

一、 实验原理

对有限长序列使用离散Fouier 变换(DFT)可以很好的反映序列的频谱特性,而且易于用快速算法在计算机上实现,当序列x(n)的长度为N 时,它的DFT 定义为

()()[]()∑==-=1

N n nk N W n x n x DFT k X 10-≤≤N k

反变换为

()()[]()∑==-=-10

1N n nk

N W k X N k X IDFT n x 10-≤≤N n

有限长序列的DFT 是其Z 变换在单位圆上的等距采样,或者说是序列Fourier 变换的等距采样,因此可以用于序列的谱分析。

FFT 是为了减少DFT 运算次数的一种快速算法。它是对变换式进行一次次分解,使其成为若干较短序列的组合,从而减少运算量。常用的FFT 是以2为基数的,其长度

它的效率高,程序简单,使用非常方便,当要变换的序列长度不等于2的整数次方时,为了使用以2为基数的FFT ,可以用末位补零的方法,使其长度延长至2的整数次方。 用FFT 可以实现两个序列的圆周卷积。在一定的条件下,可以使圆周卷积等于线性卷积。一般情况,设两个序列的长度分别为N1和N2,要使圆周卷积等于线性卷积的充要条件是FFT 的长度

N ≥N1+N2

对于长度不足N 的两个序列,分别将他们补零延长到N 。

二、实验目的

(1)加深理解离散傅立叶变换及快速傅立叶变换概念; (2)学会应用FFT 对典型信号进行频谱分析的方法; (3)研究如何利用FFT 程序分析确定性时间连续信号; (4)熟悉应用FFT 实现两个序列的线性卷积的方法。 三、实验源程序及结果 1.DFT 程序

function pr4()

F=50;N=64;T=0.000625;n=1:N;

x=cos(2*pi*F*n*T); %x(n)=cos(pi*n/16)

subplot(2,1,1);stem(n,x);title('x(n)');xlabel('n');%x(n) X=dft(x,N);

subplot(2,1,2);stem(n,X);title('DFT|X|');xlabel('f(pi)'); %DFT|X| %dft 的子程序

%实现离散傅里叶变换

function [Xk]=dft(xn,N) n=0:N-1; k=0:N-1;

WN=exp(-j*2*pi/N); nk=n'*k;

WNnk=WN.^nk; Xk=xn*WNnk;

10

20

3040

50

60

70

-1-0.500.51x(n)

n 0102030

40506070

-20

02040DFT|X |

f(pi)

2.三角序列与反三角序列DFT

N=8;

fs=100;T=1/fs; n=-6:9;

xc=(n+1).*(n>=0&n<=3)+(8-n).*(n>=4); xd=(4-n).*(n>=0&n<=3)+(n-3).*(n>=4); X1=fft(xc,N); X2=fft(xd,N);

magX1=abs(X1),phaX1=angle(X1) magX2=abs(X2),phaX2=angle(X2) subplot(3,2,1);stem(n,xc); xlabel('n');title('xc(n)'); subplot(3,2,2);stem(n,xd); xlabel('n');title('xd(n)'); k=0:N-1;

subplot(3,2,3);stem(k,magX1); subplot(3,2,4);stem(k,magX2); xlabel('k');ylabel('dftdefudu'); subplot(3,2,5);stem(k,phaX1); subplot(3,2,6);stem(k,phaX2);

xlabel('k');ylabel('dftdexiangwei');

-10-5

0510-505n

xc(n)

-10-5

0510

0510n

xd(n)

2

4

6

8

2402

468

510

k

d f t d

e

f u d u

2

4

6

8

-5

0502

468

-5

05k

d f t d

e x i a n g w e i

3.余弦信号傅里叶变换

F=50;N=64;T=0.000625;n=1:N;

x=cos(2*pi*F*n*T); %x(n)=cos(pi*n/16) subplot(2,1,1);plot(n,x);title('x(n)');xlabel('n'); %在第一个子窗中绘图x(n) X=fft(x);

subplot(2,1,2);plot(n,X);title('DTFT|X|');xlabel('f(pi)'); %在第二个子图中绘图x(n)的快速傅里叶变换

10

20

3040

50

60

70

-1-0.500.51x(n)

n 0102030

40506070

-20

02040DTFT|X |

f(pi)

4.计算卷积

function pr6()

n=0:15;x=1.^n;h=(0.8).^n;

x(16:32)=0; %x(n)=1,n=0~15; x(n)=0,n=16~32

h(16:32)=0; % h(n)=(0.8)^n,n=0~15; h(n)=0,n=16~32 subplot(3,1,1);stem(x);title('x(n)');axis([1,32,0,1.5]); %x(n) subplot(3,1,2);stem(h);title('h(n)');axis([1,32,0,1.5]); %h(n) X=fft(x); %X(n)为x(n)的快速傅里叶变换 H=fft(h); %H(n)为h(n)的快速傅里叶变换 Y=X.*H; %Y(n)=X(n)*H(n)

y=ifft(Y); %y(n)为Y(n)的傅里叶反变换

subplot(3,1,3);stem(abs(y));title('y(n=x(n)*h(n))');axis([1,32,0,6]); %y(n)

5

10

1520

25

30

00.511.5x(n)

5

10

152025

30

0.511.5h(n)

51015202530

5

y(n=x(n)*h(n))

四、实验总结与思考

1、在较短的傅里叶变换中,FFT 的计算速度与DFT 相比不是很明显,序列计算长度越长,计算时间差距越大,FFT 较快;

2、对于不同序列的较小长度的频谱分析可能会得到相同的频谱,适当加倍长度会避免这种情况的发生;

3、对同一序列的不同间隔的FFT 变换,在满足奈奎斯特定律的情况下也会产生栅栏效应、频谱泄露、旁瓣效应等,采取适当的方法可以减弱这些不利效应;

4、在计算两个序列的离散卷积的时候要注意序列的长度L>=M+N-1。

实验三 IIR 数字滤波器设计

一、 实验原理

(1)脉冲响应不变法

用数字滤波器的单位脉冲响应序列)(n h 模仿模拟滤波器的冲激响应)(t h a ,让)(n h 正好等于)(t h a 的采样值,即)()(nT h n h a =其中T 为采样间隔,如果以)(s H a 及)(z H 分别表示)(t h a 的拉氏变换及)(n h 的Z 变换,则 ∑∞-∞==+=m a e z m T j s H T z H sT

)2(1)

(2) 双线性变换法

s 平面与z 平面之间满足以下映射关系:1

1

112--+-=z z T s

以低通数字滤波器为例,将设计步骤归纳如下:

1. 确定数字滤波器的性能指标:通带临界频率fp 、阻带临界频率fs ;通带内的最大衰减 Rp ;阻带内的最小衰减As ;采样周期T ;

2.确定相应的数字角频率,ωp=2πfpT ;ωs =2πfrT ;

3.计算经过预畸的相应模拟低通原型的频率, ??

?

??=Ω???

? ??=

Ω2

2,2

2s

s p p tg T tg T ωω 根据Ωp 和Ωs 计算模拟低通原型滤波器的阶数N ,并求得低通原型的传递函数Ha(s); 4.用上面的双线性变换公式代入Ha(s),求出所设计的传递函数H(z);分析滤波器特性,检查其指标是否满足要求。

二、实验目的

(1) 学习模拟-数字变换滤波器的设计方法; (2)掌握双线性变换数字滤波器设计方法;

(3) 掌握实现数字滤波器的具体方法。

三、实验源程序及结果

function pr7()

wp=0.2*pi;ws=0.3*pi; Rp=1;As=15;T=1;Fs=1/T;

OmegaP=(2/T)*tan(wp/2); %OmegaP(w)=2*tan(0.1*pi) OmegaS=(2/T)*tan(ws/2); %OmegaS(w)=2*tan(0.15*pi) ep=sqrt(10^(Rp/10)-1); Ripple=sqrt(1/(1+ep.^2)); Attn=1/10^(As/20);

N=ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(OmegaP/Ome gaS)));

OmegaC=OmegaP/((10.^(Rp/10)-1).^(1/(2*N))); [cs,ds]=u_buttap(N,OmegaC); [b,a]=bilinear(cs,ds,Fs); [mag,db,pha,w]=freqz_m(b,a);

%在第一个子窗绘制幅度响应的图形

subplot(3,1,1);plot(w/pi,mag);title('幅

');xlabel('w(pi)');ylabel('H'); axis([0,1,0,1.1]);

set(gca,'XTickmode','manual','XTick',[0,0.2,0.3,1.1]);

set(gca,'YTickmode','manual','YTick',[0,Attn,Ripple,1]);

grid;

%在第二个子窗以分贝为单位绘制幅度响应的图形

subplot(3,1,2);plot(w/pi,db);title('幅度响应(dB)');xlabel('w(pi)');ylabel('H');

axis([0,1,-40,5]);

set(gca,'XTickmode','manual','XTick',[0,0.2,0.3,1.1]);

set(gca,'YTickmode','manual','YTick',[-50,-15,-1,0]);

grid;

%在第三个子窗绘制相位响应的图形

subplot(3,1,3);plot(w/pi,pha);title('相位响应');xlabel('w(pi)');ylabel('pi unit');

set(gca,'XTickmode','manual','XTick',[0,0.2,0.3,1.1]);

set(gca,'YTickmode','manual','YTick',[-1,0,1]);

grid;

%非归一化巴特沃斯模拟低通滤波器原型函数

function [b,a]=u_buttap(N,OmegaC)

[z,p,k]=buttap(N);

p=p*OmegaC;k=k*OmegaC.^N;B=real(poly(z));

b0=k;b=k*B;a=real(poly(p));

%计算模拟滤波器频率响应的函数

function [mag,db,pha,w]=freqz_m(b,a)

[H,w]=freqz(b,a,1000,'whole');

H=(H(1:501))';w=(w(1:501))';

mag=abs(H);pha=angle(H);

db=20*log10((mag+eps)/max(mag));

00.20.3

0.1778

0.8913

1幅度响应

w(pi)

H

00.20.3

-15

-10幅度响应(dB)

w(pi)

H

0.2

0.3

-101相位响应

w(pi)

p i u n i t

四、实验总结与思考

1、数字滤波器可以用模拟滤波器通过模拟到数字的变换来实现,具体方法有三种:冲

激响应不变法、阶跃响应不变法和双线性变换法等;

2、冲激响应不变法仅适合于基本上是限带的低通滤波器,对于高通或带阻滤波器应该附加限带要求,以避免严重的混叠失真;

3、双线性变换法可以用频率预畸变的方法来补偿频率标度的非线性失真;

4、数字低通滤波器的模拟截止频率是抽样时间的函数;

5、低通滤波器对相应频率的输入信号有相应限制作用。

实验四 FIR 数字滤波器设计

一、 实验原理

窗函数法设计线性相位FIR 滤波器步骤 :

? 确定数字滤波器的性能要求:临界频率{ωk },滤波器单位脉冲响应长度N ; ?

根据性能要求,合理选择单位脉冲响应)(n h 的奇偶对称性,从而确定理想频率响应

)(ωj d e H 的幅频特性和相频特性;

? 求理想单位脉冲响应)(n h d ,在实际计算中,可对)(ω

j d

e H 按M(M 远大于N)点等距离采样,并对其求IDFT 得)(n h M ,用)(n h M 代替

)(n h d ;

?

选择适当的窗函数)(n w ,根据)()()(n w n h n h d =求所需设计的FIR 滤波器单位脉

冲响应;

?求

)

(ωj e

H,分析其幅频特性,若不满足要求,可适当改变窗函数形式或长度N,重

复上述设计过程,以得到满意的结果。

窗函数的傅式变换

)

(ωj e

W的主瓣决定了)

(ωj e

H过渡带宽。)

(ωj e

W的旁瓣大小和

多少决定了

)

(ωj e

H在通带和阻带范围内波动幅度,常用的几种窗函数有:

?矩形窗 w(n)=R N(n)

?Hanning窗

?Hamming窗

?Blackmen窗

二、实验目的

(1)学习FIR数字滤波器窗口函数设计法;

(2)熟悉线性相位FIR滤波器的幅频特性和相频特性;

(3)了解各种不同窗函数对滤波器性能的影响;

(4)进行FIR、IIR滤波器的性能比较。

三、实验源程序及运行结果

1.低通滤波器相位响应‘幅度响应

function pr8()

wp=0.2*pi;ws=0.3*pi;

tr_width=ws-wp;

M=51;

n=0:M-1;%窗口长度n

wc=(ws+wp)/2;%理想低通的截止频率

alpha=(M-1)/2;

m=n-alpha+eps;%加一个很小的数以避免用零来除

hd=sin(wc*m)./(pi*m);%理想低通的冲激响应

w_ham=(hamming(M))';

h=hd.*w_ham;%滤波器的冲激响应

[mag,db,pha,w]=freqz_m(h,[1]);

delta_w=2*pi/1000;

Rp=-(min(db(1:wp/delta_w+1)));%实际的通带衰减

As=-round(max(db(ws/delta_w+1:501)));%实际的最小阻带衰减

subplot(2,2,1);stem(n,hd);title('理想冲激响应'); axis([0,M-1,-0.1,0.3]);ylabel('hd(n)'); subplot(2,2,2);stem(n,h);title('实际冲激响应'); axis([0,M-1,-0.1,0.3]);ylabel('h(n)');

subplot(2,2,3);plot(w/pi,pha);title('滤波器相位响应'); axis([0,1,-pi,pi]);ylabel('pha');

set(gca,'XTickmode','manual','XTick',[0,0.2,0.3,1.1]); set(gca,'YTickmode','manual','YTick',[-pi,0,pi]); grid;

subplot(2,2,4);plot(w/pi,db);title('滤波器幅度响应'); axis([0,1,-100,10]);ylabel('H(db)');

set(gca,'XTickmode','manual','XTick',[0,0.2,0.3,1.1]); set(gca,'YTickmode','manual','YTick',[-50,-15,0]); function [mag,db,pha,w]=freqz_m(b,a) [H,w]=freqz(b,a,1000,'whole'); H=(H(1:501))';w=(w(1:501))'; mag=abs(H);pha=angle(H);

db=20*log10((mag+eps)/max(mag));

10

20

30

40

50

-0.1

00.10.2

0.3理想冲激响应

h d (n )

10

20

30

40

50

-0.1

00.10.2

0.3实际冲激响应

h (n

)

00.20.3-3.1416

3.1416

滤波器相位响应

p h a

00.20.3

-50

-15

0滤波器幅度响应

H (d b )

2.分别用矩形窗、汉宁窗、海明窗、三角窗和 Blackman 窗设计线性相位带通滤波器 function pr8() wp=0.3*pi; ws=0.5*pi;

tr_width=ws-wp;

M=ceil(6.6*pi/tr_width)+1;

n=0:M-1;

wc=(ws+wp)/2;

alpha=(M-1)/2;

m=n-alpha+eps;

hd=sin(ws*m)./(pi*m)-sin(wp*m)./(pi*m);

w_ham=(blackman(M))';

h=hd.*w_ham;

[mag,db,pha,w]=freqz_m(h,[1]);

delta_w=2*pi/1000;

Rp=-(min(db(1:wp/delta_w+1)));

As=-round(max(db(ws/delta_w+1:501)));

subplot(2,2,1);

stem(n,hd);

title('理想冲激响应');

axis([0,M-1,-0.1,0.3]);

ylabel('hd(n)');

subplot(2,2,2);

stem(n,h);

title('实际冲激响应');

axis([0,M-1,-0.1,0.3]);

ylabel('h(n)');

subplot(2,2,3);

plot(w/pi,pha);

title('滤波器相位响应');

axis([0,1,-pi,pi]);

ylabel('pha');

set(gca,'XTickmode','manual','XTick',[0,0.2,0.3,1.1]); set(gca,'YTickmode','manual','YTick',[-pi,0,pi]); grid;

subplot(2,2,4);

plot(w/pi,db);

title('滤波器幅度响应');

axis([0,1,-100,10]);

ylabel('H(db)');

set(gca,'XTickmode','manual','XTick',[0,0.2,0.3,1.1]); set(gca,'YTickmode','manual','YTick',[-100,-15,0]);

function [mag,db,pha,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);

矩形窗

10

20

30

-0.1

00.10.2

0.3理想冲激响应

h d (n )

10

20

30

-0.1

00.10.2

0.3实际冲激响应

h (n

)

0.20.3

-3.1416

3.1416

滤波器相位响应

p h a

00.20.3

-100

-15

0滤波器幅度响应

H (d b )

汉宁窗

10

20

30

-0.1

00.10.2

0.3理想冲激响应

h d (n )

10

20

30

-0.1

00.10.2

0.3实际冲激响应

h (n

)

0.20.3

-3.1416

3.1416

滤波器相位响应

p h a

00.20.3

-100

-15

0滤波器幅度响应

H (d b )

哈明窗

10

20

30

-0.1

00.10.2

0.3h d (n )

10

20

30

-0.1

00.10.2

0.3h (n

)

0.20.3

-3.1416

3.1416

滤波器相位响应

p h a

00.20.3

-100

-15

0滤波器幅度响应

H (d b )

三角窗

10

20

30

-0.1

00.10.2

0.3理想冲激响应

h d (n )

10

20

30

-0.1

00.10.2

0.3实际冲激响应

h (n

)

0.20.3

-3.1416

3.1416

滤波器相位响应

p h a

00.20.3

-100

-15

0滤波器幅度响应

H (d b )

Blackman 窗

10

20

30

-0.1

00.10.2

0.3h d (n )

10

20

30

-0.1

00.10.2

0.3h (n

)

0.20.3

-3.1416

3.1416

滤波器相位响应

p h a

00.20.3

-100

-15

0滤波器幅度响应

H (d b )

四、实验总结与思考

1、IIR 滤波器的系统函数是有理分式,其分母多项式对应于反馈支路,因而这种滤波器是递归结构的系统,只有当所有极点都在单位圆内时滤波器才是稳定的;

2、IIR 滤波器可以用比FIR 滤波器少的阶数来满足相同的技术指标,这样,IIR 滤波器所用的存储单元和所需的运算次数都比FIR 滤波器少;

3、IIR 滤波器可利用模拟滤波器现成的设计公式、数据和表格,计算工作量较小,对计算工具要求不高;FIR 滤波器没有现成的设计公式,窗函数法只给出窗函数的计算公式,但计算通带和阻带衰减仍无显式表达式,一般,FIR 滤波器的设计只有计算机程序可以利用;

4、FIR 滤波器的相位严格线性;

5、相同指标情况下,FIR 滤波器的系统特性更好些;

6、改变FIR 滤波器的阶数,对相位特性的影响比幅度特性更显著;

7、如果需要严格线性相位的滤波器,则需要用FIR 滤波器。

综合实验

一、实验目的

借助基础实验篇编制的程序,对语音信号进行处理。

通过综合实验篇,充分了解信号处理及数字信号处理的过程;使得学生能够对自己设计的频谱分析程序与滤波器程序得到灵活的应用;使得学生能够综合分析信号处理过程各个阶段信号时域与频域特性。

二、实验内容

1、录制一段各人自己的语音信号。

2、对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;

3、给定滤波器的性能指标,采用窗函数法或双线性变换设计滤波器,并画出滤波器的

频率响应。

三、实验源程序及运行结果

fs=20000;

[x]=wavread('E:\张利飞');

n=length(x);

Noise=0.2*randn(n,2);

x2=x+Noise;

%sound(x2,40100);

Ts=1/fs;R1=10;

wp=2*pi*1000/fs;

ws=2*pi*1200/fs;

Rp=1;

Rl=100;

wp1=2/Ts*tan(wp/2); %将模拟指标转换成数字指标

ws1=2/Ts*tan(ws/2);

[N,Wn]=buttord(wp1,ws1,Rp,R1,'s'); %选择滤波器的最小阶数

[Z,P,K]=buttap(N); %创建butterworth模拟滤波器

[Bap,Aap]=zp2tf(Z,P,K);

[b,a]=lp2lp(Bap,Aap,Wn);

[bz,az]=bilinear(b,a,fs); %用双线性变换法实现模拟滤波器到数字滤波器的转换

[H,W]=freqz(bz,az); %绘制频率响应曲线

figure(1)

plot(W*fs/(2*pi),abs(H));

title('IIR低通滤波器') ;

grid;

axis([0 3000 0 2]);

xlabel('频率/Hz')

ylabel('频率响应幅度')

f1=filter(bz,az,x2);

figure(2)

subplot(2,1,1)

plot(x2) %画出滤波前的时域图

title('IIR低通滤波器滤波前的时域波形');

subplot(2,1,2)

plot(f1); %画出滤波后的时域图

title('IIR低通滤波器滤波后的时域波形');

sound(f1,40100); %播放滤波后的信号

F0=fft(f1,1024);

f=fs*(0:511)/1024;

figure(3)

y2=fft(x2,1024);

subplot(2,1,1);

plot(f,abs(y2(1:512))); %画出滤波前的频谱图 title('IIR 低通滤波器滤波前的频谱') xlabel('频率/Hz'); ylabel('幅值'); subplot(2,1,2)

F1=plot(f,abs(F0(1:512))); %画出滤波后的频谱图 title('IIR 低通滤波器滤波后的频谱') xlabel('频率/Hz'); ylabel('幅值');

2

4

6

8

10

12

14

16

18x 10

4

-2-1012IIR 低通滤波器滤波前的时域波形

2

4

6

8

10

12

14

16

18x 10

4

-2-1012IIR 低通滤波器滤波后的时域波形

数字信号处理课程设计报告

抽样定理的应用 摘要 抽样定理表示为若频带宽度有限的,要从抽样信号中无失真地恢复原信号,抽样频率应大于2倍信号最高频率。抽样频率小于2倍频谱最高频率时,信号的频谱有混叠。抽样频率大于2倍频谱最高频率时,信号的频谱无混叠。 语音信号处理是研究用数字信号处理技术和语音学知识对语音 信号进行处理的新兴学科,是目前发展最为迅速的学科之一,通过语音传递信息是人类最重要,最有效,最常用和最方便的交换信息手段,所以对其的研究更显得尤为重要。 Matlab语言是一种数据分析和处理功能十分强大的计算机应用 软件,它可以将声音文件变换成离散的数据文件,然后用起强大的矩阵运算能力处理数据。这为我们的本次设计提供了强大并良好的环境! 本设计要求通过利用matlab对模拟信号和语音信号进行抽样,通过傅里叶变换转换到频域,观察波形并进行分析。 关键词:抽样Matlab

目录 一、设计目的: (2) 二、设计原理: (2) 1、抽样定理 (2) 2、MATLAB简介 (2) 3、语音信号 (3) 4、Stem函数绘图 (3) 三、设计内容: (4) 1、已知g1(t)=cos(6πt),g2(t)=cos(14πt),g3(t)=cos(26πt),以抽样频率 fsam=10Hz对上述三个信号进行抽样。在同一张图上画出g1(t),g2(t),g3(t)及其抽样点,对所得结果进行讨论。 (4) 2、选取三段不同的语音信号,并选取适合的同一抽样频率对其进 行抽样,画出抽样前后的图形,并进行比较,播放抽样前后的语音。 (6) 3、选取合适的点数,对抽样后的三段语音信号分别做DFT,画图 并比较。 (10) 四、总结 (12) 五、参考文献 (13)

DSP实验报告

一、综合实验内容和目的 1、实验目的 (1) 通过实验学习掌握TMS320F28335的浮点处理; (2) 学习并掌握A/D模块的使用方法; (3) 学习并掌握中断方式和查询方式的相关知识及其相互之间的转换; (4) 学习信号时域分析的方法,了解相关电量参数的计算方法; (5) 了解数字滤波的一些基本方法。 2、实验内容 要求1:对给定的波形信号,采用TMS320F28335的浮点功能计算该信号的以下时域参数:信号的周期T,信号的均方根大小V rms、平均值V avg、峰-峰值V pp。 其中,均方根V rms的计算公式如下: V= rms 式中N为采样点数,()u i为采样序列中的第i个采样点。 要求2:所设计软件需要计算采样的波形周期个数,并控制采样点数大于1个波形周期,且小于3个波形周期大小。 要求3:对采集的数据需要加一定的数字滤波。 二、硬件电路 相关硬件:TMS320F28335DSP实验箱,仿真器。

硬件结构图 三、程序流程图 1、主程序流程图 程序的主流程图2、子程序流程图

参数计算的流程图 四、实验结果和分析 1、实验过程分析 (1) 使用的函数原型声明 对ADC模件相关参数进行定义:ADC时钟预定标,使外设时钟HSPCLK 为25MHz,ADC模块时钟为12.5MHz,采样保持周期为16个ADC时钟。 (2) 定义全局变量 根据程序需要,定义相关变量。主要有:ConversionCount、Voltage[1024]、Voltage1[1024]、Voltage2[1024]、filter_buf[N]、filter_i、Max、Min、T、temp、temp1、temp2、temp3、Num、V、Vav、Vpp、Vrm、fre。这些变量的声明请见报告后所附的源程序。 (3) 编写主函数 完成系统寄存器及GPIO初始化;清除所有中断,初始化PIE向量表,将程

数字信号处理实验报告

数字信号处理作业提交日期:2016年7月15日

实验一 维纳滤波器的设计 第一部分 设计一维纳滤波器。 (1)产生三组观测数据,首先根据()(1)()s n as n w n =-+产生信号()s n ,将其加噪(信噪比分别为20,10,6dB dB dB ),得到观测数据123(),(),()x n x n x n 。 (2)估计()i x n ,1,2,3i =的AR 模型参数。假设信号长度为L ,AR 模型阶数为N ,分析实验结果,并讨论改变L ,N 对实验结果的影响。 1 实验原理 滤波技术是信号分析、处理技术的重要分支,无论是信号的获取、传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传递是至关重要的。信号分析检测与处理的一个十分重要的内容就是从噪声中提取信号,实现这种功能的有效手段之一是设计一种具有最佳线性过滤特性的滤波器,当伴有噪声的信号通过这种滤波器的时候,它可以将信号尽可能精确地重现或对信号做出尽可能精确的估计,而对所伴随噪声进行最大限度地抑制。维纳滤波器就是这种滤波器的典型代表之一。 维纳(Wiener )是用来解决从噪声中提取信号的一种过滤(或滤波)方法。这种线性滤波问题,可以看做是一种估计问题或一种线性估计问题。 设一线性系统的单位样本响应为()h n ,当输入以随机信号()x n ,且 ()() () x n s n v n =+,其中()s n 表示原始信号,即期望信号。()v n 表示噪声,则输出()y n 为()=()()m y n h m x n m -∑,我们希望信号()x n 经过线性系统()h n 后得到的()y n 尽可能接近 于()s n ,因此称()y n 为估计值,用?()s n 表示。 则维纳滤波器的输入-输出关系可用下面表示。 设误差信号为()e n ,则?()()()e n s n s n =-,显然)(n e 可能是正值,也可能是负值,并且它是一个随机变量。因此,用它的均方误差来表达误差是合理的,所谓均方误差最小即 它的平方的统计期望最小:222?[|()|][|()()|][|()()|]E e n E s n s n E s n y n =-=-=min 。而要使均方误差最小,则需要满足2[|()|]j E e n h ?=0. 进一步导出维纳-霍夫方程为:()()()()*(),0,1,2...xs xx xx i R m h i R m i R m h m m =-==∑ 写成矩阵形式为:xs xx R R h =,可知:1xs xx h R R -=。表明已知期望信号与观测数据的互相关函数以及观测信号的自相关函数时,可以通过矩阵求逆运算,得到维纳滤波器的

dsp课程设计实验报告

DSP 课程设计实验 一、语音信号的频谱分析: 要求首先画出语音信号的时域波形,然后对语音信号进行频谱分析。在MATLAB 中,可以利用函数fft 对信号进行快速傅立叶变换,得到信号的频谱特性,从而加深对频谱特性的理解。 其程序为: >> [y,fs,bits]=wavread('I:\',[1024 5120]); >> sound(y,fs,bits); >> Y=fft(y,4096); >> subplot(221);plot(y);title('原始信号波形'); | >> subplot(212);plot(abs(Y));title('原始信号频谱'); 程序运行结果为: 二、设计数字滤波器和画出频率响应: 根据语音信号的特点给出有关滤波器的性能指标: 低通滤波器性能指标,p f =1000Hz ,c f =1200Hz ,s A =100dB ,p A =1dB ; 高通滤波器性能指标,c f =4800Hz ,p f =5000Hz ,s A =100dB ,p A =1dB ; 带通滤波器性能指标,1p f =1200Hz ,2p f =3000Hz ,1c f =1000Hz ,2c f =3200Hz ,s A =100dB , p A =1dB ;

】 要求学生首先用窗函数法设计上面要求的三种滤波器,在MATLAB中,可以利用函数firl 设计FIR滤波器;然后再用双线性变换法设计上面要求的三种滤波器,在MATLAB中,可以利用函数butte、cheby1和ellip设计IIR滤波器;最后,利用MATLAB中的函数freqz画出各种滤波器的频率响应,这里以低通滤波器为例来说明设计过程。 低通: 用窗函数法设计的低通滤波器的程序如下: >> fp=1000;fc=1200;As=100;Ap=1;fs=22050; >> wc=2*fc/fs;wp=2*fp/fs; >> N=ceil(/*(wc-wp)/2))+1; >> beta=*; >> Win=Kaiser(N+1,beta); 、 >>b=firl(N,wc,Win); >>freqz(b,1,512,fs); 程序运行结果: 这里选用凯泽窗设计,滤波器的幅度和相位响应满足设计指标,但滤波器长度(N=708)太长,实现起来很困难,主要原因是滤波器指标太苛刻,因此,一般不用窗函数法设计这种类型的滤波器。 用双线性变换法设计的低通滤波器的程序如下: >> fp=1000;fc=1200;As=100;Ap=1;fs=22050; >> wc=2*fc/fs;wp=2*fp/fs; 》 >> [n,wn]=ellipord(wp,wc,Ap,As); >> [b,a]=ellip(n,Ap,As,wn); >> freqz(b,a,512,fs); ^

数字信号处理课设+语音信号的数字滤波

语音信号的数字滤波 ——利用双线性变换法实现IIR数字滤波器的设计一.课程设计的目的 通过对常用数字滤波器的设计和实现,掌握数字信号处理的工作原理及设计方法;熟悉用双线性变换法设计 IIR 数字滤波器的原理与方法,掌握利用数字滤波器对信号进行滤波的方法,掌握数字滤波器的计算机仿真方法,并能够对设计结果加以分析。 二.设计方案论证 1.IIR数字滤波器设计方法 IIR数字滤波器是一种离散时间系统,其系统函数为 假设M≤N,当M>N时,系统函数可以看作一个IIR的子系统和一个(M-N)的FIR子系统的级联。IIR数字滤波器的设计实际上是求解滤波器的系数和,它 是数学上的一种逼近问题,即在规定意义上(通常采用最小均方误差准则)去逼近系统的特性。如果在S平面上去逼近,就得到模拟滤波器;如果在z平面上去逼近,就得到数字滤波器。 2.用双线性变换法设计IIR数字滤波器 脉冲响应不变法的主要缺点是产生频率响应的混叠失真。这是因为从S平面到Z平面是多值的映射关系所造成的。为了克服这一缺点,可以采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到-π/T~π/T之间,再用z=e sT转换 平面的-π/T~π到Z平面上。也就是说,第一步先将整个S平面压缩映射到S 1 /T一条横带里;第二步再通过标准变换关系z=e s1T将此横带变换到整个Z平面上去。这样就使S平面与Z平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象,映射关系如图1所示。 图1双线性变换的映射关系 为了将S平面的整个虚轴jΩ压缩到S1平面jΩ1轴上的-π/T到π/T段上,可以通过以下的正切变换实现

DSP实验报告

东南大学自动化学院 实验报告 课程名称: DSP技术及课程设计 实验名称:直流无刷电机控制综合实验 院(系):自动化专业:自动化 姓名:ssb 学号:08011 实验室:304 实验组别: 同组人员:ssb1 ssb2 实验时间:2014年 6 月 5 日评定成绩:审阅教师:

目录 1.实验目的和要求 (3) 1.1 实验目的 (3) 1.2 实验要求 (3) 1.2.1 基本功能 (3) 1.2.2 提高功能 (3) 2.实验设备与器材配置 (3) 3.实验原理 (3) 3.1 直流无刷电动机 (3) 3.2 电机驱动与控制 (5) 3.3 中断模块 (7) 3.3.1 通用定时器介绍及其控制方法 (7) 3.3.2 中断响应过程 (7) 3.4 AD模块 (8) 3.4.1 TMS320F28335A 芯片自带模数转换模块特性 (8) 3.4.2 模数模块介绍 (8) 3.4.3 模数转换的程序控制 (8) 4.实验方案与实验步骤 (8) 4.1 准备实验1:霍尔传感器捕获 (8) 4.1.1 实验目的 (8) 4.1.2 实验内容 (9) 4.1.2.1 准备 (9) 4.1.2.2 霍尔传感器捕获 (9) 4.2 准备实验2:直流无刷电机(BLDC)控制 (10) 4.2.1 程序框架原理 (10) 4.2.1.1 理解程序框架 (10) 4.2.1.2 基于drvlib281x库的PWM波形产生 (11) 4.2.2 根据捕获状态驱动电机运转 (12) 4.2.2.1 目的 (12) 4.2.2.2 分析 (12) 4.3 考核实验:直流无刷电机调速控制系统 (13) 4.3.1 初始化工作 (13) 4.3.2 初始化定时器0.... . (13) 4.3.3初始化IO口 (13) 4.3.4中断模块.... (13) 4.3.5 AD模块 (14) 4.3.6在液晶屏显示 (15) 4.3.7电机控制 (17) 4.3.7.1 控制速度方式选择 (17) 4.3.7.2 控制速度和转向 (18) 4.3.8延时子函数 (19) 4.3.9闭环PID调速 (19)

数字信号处理实验报告

实验一MATLAB语言的基本使用方法 实验类别:基础性实验 实验目的: (1)了解MATLAB程序设计语言的基本方法,熟悉MATLAB软件运行环境。 (2)掌握创建、保存、打开m文件的方法,掌握设置文件路径的方法。 (3)掌握变量、函数等有关概念,具备初步的将一般数学问题转化为对应计算机模型并进行处理的能力。 (4)掌握二维平面图形的绘制方法,能够使用这些方法进行常用的数据可视化处理。 实验内容和步骤: 1、打开MATLAB,熟悉MATLAB环境。 2、在命令窗口中分别产生3*3全零矩阵,单位矩阵,全1矩阵。 3、学习m文件的建立、保存、打开、运行方法。 4、设有一模拟信号f(t)=1.5sin60πt,取?t=0.001,n=0,1,2,…,N-1进行抽样,得到 序列f(n),编写一个m文件sy1_1.m,分别用stem,plot,subplot等命令绘制32 点序列f(n)(N=32)的图形,给图形加入标注,图注,图例。 5、学习如何利用MATLAB帮助信息。 实验结果及分析: 1)全零矩阵 >> A=zeros(3,3) A = 0 0 0 0 0 0 0 0 0 2)单位矩阵 >> B=eye(3) B = 1 0 0 0 1 0 0 0 1 3)全1矩阵 >> C=ones(3) C = 1 1 1 1 1 1 1 1 1 4)sy1_1.m N=32; n=0:N-1; dt=0.001; t=n*dt; y=1.5*sin(60*pi*t); subplot(2,1,1), plot(t,y); xlabel('t'); ylabel('y=1.5*sin(60*pi*t)'); legend('正弦函数'); title('二维图形'); subplot(2,1,2), stem(t,y) xlabel('t'); ylabel('y=1.5*sin(60*pi*t)'); legend('序列函数'); title('条状图形'); 00.0050.010.0150.020.0250.030.035 t y = 1 . 5 * s i n ( 6 * p i * t ) 二维图形 00.0050.010.0150.020.0250.030.035 t y = 1 . 5 * s i n ( 6 * p i * t ) 条状图形

dsp课程设计实验报告总结

DSP课程设计总结(2013-2014学年第2学期) 题目: 专业班级:电子1103 学生姓名:万蒙 学号:11052304 指导教师: 设计成绩: 2014 年6 月

目录 一设计目的----------------------------------------------------------------------3 二系统分析----------------------------------------------------------------------3 三硬件设计 3.1 硬件总体结构-----------------------------------------------------------3 3.2 DSP模块设计-----------------------------------------------------------4 3.3 电源模块设计----------------------------------------------------------4 3.4 时钟模块设计----------------------------------------------------------5 3.5 存储器模块设计--------------------------------------------------------6 3.6 复位模块设计----------------------------------------------------------6 3.7 JTAG模块设计--------------------------------------------------------7 四软件设计 4.1 软件总体流程-----------------------------------------------------7 4.2 核心模块及实现代码---------------------------------------8 五课程设计总结-----------------------------------------------------14

数字信号处理课设共18页文档

数字信号处理课程设计 姓名:刘倩 学号:201014407 专业:信息与计算科学 实验一:常见离散信号产生和实现 一、实验目的: 1、加深对常用离散信号的理解; 2、掌握matlab 中一些基本函数的建立方法。 二、实验原理: 1.单位抽样序列 在MATLAB 中可以利用zeros()函数实现。 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即: 2.单位阶越序列 在MATLAB 中可以利用ones()函数实现。 3.正弦序列 在MATLAB 中 4.复指数序列 在MATLAB 中 5.指数序列 在MATLAB 中

实验内容:由周期为10的正弦函数生成周期为20的余弦函数。 实验代码: n=0:30; y=sin(0.2*pi*n+pi/2); y1=sin(0.1*pi*n+pi/2); subplot(121) stem(n,y); xlabel ('时间序列n');ylabel('振幅');title('正弦函数序列y=sin(0.2*pi*n+pi/2)'); subplot(122) stem(n,y1); xlabel ('时间序列n');ylabel('振幅'); title('正弦函数序列y=sin(0.2*pi*n+pi/2)'); 实验结果: 实验二:离散系统的时域分析 实验目的:加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。实验原理:离散系统 其输入、输出关系可用以下差分方程描述: 输入信号分解为冲激信号, 记系统单位冲激响应 则系统响应为如下的卷积计算式:

当N k d k ,...2,1,0==时,h[n]是有限长度的(n :[0,M]),称系统为FIR 系统;反之,称系统为IIR 系统。 在MATLAB 中,可以用函数y=filter(p,d,x)实现差分方程的仿真,也可以用函数 y=conv(x,h)计算卷积,用y=impz(p,d,N)求系统的冲激响应。 实验内容:用MATLAB 计算全解 当n>=0时,求用系数差分方程y[n]+y[n-1]-6y[n-2]=x[n]描述的一个离散时间系统对阶跃输入x[n]=8μ[n]的全解。 实验代码: n=0:7; >> [y,sf]=filter(1,[1 1 -6],8*ones(1,8),[-7 6]); >> y1(n+1)=-1.8*(-3).^n+4.8*(2).^n-2; >> subplot(121) >> stem(n,y); >> title('由fliter 函数计算结果'); >> subplot(122) >> stem(n,y1); >> title('准确结果'); 实验结果: 结果分析:有图可得由fliter 函数得出的结果与计算出的准确结果完全一致。 实验三FFT 算法的应用

DSP实验报告

实验0 实验设备安装才CCS调试环境 实验目的: 按照实验讲义操作步骤,打开CCS软件,熟悉软件工作环境,了解整个工作环境内容,有助于提高以后实验的操作性和正确性。 实验步骤: 以演示实验一为例: 1.使用配送的并口电缆线连接好计算机并口与实验箱并口,打开实验箱电源; 2.启动CCS,点击主菜单“Project->Open”在目录“C5000QuickStart\sinewave\”下打开工程文件sinewave.pjt,然后点击主菜单“Project->Build”编译,然后点击主菜单“File->Load Program”装载debug目录下的程序sinewave.out; 3.打开源文件exer3.asm,在注释行“set breakpoint in CCS !!!”语句的NOP处单击右键弹出菜单,选择“Toggle breakpoint”加入红色的断点,如下图所示; 4.点击主菜单“View->Graph->Time/Frequency…”,屏幕会出现图形窗口设置对话框 5.双击Start Address,将其改为y0;双击Acquisition Buffer Size,将其改为1; DSP Data Type设置成16-bit signed integer,如下图所示; 6.点击主菜单“Windows->Tile Horizontally”,排列好窗口,便于观察 7.点击主菜单“Debug->Animate”或按F12键动画运行程序,即可观察到实验结果: 心得体会: 通过对演示实验的练习,让自己更进一步对CCS软件的运行环境、编译过程、装载过程、属性设置、动画演示、实验结果的观察有一个醒目的了解和熟悉的操作方法。熟悉了DSP实验箱基本模块。让我对DSP课程产生了浓厚的学习兴趣,课程学习和实验操作结合为一体的学习体系,使我更好的领悟到DSP课程的实用性和趣味性。

数字信号处理实验报告一

武汉工程大学 数字信号处理实验报告 姓名:周权 学号:1204140228 班级:通信工程02

一、实验设备 计算机,MATLAB语言环境。 二、实验基础理论 1.序列的相关概念 2.常见序列 3.序列的基本运算 4.离散傅里叶变换的相关概念 5.Z变换的相关概念 三、实验内容与步骤 1.离散时间信号(序列)的产生 利用MATLAB语言编程产生和绘制单位样值信号、单位阶跃序列、指数序列、正弦序列及随机离散信号的波形表示。 四实验目的 认识常用的各种信号,理解其数字表达式和波形表示,掌握在计算机中生成及绘制数字信号波形的方法,掌握序列的简单运算及计算机实现与作用,理解离散时间傅里叶变换,Z变换及它们的性质和信号的频域分

实验一离散时间信号(序列)的产生 代码一 单位样值 x=2; y=1; stem(x,y); title('单位样值 ') 单位阶跃序列 n0=0; n1=-10; n2=10; n=[n1:n2]; x=[(n-n0)>=0]; stem(n,x); xlabel('n'); ylabel('x{n}'); title('单位阶跃序列');

实指数序列 n=[0:10]; x=(0.5).^n; stem(n,x); xlabel('n'); ylabel('x{n}'); title('实指数序列');

正弦序列 n=[-100:100]; x=2*sin(0.05*pi*n); stem(n,x); xlabel('n'); ylabel('x{n}'); title('正弦序列');

随机序列 n=[1:10]; x=rand(1,10); subplot(221); stem(n,x); xlabel('n'); ylabel('x{n}'); title('随机序列');

DSP实验报告

电气信息工程学院 D S P技术与综合训练 实验报告 班级 08通信1W 姓名丁安华 学号 08313115 指导老师倪福银刘舒淇 2011年09 月

目录 实验一 LED演示 1.1.实验目的 -------------------------------------------------P2 1. 2.实验设备-------------------------------------------------P2 1. 3.实验原理-------------------------------------------------P2 1. 4.实验程序设计流程------------------------------------------P3 1. 5.实验程序编写----------------------------------------------P4 1. 6.实验步骤-------------------------------------------------P7 1. 7.实验结果与分析--------------------------------------------P7实验二键盘输入 2.1.实验目的 -------------------------------------------------P8 2.2.实验设备-------------------------------------------------P8 2. 3.实验原理-------------------------------------------------P8 2. 4.实验程序设计流程------------------------------------------P9 2. 5.实验程序编写----------------------------------------------P10 2. 6.实验步骤-------------------------------------------------P14 2. 7.实验结果与分析--------------------------------------------P14实验三液晶显示器控制显示 3.1.实验目的 -------------------------------------------------P15 3.2.实验设备-------------------------------------------------P15 3.3.实验原理-------------------------------------------------P15 3. 4.实验程序设计流程------------------------------------------P17 3. 5.实验程序编写----------------------------------------------P18 3. 6.实验步骤-------------------------------------------------P22 3. 7.实验结果与分析--------------------------------------------P23实验四有限冲激响应滤波器(FIR)算法 4.1.实验目的 -------------------------------------------------P23 4.2.实验设备-------------------------------------------------P23 4.3.实验原理-------------------------------------------------P24 4.4.实验程序设计流程------------------------------------------P25 4. 5.实验程序编写----------------------------------------------P25 4. 6.实验步骤-------------------------------------------------P27 4. 7.实验结果与分析--------------------------------------------P28

数字信号处理课程规划报告

数字信号处理课程设计报告《应用Matlab对信号进行频谱分析及滤波》 专业: 班级: 姓名: 指导老师: 二0 0五年一月一日

目录 设计过程步骤() 2.1 语音信号的采集() 2.2 语音信号的频谱分析() 2.3 设计数字滤波器和画出其频谱响应() 2.4 用滤波器对信号进行滤波() 2.5滤波器分析后的语音信号的波形及频谱() ●心得和经验()

设计过程步骤 2.1 语音信号的采集 我们利用Windows下的录音机,录制了一段开枪发出的声音,时间在1 s内。接着在C盘保存为WAV格式,然后在Matlab软件平台下.利用函数wavread对语音信号进行采样,并记录下了采样频率和采样点数,在这里我们还通过函数sound引入听到采样后自己所录的一段声音。通过wavread函数和sound的使用,我们完成了本次课程设计的第一步。其程序如下: [x,fs,bite]=wavread('c:\alsndmgr.wav',[1000 20000]); sound(x,fs,bite); 2.2 语音信号的频谱分析 首先我们画出语音信号的时域波形;然后对语音信号进行频谱分析,在Matlab中,我们利用函数fft对信号进行快速傅里叶变换,得到信号的频谱特性性。到此,我们完成了课程实际的第二部。 其程序如下: n=1024; subplot(2,1,1); y=plot(x(50:n/4)); grid on ; title('时域信号') X=fft(x,256); subplot(2,1,2); plot(abs(fft(X))); grid on ; title('频域信号'); 运行程序得到的图形:

DSP实验报告-深圳大学-自动化

深圳大学实验报告课程名称:DSP系统设计 实验项目名称:DSP系统设计实验 学院:机电与控制工程学院 专业:自动化 指导教师:杜建铭 报告人1:. 学号:。班级:3 报告人2:. 学号:。班级:3 报告人3:. 学号:。班级:3 实验时间: 实验报告提交时间: 教务处制

实验一、CCS入门试验 一、实验目的 1. 熟悉CCS集成开发环境,掌握工程的生成方法; 2. 熟悉SEED-DEC2812实验环境; 3. 掌握CCS集成开发环境的调试方法。 二、实验仪器 1.TMS320系列SEED-DTK教学试验箱24套 2. 台式PC机24台 三、实验内容 1.仿真器驱动的安装和配置 2. DSP 源文件的建立; 3. DSP程序工程文件的建立; 4. 学习使用CCS集成开发工具的调试工具。 四、实验准备: 1.将DSP仿真器与计算机连接好; 2.将DSP仿真器的JTAG插头与SEED-DEC2812单元的J1相连接; 3.启动计算机,当计算机启动后,打开SEED-DTK2812的电 源。SEED-DTK_MBoard单元的+5V,+3.3V,+15V,-15V的电源指示灯及SEED-DEC2812的电源指示灯D2是否均亮;若有不亮,请断开电源,检查电源。 五、实验步骤 (一)创建源文件 1.进入CCS环境。

2.打开CCS选择File →New →Source File命令 3.编写源代码并保存 4.保存源程序名为math.c,选择File →Save 5.创建其他源程序(如.cmd)可重复上述步骤。 (二)创建工程文件 1.打开CCS,点击Project-->New,创建一个新工程,其中工程名及路径可任意指定弹 出对话框: 2.在Project中填入工程名,Location中输入工程路径;其余按照默认选项,点击完成 即可完成工程创建; 3.点击Project选择add files to project,添加工程所需文件;

数字信号处理实验报告(实验1_4)

实验一 MATLAB 仿真软件的基本操作命令和使用方法 实验容 1、帮助命令 使用 help 命令,查找 sqrt (开方)函数的使用方法; 2、MATLAB 命令窗口 (1)在MATLAB 命令窗口直接输入命令行计算3 1)5.0sin(21+=πy 的值; (2)求多项式 p(x) = x3 + 2x+ 4的根; 3、矩阵运算 (1)矩阵的乘法 已知 A=[1 2;3 4], B=[5 5;7 8],求 A^2*B

(2)矩阵的行列式 已知A=[1 2 3;4 5 6;7 8 9],求A (3)矩阵的转置及共轭转置 已知A=[1 2 3;4 5 6;7 8 9],求A' 已知B=[5+i,2-i,1;6*i,4,9-i], 求B.' , B' (4)特征值、特征向量、特征多项式 已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4] ,求矩阵A的特征值、特征向量、特征多项式;

(5)使用冒号选出指定元素 已知:A=[1 2 3;4 5 6;7 8 9];求A 中第3 列前2 个元素;A 中所有列第2,3 行的元素; 4、Matlab 基本编程方法 (1)编写命令文件:计算1+2+…+n<2000 时的最大n 值;

(2)编写函数文件:分别用for 和while 循环结构编写程序,求 2 的0 到15 次幂的和。

5、MATLAB基本绘图命令 (1)绘制余弦曲线 y=cos(t),t∈[0,2π]

(2)在同一坐标系中绘制余弦曲线 y=cos(t-0.25)和正弦曲线 y=sin(t-0.5), t∈[0,2π] (3)绘制[0,4π]区间上的 x1=10sint 曲线,并要求: (a)线形为点划线、颜色为红色、数据点标记为加号; (b)坐标轴控制:显示围、刻度线、比例、网络线 (c)标注控制:坐标轴名称、标题、相应文本; >> clear;

DSP实验报告

实验一 程序的控制与转移 一、实验目的 1、掌握条件算符的使用。 2、掌握循环操作指令(BNAZ )和比较操作指令(CMPR ) 二、实验设备 计算机、ZY13DSP12BD 实验箱、5402EVM 板。 三、实验原理 程序控制指令主要包括分支转移、子程序调用、子程序返回、条件操作及循环操作等。通过传送控制到程序存储器的其他位置,转移会中断连续的指令流。转移会影响在PC 中产生和保护的程序地址。其中转移可以分为两种形式的,一种是有条件的,另一种是无条件的。 四、实验内容 编写程序,实现计算y= ∑=5 1 i i x 的值。 五、实验步骤 1、用仿真机将计算机与ZY13DSP12BD 实验箱连接好,并依次打开实验箱电源、仿真机电源,然后运行CCS 软件。 2、新建一个项目:点击Project -New ,将项目命名为example2,并将项目保存在自己定义的文件夹下。 3、新建一个源文件example2.asm 。将该文件添加到工程example2.pjt 中。 4、在工程管理器中双击example2.asm ,编写源程序: .tiltle ”example2.asm ” .mmregs STACK .usect ”STACK ”,10H ;堆栈的设置 .bss x,5 ;为变量分配6个字的存储空间 .bss y,1 .def start .data table: .word 10,20,3,4,5 ;x1,x2,x3,x4,x5 .text Start: STM #0,SWWWSR ;插入0个等待状态 STM #STACK+10H,sp ;设置堆栈指针 STM #x,AR1 ;AR1指向x RPT #4 ;下一条被重复执行5遍 MVPD table,*AR1+ ;把程序存储器中的数据传送到数据存储器 LD #0,A ;A 清零 CALL SUM ;调用求和函数 end: B end SUM: STM #x,AR3 ;AR3指向x STM #4,AR2 ;AR2=4 loop: ADD *AR3+,A ;*AR3+A-->A,然后AR3+ BANZ loop,*AR2- ;如果AR2的值不为0,则跳到loop 处;否则执行下一条指令 STL A,*(y) ;把A 的低16位赋给变量y

数字信号处理课程设计

数字信号处理 课 程 设 计 院系:电子信息与电气工程学院 专业:电子信息工程专业 班级:电信班 姓名: 学号: 组员:

摘要 滤波器设计在数字信号处理中占有极其重要的地位,FIR数字滤波器和IIR 滤波器是滤波器设计的重要组成部分。利用MATLAB信号处理工具箱可以快速有效地设计各种数字滤波器。课题基于MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现。在设计实现的过程中,使用窗函数法来设计FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR数字滤波器,并利用MATLAB 作为辅助工具完成设计中的计算与图形的绘制。通过对对所设计滤波器的仿真和频率特性分析,可知利用MATLAB信号处理工具箱可以有效快捷地设计FIR和IIR数字滤波器,过程简单方便,结果的各项性能指标均达到指定要求。 关键词数字滤波器 MATLAB 窗函数法巴特沃斯

目录 摘要 (1) 1 引言 (1) 1.1课程设计目的 (1) 1.2 课程设计内容及要求 (1) 1.3课程设计设备及平台 (1) 1.3.1 数字滤波器的简介及发展 (1) 1.3.2 MATLAB软件简介 (2) 2 课程设计原理及流程 (4) 3.课程设计原理过程 (4) 3.1 语音信号的采集 (4) 3.2 语音信号的时频分析 (5) 3.3合成后语音加噪声处理 (7) 3.3.1 噪声信号的时频分析 (7) 3.3.2 混合信号的时频分析 (8) 3.4滤波器设计及消噪处理 (10) 3.4.1 设计IIR和FIR数字滤波器 (10) 3.4.2 合成后语音信号的消噪处理 (13) 3.4.3 比较滤波前后语音信号的波形及频谱 (13) 3.4.4回放语音信号 (15) 3.5结果分析 (15) 4 结束语 (15) 5 参考文献 (16)

dsp实验报告

DSP 实验课大作业实验报告 题目:在DSP 上实现线性调频信号的脉冲压缩,动目标显示和动目标检测 (一)实验目的: (1)了解线性调频信号的脉冲压缩、动目标显示和动目标检测的原理,及其DSP 实现的整个流程; (2)掌握C 语言与汇编语言混合编程的基本方法。 (3)使用MATLAB 进行性能仿真,并将DSP 的处理结果与MATLAB 的仿真结果进行比较。 (二)实验内容: 1. MATLAB 仿真 设定信号带宽为B= 62*10,脉宽-6=42.0*10τ,采样频率为62*10Fs =,脉冲重复周期为-4T=2.4*10,用MATLAB 产生16个脉冲的线性调频信号,每个脉冲包含三个目标,速度和距离如下表: 对回波信号进行脉冲压缩,MTI ,MTD 。并且将回波数据和频域脉压系数保存供DSP 使用。 2.DSP 实现 在Visual Dsp 中,经MATLAB 保存的回波数据和脉压系数进行脉压,MTI 和MTD 。 (三)实验原理 1.脉冲压缩原理 在雷达系统中,人们一直希望提高雷达的距离分辨力,而距离分辨力定义为:22c c R B τ?==。其中,τ表示脉冲时宽,B 表示脉冲带宽。从上式中我们可以看

出高的雷达分辨率要求时宽τ小,而要求带宽B大。但是时宽τ越小雷达的平均发射功率就会很小,这样就大大降低了雷达的作用距离。因此雷达作用距离和雷达分辨力这两个重要的指标变得矛盾起来。然而通过脉冲压缩技术就可以解决这个矛盾。脉冲压缩技术能够保持雷达拥有较高平均发射功率的同时获得良好的距离分辨力。 在本实验中,雷达发射波形采用线性调频脉冲信号(LFM),其中频率与时延成正比关系,因此我们就可以将信号通过一个滤波器,该滤波器满足频率与时延成反比关系。那么输入信号的低频分量就会得到一个较大的时延,而输入信号的高频分量就会得到一个较小的时延,中频分量就会按比例获得相应的时延,信号就被压缩成脉冲宽度为1/B的窄脉冲。 从以上原理我们可以看出,通过使用一个与输入信号时延频率特性规律相反的滤波器我们可以实现脉冲压缩,即该滤波器的相频特性与发射信号时共轭匹配的。所以说脉冲压缩滤波器就是一个匹配滤波器。从而我们可以在时域和频域两个方向进行脉冲压缩。 滤波器的输出() h n= y n为输入信号() x n与匹配滤波器的系统函数() *(1) y n x n s N n =--。转换到频域就是--卷积的结果:* ()()*(1) s N n =。因此我们可以将输入信号和系统函数分别转化到频域:Y k X k H k ()()( Y k,然后将结果再转化到时域, h n H k →,进行频域相乘得() ()() x t X k →,()() 就可以得到滤波器输出:()() →。我们可用FFT和IFFT来实现作用域的 Y k y n 转换。原理图如下: 图1.脉冲压缩原理框图 2.MTI原理 动目标显示(MTI)技术是用来抑制各种杂波,来实现检测或者显示运动目标的技术。利用它可以抑制固定目标的信号,显示运动目标的信号。以线性调频

西南交大数字信号处理报告

信息科学与技术学院本科三年级 数字信号处理实验报告 2011 年12 月21日

实验一 序列的傅立叶变换 实验目的 进一步加深理解DFS,DFT 算法的原理;研究补零问题;快速傅立叶变换 (FFT )的应用。 实验步骤 1. 复习DFS 和DFT 的定义,性质和应用; 2. 熟悉MATLAB 语言的命令窗口、编程窗口和图形窗口的使用;利用提供的 程序例子编写实验用程序;按实验内容上机实验,并进行实验结果分析;写出完整的实验报告,并将程序附在后面。 实验内容 1. 周期方波序列的频谱试画出下面四种情况下的的幅度频谱,并分析补零后,对信号频谱的影响。 实验结果: 60 ,7)4(;60,5)3(; 40,5)2(;20,5)1()] (~[)(~,2,1,01 )1(,01,1)(~=========±±=???-+≤≤+-+≤≤=N L N L N L N L n x DFS k X m N m n L m N L m N n m N n x ) 52.0cos()48.0cos()(n n n x ππ+=

2. 有限长序列x(n)的DFT (1) 取x(n)(n=0:10)时,画出x(n)的频谱X(k) 的幅度; (2) 将(1)中的x(n)以补零的方式,使x(n)加长到(n:0~100)时,画出 x(n)的频谱X(k) 的幅度; (3) 取x(n)(n:0~100)时,画出x(n)的频谱X(k) 的幅度。利用FFT 进行谱分析 已知:模拟信号 以t=0.01n(n=0:N-1)进行采样,求N 点DFT 的幅值谱。 请分别画出N=45; N=50;N=55;N=60时的幅值曲线。 实验结果: ) 8cos(5)4sin(2)(t t t x ππ+=

相关文档
相关文档 最新文档