高分悬赏 限三天 特急matlab 利用凯泽窗函数设计一个带通滤波器

作者&投稿:钱杰 (若有异议请与网页底部的电邮联系)
MATLAB设计,用凯泽窗设计高通、带通、带阻滤波器~

可以看看帮助
help fir1
help kaiser

大概是这样的
win=kaiser(...); % 设定窗函数,凯泽窗
b=fir1(......,win); % 设计数字滤波器,可指定类型、截止频率、窗的类型
freqz(b); % 看频率特性

fg

MATLAB设计模拟带通滤波器
参数自己改一下就可以了
cheb1
% wp1=0.45*pi;wp2=0.65*pi;ws1=0.3*pi;ws2=0.75*pi;Rp=1;Rs=40
% =============双线型变换法=========================================
wp1=0.45*pi; wp2=0.65*pi;
ws1=0.3*pi; ws2=0.75*pi;
Rp=1; Rs=40;
Wp1=tan(wp1/2); Wp2=tan(wp2/2);
Ws1=tan(ws1/2); Ws2=tan(ws2/2);
BW=Wp2-Wp1; W0=Wp1*Wp2; W00=sqrt(W0);
WP=1; WS=WP*(W0^2-Ws1^2)/(Ws1*BW);
[N,Wn]=cheb1ord(WP,WS,Rp,Rs,'s');
[B,A]=cheby1(N,Rp,Wn,'s');
[BT,AT]=lp2bp(B,A,W00,BW);
[num,den]=bilinear(BT,AT,0.5);
[h,omega]=freqz(num,den,64);

subplot(2,2,1);stem(omega/pi,abs(h));
xlabel('\omega/\pi');ylabel('|H(z)|');

subplot(2,2,2);stem(omega/pi,20*log10(abs(h)));
xlabel('\omega/\pi');ylabel('增益.dB');
% =============直接法=================================
wp1=0.45*pi; wp2=0.65*pi;
ws1=0.3*pi; ws2=0.75*pi;
Rp=1; Rs=40;
Wp=[wp1/pi,wp2/pi]; Ws=[ws1/pi,ws2/pi];
[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs);
[B,A]=cheby1(N,Rp,Wn);
[h,omega]=freqz(B,A,64);

subplot(2,2,3);stem(omega/pi,abs(h));
xlabel('\omega/\pi');ylabel('|H(z)|');

subplot(2,2,4);stem(omega/pi,20*log10(abs(h)));
xlabel('\omega/\pi');ylabel('增益.dB');
%cheby2%
% wp1=0.45*pi;wp2=0.65*pi;ws1=0.3*pi;ws2=0.75*pi;Rp=1;Rs=40
% =============双线型变换法=========================================
wp1=0.45*pi; wp2=0.65*pi;
ws1=0.3*pi; ws2=0.75*pi;
Rp=1; Rs=40;
Wp1=tan(wp1/2); Wp2=tan(wp2/2);
Ws1=tan(ws1/2); Ws2=tan(ws2/2);
BW=Wp2-Wp1; W0=Wp1*Wp2; W00=sqrt(W0);
WP=1; WS=WP*(W0^2-Ws1^2)/(Ws1*BW);
[N,Wn]=cheb2ord(WP,WS,Rp,Rs,'s');
[B,A]=cheby2(N,Rs,Wn,'s');
[BT,AT]=lp2bp(B,A,W00,BW);
[num,den]=bilinear(BT,AT,0.5);
[h,omega]=freqz(num,den,64);

subplot(2,2,1);stem(omega/pi,abs(h));
xlabel('\omega/\pi');ylabel('|H(z)|');

subplot(2,2,2);stem(omega/pi,20*log10(abs(h)));
axis([0 1 -100 0]);xlabel('\omega/\pi');ylabel('增益.dB');
% =============直接法=================================
wp1=0.45*pi; wp2=0.65*pi;
ws1=0.3*pi; ws2=0.75*pi;
Rp=1; Rs=40;
Wp=[wp1/pi,wp2/pi]; Ws=[ws1/pi,ws2/pi];
[N,Wn]=cheb2ord(Wp,Ws,Rp,Rs);
[B,A]=cheby2(N,Rs,Wn);
[h,omega]=freqz(B,A,64);

