%% FIR陷波器设计
%% -----------------------频率采取法Frequency adoption Method--------------------%%
% 目的:设计一个陷波器阻带在50±1.5Hz以内,采样频率为400Hz的滤波器,
% 并要求通带最大衰减为0.1dB,阻带最小衰减为80dB。
clc;
clear;close all;
rp=0.1; % 通带波纹最大衰减为0.1dB
rs=80; % 阻带衰减为80dB
fs=400; % 采样频率为400Hz
Ts=1/fs;
% fp1=48.5;fp2=51.5;
% fs1=49.9;fs2=50.1;
wp_l=48.52.pi/fs;wp_h=51.52.pi/fs; % 根据阻带:49.9Hz50.1Hz,通带:048.5Hz和51.5Hz~pi,w=mo_wT=mo_w/fs=2pif/fs
ws_l=49.6
2.pi/fs;ws_h=50.42.*pi/fs; % 确定两个通带截止频率和两个阻带截止频率。
Bt=ws_l-wp_l; % 计算过渡带宽度
m=2; % 过渡点个数m=1
N=ceil((m+1)*2.*pi/Bt)+1; % 估计采样点N
alph=(N-1)/2;
k0=(0:N-1);
wk=2.*pi/N;
T1=0.11; T2=0.59;% 过度采样样本点
hk=[ones(1,ceil(wp_l/wk)),T2,T1,zeros(1,ceil((Bt/wk)-1)),T1,T2,ones(1,ceil((1.4775.pi/wk)+5)),T2,T1,zeros(1,ceil((Bt/wk)-1)),T1,T2,ones(1,ceil(wp_l/wk))]; % 幅度采样向量(偶对称)
wdl=[0 wp_l/pi ws_l/pi ws_h/pi wp_h/pi 1];
k1=0:floor((N-1)/2); k2=floor((N-1)/2)+1:N-1;
angh=[-alph
(2.*pi)k1/N,alph(2.pi)(N-k2)/N]; % 相位采样向量
hdk=hk.exp(jangh);% 构成频率采样向量hdk
hn=real(ifft(hdk));% hn=IDFT[hk], real只取实部,忽略计算误差引起的虚部
[hw,w]=freqz(hn,1); %求hn的频谱

%% =波形绘制=%%
figure;
% stem(k0.wkfs/(2pi)/4,hn,’.’);
% title(‘impulse response’); xlabel(‘n’);ylabel(‘h(n)’);grid;
% axis([0,max(k0.
wkfs/(2pi)/4),0,max(hn)]);
% grid on;
subplot(3,2,1);
plot(k0.wk.fs/(2pi),abs(hdk),’.b-’);
title(‘amplitude response’); xlabel(‘f/Hz’);ylabel(‘H(ejf)’);grid;
axis([40,60,0,1.1]); % 定义横坐标和纵坐标的范围
grid on;
subplot(3,2,2);
plot(wfs/(2pi),20log10(abs(hw))/max(abs(hw)));
title(‘损耗函数’); xlabel(‘f/Hz’);ylabel(‘A(f)/dB’);
axis([45,55,min(20log10(abs(hw))/max(abs(hw))),10]); % 定义横坐标和纵坐标的范围
grid on;
%% =信号产生=%%
Nlen=2038400;
n=1:Nlen-1;
xn=sin(2
pi48nTs)+sin(2pi48.5nTs)+sin(2pi49nTs)+sin(2pi50.nTs)+sin(2pi51nTs)+sin(2pi51.5nTs)+sin(2pi52nTs); % 信号叠加
k=2
(0:Nlen-1)/Nlen;
xnk=Tsfft(xn,Nlen);
yn=fftfilt(hn,xn,Nlen);
yk=fft(yn,Nlen); % 计算平率响应函数:DFT[hn]yn_boxcar=fftfilt(hn_1,xn,Nlen);
%%=波形绘制=%%
subplot(3,2,3);
plot(n,xn); % k=w/pi,w=mo_w
T=mo_w/fs,mo_w=2pif;得到f=kfs/2
title(‘输入信号x(n)原波形图’); xlabel(‘f/Hz’);ylabel(‘幅值’);
axis([0,1000,min(xn),max(xn)]); % 定义横坐标和纵坐标的范围
subplot(3,2,4);
plot(k
fs/2,abs(xnk),‘b’); % k=w/pi,w=mo_wT=mo_w/fs,mo_w=2pif;得到f=kfs/2
title(‘数字滤波后输出信号x(n)频谱特性’); xlabel(‘f/Hz’);ylabel(‘H(ejf)’);
axis([45,55,0,max(abs(xnk))]); % 定义横坐标和纵坐标的范围
subplot(3,2,5);
plot(n,yn); % k=w/pi,w=mo_wT=mo_w/fs,mo_w=2pif;得到f=kfs/2
title(‘滤波后输出信号y(n)波形图’); xlabel(‘f/Hz’);ylabel(‘幅值’);
axis([0,1000,min(yn),max(yn)]); % 定义横坐标和纵坐标的范围
subplot(3,2,6);
plot(kfs/2,abs(yk),‘b’); % k=w/pi,w=mo_wT=mo_w/fs,mo_w=2pif;得到f=k*fs/2
title(‘频率采样数字滤波后输出信号y(n)频谱特性’); xlabel(‘f/Hz’);ylabel(‘H(ejf)’);
axis([45,55,0,max(abs(yk))]); % 定义横坐标和纵坐标的范围

利用频率采取法设计50HZ陷波器(matlab代码)相关推荐

  1. iir陷波滤波器 matlab,IIR数字滤波器设计50Hz陷波器(MATLAB代码)

    %% IIR陷波器设计 % 目的:设计一个陷波器阻带在50±1.5Hz以内,采样频率为400Hz的滤波器, % 并要求通带最大衰减为0.1dB,阻带最小衰减为60dB. clc; clear;clos ...

  2. IIR数字滤波器设计50Hz陷波器(MATLAB代码)

    %% IIR陷波器设计 % 目的:设计一个陷波器阻带在50±1.5Hz以内,采样频率为400Hz的滤波器, % 并要求通带最大衰减为0.1dB,阻带最小衰减为60dB. clc; clear;clos ...

  3. matlab 陷波器,50Hz陷波器(Matlab程序)

    clf;clear; %设置初值 f0=50; Ts=0.001; fs=1/Ts; NLen=512; n=0:NLen-1; %陷波器的设计 apha=-2*cos(2*pi*f0*Ts); be ...

  4. 50hz 60hz 级联 陷波器,心电信号50Hz陷波器的FPGA实现

    收稿日期: 2009 - 03 - 23 心电信号 50 Hz 陷波器的 FPGA 实现 林 霖 , 张志德 (南方医科大学 生物医学工程学院 , 广东广州 510515) [中图分类号]TH772 ...

  5. 有源滤波器: 基于UAF42的50Hz陷波器仿真

    上一小节,我们设计出一个基于UAF42的50Hz陷波器.在本 小节,我们将使用免费的仿真软件TINA对这个电路进行仿真分析.具体原理图如下所示. 其中3.1831M欧的电阻用两个E96标准的电阻串联组 ...

  6. 50HZ陷波器python源码

    #50HZ陷波器 #分子 numerator =[0.96897, -1.84310, 0.96897 ] #分母 denominator =[1, -1.84310 ,0.93795] import ...

  7. matlab陷波器函数,利用窗函数设计陷波器(matlab代码)

    %% FIR陷波器设计 %% =窗函数设计法window function Method========%% % 目的:设计一个陷波器阻带在50±1.5Hz以内,采样频率为400Hz的滤波器, % 并 ...

  8. MATLAB设计指定频率的陷波器

    下面来介绍一下如何在MATLAB中编程实现陷波器,具体如下: 1.首先在MATLAB的主界面编辑器中写入下列代码: clf;clear; %设置初值 f0=70; %频率为70HZ Ts=0.001; ...

  9. 陷波器介绍_50Hz工频信号陷波器设计

    文章目录 学习目标: 基本概念: 基本原理: 参数的具体计算及选择: 具体计算 # 陷波器的意义 学习目标: 了解陷波器的基本概念 掌握50HZ工频陷波器的基本电路图 基本概念: 提示:这里可以添加要 ...

最新文章

  1. SQL SERVER中带参数的返回
  2. 开放下载!《ECS运维指南 之 windows系统诊断》
  3. mock 测试 MVC
  4. 对象作为参数示例java_功能Java示例 第6部分–用作参数
  5. Windows 下的Dig的安装及应用集合(一)
  6. 20-linux下ElasticSearch.6.2.2集群安装与head、Kibana、X-Pack..插件的配置安装
  7. BZOJ.3261.最大异或和(可持久化Trie)
  8. 利用MVC思想和php语言写网站的心得
  9. 态势感知平台分析流程
  10. linux操作系统有哪些
  11. vim command line quick edit
  12. GBASE 8s UDR内存管理_01_mi_alloc
  13. 洛谷每日三题之第六天
  14. 文件及文件夹删除失败的解决方法
  15. Gitlab服务器 forbidden
  16. IDEA修改Git仓库远端地址,处理服务器ip发生变化的情况
  17. python:cv2.VideoCapture().get()/.set()及cv2.VideoWriter_fourcc()
  18. 工科女的自嘲:聪明的女生,长大后都变成了男人
  19. 10岁男童高考566分8岁开发操作系统
  20. Mysql资料博文收藏

热门文章

  1. 【银行】银行IT岗面试总结
  2. H5与原生安卓和ios交互
  3. vue图片裁剪组件_Vue.js图像裁剪组件
  4. .NetCore实现图片缩放与裁剪 - 基于ImageSharp
  5. 阅读笔记5:神经支持决策树(可解释性)
  6. 设置背景图片,软键盘弹出不将背景图片顶出屏幕
  7. 记一次8550u强撸灰飞烟灭
  8. urdf文件中运行rviz出现robotmodel红杠的问题
  9. 如何用76行代码写一个AI微信机器人......
  10. STM32 contex m3 笔记一