① 急!Matlab里面模拟滤波器函数怎么使用啊谢谢!
你得到系数a,b后,你信号也知道吧,假设是x,然后你就用y=filter(b,a,x);
我当时学时也很困惑怎么用,后来我做的尝试,我给你一个例子看看吧,是我学习时自己写的
设计一个高通滤波器,并检验它的性能
采样率为10kHZ
阻带边缘为1.5Khz,衰减为40bB
通带边缘为2kHz,波纹为3Db
>>Fs=1e4;
>>fs=1.5e3;
>>fp=2e3;
>>As=40;
>>Rp=3;
>>wp=2*fp/Fs;
>>ws=2*fs/Fs;
>>[N,wn]=cheb2ord(wp,ws,Rp,As);
>>[b,a]=cheby2(N,As,wn,'high');
>>[db,mag,pha,grd,w]=freqz_m(b,a);
>> subplot(2,2,1);plot(w/pi,mag);
>> axis([0,1,0,1]);
>> setX([0 0.3 0.4 1]);
>>setY([0.01 0.7279 1])
>> title('Magnitude Response');
>> subplot(2,2,2);plot(w/pi,db);
>> axis([0 1 -70 0])
>> setX([0 0.3 0.4 1])
>> setY([-40 -2.7589])
>> title('Magnitude Response in dB');
然后给你一个信号x=cos(0.2*pi*n);
>>n=0:200;
>>x=cos(0.6*pi*n);
>>y=filter(b,a,x);
>>subplot(2,2,3);plot(n,x);
>>subplot(2,2,4);plot(n,y);
>>x1=fft(x,201);
>>x11=abs(x1);
>>subplot(2,2,1);stem(n,x11);
>>y1=fft(y,201);
>>y11=abs(y1);
>>subplot(2,2,2);stem(n,y11);
>>setX([0 60 140 201])
>>title('FFT of y');
>>subplot(2,2,1);stem(n,x11);
>>setX([0 60 140 201])
>>title('FFT of x');
>>g=x11-y11;
>>subplot(2,2,3);stem(n,g);
你运行一下,就可以看到结果,刚好把此信号滤掉
给你一个设计思路,你改变截止频率和阻带衰减就可以了
>> %假设截止频率为W,我随便定义一下
>> %比如wp=0.3*pi;ws=0.4*pi
>> wp=0.3*pi;ws=0.4*pi;
>> %阻带衰减为50分贝
>> %通带波纹为0.2分贝
>> As=50;Rp=0.2;
>> %那么可以用两个函数得到系数a,b
>> [N,wn]=buttord(wp/pi,ws/pi,Rp,As);
>> [b,a]=butter(N,wn);
>> %该滤波器就是从截止频率到无穷远都不响应
② 如何直接利用matlab工具箱设计数字滤波器
好的,,直接利用matlab工具箱设计数字滤波器设计我给你做帮您完成.
③ 如何使用matlab中的工具箱
如果是系统自带的,你可以直接用,如果是外部的或者是自编的你需要先把文件夹拷贝到tools文件夹下,再设置路径。
Matlab常用工具箱介绍(英汉对照)
Matlab Main Toolbox——matlab主工具箱
Control System Toolbox——控制系统工具箱
Communication Toolbox——通讯工具箱
Financial Toolbox——财政金融工具箱
System Identification Toolbox——系统辨识工具箱
Fuzzy Logic Toolbox——模糊逻辑工具箱
Higher-Order Spectral Analysis Toolbox——高阶谱分析工具箱
Image Processing Toolbox——图象处理工具箱
LMI Control Toolbox——线性矩阵不等式工具箱
Model predictive Control Toolbox——模型预测控制工具箱
μ-Analysis and Synthesis Toolbox——μ分析工具箱
Neural Network Toolbox——神经网络工具箱
Optimization Toolbox——优化工具箱
Partial Differential Toolbox——偏微分方程工具箱
Robust Control Toolbox——鲁棒控制工具箱
Signal Processing Toolbox——信号处理工具箱
Spline Toolbox——样条工具箱
Statistics Toolbox——统计工具箱
Symbolic Math Toolbox——符号数学工具箱
Simulink Toolbox——动态仿真工具箱
System Identification Toolbox——系统辨识工具箱
Wavele Toolbox——小波工具箱
例如:控制系统工具箱包含如下功能:
连续系统设计和离散系统设计
状态空间和传递函数以及模型转换
时域响应(脉冲响应、阶跃响应、斜坡响应)
频域响应(Bode图、Nyquist图)
根轨迹、极点配置
较为常见的matlab控制箱有:
控制类:
控制系统工具箱(control systems toolbox)
系统识别工具箱(system identification toolbox)
鲁棒控制工具箱(robust control toolbox)
神经网络工具箱(neural network toolbox)
频域系统识别工具箱(frequency domain system identification toolbox)
模型预测控制工具箱(model predictive control toolbox)
多变量频率设计工具箱(multivariable frequency design toolbox)
信号处理类:
信号处理工具箱(signal processing toolbox)
滤波器设计工具箱(filter design toolbox)
通信工具箱(communication toolbox)
小波分析工具箱(wavelet toolbox)
高阶谱分析工具箱(higher order spectral analysis toolbox)
其它工具箱:
统计工具箱(statistics toolbox)
数学符号工具箱(symbolic math toolbox)
定点工具箱(fixed-point toolbox)
射频工具箱(RF toolbox)
1990年,MathWorks软件公司为Matlab提供了新的控制系统模型化图形输入与仿真工具,并命名为Simulab,使得仿真软件进入了模型化图形组态阶段,1992年正式命名为Simulink,即simu(仿真)和link(连接)。matlab7.0里的simulink为6.0版本,matlab6.5里的simulink为5.0版本。
MATLAB的SIMULINK子库是一个建模、分析各种物理和数学系统的软件,它用框图表示系统的各个环节,用带方向的连线表示各环节的输入输出关系。
启动SIMULINK十分容易,只需在MATLAB的命令窗口键入“SIMULINK”命令,此时出现一个SIMULINK窗口,包含七个模型库,分别是信号源库、输出库、离散系统库、线性系统库、非线性系统库及扩展系统库。
1.信号源库
包括阶跃信号、正弦波、白噪声、时钟、常值、文件、信号发生器等各种信号源,其中信号发生器可产生正弦波、方波、锯齿波、随机信号等波形。
2.输出库
包括示波器仿真窗口、MATLAB工作区、文件等形式的输出。
3.离散系统库
包括五种标准模式:延迟,零-极点,滤波器,离散传递函数,离散状态空间。
4.线性系统库
提供七种标准模式:加法器、比例环节、积分环节、微分环节、传递函数、零-极点、状态空间。
5.非线性系统库
提供十三种常用标准模式:绝对值、乘法、函数、回环特性、死区特性、斜率、继电器特性、饱和特性、开关特性等。
6.系统连接库包括输入、输出、多路转换等模块,用于连接其他模块。
7.系统扩展库
考虑到系统的复杂性,SIMULINK另提供十二种类型的扩展系统库,每一种又有多种模型供选择。
使用时只要从各子库中取出模型,定义好模型参数,将各模型连接起来,然后设置系统参数,如仿真时间、仿真步长、计算方法等。SIMULINK提供了Euler、RungeKutta、Gear、Adams及专用于线性系统的LinSim算法,用户根据仿真要求选择适当的算法。
当然,不同版本的Matlab/Simulink内容有所不同。
另外,Simulink还提供了诸如航空航天、CDMA、DSP、机械、电力系统等专业模块库,给快速建模提供了很大的便利。
④ Matlab常用工具箱的调用命令
滤波器设计工具箱
filterbuilder
滤波器设计和分析工具箱
fdatool
⑤ 关于matlab filter这个函数到底怎么用
一、在MATLAB中,可以用函数y=filter(p,d,x)实现差分方程的仿真,即y=filter(p,d,x)用来实现差分方程,d表示差分方程输出y的系数,p表示输入x的系数,而x表示输入序列。输出结果长度数等于x的长度。
举例:实现差分方程,先从简单的说起:
filter([1,2],1,[1,2,3,4,5]),实现y[k]=x[k]+2*x[k-1]
y[1]=x[1]+2*0=1(x[1]之前状态都用0)
y[2]=x[2]+2*x[1]=2+2*1=4
二、说明:输入X为滤波前序列,Y为滤波结果序列,B/A 提供滤波器系数,B为分子, A为分母,
并输入Zi指定X的初始状态,Zf为最终状态矢量《Simulink与信号处理》
FILTER(B,A,X,[],DIM)或 FILTER(B,A,X,Zi,DIM)指定X的维数DIM进行操作book.iLoveMatlab.cn
举例k=-100:100; >> uk=[zeros(1,100),ones(1,101)]; >> a=[1 -5 6]; >> b=[2 -1]; >> x=uk; >> y=filter(b,a,x)
(5)matlab滤波器工具箱的使用扩展阅读:
MATLAB图像处理工具箱提供了基于卷积的图象滤波函数filter2,filter2的语法格式为:
Y = filter2(h,X)其中Y = filter2(h,X)返回图像X经算子h滤波后的结果,默认返回图像Y与输入图像X大小相同。
例如:其实filter2和conv2是等价的。MATLAB在计算filter2时先将卷积核旋转180度,再调用conv2函数进行计算。
⑥ matlab里面的滤波工具怎么用啊
给你个高斯滤波器的例子吧,照着这个写,那些滤波器都一个样:
I=imread('lenna.bmp');
figure,imshow(I);title('原始图像内');
[f1,f2]=freqspace(size(I),'meshgrid');
D=100/size(I,2);
Hd=ones(size(I));
r=f1.^2+f2.^2;
for i=1:size(I,1)
for j=1:size(I,2)
t=r(i,j)/(D*D);
Hd(i,j)=exp(-t);
end
end
Y=fft2(double(I));
Y=fftshift(Y);
Ya=Y.*Hd;
Ya=ifftshift(Ya);
Ia=ifft2(Ya);figure(2)
imshow(uint8(Ia));title('高斯容滤波后');
⑦ 如何使用matlab中的工具箱
首先,将下载的工具箱文件解压,将文件夹复制到MATLAB安装目录下toolbox文件夹下专。
其次,在MATLAB命令行中输属入如下命令:
>>cd D:\MATLAB7\toolbox\piotr_toolbox % 找到你的工具箱
>> addpath(genpath('D:\MATLAB7\toolbox\piotr_toolbox')) %增加路径
>> savepath %永久保存路径
最后,检查是否成功:
>>which hog %随便输入所加入工具箱中的一个m文件
D:\MATLAB7\toolbox\piotr_toolbox\channels\hog.m %得到此文件路径,即加载正确
⑧ matlab怎么调用fdatool的滤波器
看你用Fdatool设计的是来FIR滤波器还源是IIR。
若是前者,则需要在Fdatool界面的File下选择Export,注意输出的变量名默认为Num,此时需要这样设置,b=Num,a=1;而后滤波,filteredA=filter(b,a,A);
若是后者,同样选择Export,并注意输出变量名(注意大小写),并调用[b,a]=sos2tf(SOS,G);而后滤波,filteredA=filter(b,a,A);
⑨ matlab中用fdatool设计的滤波器如何使用
我们知道设计来一个fir滤波器,首先要知自道它的冲击函数,或者说它的系数,如何知道它的序数呢,那就要根据要求设计啦。matab中为我们提供了很多有用的窗函数,可以直接调用;不过从最优化的角度来说remez函数是最好的。其优点是,设计指标相同时,使滤波器阶数最低;或阶数相同时,使通带最平坦,阻带最小衰减最大;通带和阻带均为等波形形式。具体用法可以参考matalb中的帮助文件。同样matlab里面的toolbox中也有一个工具filterdesign是直接可以用来设计滤波器的,你只要直接输入设计要求既可以得出序数。
设计好了滤波器,我们下一步就是如何用vhdl实现它。由于我们用matalb得到的系数是浮点数,处理起来不方便。这就要求我们将其定点化,如何定点化呢,就是将它化为整数,乘以一个倍数即可。但是为了后面处理方便,一般是乘以2的n次方。定点化后就根据滤波器输入与输出的关系式进行编程,其实就是一个相乘累加的关系。最后结果我们要再缩小。还有一个问题就是结果用什么形式的数来表示,我觉得用补码表示比较好一点,因为很多AD或DA都是补码的,计算机内也是这样的。
⑩ 用MATLAB的FDATool设计的滤波器怎么使用啊!
1. 在Matlab中键入fdatool运行Filter Design and Analysis Tool。具体使用请参见Matlab Help中的Signal Processing Toolbox->FDATool。
2. 在fdatool工具中应该注意的几个问题:(a)Fstop(阻带截止频率)不能大于或等于采样频率Fs/2,这是由于数字滤波器设计的方式决定的。(b)将设计好的滤波器导出,可以采用两种方式Export the filter either as filter coefficients variables or as a dfilt or mfilt filter object variable。(详细说明参见Matlab Help中的Signal Processing Toolbox->FDATool->Exporting a Filter Design。
导出:
File---Export弹出EXPORT对话框,选择“Export As”为“Objects”,“Varable Names”可以更改,默认为Hd。
3. (a)如果导出的是dfilt or mfilt filter object variable,则可以用[b, a] = tf(Hd)将dfilt filter object转换为转移函数形式