- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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)
w=[0:1:500]*wmax/500;
H=freqs(
原创力文档


文档评论(0)