MATLAB辅助设计常用滤波器及其离散化 |
您所在的位置:网站首页 › fs序列 › MATLAB辅助设计常用滤波器及其离散化 |
文章目录
1. 三种滤波器的对比2. 巴特沃斯滤波器(1)低通滤波器(2)高通滤波器(3)带通滤波器(4)带阻滤波器
3. 契比雪夫I型滤波器(1)低通滤波器(2)高通滤波器(3)带通滤波器(4)带阻滤波器
4. 贝塞尔滤波器5. MATLAB中Filter type类型表示6. 滤波器的离散化
声明:本文内容整理自网络,仅作为博主学习笔记记录,各部分版权归原作者所有。
传送门:巴特沃斯、切比雪夫、贝塞尔滤波器的比较 2. 巴特沃斯滤波器测试用原始信号设置 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % ButterWorthFilter.m % 巴特沃夫滤波器的设计 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear; close all; clc; fs = 1000; %Hz 采样频率 Ts = 1/fs; N = 1000; %序列长度 t = (0:N-1)*Ts; delta_f = 1*fs/N; f1 = 50; f2 = 100; f3 = 200; f4 = 400; x1 = 2*0.5*sin(2*pi*f1*t); x2 = 2*0.2*sin(2*pi*f2*t); x3 = 2*0.3*sin(2*pi*f3*t); x4 = 2*0.6*sin(2*pi*f4*t); x = x1 + x2 + x3 + x4; %待处理信号由四个分量组成 X = fftshift(abs(fft(x)))/N; X_angle = fftshift(angle(fft(x))); f = (-N/2:N/2-1)*delta_f; figure(1); subplot(3,1,1); plot(t,x); title('原信号'); subplot(3,1,2); plot(f,X); grid on; title('原信号频谱幅度特性'); subplot(3,1,3); plot(f,X_angle); title('原信号频谱相位特性'); grid on; (1)低通滤波器 [B,A] = butter(N,Wn,'low')设计案例: %设计一个巴特沃夫低通滤波器,要求把50Hz的频率分量保留,其他分量滤掉 wp = 65/(fs/2); %通带截止频率,取50~100中间的值,并对其归一化 ws = 85/(fs/2); %阻带截止频率,取50~100中间的值,并对其归一化 alpha_p = 3; %通带允许最大衰减为 db alpha_s = 20;%阻带允许最小衰减为 db %获取阶数和截止频率 [ N1 wc1 ] = buttord( wp , ws , alpha_p , alpha_s); %获得转移函数系数 [ b a ] = butter(N1,wc1,'low'); %滤波 filter_lp_s = filter(b,a,x); X_lp_s = fftshift(abs(fft(filter_lp_s)))/N; X_lp_s_angle = fftshift(angle(fft(filter_lp_s))); figure(2); freqz(b,a); %滤波器频谱特性 figure(3); subplot(3,1,1); plot(t,filter_lp_s); grid on; title('低通滤波后时域图形'); subplot(3,1,2); plot(f,X_lp_s); title('低通滤波后频域幅度特性'); subplot(3,1,3); plot(f,X_lp_s_angle); title('低通滤波后频域相位特性'); (2)高通滤波器 [B,A] = butter(N,Wn,'high')设计案例: %设计一个高通滤波器,要求把400Hz的频率分量保留,其他分量滤掉 wp = 350/(fs/2); %通带截止频率,取200~400中间的值,并对其归一化 ws = 380/(fs/2); %阻带截止频率,取200~400中间的值,并对其归一化 alpha_p = 3; %通带允许最大衰减为 db alpha_s = 20;%阻带允许最小衰减为 db %获取阶数和截止频率 [ N2 wc2 ] = buttord( wp , ws , alpha_p , alpha_s); %获得转移函数系数 [ b a ] = butter(N2,wc2,'high'); %滤波 filter_hp_s = filter(b,a,x); X_hp_s = fftshift(abs(fft(filter_hp_s)))/N; X_hp_s_angle = fftshift(angle(fft(filter_hp_s))); figure(4); freqz(b,a); %滤波器频谱特性 figure(5); subplot(3,1,1); plot(t,filter_hp_s); grid on; title('高通滤波后时域图形'); subplot(3,1,2); plot(f,X_hp_s); title('高通滤波后频域幅度特性'); subplot(3,1,3); plot(f,X_hp_s_angle); title('高通滤波后频域相位特性'); (3)带通滤波器 % [B,A] = butter(N,Wn) fs = 1000 ; %信号的采样频率 wp=[8 30]*2/fs; %通带边界频率 ,单位为rad/s ws=[7 32]*2/fs; %阻带边界频率 ,单位为rad/s Rp=1; %通带最大波纹度 ,单位dB (不要太小) Rs=30; %表示阻带最小衰减,单位dB [N,Wn]=buttord(Wp,Ws,Rp,Rs); %巴特沃斯数字滤波器的阶数n和-3dB归一化截止频率Wn [B,A]=butter(N,Wn); %得到n阶巴特沃斯滤波的分子分母 dataOut = filter(B,A,dataIn);设计案例: %设计一个带通滤波器,要求把50Hz和400Hz的频率分量滤掉,其他分量保留 wp = [65 385 ] / (fs/2); %通带截止频率,50~100、200~400中间各取一个值,并对其归一化 ws = [75 375 ] / (fs/2); %阻带截止频率,50~100、200~400中间各取一个值,并对其归一化 alpha_p = 3; %通带允许最大衰减为 db alpha_s = 20;%阻带允许最小衰减为 db %获取阶数和截止频率 [ N3 wn ] = buttord( wp , ws , alpha_p , alpha_s); %获得转移函数系数 [ b a ] = butter(N3,wn,'bandpass'); %滤波 filter_bp_s = filter(b,a,x); X_bp_s = fftshift(abs(fft(filter_bp_s)))/N; X_bp_s_angle = fftshift(angle(fft(filter_bp_s))); figure(6); freqz(b,a); %滤波器频谱特性 figure(7); subplot(3,1,1); plot(t,filter_bp_s); grid on; title('带通滤波后时域图形'); subplot(3,1,2); plot(f,X_bp_s); title('带通滤波后频域幅度特性'); subplot(3,1,3); plot(f,X_bp_s_angle); title('带通滤波后频域相位特性'); (4)带阻滤波器 [B,A] = butter(N,Wn,'stop')设计案例: %设计一个带阻滤波器,要求把50Hz和400Hz的频率分量保留,其他分量滤掉 wp = [65 385 ] / (fs/2); %通带截止频率?,50~100、200~400中间各取一个值,并对其归一化 ws = [75 375 ] / (fs/2); %阻带截止频率?,50~100、200~400中间各取一个值,并对其归一化 alpha_p = 3; %通带允许最大衰减为 db alpha_s = 20;%阻带允许最小衰减为 db %获取阶数和截止频率 [ N4 wn ] = buttord( wp , ws , alpha_p , alpha_s); %获得转移函数系数 [ b a ] = butter(N4,wn,'stop'); %滤波 filter_bs_s = filter(b,a,x); X_bs_s = fftshift(abs(fft(filter_bs_s)))/N; X_bs_s_angle = fftshift(angle(fft(filter_bs_s))); figure(8); freqz(b,a); %滤波器频谱特性 figure(9); subplot(3,1,1); plot(t,filter_bs_s); grid on; title('带阻滤波后时域图形'); subplot(3,1,2); plot(f,X_bs_s); title('带阻滤波后频域幅度特性'); subplot(3,1,3); plot(f,X_bs_s_angle); title('带阻滤波后频域相位特性'); 3. 契比雪夫I型滤波器传送门:点这里~ 参考文献: https://blog.csdn.net/xiaokun19870825/article/details/78777325https://blog.csdn.net/cqfdcw/article/details/84939698https://www.mathworks.com/help/signal/ref/cheby1.htmlhttps://www.mathworks.com/help/signal/ref/cheby1.html#bucqk89-ftypehttps://www.mathworks.com/help/matlab/ref/filter.htmlhttp://blog.sina.com.cn/s/blog_49c02a8c0100yszh.htmlhttps://blog.csdn.net/zhoufan900428/article/details/8969470 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |