- 3
- 0
- 约2.9千字
- 约 5页
- 2016-11-30 发布于重庆
- 举报
dsp上機实验指导书
数字信号处理上机实验指导书
一 实验目的
“数字信号处理”是一门理论和实践密切结合的课程,为了帮助同学深入地理解和消化基本理论,锻炼初学者的独立解决问题的能力,所以设立了本实验。由于本门课程(含实验)总共只有32学时,因此本实验仅对频谱分析和滤波器设计中的最基本的内容进行实验。
二 实验内容
1 编程计算矩形序列的16点离散傅里叶变换。
2 以采样周期为 对进行采样,共采样10000点,然后对采样得到的序列进行频谱分析。
3 模拟巴特沃斯滤波器的设计(课本p193习题1)。
4 数字巴特沃斯滤波器的设计(课本p194习题10)。
5根据下列技术指标,设计一个有限脉冲响应数字(FIR)低通滤波器:
三 实验要求
1 要求先预习并写出程序,有困难的同学可参照后面所附的参考程序,将其消化后,再针对题目要求编写程序。
2 要求程序调试通过并要求分析实验结果。
3 教师将检查每位同学的实验结果,并随机提问。
4 要求提交实验报告(实验报告应包括实验内容、程序、实验结果、结果分析等内容)。
部分代码(供参考)
function hd=ideal_lp(wc,M);
alpha=(M-1)/2;
n=[0:1:(M-1)];
m=n-alpha+eps;
hd=sin(wc*m)./(pi*m);
将以上函数保存为ideal_lp.m文件
function [db,mag,pha,w]=freqz_m1(b,a);
[H,w]=freqz(b,a,1000,whole);
H=(H(1:1:501));w=(w(1:1:501));
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
pha=angle(H);
将以上函数保存为freqz_m1.m文件
wp=0.2*pi;ws=0.3*pi;
tr_width=ws-wp
M=ceil(6.6*pi/tr_width)+1
n=[0:1:M-1];
wc=(ws+wp)/2
hd=ideal_lp(wc,M);
w_ham=(hamming(M));
h=hd.*w_ham;
[db,mag,pha,w]=freqz_m1(h,[1]);
delta_w=2*pi/1000;
Rp=-(min(db(1:1:wp/delta_w+1)))
As=-round(max(db(ws/delta_w+1:1:501)))
subplot(2,2,1);stem(n,hd);title(理想脉冲响应)
axis([0 M-1 -0.1 0.3]);xlabel(n);ylabel(hd(n));
subplot(2,2,2);stem(n,w_ham);title(哈明)
axis([0 M-1 0 1.1]);xlabel(n);ylabel(w(n));
subplot(2,2,3);stem(n,h);title(实际脉冲响应)
axis([0 M-1 -0.1 0.3]);xlabel(n);ylabel(h(n))
subplot(2,2,4);plot(w/pi,db);title(幅度响应(单位:db));
axis([0 1 -100 10]);xlabel(频率(单位:pi));ylabel(分贝数)
将以上matlab语句保存为LowFilterHamming.m文件并运行之
n=0:2*pi/100:10000*2*pi/100;
k=0:1:10000;
xn=sin(n)+sin(2*n);
X=fft(xn);
plot(k,abs(X))
将以上matlab语句保存为fftSample1.m文件并运行之
function [b,a]=afd_butt(Wp,Ws,Rp,As);
if Wp=0 error(0)
end
if Ws=Wp error(WsWp)
end
if(Rp=0)|(As0) error(0)
end
N=ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(Wp/Ws)))
OmegaC=Wp/((10^(Rp/10)-1)^(1/(2*N)))
[b,a]=u_buttap(N,OmegaC);
将以上函数保存为afd_butt.m文件
function [b,a]=u_buttap(N,Omegac);
[z,p,k]=buttap(N);
p=p*Omegac;
k=k*Omegac^N
B=real(poly(z))
b=k*B;
a=real(poly(p));
将以上函数保存为u_buttap.m文件
function [db,mag,pha,w]=freqs_m(b,a,wmax)
原创力文档

文档评论(0)