当前位置:首页 » 编程软件 » 带通滤波编程

带通滤波编程

发布时间: 2022-05-26 04:15:57

‘壹’ 这个电路怎么实现带通滤波的

运放的输入级有一个一阶RC高通网络,将低频信号阻挡在外。运放的输出级又有一个二阶RC低通网络,将高频信号吸收滤去,低的进不来,高的出不去,剩下就是“高不成、低不就”的带通信号。

‘贰’ FIR、IIR滤波器程序

fp=500; fs=750; % 设置滤波器的通带和阻带频率
Fs=8000; Fs2=Fs/2; % 采样频率
Wp=fp/Fs2; Ws=fs/Fs2; % 把通带和阻带频率归一化
Rp=3; Rs=50; % 通带波纹和阻带衰减
[n,Wn]=cheb2ord(Wp,Ws,Rp,Rs); % 求取滤波器阶数
[b,a]=cheby2(n,Rs,Wn); % 设计契比雪夫II型低通滤波器系数
[db,mag,pha,grd,w]=freqz_m(b,a); % 求滤波器的频率响应曲线

这是iir低通,,高通,带通类似

‘叁’ 在MATLAB环境下设计高通、低通、带通、带阻四种滤波器的程序

窗函数设计低通滤波器:
fp=1000;
fc=1200;
as=100;
ap=1;
fs=22000;
wp=2*fp/fs;
wc=2*fc/fs;
N=ceil((as-7.95)/(14.36*(wc-wp)/2))+1;
beta=0.1102*(as-8.7);
window=Kaiser(N+1,beta);
b=fir1(N,wc,window);
freqz(b,1,512,fs);

高通滤波器:
fs=22000;
Wp=2*5000/fs;
Ws=2*4800/fs;
Ap=1;
As=100;
N=ceil(8*pi/(Wp-Ws))+1;
N=N+mod(N+1,2)+1;
Wc=(Wp+Ws)/2/pi;
h=fir1(N,Wc,'high');
omega=linspace(0,pi,512);
freqz(h,1,omega);

带通滤波器:
fs=22000;
Wp1=2*1200/fs;
Wp2=2*3000/fs;
Wc1=2*1000/fs;
Wc2=2*3200/fs;
Ap=1;
As=100;
W1=(Wp1+Wc1)/2;
W2=(Wp2+Wc2)/2;
wdth=min((Wp1-Wc1),(Wc2-Wp2));
N=ceil(11*pi/wdth)+1;
b = fir1(N,[W1 W2]);
freqz(b,1,512,fs)

‘肆’ 设计一个matlab带通滤波器代码

% 用切比雪夫最佳一致逼近设计线性相位FIR带通滤波器;
%信号为0.5hz, 0.9hz, 1.1hz和1.5hz的正统信号叠加组成
%通带为[0.9,1.1]
%频谱分辨率与信号实际长度N成正比
clear all;
f1=0.5;f2=0.9;f3=1.1;f4=1.5;t=0:1203;N=length(t);fs=10;M=512;
x1=sin(2*pi*(f1/fs)*t)+sin(2*pi*(f2/fs)*t)+sin(2*pi*(f3/fs)*t)+sin(2*pi*(f4/fs)*t);
figure(1);
subplot(211);plot(t,x1);title('原信号');
y=fft(x1);
f=(0:1/N:1/2-1/N)*fs;
subplot(212);plot(f,abs(y(1:N/2)));grid;xlabel('hz');%处理前频谱
wc1=2*f2/fs;wc2=2*f3/fs;wc3=2*f4/fs;%归一化角频率,用于下面的f1
f1=[0 wc1-0.05 wc1 wc2 wc2+0.05 1];
A=[0 0 1 1 0 0];%设置带通或带阻,1为带通,0为带阻
weigh=[1 1 1 ];%设置通带和阻带的权重
b=remez(60,f1,A,weigh);%传函分子
h1=freqz(b,1,M);%幅频特性
figure(2)
f=(0:1/M:1-1/M)*fs/2;
subplot(211);plot(f,abs(h1));grid;title('带通');
x2=filter(b,1,x1);
S1=fft(x2);
f=(0:1/N:1/2-1/N)*fs;
subplot(212);plot(f,abs(S1(1:N/2)));grid;xlabel('hz');%处理后频谱

‘伍’ 求:一个关于FIR带通滤波器的C语言设计程序 代码

这兄弟可以用matlab做吗?如果可以我给你写代码,很荣幸为您解答难题,竭诚为您服务,祝您开心,生活加油~~~

‘陆’ 如何根据已知滤波器的系数,编程分析该滤波器是高通低通还是带通给个简单思路即可。

可以用matlab来分析曲线走势,高通就是频率高的通过,频率低了阻止;低通反之;而带通而是某个频率段通过,其它的都阻止。你可以找些matlab的程序看看。

‘柒’ 求设计一个带通滤波器到matlab程序

