matlab数字带阻滤波器设计以及DSP设计(精)Word文档下载推荐.doc

上传人:b****9 文档编号:13088318 上传时间:2022-10-04 格式:DOC 页数:5 大小:159KB
下载 相关 举报
matlab数字带阻滤波器设计以及DSP设计(精)Word文档下载推荐.doc_第1页
第1页 / 共5页
matlab数字带阻滤波器设计以及DSP设计(精)Word文档下载推荐.doc_第2页
第2页 / 共5页
matlab数字带阻滤波器设计以及DSP设计(精)Word文档下载推荐.doc_第3页
第3页 / 共5页
matlab数字带阻滤波器设计以及DSP设计(精)Word文档下载推荐.doc_第4页
第4页 / 共5页
matlab数字带阻滤波器设计以及DSP设计(精)Word文档下载推荐.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

matlab数字带阻滤波器设计以及DSP设计(精)Word文档下载推荐.doc

《matlab数字带阻滤波器设计以及DSP设计(精)Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《matlab数字带阻滤波器设计以及DSP设计(精)Word文档下载推荐.doc(5页珍藏版)》请在冰豆网上搜索。

matlab数字带阻滤波器设计以及DSP设计(精)Word文档下载推荐.doc

rp=1;

rs=40;

wp1=0.11*pi;

wp2=0.81*pi;

ws1=0.31*pi;

ws2=0.61*pi;

%数字带阻滤波器技术指标>

wc1=(2/T)*tan(wp1/2);

%频率预畸变>

wc2=(2/T)*tan(wp2/2);

wr1=(2/T)*tan(ws1/2);

wr2=(2/T)*tan(ws2/2);

w0=sqrt(wc1*wc2);

B=wc2-wc1;

wp=1;

%归一化通带截止频率>

ws=wp*(wr1*B)/(w0^2-wr1^2);

%归一化阻带截止频率>

[N,wc]=buttord(wp,ws,rp,rs,'

s'

);

%求滤波器阶数和3dB截止频率>

[Z,P,K]=buttap(N);

[Md,Nd]=zp2tf(Z,P,K);

%将零极点形式转换为传输形式>

[M,N]=lp2bs(Md,Nd,w0,B);

%对低通滤波器进行频率变换,转换为带阻滤波器>

[h,w]=freqs(M,N);

%模拟带阻滤波器的幅频响应>

xlabel('

频率/Hz'

ylabel('

幅度'

title('

模拟带阻滤波器'

[b,a]=bilinear(M,N,15000);

%对模拟滤波器双线性变换>

figure

(1);

freqz(b,a);

[H,W]=freqz(b,a);

%绘出频率响应>

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

figure

(2);

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

gridon;

幅值'

title('

数字滤波器幅频响应

|H(ejOmega)|'

指标参数:

sl=0.5062rad,sl=0.5536rad,

pl=0.3750rad,pu=0.6750rad,

p=1dB,s=40dB

由MATLAB可得出系统函数系数:

Bz=[0.35210.18191.04160.35761.04160.18190.3521]

Az=[1.00000.35311.05470.30380.72320.06450.0095]

系统函数为:

H(Z)=(0.3521+0.1819*z-1+1.0416*z-2+0.3576*z-3+1.0416*z-4+0.1819*z+0.3521*z)/(1.0000+0.3531*z+1.0547*z+0.3038*z+

-4-5-60.7232*z+0.0645*z+0.0095*z)

DSP带阻源程序:

#include"

math.h"

#defineIIRNUMBER30

#defineSIGNAL1F2200

#defineSAMPLEF8000

#definePI3.1415926-5-6-1-2-3

floatInputWave();

floatIIR();

floatfAn[IIRNUMBER]=

{0.3521,0.0575735,0.649911,-0.0395743,0.0979831,-0.0727494,-0.190606,0.100419,0.113193,-0.0413053,0.00630108,-0.0526857,-0.0620213,0.0971701,0.0441409,-0.0611411,-0.00629462,-0.0124744,-0.00798267,0.0583348,-0.000312435,-0.0489819,0.0065404,0.0078924,0.00173493,0.023966,-0.0142577,-0.0264339,0.0152646,0.00930233,-0.00260476}

floatfXn[IIRNUMBER]={0.0};

floatfInput,fOutput;

floatfSignal1,fSignal2,fSignal3;

floatfStepSignal1,fStepSignal2,fStepSignal3;

floatf2PI;

inti;

floatfIn[256],fOut[256];

intnIn,nOut;

main()

{

nIn=0;

nOut=0;

fInput=fOutput=0;

f2PI=2*PI;

fSignal1=0.0;

fSignal2=0.0;

fSignal3=0.0;

fStepSignal1=PI*0.4;

fStepSignal2=PI*0.55;

fStepSignal2=PI*0.7;

while

(1)

fInput=InputWave();

fIn[nIn]=fInput;

nIn++;

nIn%=256;

fOutput=IIR();

fOut[nOut]=fOutput;

nOut++;

//breakpoint

if(nOut>

=256)

nOut=0;

}

floatInputWave()

{for(i=IIRNUMBER-1;

i>

0;

i--)

{fXn[i]=fXn[i-1];

fXn[0]=sin((double)fSignal1)+sin((double)fSignal2)+sin((double)fSignal3);

fSignal1+=fStepSignal1;

if(fSignal1>

=f2PI)fSignal1-=f2PI;

fSignal2+=fStepSignal2;

if(fSignal2>

=f2PI)fSignal2-=f2PI;

fSignal3+=fStepSignal3;

if(fSignal3>

=f2PI)fSignal3-=f2PI;

return(fXn[0]);

floatIIR()

{floatfSum;

fSum=0.0;

for(i=0;

i<

IIRNUMBER;

i++)

{fSum+=(fXn[i]*fAn[i]);

return(fSum);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 其它语言学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1