matlab采用矩形窗函数的数字FIR低通滤波器设计程序

matlab采用矩形窗函数的数字FIR低通滤波器设计程序,第1张

将模拟频率转化为数字频率,设取样时间为T(要满足抽样定理) Ωp=2πfpT Ωs=2πfsT 过渡带宽度△Ω=Ωp-Ωs 阻带衰减已经超过74db,要选用Kaiser窗了,Kaiser的参数可变,要根据公式确定滤波器的参数一般都选用Ⅰ型线性相位滤波器即滤波器阶数M为偶数,程序如下: wp=;ws=;Ap=1;As=100; Rp=1-10^(-005Ap);Rs=10^(-005As); f=[fp fs]; a=[0 1]; dev=[Rp Rs]; [M,wc,beta,ftype]=kaiserord(f,a,dev); M=mod(M,2)+M; h=fir1(M,wc,ftype,kaiser(M+1,beta)); omega=linspace(0,pi,512); mag=freqz(h,[1],omega); plot(omega/pi,20log10(abs(mag))); grid; omega1=linspace(0,wp,512); h1=freqz(h,[1],omega1); omega2=linspace(ws,pi,512); h2=freqz(h,[1],omega2); fprintf('Ap=%4f\n',-20log10(min(abs(h1)))); fprintf('As=%4f\n',-20log10(max(abs(h2)))); 运行程序可以得到滤波器的通阻带衰减,画出频率响应,若同阻带衰减不满足要求还可以使用滤波器的优化,一般使用的等波纹FIR进行优化

矩形波:

sys=tf([3,10],[1,10,40,100])

[u,t] = gensig('square',4,10);

lsim(sys,'k',u,t)

hold on;plot(t,u,'-')

三角波:

T = 10(1/50);

Fs = 1000;

dt = 1/Fs;

t = 0:dt:T-dt;

x = sawtooth(2pi50t);

plot(t,x)

扩展资料:

注意事项

产生一个三角形的单脉冲信号。有三个参数,三种调用形式:

1、y=tripuls(T)    T是一个数组,表示信号时间。    

2、y=tripuls(T, w)    w是三角波的宽度。    

3、y=tripuls(T, w, s)    s是三角波是斜率(-1<s<1)。    

y=tripuls(t)产生非周期的三角波信号,三角波宽度为时间轴的一半。

y=tripuls(t,w,s)制定三角波的宽度为w,斜率为s(-1<s<1)。s说是斜率,其实代表了最大值在w区间内出现的最大值,比如s=0,则最大值出现在对称点上,s=05,最大值出现在右半区间的中点处,s=1,则出现在右半区间的右边界点处,也即最大值为出现在距离对称点w/2s处。

1、首先,在打开的matlab软件上新建一个脚本来保存编写的代码,如图所示:

2、这边使用了一个自己的数据集,现在先根据这个数据集画出一个矩形,如图所示:

3、根据图形所示,需要在相交区域进行填充,先填充一个区域,根据第一个相交区域的边界条件,用fill函数进行图形填充,

4、然后就可以了。

1绘制二维曲线的最基本函数plot

2双纵坐标函数plotyy

3

坐标控制

函数的调用格式为

axis([xmin xmax ymin ymax zmin zmax])

axis函数功能丰富,常用的用法还有:

axis equal 纵、横坐标轴采用等长刻度

axis square 产生正方形坐标系(缺省为矩形)

axis auto 使用缺省设置

axis off 取消坐标轴

axis on 显示坐标轴

grid on/off命令控制是画还是不画网格线,不带参数的grid命令在两种状态之间进行切换。

box on/off命令控制是加还是不加边框线,不带参数的box命令在两种状态之间进行切换。

4图形窗口的分割

subplot函数的调用格式为:

subplot(m,n,p)

5绘制二维图形的其他函数

1 其他形式的线性直角坐标图

在线性直角坐标系中,其他形式的图形有条形图、阶梯图、杆图和填充图等,所采用的函数分别是:

bar(x,y,选项)

stairs(x,y,选项)

stem(x,y,选项)

fill(x1,y1,选项1,x2,y2,选项2,…)

6极坐标图

polar函数用来绘制极坐标图,其调用格式为:

polar(theta,rho,选项)

其中theta为极坐标极角,rho为极坐标矢径,选项的内容与plot函数相似。

7对数坐标图形

MATLAB提供了绘制对数和半对数坐标曲线的函数,调用格式为:

semilogx(x1,y1,选项1,x2,y2,选项2,…)

semilogy(x1,y1,选项1,x2,y2,选项2,…)

loglog(x1,y1,选项1,x2,y2,选项2,…)

8对函数自适应采样的绘图函数

fplot函数的调用格式为:

fplot(fname,lims,tol,选项)

9绘制三维曲线的最基本函数

plot3函数与plot函数用法十分相似,其调用格式为:

plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)

10三维曲面

1.平面网格坐标矩阵的生成

(1)利用矩阵运算生成。

x=a:dx:b; y=(c:dy:d)';

X=ones(size(y))x;

Y=yones(size(x));

(2)利用meshgrid函数生成。

x=a:dx:b; y=c:dy:d;

[X,Y]=meshgrid(x,y);

10绘制三维曲面的函数

surf函数和mesh函数的调用格式为:

mesh(x,y,z,c)

surf(x,y,z,c)

标准三维曲面

sphere函数的调用格式为:

[x,y,z]=sphere(n)

cylinder函数的调用格式为:

[x,y,z]=sphere(R,n)

MATLAB还有一个peaks 函数,称为多峰函数,常用于三维曲面的演示。

11其他三维图形

条形图、饼图和填充图等特殊图形,它们还可以以三维形式出现,使用的函数分别是bar3、pie3和fill3。此外,还有三维曲面的等高线图。等高线图分二维和三维两种形式,分别使用函数contour和contour3绘制。

一般采用rand函数产生0-1均匀分布,如:

>> rand(5)

ans =

08147 00975 01576 01419 06557

09058 02785 09706 04218 00357

01270 05469 09572 09157 08491

09134 09575 04854 07922 09340

06324 09649 08003 09595 06787

1、Heaviside函数数学表达。

2、how有以下几种形式:

simplify函数对表达式进行化简;radsimp函数对含根式的表达式进行化简;combine函数将表达式中以求和、乘积、幂运算等形式出现的项进行合并;collet合并同类项;factor函数实现因式分解;convert函数完成表达式形式的转换。

相关指令简介,本次演示Heaviside函数矩形脉冲的傅立叶变换,需要用到的matlab指令函数及其调用格式为:

3、求fourier变换。

4、用反变换验算一下正确与否。

5、时域曲线绘制,在这一部里面设A=1,tao=3。则绘制命令如下图所示:

6、上一步所绘制的时域曲线,如下图所示:

7、频域曲线的绘制,绘制代码如下:

8、绘制好的频域曲线图,如下图所示:

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12177794.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存