MATLAB实现最优低通滤波器的函数
MATLAB实现最优低通滤波器的函数
% Fs --Data rate
% Fpass --pass band
% Fstop --Cutoff frequencies
% Apass --Passband ripple
% Astop --Stopband ripple
% Q_Bit --Quantization bits
function coef = LowPassFir(Fs,Fpass,Fstop,Apass,Astop,Q_Bit)
dens = 20; % Density Factor
a = [1 0]; % Desired amplitudes
rp = Apass;
rs = Astop;
% Compute deviations
dev = [(10^(rp/20)-1)/(10^(rp/20)+1),10^(-rs/20)];
% Calculate the order from the parameters using FIRPMORD.
[N, Fo, Ao, W] = firpmord([Fpass, Fstop]/(Fs/2), a, dev);
% Calculate the coefficients using the FIRPM function.
coef = firpm(N, Fo, Ao, W, {dens});
coe = coef;
fft_coe = 20*log(abs(fft(coe,1024)))/log(10);
% x_f = [0:(Fs/length(fft_coe)):Fs/2];
% m = fft_coe(1:length(x_f));
% plot(x_f,m),grid
fft_shift_coe = fftshift(fft_coe);
x_f = [-Fs/2+(Fs/length(fft_shift_coe)):(Fs/length(fft_shift_coe)):Fs/2];
plot(x_f,fft_shift_coe);grid
HB
function Coef = LowPassHb(Fs,Fpass,Apass,n)
% -- Fs sample frequency
% -- Fpass
% -- Apass(dB)
% -- n stage of the half band fir
fp = Fpass*2/(Fs);
dev = [(10^(Apass/20)-1)/(10^(Apass/20)+1)];
% dev = Apass;
switch nargin
case 3
Coef = firhalfband('minorder',fp,dev);
case 4
Coef = firhalfband(n,fp);
otherwise
error('error');
end
Coef = Coef';
vpa(Coef,16);
fft_coe = 20*log(abs(fft(Coef,1024)))/log(10);
% x_f = [0:(Fs/length(fft_coe)):Fs/2];
% m = fft_coe(1:length(x_f));
% plot(x_f,m),grid
fft_shift_coe = fftshift(fft_coe);
x_f = [-Fs/2+(Fs/length(fft_shift_coe)):(Fs/length(fft_shift_coe)):Fs/2];
plot(x_f,fft_shift_coe);grid
MATLAB实现最优低通滤波器的函数的更多相关文章
- [转]matlab语言中的assert断言函数
MATLAB语言没有系统的断言函数,但有错误报告函数 error 和 warning.由于要求对参数的保护,需要对输入参数或处理过程中的一些状态进行判断,判断程序能否/是否需要继续执行.在matlab ...
- matlab的滤波器仿真——低通滤波器与插值滤波器
项目里面有用到插值滤波器的场合,用matlab做了前期的滤波器性能仿真,产生的滤波器系数保存下来输入到FPGA IP中使用即可. 下面是仿真的代码 % clear all close all Nx = ...
- Matlab(3) -- 编写M文件(函数)
转自:http://blog.csdn.net/misskissc/article/details/8178089 matlab的命令编辑窗口(Command Window)界面主要是用来调用系统命令 ...
- MATLAB中提高fwrite和fprintf函数的I/O性能
提高fwrite和fprintf函数的I/O性能 http://www.matlabsky.com/thread-34861-1-1.html 今天我们将讨论下著名的fwrite(fprint ...
- MATLAB中导入数据:importdata函数
用load函数导入mat文件大家都会.可是今天我拿到一个数据,文件后缀名竟然是'.data'.该怎么读呢? 我仅仅好用matlab界面Workspace区域的"import data&quo ...
- matlab初学者_脚本文件调用函数文件
问题: matlab里面有两种文件,一种是脚本文件,一种是函数文件,为了模块化程序,我们需要把专门的功能写成一个函数封装到某个函数文件里面. 那么来看如何在脚本文件里调用函数文件中的函数. 注意点: ...
- Matlab入门学习(矩阵、函数、绘图的基本使用)
一.矩阵 1.定义和简单使用(一般的编程语言,数组下标都是从0开始的,但是MATLAB是从1开始的) >> a=[ ; ; ] a = >> b=[ ; ; ]; >&g ...
- matlab调用规则变量名eval函数
eval 函数运用!! 经常会遇到matlab里面有些变量命名其实有一样的规律,,但是不像矩阵这些是可以通过循环来获取的,这个时候就可以利用eval语句了: 首先,假设现在有10个名称类似的变量, ...
- Matlab中常见的神经网络训练函数和学习函数
一.训练函数 1.traingd Name:Gradient descent backpropagation (梯度下降反向传播算法 ) Description:triangd is a networ ...
随机推荐
- tensorflow笔记之学习率设置
在使用梯度下降最小化损失函数时,如果学习率过大会导致问题不能收敛到最优解,学习率过小,虽然可以收敛到最优解,但是需要的迭代次数会大大增加,在Tensorflow中,可以用指数衰减法设置学习率,tf.t ...
- ubuntu 安装MySQLdb
ubuntu运行sudo pip install MySQL-python安装MySQLdb时报错:Command "python setup.py egg_info" faile ...
- COM组件 IDispatch 及双接口的调用
转自:http://blog.csdn.net/cnhk1225/article/details/50555647 一.前言 前段时间,由于工作比较忙,没有能及时地写作.其间收到了很多网友的来信询问和 ...
- homework 补第三题
上次只写了两道题 发现少了一道 所以今天补上 4 . 另外补上今天的程序代码 代码 1. 2. 3 4 运行截图 1. 2 3
- 如何设置maven的local repository目录
step1:默认会放在~/.m2/repository目录下 (“~”代表用户的目录,比如windows下一般都是C:\Documents and Settings\[你的用户名]\.由于“Docum ...
- Spark之 Spark Streaming整合kafka(Java实现版本)
pom依赖 <properties> <scala.version>2.11.8</scala.version> <hadoop.version>2.7 ...
- ThreadPoolExecutor的execute源码分析
上一篇文章指出,ThreadPoolExecutor执行的步骤如下: 向线程池中添加任务,当任务数量少于corePoolSize时,会自动创建thead来处理这些任务: 当添加任务数大于corePoo ...
- Top K算法
应用场景: 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节. 假设目前有一千万个记录(这些查询串的重复度比较高,虽然总数是1千万,但如果 ...
- C++ auto
auto用来声明自动变量.它是存储类型标识符,表明变量(自动)具有本地范围.块范围的变量声明(如for循环体内的变量声明)默认为auto存储类型. 好处:auto变量在离开作用域是会变程序自动释放,不 ...
- Inside Triangle
Inside Triangle https://hihocoder.com/contest/hiho225/problem/1 时间限制:10000ms 单点时限:1000ms 内存限制:256MB ...