T数字信号处理(MATLAB版)上机实验操作【DOC精选】Word文档格式.docx
《T数字信号处理(MATLAB版)上机实验操作【DOC精选】Word文档格式.docx》由会员分享,可在线阅读,更多相关《T数字信号处理(MATLAB版)上机实验操作【DOC精选】Word文档格式.docx(22页珍藏版)》请在冰点文库上搜索。
![T数字信号处理(MATLAB版)上机实验操作【DOC精选】Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-4/29/bb8e6665-cd6d-45be-be32-8944e4a42b1a/bb8e6665-cd6d-45be-be32-8944e4a42b1a1.gif)
25;
x=(t>
=0);
s=filter(b,a,x);
stem(n,s)
StepResponse'
ylabel('
s(n)'
3.>
a=[1,-0.5,0.06];
b=[1,1];
n=-20:
120;
x1=exp(-0.05*n).*sin(0.1*pi*n+pi/3);
s1=filter(b,a,x1);
%分子分母系数ba构成的滤波器对矢量x1滤波
stem(n,s1);
;
xlabel('
s1(n)'
4.>
h=impz(b,a,n);
y=conv(x1,h);
m=-50:
length(y)-51;
stem(m,y);
title('
系统响应'
m'
y(m)'
实验二离散信号与系统的连续频域分析
1、掌握离散时间信号的DTFT的MATLAB实现;
2、掌握离散时间系统的DTFT分析;
3、掌握系统函数和频率相应之间的关系。
1、自定义一个长度为8点的信号,信号幅度值也由自己任意指定,对该信
号作DTFT,分别画出幅度谱和相位谱
2、已知离散时间系统差分方程为y(n)-0.5y(n-1)+0.06y(n-2)=x(n)+x(n-1),求出并画出其频率响应
3、求该系统系统函数,并画极零点图,并通过freqz函数求频率响应。
上机操作
1
n=0:
7;
x=(0.9*exp(j*pi/3)).^n;
w=-pi:
pi/200:
pi;
X=x*exp(-j).^(n'
*w);
magX=abs(X);
angX=angle(X);
subplot(2,1,1);
plot(w/pi,magX);
w/pi'
幅度|X|'
subplot(2,1,2);
plot(w/pi,angX);
相位(rad/π)'
2
b=[1,1,0];
m=0:
length(b)-1;
l=0:
length(a)-1;
w=0:
pi/500:
num=b*exp(-j*m'
den=a*exp(-j*l'
H=num./den;
magH=abs(H);
angH=angle(H);
H1=freqz(b,a,w);
magH1=abs(H1);
angH1=angle(H1);
subplot(2,2,2);
plot(w/pi,angH/pi);
grid;
w(frequencyinpiunits)'
subplot(2,2,1);
plot(w/pi,magH);
幅度|H|'
subplot(2,2,3);
plot(w/pi,magH1);
幅度|H1|'
subplot(2,2,4);
plot(w/pi,angH1/pi);
相位(rad/π)'
axis([0,1,-0.8,0]);
figure
(2);
zplane(b,a);
实验3 离散信号与系统的离散频域分析(DFT)
1、掌握离散时间系统的DFT的MATLAB实现;
2、熟悉DTFT和DFT之间的关系。
3、了解信号不同变形的DFT与原信号DFT之间的关系
自定义一个长为8点的信号;
1、对信号分别做8点、16点、32点DFT,分别与DTFT合并作图并比较
DFT与DTFT之间的关系。
2、在信号后加零扩展至八点,每两个相邻样本之间插入一个零值,扩充为
16点序列,作DFT,画出幅度谱和相位谱,并与原序列的DFT进行比较。
3、将信号以8为周期扩展,得到长为16的两个周期,作DFT,画出幅度谱和相位谱,并与原序列的DFT进行比较。
1.
x1=[xzeros(1,8)];
x2=[x1zeros(1,16)];
Xk=dft(x,8);
Xk1=dft(x1,16);
Xk2=dft(x2,32);
2*pi;
magXk=abs(Xk);
angXk=angle(Xk);
magXk1=abs(Xk1);
angXk1=angle(Xk1);
magXk2=abs(Xk2);
angXk2=angle(Xk2);
subplot(4,2,1);
gridon;
subplot(4,2,2);
subplot(4,2,3);
stem(0:
7,magXk);
k'
幅度|X(k)|'
axis([0,8,0,6]);
subplot(4,2,4);
7,angXk);
axis([0,8,-2,2]);
subplot(4,2,5);
15,magXk1);
幅度|X1(k)|'
axis([0,16,0,6]);
subplot(4,2,6);
15,angXk1);
axis([0,16,-2,2]);
subplot(4,2,7);
31,magXk2);
幅度|X2(k)|'
axis([0,32,0,6]);
subplot(4,2,8);
31,angXk2);
axis([0,32,-2,2]);
function[Xk]=dft(xn,N)
n=0:
N-1;
k=0:
Wn=exp(-j*2*pi/N);
nk=n'
*k;
Xk=xn*(Wn.^nk);
2.
fori=1:
8 %将原序列每两个相邻样本之间插入一个零值,扩展为长为16的序列y1(2*i-1:
2*i)=[x(i)0];
end
Yk1=dft(y1,16);
Warning:
FunctioncalldftinvokesinexactmatchD:
\MATLAB7\work\DFT.M.
magYk1=abs(Yk1);
angYk1=angle(Yk1);
y2=[xx];
%将信号以8为周期扩展,得到长为16的两个周期
Yk2=dft(y2,16);
magYk2=abs(Yk2);
angYk2=angle(Yk2);
subplot(3,2,1);
subplot(3,2,2);
subplot(3,2,3);
15,magYk1);
幅度|Y1(k)|'
subplot(3,2,4);
15,angYk1);
subplot(3,2,5);
15,magYk2);
幅度|Y2(k)|'
subplot(3,2,6);
15,angYk2);
对照:
63;
x=(0.9*exp(j*pi/3)).^n;
fori=1:
64 %将原序列每两个相邻样本之间插入一个零值,扩展为长为128的序列y1(2*i-1:
Yk1=dft(y1,128);
n2=0:
127;
y2=(0.9*exp(j*pi/3)).^n2;
%信号长为128
Yk2=dft(y2,128);
Xk=dft(x,64);
subplot(3,2,1);
63,magXk);
subplot(3,2,2);
63,angXk);
subplot(3,2,3);
127,magYk1);
subplot(3,2,4);
127,angYk1);
subplot(3,2,5);
127,magYk2);
subplot(3,2,6);
127,angYk2);
实验四 IIR滤波器设计
1、掌握各种模拟原型滤波器的滤波特性;
2、掌握模数滤波器变换时的脉冲响应不变法和双线性变换法;
3、掌握低通滤波器变换成其他类型滤波器的方法;
4、能够根据指标选择合适的原型滤波器和合适的方法设计IIR滤波器。
1、自定设计指标(通带截止频率、通带波纹、阻带截止频率、阻带衰减),选择合适的模拟原型低通滤波器和合适的设计方法(脉冲响应不变法或双线性变换法),设计符合要求的
IIR滤波器;
并验证设计好的滤波器是否满足要求。
2、将此低通滤波器映射为高通、带通或带阻滤波器,并验证变换后的滤波器是否满足指标。
3、求输入x(n)=[cos(w1n)+cos(w2n)]u(n)经过系统后的输出y(n)。
其中w1位于通带内,w2位于阻带内,要求做一个两行两列的子图,第一个做x的时域波形,第二个做x的幅度谱,第三个做y的时域波形,第四个做y的幅度谱。
MATLAB集成系统四、设计流程:
此处写个人自己的设计流程
五、程序清单:
此处写程序内容
此处写程序的执行结果和实验过程中的调试经过、出现的错误和对应的解决方法七、教师评语与成绩评定
此处由老师填写
模拟原型Butterworth滤波器:
wp=0.4*pi;
ws=0.6*pi;
Rp=0.5;
As=50;
[b,a]=afd_butt(wp,ws,Rp,As);
***ButterworthFilterOrder=17
[db,mag,pha,w]=freqs_m(b,a,pi);
[ha,x,t]=impulse(b,a,100);
plot(w/pi,mag);
w'
|H|'
gridon
plot(w/pi,pha);
相位'
gridon
plot(w/pi,db);
db'
plot(t,ha);
t'
ha(t)'
axis([0,100,-0.2,0.4]);
双线性变换法求得的数字Butterworth低通滤波器:
T=2;
OmegaP=(2/T)*tan(wp/2);
OmegaS=(2/T)*tan(ws/2);
N=ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(OmegaP/OmegaS)));
OmegaC=OmegaP/((10^(Rp/10)-1)^(1/(2*N)));
wn=2/pi*atan(OmegaC*T/2);
[b,a]=butter(N,wn);
[db,mag,pha,grd,w]=freqz_m(b,a);
100;
axis([0,1,0,1.15]);
axis([0,1,-4,4]);
axis([0,1,-140,20]);
stem(n,h);
由前面的数字Butterworth低通滤波器映射得到的高通滤波器:
接上面的程序
wp1=ws;
ws1=wp;
[N1,wn1]=buttord(wp1/pi,ws1/pi,Rp,As);
[b1,a1]=butter(N1,wn1,'
high'
[db1,mag1,pha1,grd1,w1]=freqz_m(b1,a1);
h1=impz(b1,a1,n);
plot(w1/pi,mag1);
w1'
|H1|'
axis([0,1,0,1.15]);
plot(w1/pi,pha1);
plot(w1/pi,db1);
db1'
stem(n,h1);
h1(n)'
信号x(n)通过数字Butterworth低通滤波器:
接上面程序
w1=0.3*pi;
w2=0.7*pi;
x=cos(w1*n)+cos(w2*n);
[y,ny]=conv_m(x,n,h'
n);
X=dtft(x,n,w);
Y=dtft(y,ny,w);
magY=abs(Y);
figure
(2);
stem(n,x);
x(n)'
stem(ny,y);
y(n)'
plot(w/pi,magY);
幅度|Y|'
实验五FIR滤波器设计方法
1、掌握不同窗函数的性能指标;
2、根据指标选择窗函数设计FIR滤波器。
3、掌握频率采样法设计FIR滤波器
自定滤波器的类型(低通,高通或带通)、设计指标(通带截止频率、通带
波纹、阻带截止频率、阻带衰减)
1、根据指标选择合适的窗函数,用窗口设计法设计符合指标的FIR滤波器;
并验证其性能是否满足预定指标。
参考书上例题
2、根据指标选择合适的采样点数,用频率采样法设计符合指标的FIR滤波器;
并验证其性能是否满足预定指标。
求出通带内的Rp和阻带内的As,或者用两行两列的子图分别将结果列出
来。
其中w1位于通带内,w2位于阻带内,要求做一个两行两列的子图,第一个做x的时域波形,第二个做x的幅度谱,第三个做y的时域波形,第四个做y的幅度谱。
参考结果
设计指标:
wp=0.3*pi;
ws=0.4*pi;
Rp=1;
As=40;
要点:
设计指标要与结果图一致七、教师评语与成绩评定
窗口设计法:
上机操作
ws1=0.2*pi;
wp1=0.35*pi;
wp2=0.65*pi;
ws2=0.8*pi;
As=60;
tr_width=min((wp1-ws1),(ws2-wp2));
M=ceil(11*pi/tr_width)+1M=
75
n=[0:
1:
M-1];
wc1=(ws1+wp1)/2;
wc2=(ws2+wp2)/2;
hd=ideal_lp(wc2,M)-ideal_lp(wc1,M);
Functioncallideal_lpinvokesinexactmatchD:
\MATLAB7\work\IDEAL_LP.M.
w_bla=(blackman(M))'
h=hd.*w_bla;
[db,mag,pha,grd,w]=freqz_m(h,[1]);
delta_w=2*pi/1000;
Rp=-min(db(wp1/delta_w+1:
wp2/delta_w))Rp=
0.0030
As=-round(max(db(ws2/delta_w+1:
501)))As=
stem(n,hd);
hd(n)'
axis([0,M-1,-0.4,0.5]);
stem(n,w_bla);
w(n)'
axis([0,M-1,0,1.1]);
axis([0,M-1,-0.4,0.5);
axis([0,1,-139,10);
接上面的程序:
w1=0.5*pi;
w2=0.1*pi;
x=c