subplot(2,2,3);stem(omega/pi,abs(h));
xlabel('\omega/\pi');ylabel('|H(z)|');

subplot(2,2,4);stem(omega/pi,20*log10(abs(h)));
axis([0 1 -100 0]);xlabel('\omega/\pi');ylabel('增益.dB');
%椭圆%
% wp1=0.45*pi;wp2=0.65*pi;ws1=0.3*pi;ws2=0.75*pi;Rp=1;Rs=40
% =============双线型变换法=========================================
wp1=0.45*pi; wp2=0.65*pi;
ws1=0.3*pi; ws2=0.75*pi;
Rp=1; Rs=40;
Wp1=tan(wp1/2); Wp2=tan(wp2/2);
Ws1=tan(ws1/2); Ws2=tan(ws2/2);
BW=Wp2-Wp1; W0=Wp1*Wp2; W00=sqrt(W0);
WP=1; WS=WP*(W0^2-Ws1^2)/(Ws1*BW);
[N,Wn]=ellipord(WP,WS,Rp,Rs,'s');
[B,A]=ellip(N,Rp,Rs,Wn,'s');
[BT,AT]=lp2bp(B,A,W00,BW);
[num,den]=bilinear(BT,AT,0.5);
[h,omega]=freqz(num,den,64);

subplot(2,2,1);stem(omega/pi,abs(h));grid;
xlabel('\omega/\pi');ylabel('|H(z)|');

subplot(2,2,2);stem(omega/pi,20*log10(abs(h)));grid;
xlabel('\omega/\pi');ylabel('增益.dB');
% =============直接法=================================
wp1=0.45*pi; wp2=0.65*pi;
ws1=0.3*pi; ws2=0.75*pi;
Rp=1; Rs=40;
Wp=[wp1/pi,wp2/pi]; Ws=[ws1/pi,ws2/pi];
[N,Wn]=ellipord(Wp,Ws,Rp,Rs);
[B,A]=ellip(N,Rp,Rs,Wn);
[h,omega]=freqz(B,A,64);

subplot(2,2,3);stem(omega/pi,abs(h));grid;
xlabel('\omega/\pi');ylabel('|H(z)|');

subplot(2,2,4);stem(omega/pi,20*log10(abs(h)));grid;
xlabel('\omega/\pi');ylabel('增益.dB');
回答者: dear漫儿 - 初学弟子 一级 5-6 19:37

%凯泽窗函数设计的带通滤波器幅频特性
%利用kaiser窗函数设计一个长度为奇数的带通滤波器(长度为奇数对应滤波器是偶数阶的,
% 由此能满足带通滤波器的要求),通带范围是15hertz到40hertz,阻带范围是0hertz到10
% hertz、50hertz到250hertz,阻带波纹为0.01decibel,通带波纹为0.05decibel,信号
%采样率为500hertz
clear all;
fs=500;%采样频率
fcuts=[10,15,40,50];%频率参数
mags=[0 1 0];%用于制定过渡带(通带或阻带)频率段的理想滤波器幅度值,在通带内其元
%素值取1,阻带内取0
devs=[0.01,0.05,0.01];%设置各通带和阻带内允许的幅度的最大误差
[n,Wn,beta,ftype]=kaiserord(fcuts,mags,devs,fs);
n=n+rem(n,2);%求偶数阶,rem求余数
hh=fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');%线性相位通带标准滤波器的设计
[H,f]=freqz(hh,1,1024,fs);%频率响应
plot(f,abs(H),'r','LineWidth',2);
grid on;
title('凯泽窗函数设计的带通滤波器幅频特性');
xlabel('频率(f)');
ylabel('幅度');
%%%%%%%%%%%%%%%%%%%%%%%设置背景色为白色%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
set(gcf,'color','w');

先给分就帮你设计.


