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实现最优低通滤波器的函数的更多相关文章

  1. [转]matlab语言中的assert断言函数

    MATLAB语言没有系统的断言函数,但有错误报告函数 error 和 warning.由于要求对参数的保护,需要对输入参数或处理过程中的一些状态进行判断,判断程序能否/是否需要继续执行.在matlab ...

  2. matlab的滤波器仿真——低通滤波器与插值滤波器

    项目里面有用到插值滤波器的场合,用matlab做了前期的滤波器性能仿真,产生的滤波器系数保存下来输入到FPGA IP中使用即可. 下面是仿真的代码 % clear all close all Nx = ...

  3. Matlab(3) -- 编写M文件(函数)

    转自:http://blog.csdn.net/misskissc/article/details/8178089 matlab的命令编辑窗口(Command Window)界面主要是用来调用系统命令 ...

  4. MATLAB中提高fwrite和fprintf函数的I/O性能

    提高fwrite和fprintf函数的I/O性能 http://www.matlabsky.com/thread-34861-1-1.html     今天我们将讨论下著名的fwrite(fprint ...

  5. MATLAB中导入数据:importdata函数

    用load函数导入mat文件大家都会.可是今天我拿到一个数据,文件后缀名竟然是'.data'.该怎么读呢? 我仅仅好用matlab界面Workspace区域的"import data&quo ...

  6. matlab初学者_脚本文件调用函数文件

    问题: matlab里面有两种文件,一种是脚本文件,一种是函数文件,为了模块化程序,我们需要把专门的功能写成一个函数封装到某个函数文件里面. 那么来看如何在脚本文件里调用函数文件中的函数. 注意点: ...

  7. Matlab入门学习(矩阵、函数、绘图的基本使用)

    一.矩阵 1.定义和简单使用(一般的编程语言,数组下标都是从0开始的,但是MATLAB是从1开始的) >> a=[ ; ; ] a = >> b=[ ; ; ]; >&g ...

  8. matlab调用规则变量名eval函数

    eval 函数运用!! 经常会遇到matlab里面有些变量命名其实有一样的规律,,但是不像矩阵这些是可以通过循环来获取的,这个时候就可以利用eval语句了:   首先,假设现在有10个名称类似的变量, ...

  9. Matlab中常见的神经网络训练函数和学习函数

    一.训练函数 1.traingd Name:Gradient descent backpropagation (梯度下降反向传播算法 ) Description:triangd is a networ ...

随机推荐

  1. 常用类一一MATH类一一两个静态常量PI 和E,一些数学函数。

    package test; public class MathTest { public static void main(String[] args) { System.out.println(Ma ...

  2. 有名管道FIFO

    管道和FIFO的特征之一是它们的数据是一个字节流.这是UNIX的原生I/O模型.进程往其中写入的是字节流,系统不对它作解释. FIFO不存数据,只是通过它找到内核文件. 一.建立有名管道 1.命令mk ...

  3. dp-最长公共子序列

    最长公共子序列(NYOJ36) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列.tip:最长公 ...

  4. Nexus 按项目类型分配不同的工厂来发布不同 项目

    但是有时候,一个公司会有很多项目[crm,oa,erp]等等的项目.如果把这些项目全部都放到releases或者snapshots中的话会有点混乱.比较好的办法是,按项目来分.每个项目一个工厂:cms ...

  5. Java的反射和代理以及注解

    最近接触到java的反射和代理(接触的有点迟了...),还是有必要总结下 1. Java的反射 有的时候我们需要在程序运行的时候获取类.方法等信息用于动态运行,这个时候反射就能够帮我们找到类.方法.成 ...

  6. 使用百度网盘配置私有Git服务

    GitHub上免费的版本只能开源代码库,有时候需要配置些私有的服务,不方便公开.现在免费的网盘的容量越来越大,可以用来做存储的服务,如果只使用网盘存储合并代码很不方便,所以使用网盘+git 配置私有仓 ...

  7. Linux中chown、chmod、chgrp

    1.chgrp (转变文件所属用户组) chgrp(转变文件所属用户组)change group chgrp 用户组 文件名 ###便是这个格了.若是整个目次下的都改,则加-R参数用于递归. 如:ch ...

  8. win, cmd下安装mysql(win真tm难用)

    常用命令: 修改root用户密码 update mysql.user set authentication_string=password('1234qwer') where user='root' ...

  9. Linux objdump命令

    一.简介 objdump命令是用查看目标文件或者可执行的目标文件的构成的gcc工具. 二.选项 http://my.oschina.net/alphajay/blog/7729 http://man. ...

  10. laravel数据库操作

    一.配置文件路径:/.env DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT= DB_DATABASE=test DB_USERNAME=root DB_P ...