数字信号处理00002.docx
《数字信号处理00002.docx》由会员分享,可在线阅读,更多相关《数字信号处理00002.docx(10页珍藏版)》请在冰豆网上搜索。
数字信号处理00002
数字信号处理实验报告
实验一
1.分析并绘出常用函数(a)锯齿波;(b)三角波;(c)方波;(d)抽样函数的时域特性波形.
程序:
clearallª¤
t=0:
0.0001:
0.1;
x1=sawtooth(2*pi*50*t);%产生五个周期锯齿波
subplot(221)
plot(t,x1)
title('锯齿波110900623')
xlabel('t')
x2=sawtooth(2*pi*50*t,0.5);%产生五个周期三角波
subplot(222)
plot(t,x2)
xlabel('t')
title('三角波110900623')
x3=square(2*pi*50*t);%产生十个周期方波
subplot(223)
plot(t,x3)
xlabel('t')
title('方波110900623')
axis([0,0.1,-1.2,1.2])
t=-4:
0.1:
4;
x4=sinc(t);%产生抽样信号
subplot(224)
plot(t,x4)
xlabel('t')
axis([-5,5,-0.5,0.5])
title('抽样信号110900623')
2.分析并绘出常用窗函数时域特性波形.
clearall
y1=boxcar(80);%矩形窗
plot(y1,'k')
axis([-1,81,-0.2,1.2])
gtxst(‘矩形窗’)
holdon
y2=triang(80);%三角窗
plot(y2,'m.')
holdon
y3=hanning(80);%汉宁窗
plot(y3,'y*')
gtxst(‘汉宁窗’)
holdon
y4=hamming(80);%海明窗
plot(y4,'r-')
gtxst(‘海明窗’)
holdon
y5=blackman(80);%布莱克曼窗
plot(y5,'g:
')
gtxst(‘布莱克曼窗’)
holdon
y6=kaiser(80,7.865);%凯塞-贝尔窗
plot(y6,'b-.')
gtxst(‘凯塞-贝尔窗’)
title('常用窗函数110900623')
实验二内容:
1.计算序列x(n)=[1,2,3,4,5],与序列h(n)=[2,-2,3,5]的线性卷积和6点、8点和10点圆周卷积.
xn=[1,2,3,4,5];
hn=[2,-2,3,5];
yln=conv(xn,hn);
ycn1=circonv2(xn,hn,6);
ycn2=circonv2(xn,hn,8);
ycn3=circonv2(xn,hn,10);
ny0=[0:
1:
length(yln)-1];
ny1=[0:
1:
length(ycn1)-1];
ny2=[0:
1:
length(ycn2)-1];
ny3=[0:
1:
length(ycn3)-1];
subplot(2,2,1);
stem(ny0,yln)
ylabel('线性卷积')
subplot(2,2,2);
stem(ny1,ycn1);
ylabel('圆周卷积6')
subplot(2,2,3);
stem(ny2,ycn2)
ylabel('圆周卷积8')
subplot(2,2,4);
stem(ny3,ycn3)
ylabel('圆周卷积10')
axis([0,10,0,40]);
functionyc=circonv2(x1,x2,N)%子程序1
iflength(x1)>N
error('Nmustnotbelessthanlengthofx1');
end
iflength(x2)>N
error('Nmustnotbelessthanlengthofx2');
end
x1=[x1,zeros(1,N-length(x1))];
x2=[x2,zeros(1,N-length(x2))];
n=[0:
1:
N-1];
x2=x2(mod(-n,N)+1);
H=zeros(N,N);
forn=1:
1:
N
H(n,:
)=cirshiftd(x2,n-1,N);
end
yc=x1*H';
functiony=cirshiftd(x,m,N)%子程序2
iflength(x)>N
error('thelengthofxmustbelessthanN');
end
x=[x,zeros(1,N-length(x))];
n=[0:
1:
N-1];
y=x(mod(n-m,N)+1);
2.某序列为
使用FFT函数分析其频谱.利用不同宽度N的矩形窗截短该序列,N分别为20,40,160,观察不同长度N的窗对谱分析结果的影响.
clearall
N=20;
n=0:
N-1;
xn=0.5*cos(11*pi*n/20)+cos(9*pi*n/20);
XK=fft(xn,N);
magXK=abs(XK);
phaXK=angle(XK);
subplot(3,2,1)
plot(n,xn)
xlabel('n');ylabel('x(n)');
title('x(n)时域N=20');
subplot(3,2,2)
k=0:
length(magXK)-1;
stem(k,magXK,'g.');
xlabel('k');ylabel('|X(k)|');
title('X(k)N=20');
holdon
N=40;
n=0:
N-1;
xn=0.5*cos(11*pi*n/20)+cos(9*pi*n/20);
XK=fft(xn,N);
magXK=abs(XK);
phaXK=angle(XK);
subplot(3,2,3)
plot(n,xn)
xlabel('n');ylabel('x(n)');
title('x(n)时域N=40');
subplot(3,2,4)
k=0:
length(magXK)-1;
stem(k,magXK,'m.');
xlabel('k');ylabel('|X(k)|');
title('X(k)N=40');
holdon
N=160;
n=0:
N-1;
xn=0.5*cos(11*pi*n/20)+cos(9*pi*n/20);
XK=fft(xn,N);
magXK=abs(XK);
phaXK=angle(XK);
subplot(3,2,5)
plot(n,xn)
xlabel('n');ylabel('x(n)');
title('x(n)时域N=160');
subplot(3,2,6)
k=0:
length(magXK)-1;
stem(k,magXK,'b.');
xlabel('k');ylabel('|X(k)|');
title('X(k)N=160');
实验三:
1.用巴特沃斯滤波器设计一个数字低通滤波器,要求在0-0.2π内衰耗不大于3dB,在0.6π–π内衰耗不小于60dB,采样频率Fs=500Hz.
wp=500*0.2*pi;
ws=500*0.6*pi;
Rp=3;
Rs=60;
Fs=500;
Ts=1/Fs;
%参数设计
[N,Wn]=buttord(wp,ws,Rp,Rs,'s');
%?
模拟巴特沃斯低通滤波器
[Z,P,K]=buttap(N);
%°把滤波器零极点模型转化为传递函数模型
[Bap,Aap]=zp2tf(Z,P,K);
%°把模拟滤波器原型转化为截止频率为wn的低通滤波器
[b,a]=lp2lp(Bap,Aap,Wn);
%双线性变换法实现模拟滤波器到数字滤波器转换
[bz,az]=bilinear(b,a,Fs);
%绘制频率响应图
[H,W]=freqz(bz,az);
plot(W*Fs/(2*pi),abs(H));
grid
xlabel('频率/Hz')
ylabel('频率响应幅度')
title('110900623')
2.分别使用矩形窗和海明窗函数设计一个线性相位FIR低通滤波器,其逼近理想低通滤波器的频率特性.
其中ωc=1rad,τ=12s。
clf
N=25;
Wn=1;
b=fir1(N,Wn/pi,hamming(N+1));
freqz(b,1,512)
title('110900623')
holdon
b=fir1(N,Wn/pi,boxcar(N+1));
freqz(b,1,512)
title('110900623')
gtext('矩形')
gtext('海明')
gtext('矩形')
gtext('海明')
四、实验心得
本次实验过程中,除了学会利用matlab学会产生各种常用序列、窗函数的方法,也学会利用此工具进行信号的处理,包括频谱分析、抽样、卷积等一些计算量比较大的计算,大大缩减了运算时间,使得对信号进行的数学处理,可以通过直观的图像进行形象的认识,也弥补了我数学运算上的不足。
虽然这个工具掌握的不够深,还不能够灵活运用,但是作为一种信号处理手段,当有了这个概念后,在未来的学习和工作中,如果有可以利用matlab这个工具进行更有效率的利用时,我可以再去专研学习。