沙坡头区18574638673: 高分悬赏 限三天 特急matlab 利用凯泽窗函数设计一个带通滤波器 -
钟离明鲁贝: %凯泽窗函数设计的带通滤波器幅频特性%利用kaiser窗函数设计一个长度为奇数的带通滤波器(长度为奇数对应滤波器是偶数阶的,% 由此能满足带通滤波器的要求),通带范围是15hertz到40hertz,阻带范围是0hertz到10% hertz、50hertz到...

沙坡头区18574638673: MATLAB编程(高分悬赏,时间紧迫) 《计算多项式的乘积》 -
钟离明鲁贝: function c=mypolymul(a,b) flag=0; if isa(a,'sym') a=sym2poly(a); flag=1; end if isa(b,'sym') b=sym2poly(b); flag=1; end m=length(a); n=length(b); c=zeros(1,m+n-1); for i=1:m for j=1:n c(i+j-1)=c(i+j-1)+a(i)*b(j); end end if flag==1 c=poly2sym(c,'x'); end%...

沙坡头区18574638673: 高分悬赏 matlab 多个数值怎样按列输出t=[1 2 3] p[3 4 5] v=[5 6 7] -
钟离明鲁贝: t=[1 2 3]; p=[3 4 5]; v=[5 6 7]; [t' p' v']

沙坡头区18574638673: 用MATLAB做一个仿真,关于方波和三角波的,急急急!高分悬赏在线等 -
钟离明鲁贝: clc; clear; close all; ts=0.005; t=0:ts:1;%t的取值范围为0到1,间隔0.005取一个点 fs=1/ts; N=length(t); y0=square(10*pi*t);%产生一个5Hz的方波 h=cumtrapz(t,y0);%积分产生三角波z0=h.*y0;%用方波截取 t=t+0.05; y1=square(10*pi*t);%产生延...

沙坡头区18574638673: matlab——三次样条插值法,计算Y值,条件如下(高分在线悬赏): -
钟离明鲁贝: clear all x=[0.002 0.02 0.2 2]; y=[12.20 48.25 83.65 100.05]; X=0:0.01:2; Y=interp1(x,y,X,'spline');%三次样条插值回 y1=Y(find(X==0.05))%插值方答程在x=0.05处的Y值 plot(x,y,'b.',X,Y,'r') legend('插值前','三次样条插值后')

沙坡头区18574638673: 高分悬赏:最优化问题,用matlab求最小值 -
钟离明鲁贝: 用lingo求解比较简单....用x1,x2,x3分别表示x(1),x(2),x(3) 因为lingo默认变量非负,所以在lingo中x(1)>=0;X(2)>=0;x(3)>=0;可省略不写,有目标函数分母不为零,即约束x1,x2,x3不得同时为零,所以x(1)+x(2)+x(3)>0;也可省略不写.综上最后的lingo代码就剩简单的一句,如下 min=(2*x1+3*x2+9*x3)/(3*x1+5*x2+8*x3); 结果:目标函数最小值为0.6,x1=x3=0,x2可取任意非零数

沙坡头区18574638673: 高分悬赏!这个目标函数怎么用matlab写出来!在线等 ! -
钟离明鲁贝: 将函数中的未知变量全部定义为符号常量,在用求和公式sum可以得到

沙坡头区18574638673: 【高分悬赏】如何用matlab表达如下公式 -
钟离明鲁贝: 图与公式看起来无关.公式表达了一个关于r的函数,请把其中涉及的其他函数(E R 等)写出来.

沙坡头区18574638673: 高分悬赏 MATLAB:??? Input argument "x" is undefined. -
钟离明鲁贝: f02.m————这个改名为systemEqns,函数名最好和文件名一样 function [f,J] = systemEqns(x) newton_syst(f02,x,100,1e-10,1e-10) 把f02改为@systemEqns 你传递的是函数,不是函数运算出来的值 改好后即可运行了,当然又会出现些其它错误,你自己继续处理好了. ________________________________ 算了,我还是讲出来吧 xnew = x-J\f; 改为 xnew = x-(J\f)';

沙坡头区18574638673: matlab程序设计,急,高分! -
钟离明鲁贝: 现在的学生越来越不像话了,作业也要找人. 提示一下吧. fuction [out ] =diaoyong(a ,b) .....beidiao(); function ss =beidiao(可在同一M中. swit...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网