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

求设计一个带通滤波器到matlab程序,第1张

%

用切比雪夫最佳一致逼近设计线性相位FIR带通滤波器;

%信号为0.5hz,

0.9hz,

1.1hz和1.5hz的正统信号叠加组成

%通带为[0.9,1.1]

%频谱分辨率与信号实际长度N成正比

clear

all

f1=0.5f2=0.9f3=1.1f4=1.5t=0:1203N=length(t)fs=10M=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)))gridxlabel('hz')%处理前频谱

wc1=2*f2/fswc2=2*f3/fswc3=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))gridtitle('带通')

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)))gridxlabel('hz')%处理后频谱

以前我做的一个完整的信号滤波前后的程序,可能数据有些不一样,但用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


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7991080.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存