
clear all;
close all;
fs=2500; %采样率
fp=99,fc=105; %通带边界频率和截止频率
wp=2pifp/fs; %频率做归一化处理
ws=2pifc/fs;
Bt=ws-wp; %过渡带宽
N0=ceil(66pi/Bt); %确定滤波器长度
N=N0+mod(N0+1,2); %保证为奇数
wc=(wp+ws)/2/pi; %过渡带中心频率
hn=fir1(N-1,wc,hamming(N)); %汉明窗滤波器
freqz(hn,1,512); %绘制频率响应图
%%构造测试信号
f1=30;f2=45;f3=80;f4=93;f5=99;f6=130; %各频率分量(Hz)
t=0:001:2; %时长
x=05cos(2pif1t)+03cos(2pif2t)+02cos(2pif3t)+07cos(2f4pit)+08cos(2pif5t)+06cos(2pif6t); %测试信号
figure(5);
subplot(211)
plot(t,x);
y=filter(hn,1,x); %时域滤波
title('滤波前信号');
subplot(212)
plot(t,y);
title('滤波后信号');
1、首先在m文件中输入下面的代码:
x = -pi:pi/10:pi
y = sin(x)
plot(x,y,'--rs','LineWidth',2,
'MarkerEdgeColor','k',
'MarkerFaceColor','g',
'MarkerSize',10)
画出图如下。
2、第一种方法:
直接在代码前面输入 %
x = -pi:pi/10:pi
% y = sin(x)
% plot(x,y,'--rs','LineWidth',2,
% 'MarkerEdgeColor','k',
% 'MarkerFaceColor','g',
% 'MarkerSize',10)
在命令窗口中,仅看到x的值,y值与图均没有执行。
3、第二种方法:
%{
x = -pi:pi/10:pi;
y = sin(x);
plot(x,y,'--rs','LineWidth',2,
'MarkerEdgeColor','k',
'MarkerFaceColor','g',
'MarkerSize',10)
%}
d = -pi:pi/10:pi;
如果取消注释的话,将%{ 和 %}删除即可。
4、第三种方法:
if 0
x = -pi:pi/10:pi;
y = sin(x);
plot(x,y,'--rs','LineWidth',2,
'MarkerEdgeColor','k',
'MarkerFaceColor','g',
'MarkerSize',10)
end
d = -pi:pi/10:pi
通过一个条件使得程序不执行这几行代码,也就意味着注释掉了。
5、第四种方法:
选中代码,然后用命令按钮来实现注释和取消注释。
length:数组长度(即行数或列数中的较大值)
reshape把指定的矩阵改变形状,但是元素个数不变
out是矩阵吧,那么out(i,1)就是其中的某一元素
abs()取某数的绝对值
floor:朝负无穷方向舍入
回答不是很完整,因为我也对MATLAB也只是懂个皮毛,用的时候查资料
告诉一个方法吧,那个函数不会用了,去百度搜索
比如length函数,搜索 matlab+length 就可以找到相关资料
function [ITSE] = SS(B)%定义函数名称,输入的是矩阵,在本方程代号是B,输出 [ITSE]
[H,L]=size(B);%读取矩阵的行列数
for i=1:H %逐行 *** 作
for j=1:L%行内逐个 *** 作
a(j)=B(i,j);
end
%%%上面小循环的意思是将第i行写入向量a
for k=1:(L+2)
if k==1
A(k)=1;
elseif k==(L+2)
A(k)=1;
elseif 1
A(k)=a(k-1);
end
end
%%%%%A=[1,a,1]在a前后各补上一个数1,构成新向量A
set_param('Simplex/Transfer Fcn','Denominator',mat2str(A));
[t,x,y]=sim('Simplex',100);
上面设置目录,运行sim函数,输出 [t,x,y]
n=length(t); 取t的长度
ITSE(i)=x(n,1);%该行的值去x中(n,1)值,然后逐行 *** 作得到向量TSE
end
end
层次关系自己区分清楚哈
把值付给四个变量
wp=2pi5000;ws=2pi12000;Rp=2;As=30;
1 buttord
(1)[N,wc]=buttord(wp,ws,αp,αs)
用于计算巴特沃斯数字滤波器的阶数N和3dB截止频率wc。
调用参数wp,ws分别为数字滤波器的通带、阻带截止频率的归一化值,要求:0≤wp≤1,0≤ws≤1。1表示数字频率pi。
αp,αs分别为通带最大衰减和组带最小衰减(dB)。
当ws≤wp时,为高通滤波器;
当wp和ws为二元矢量时,为带通或带阻滤波器,这时wc也是二元向量。
N,wc作为butter函数的调用参数。
(2)[N,Ωc]=buttord(Ωp,Ωs,αp,αs,‘s’)
用于计算巴特沃斯模拟滤波器的阶数N和3dB截止频率Ωc。
Ωp,Ωs,Ωc均为实际模拟角频率。
说明:buttord函数使用阻带指标计算3dB截止频率,这样阻带会刚好满足要求,而通带会有富余。
2buttap(N)
[z0,p0,k0]=buttap(N)
用于计算N阶巴特沃斯归一化(3dB截止频率Ωc=1)模拟低通原型滤波器系统函数的零、极点和增益因子。
说明:如果要从零、极点模型得到系统函数的分子、分母多项式系数向量ba、aa,可调用
[B,A]=zp2tf(z0,p0,k0)
3butter
(1)[b,a]=butter(N,wc,‘ftype’)
计算N阶巴特沃斯数字滤波器系统函数分子、分母多项式的系数向量b、a。
调用参数N和wc分别为巴特沃斯数字滤波器的阶数和3dB截止频率的归一化值(关于pi归一化),一般是调用buttord(1)格式计算N和wc。
系数b、a是按照z-1的升幂排列。
(2)[B,A]=butter(N,Ωc,‘ftype’,‘s’)
计算巴特沃斯模拟滤波器系统函数的分子、分母多项式系数向量ba、aa。
调用参数N和Ωc分别为巴特沃斯模拟滤波器的阶数和3dB截止频率(实际角频率),可调用buttord(2)格式计算N和Ωc。
系数B、A按s的正降幂排列。
tfype为滤波器的类型:
◇ftype=high时,高通;Ωc只有1个值。
◇ftype=stop时,带阻阻;此时Ωc=[Ωcl,Ωcu],分别为带阻滤波器的通带3dB下截止频率和上截止频率。
◇ ftype缺省时:
若Ωc只有1个值,则默认为低通;
若Ωc有2个值,则默认为带通;其通带频率区间Ωcl < Ω < Ωcu。
注意:所设计的带通和带阻滤波器系统函数是2N阶。因为带通滤波器相当于N阶低通滤波器与N阶高通滤波器级联。
[N,wc]=buttord(wp,ws,Rp,As,'s');
[B,A]=butter(N,wc,'s');
k=0:511;fk=0:14000/512:14000;wk=2pifk;
Hk=freqs(B,A,wk);
画图,两行两列
subplot(2,2,1);
plot(fk/1000,20log10(abs(Hk)));grid on
坐标轴意义
xlabel('频率(kHz)');ylabel('幅度(dB)')
坐标的取值范围
axis([0,14,-40,5])
以上就是关于求大神解释下段MATLAB程序并注释一下,急求!全部的内容,包括:求大神解释下段MATLAB程序并注释一下,急求!、matlab中如何注释掉一段、请高手指点下这MATLAB程序的内容并帮忙注释下等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)