%
用切比雪夫最佳一致逼近设计线性相位FIR带通滤波器;
%信号为0.5hz,
0.9hz,
1.1hz和1.5hz的正统信号叠加组成
%通带为[0.9,1.1]
%频谱分辨率与信号实际长度N成正比
clear
all;
f1=0.5;f2=0.9;f3=1.1;f4=1.5;t=0:1203;N=length(t);fs=10;M=512;
x1=sin(2*pi*(f1/fs)*t)+sin(2*pi*(f2/fs)*t)+sin(2*pi*(f3/fs)*t)+sin(2*pi*(f4/fs)*t);
figure(1);
subplot(211);plot(t,x1);title('原信号');
y=fft(x1);
f=(0:1/N:1/2-1/N)*fs;
subplot(212);plot(f,abs(y(1:N/2)));grid;xlabel('hz');%处理前频谱
wc1=2*f2/fs;wc2=2*f3/fs;wc3=2*f4/fs;%归一化角频率,用于下面的f1
f1=[0
wc1-0.05
wc1
wc2
wc2+0.05
1];
A=[0
0
1
1
0
0];%设置带通或带阻,1为带通,0为带阻
weigh=[1
1
1
];%设置通带和阻带的权重
b=remez(60,f1,A,weigh);%传函分子
h1=freqz(b,1,M);%幅频特性
figure(2)
f=(0:1/M:1-1/M)*fs/2;
subplot(211);plot(f,abs(h1));grid;title('带通');
x2=filter(b,1,x1);
S1=fft(x2);
f=(0:1/N:1/2-1/N)*fs;
subplot(212);plot(f,abs(S1(1:N/2)));grid;xlabel('hz');%处理后频谱

‘捌’ matlab 数字带通滤波器

以前我做的一个完整的信号滤波前后的程序,可能数据有些不一样,但用MATLAB做滤波器的大体思路都差不多,希望对你有用。(完全自创,要给分哦)
f=8*10^3; %信号频率
f1=30*10^3; %噪声频率
l=100; %信号的长度
fs=100*10^3; %采样频率
%%%%%%%%%%%%%%%%生成信号
t=(0:l-1)/fs;
s=0.5*sin(2*pi*f*t)+cos(2*pi*f1*t);
figure(1);
subplot(1,2,1);
plot(fs*t(1:60),s(1:60));
title('时域波形');
xlabel('时间');
ylabel('幅度');
grid on;

nf=2^nextpow2(l);
Y=fftshift(fft(s,nf));
%k=-fs/2+(0:nf-1)*fs/nf;
k=fs*linspace(0,1,nf)-fs/2;
subplot(1,2,2);
plot(k,abs(Y)); %信号的频谱图
title('信号频谱');
xlabel('频率');
ylabel('幅度');
grid on;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%滤波器设定
ws=10*10^3; %通带截止频率
ws1=20*10^3; %阻带起始频率
ds=50; %阻带衰减
wt=2*pi*ws/fs; %经采样后的通带截止角频率
wz=2*pi*ws1/fs; %阻带的
wc=(wt+wz)/2; %归一化后的滤波器截止频率
n=ceil(6.6*pi/(wz-wt)); %t=(n-1)/2;
q=fir1(n-1,wc/pi,hanning(n));%滤波器时域函数
w=linspace(0,pi,512);
h1=freqz(q,1,512); %进行512个点的傅里叶变换
figure(2);
plot(w/pi,20*log10(abs(h1)));
title('滤波器频谱图');
xlabel('频率');
ylabel('幅度');
grid ;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%经滤波器后的信号
signal=conv(s,q);
nx=(0:n+l-2)/fs;
figure(3);
subplot(1,2,1);
plot(nx(n:60)*fs,signal(n:60));
title('经滤波后的信号时域图');
xlabel('时间');
ylabel('幅度');
grid on;

lx=2^nextpow2(nx);
Y=fftshift(fft(signal,lx));
k=-fs/2+(0:lx-1)*fs/lx; %
subplot(1,2,2);
plot(k,abs(Y)); %信号的频谱图
title('滤波后信号频谱');
xlabel('频率');
ylabel('幅度');
grid on;

‘玖’ 用二维傅立叶变换程序编写一个高通,低通,带通滤波程序

描述清楚一点

‘拾’ 求设计一个hamming窗设计的带通滤波器的matlab程序。

程序:

wlp = 0.3*pi;
whp = 0.4*pi;
wc = [wlp/pi,whp/pi];
N = 33;
n=0:N-1;
hn=fir1(N-1,wc, hanning (N)); %基于窗函数的 FIR 滤波器
[h2,w]=freqz(hn,1,512); %freqz是用离散傅里叶变换的标准公示计算的 fft使用快速傅里叶变换的公式计算的,本质上没有差别
subplot(311);
stem(n,hn);
axis([0 60 -0.25 0.25]);
grid;
xlabel('个数');
ylabel('幅度');
title('Hanning窗函数的单位脉冲响应');
subplot(312);
plot(w/pi,20*log(abs(h2)/abs(h2(1))));
grid;
xlabel('以π为单位的频率');
ylabel('对数幅度(dB)');
title('滤波器相对幅度响应(db)')
subplot(313)
plot(w/pi,abs(h2));
grid;
xlabel('以π为单位的频率');
ylabel('绝对幅度(dB)');
title('滤波器绝对幅度响应(db)')
结果:

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:705
制作脚本网站 发布:2025-10-20 08:17:34 浏览:968
python中的init方法 发布:2025-10-20 08:17:33 浏览:676
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:828
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:737
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1076
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:308
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:188
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:875
python股票数据获取 发布:2025-10-20 07:39:44 浏览:829