文章目录

  • 问题提出
  • 一、低通滤波器
    • 1.保留5Hz
    • 2.运行结果
  • 二、高通滤波器
    • 1.保留30Hz
    • 2.运行结果
  • 三、带通滤波器
    • 1.保留20Hz
    • 2.运行结果
  • 四、带阻滤波器
    • 1.滤除5Hz和30Hz
    • 2.运行结果
  • 最后

问题提出

有频率为5Hz、15Hz、30Hz的叠加余弦信号,进行如下设计:
(1)设计低通滤波器保留5Hz的频率分量;
(2)设计高通滤波器保留30Hz的频率分量;
(3)设计带通滤波器保留20Hz的频率分量;
(4)设计带阻滤波器滤除5Hz和30Hz的频率分量。


一、低通滤波器

1.保留5Hz

clear
clc
f1=5;%第一个点频信号分量频率
f2=15;%第二个点频信号分量频率
f3=30;%第三个点频信号分量频率
fs=150;%采样率
T=2;%时宽
B=10;%FIR截止频率
n=round(T*fs);%采样点个数
t=linspace(0,T,n);
y=cos(2*pi*f1*t)+cos(2*pi*f2*t)+cos(2*pi*f3*t);%叠加信号
figure;
subplot(221)
plot(t,y);
title('原始信号时域');
xlabel('t/s');
ylabel('幅度');
fft_y=fftshift(fft(y));%将fft结果以fs/2为中心左右互换
f=linspace(-fs/2,fs/2,n);
subplot(222)
plot(f,abs(fft_y));
title('原始信号频谱');
xlabel('f/Hz');
ylabel('幅度');
axis([ 0 50 0 100]);
b=fir1(80, B/(fs/2),'low'); %低通
y_after_fir=filter(b,1,y);%
subplot(223)
plot(t,y_after_fir);
title('滤波后信号时域');
xlabel('t/s');
ylabel('幅度');
fft_y1=fftshift(fft(y_after_fir));%将fft结果以fs/2为中心左右互换
f=linspace(-fs/2,fs/2,n);
subplot(224)
plot(f,abs(fft_y1));
title('滤波后信号频谱');
xlabel('f/Hz');
ylabel('幅度');
axis([ 0 50 0 100]);
figure;
freqz(b);%数字滤波器频率响应

2.运行结果


二、高通滤波器

1.保留30Hz

clear
clc
f1=5;%第一个点频信号分量频率
f2=15;%第二个点频信号分量频率
f3=30;%第三个点频信号分量频率
fs=150;%采样率
T=2;%时宽
B=25;%FIR截止频率
n=round(T*fs);%采样点个数
t=linspace(0,T,n);
y=cos(2*pi*f1*t)+cos(2*pi*f2*t)+cos(2*pi*f3*t);
figure;
subplot(221)
plot(t,y);
title('原始信号时域');
xlabel('t/s');
ylabel('幅度');
fft_y=fftshift(fft(y));
f=linspace(-fs/2,fs/2,n);
subplot(222)
plot(f,abs(fft_y));
title('原始信号频谱');
xlabel('f/Hz');
ylabel('幅度');
axis([ 0 50 0 100]);
b=fir1(80, B/(fs/2),'high'); %高通
y_after_fir=filter(b,1,y);
subplot(223)
plot(t,y_after_fir);
title('滤波后信号时域');
xlabel('t/s');
ylabel('幅度');
fft_y1=fftshift(fft(y_after_fir));
f=linspace(-fs/2,fs/2,n);
subplot(224)
plot(f,abs(fft_y1));
title('滤波后信号频谱');
xlabel('f/Hz');
ylabel('幅度');
axis([ 0 50 0 100]);
figure;
freqz(b);%数字滤波器频率响应

2.运行结果


三、带通滤波器

1.保留20Hz

clear
clc
f1=5;%第一个点频信号分量频率
f2=15;%第二个点频信号分量频率
f3=30;%第三个点频信号分量频率
fc1=10;
fc2=25;
fs=150;%采样率
[n,Wn,beta,ftype]=kaiserord([7 13 17 23] ,[0 1 0], [0.01 0.01 0.01] ,100) ;
w1=2*fc1/fs; w2=2*fc2/fs ;
window=kaiser(n+1 ,beta) ;%使用kaiser窗函数
b=fir1 (n, [w1 w2],window) ;%使用标准频率响应的加窗设计函数fir1
T=2;%时宽
n=round(T*fs);%采样点个数
t=linspace(0,T,n);
s = cos(2*pi*t*f1) +cos (2*pi*t*f2) +cos (2*pi*t*f3) ;
sf = filter (b,1,s) ;%对信号s进行滤波
f=linspace(-fs/2,fs/2,n);
S=fftshift(fft(s)) ;
SF=fftshift(fft(sf)) ;
figure
subplot(2,2,1) ;
plot(t,s)
%画出时域内的号
subplot(2,2,3) ;
plot(t,sf)
%画出时域内的信号
subplot(2,2,2) ;
f1=abs(S);
f2=abs(SF);
plot(f,f1) ; %画出频域内的信号
title('原始信号频谱');
axis([ 0 50 0 100]);
subplot(2,2,4) ;
plot(f,f2);%画出频域内的信号
title('滤波后信号频谱');
axis([ 0 50 0 100]);
figure;
freqz (b,1,512) ;%数字滤波器频率响应

2.运行结果

四、带阻滤波器

1.滤除5Hz和30Hz

clear
clc
f1=5;%第一个点频信号分量频率
f2=15;%第二个点频信号分量频率
f3=30;%第三个点频信号分量频率
fs=150;
T=2;%时宽
n=round(T*fs);%采样点个数
t=linspace(0,T,n);
y=cos(2*pi*f1*t)+cos(2*pi*f2*t)+cos(2*pi*f3*t);
flp=0;
fhp=30;
fls=15;
fhs=25;
wlp=2*pi*flp/fs;
whp=2*pi* fhp/fs;
wls=2*pi*fls/fs;
whs=2*pi* fhs/fs;
wc=[(wlp+wls)/(2* pi),(whp+whs)/(2*pi)];
delta1=wls-wlp;
delta2=whp-whs;
delta_w=min(delta1 ,delta2);
N=ceil(1.8*pi/delta_w); %不同的窗要选择系数不同
N=N+rem(N,2);
window=boxcar(N+1); %选择窗函数
b=fir1 (28, wc,window) ;
ylb=filter(b,1,y);
f=linspace(-fs/2,fs/2,n);
y1=fftshift(fft(y));
ylb1=fftshift(fft(ylb)) ;
figure(1)
subplot(221)
plot(t,y)
subplot(222)
y1=abs(y1);
plot(f,y1)
title('原始信号频谱');
axis([ 0 50 0 100]);
subplot(223)
plot(t,ylb)
subplot(224)
ylb1=abs(ylb1);
plot(f,ylb1)
title('滤波后信号频谱');
axis([ 0 50 0 100]);
figure
freqz (b,1,512) ;%数字滤波器频率响应

2.运行结果


最后

不定期发布一些matlab设计内容,敬请期待。包括但不限于如下内容:信号处理、通信仿真、gui设计、matlab appdesigner,simulink仿真。有任何有关MATLAB的问题可以关注公众号MatpyMaster加小英雄学长欧~

Matlab滤波器设计——基于filter函数的低通、高通、带通、带阻滤波器相关推荐

  1. matlab fir1 filter,Matlab滤波器设计

    滤波器设计是一个创建满足指定滤波要求的滤波器参数的过程.滤波器的实现包括滤波器结构的选择和滤波器参数的计算.只有完成了滤波器的设计和实现,才能最终完成数据的滤波. 滤波器设计的目标是实现数据序列的频率 ...

  2. Matlab滤波器设计

    滤波器设计是一个创建满足指定滤波要求的滤波器参数的过程. 滤波器的实现包括滤波器结构的选择和滤波器参数的计算.只有完成了滤波器的设计和实现,才能最终完成数据的滤波. 滤波器设计的目标是实现数据序列的频 ...

  3. Matlab滤波器设计示例

    目录 1. 概要 2. 低通滤波器设计例 with designfilt() 2.1 要点一:归一化频率 2.2 要点二:如何使用所生成的滤波器 3. designfilt() 的功能 3.1 能设计 ...

  4. 用matlab设计滤波器实验报告,数字信号出来实验报告--matlab滤波器设计

    数字信号出来实验报告--matlab滤波器设计 广 西 工 学 院 实 验 报 告 用 纸 实验名称 IIR数字滤波器的设计 实验成绩 指导老师 陈艳 系(院) 计算机工程系 班级 学号 学生姓名 一 ...

  5. python源码 高通滤波、低通滤波、带通滤波

    创作不易,如果此文使您有收获,记得点赞哦! 一. 傅里叶变化原理: https://www.cnblogs.com/wojianxin/p/12529809.html 二. 高通滤波.低通滤波.带通滤 ...

  6. matlab中最好用的滤波函数,谁有matlab滤波器设计实例,想找个参考,最好是hamming窗,低通 fir滤波器。...

    满意答案 doublesx 2013.06.29 采纳率:45%    等级:11 已帮助:8601人 利用汉宁窗设计Ⅰ型数字高通滤波器 clear all; Wp=0.6*pi; Ws=0.4*pi ...

  7. matlab滤波器设计双陷滤波,基于MATLAB 双线性变换法IIR 滤波器的设计

    摘要:滤波是信号处理的基础,因此滤波器的设计也就成为数字信号处理的基本问题之一.数字滤波是对数字信号处理不可或缺的环节,其好处远远大于模拟滤波器.本文应用MATLAB,实现了用双线性变换法设计IIR滤 ...

  8. matlab emi滤波器设计,基于Matlab-GUI的EMI滤波器设计

    电子工业技术的飞速发展,带动了一系列新兴学科,电磁兼容也成为新秀并不断发展和壮大.经过10年发展,尤其随着变频器以及高频脉宽调制等变流技术在各种电源设备.传动设备等的广泛使用,其工作频率的不断提高,形 ...

  9. matlab二阶滤波器设计,基于matlab的各类滤波器设计

    描述 一. 采用fir1 采用了窗函数设计方法 语法如下: 各项参数意义: b:返回的FIR滤波器单位脉冲响应,脉冲响应为偶对称,长度为n+1 n:滤波器的阶数,需要注意的是,设计出的滤波器长度为n+ ...

最新文章

  1. CSE 3100 Systems Programming
  2. 压力管道流量计算公式_带你全面了解各种流量计!
  3. flutter 调用原生安卓插件_Flutter 如何调用Android和iOS原生代码-阿里云开发者社区...
  4. 考研英语一2016年真题4篇阅读词汇句子积累(详细!!!)
  5. formal method里面的并发问题
  6. 学物理也能拿数学世界级奖!每逢实验失败就跑步......河大女生太励志了!!
  7. rtt学习记录、面向对象oopc等分享
  8. 腐蚀rust高速箭怎么做不了_高速公路波形护栏板安装时的设置要求
  9. MySQL中Checkpoint技术
  10. 2022年PMP考试安排
  11. glnxa64 matlab 什么版本_Matlab 2014a 免费版-Matlab2014 Mac版下载 V2014b免费版-PC6苹果网...
  12. 工具类-BasePopupWindow
  13. 经典单片机c语言教程 pdf下载,51单片机经典教程.pdf
  14. python12306买票_Python 使用 selenium 实现半自动购买12306火车票
  15. 【linux内核分析与应用-陈莉君】中断处理机制
  16. python 抓取上交所、深交所互动版块的投资者提问(散户评论)
  17. AP 计算机 一次完美的逆袭
  18. Partial Multi-Label Learning(PML)-文献学习
  19. KANZI入门第一篇之kanzi详解,教你轻松学kanzi
  20. 《勋伯格和声学》读书笔记(八):转调

热门文章

  1. 基于iis配置一个ftp服务器
  2. Kernel.org hacked – how to get Android repo?
  3. kinect 学习笔记一
  4. 基于DES和RSA算法自动分配密钥的加密聊天程序
  5. git 批量删除文件夹和文件
  6. 生产管理系统定制开发的项目流程
  7. 一键制作所有微信好友头像墙照
  8. 新视野大学英语(1)课本单词汇总
  9. 我为什么鼓励你读博士?
  10. 当有人推荐你读什么书时你是属于哪一种