《巴特沃斯低通滤波器教学文案》由会员分享,可在线阅读,更多相关《巴特沃斯低通滤波器教学文案(6页珍藏版)》请在金锄头文库上搜索。
1、,过程比较复杂,能实行,c语言不能显示图像,但是你要懂得如何用c调用matlab这个程序任何参数都可以用,不限制#in cludeve ngin e.h#in clude#in clude#in clude#in cludevstri ng.hdouble calcN(double fp,double ap, double fs, double as)double i = pow(10,(as/10) - 1;double tmp = ap/10;double j = pow(10,tmp) - 1;double k = log10(i/j);double t = log10(fs/fp);d
2、ouble N = 0.5*k/t + 1;return N;int main( void)int fp,ap,fs,as;printf(请输入 fp:);sca nf(%d, &fp);(-nnN)ud06u H d)E de*6U山三三三三三三三三三三三三三三三三三三三二 cc=)苻。上 S Muu=)苻。上S ss-u=)苻。上 s sLcgeo 七 一寸u 一。 Hou=OHN= H 上 S*。 一0寸u=。u=u 一 P%UN=C一d 盍-S4 -de gNO-eo H 二Mseoa=p 贾-Aueos -cse V 絹*=)七 UK03=p%=ueos CS4 Vlw=)t5 Md
3、eoa=p 贾-Aueos cde 絹纓=)七u 一dprin tf(ope n failed! please try aga inn);en gSetVisible(ep, 0);/mxArray *xx = mxCreateDoubleMatrix(1,N,mxREAL);/ mxArray *yy = mxCreateDoubleMatrix(1,N,mxREAL);/ memcpy(mxGetPr(xx),N*sizeof(double);/ memcpy(mxGetPr(yy),N*sizeof(double);/ en gPutVariable(ep,xx,xx);en gPutV
4、ariable(ep,yy,yy);engEvalString(ep, n=0:0.01:2;);en gEvalStri ng(ep, li n);engEvalString(ep, z,p,k=buttap(N););en gEvalStri ng(ep, b,a=zp2tf(z,p,k););engEvalString(ep, H,w=freqs(b,a,n););en gEvalStri ng(ep, magH=(abs(H).A2;);en gEvalStri ng(ep, plot(w,magH););en gEvalStri ng(ep, axis(0 2 0 1);engEvalString(ep, xlabel(w/wc););en gEvalStri ng(ep, ylabel(|H(jw)|A2););engEvalString(ep, title(Butterworth analog filter prototype);); en gEvalStri ng(ep, grid;);getchar();/mxDestroyArray(xx);/ mxDestroyArray(yy);/ en gClose(ep);return 0;