全国电子设计竞赛中滤波器模块怎么做啊,有没有通用的?

全国电子设计竞赛中滤波器模块怎么做啊,有没有通用的?,第1张

我正在使用multism,很好用,设置好后按下右下circuits键即可。以下为步骤:

1、打开crack的软件后,根据滤波器的设计要求,在filter type中选择滤波器的类型(Gaussian:高斯滤波器、Bessel:贝塞尔滤波器、butterworth:巴特沃斯;Chebyshev1切比雪夫1;Chebyshev2切比雪夫2;Hourglass:对三角滤波器、Elliptic:椭圆滤波器、Custom:自定义滤波器、Raised Cos:升余弦滤波器、Matche:匹配滤波器 、Delay:延迟滤波器);

2、在filter class中选择滤波器的种类(低通、高通、带通、带阻);

3、在filter Attributes中设置滤波器的阶数(Order)、通频带频率(Passband frequency);

4、在Implementation中选择有源滤波器(active )、无源滤波器(passive)和数字滤波器(Digital);

5、在Freq Scale中选择Hertz和Log,如果选择了Rad/Sec,则要注意Rad/Sec=6.28*Hertz;

6、在Graph Limits中设置好图像的最大频率和最小频率,最闷薯冲大频率要大于通频带的截止频率;在Passive Design/Ideal Filter Response中观察传输函数(Transfer Function)、时域响应(Time Response)、零极点图(Pole Zero Plots)、频域响应(Frequency Response)的图像;

7、在Circuit Parmaters中设置源电阻(Source Res)和负载电阻(Load Res)最后点击Circuits观察滤波器电路图;

8、在设计有缘滤波器的时候还要注意在Active Implementation 中选择滤波器的电路布局形式一般有源滤波器手巧选择Pos SAB型的,蚂歼在Circuit Parmaters中设置增益大小(gain)。

不懂就问,记得加分啊!

你自己整合吧,我没时间帮你整合,我给你念谈提供一些程序:

绝对正确的代码:程序1:

fs=22050 %语音信号采样频率为22050

x1=wavread('Windows Critical Stop.wav')%读取语音信号的数据,赋给变量x1

sound(x1,22050) %播放语音信号

y1=fft(x1,1024) %对信号做1024点FFT变换

f=fs*(0:511)/1024

figure(1)

plot(x1) %做原始语音信号的时域图形

title('原始语音信号')

xlabel('time n')

ylabel('fuzhi n')

figure(2)

freqz(x1) %绘制原始语音信号的频率响应图

title('频率响应图')

figure(3)

subplot(2,1,1)

plot(abs(y1(1:512))) %做原始语音信号的FFT频谱图

title('原始语音信号FFT频谱')

subplot(2,1,2)

plot(f,abs(y1(1:512)))

title('原始语音信号频谱')

xlabel('Hz')

ylabel('fuzhi')

程序2:

fs=22050 %语音信号采样频率为22050

x1=wavread('Windows Critical Stop.wav')%读取语音信号的数据,赋给变量x1

t=0:1/22050:(size(x1)-1)/22050

y1=fft(x1,1024) %对信号做1024点FFT变换

f=fs*(0:511)/1024

x2=randn(1,length(x1)) %产生一与x长度一致的随机信号

sound(x2,22050)

figure(1)

plot(x2) %做原始语音信号的时域图形

title('高斯随机噪声')

xlabel('time n')

ylabel('fuzhi n')

randn('state',0)

m=randn(size(x1))

x2=0.1*m+x1

sound(x2,22050)%播放加噪毁激声后的语音信号

y2=fft(x2,1024)

figure(2)

plot(t,x2)

title('加噪后的语音信号')

xlabel('time n')

ylabel('fuzhi n')

figure(3)

subplot(2,1,1)

plot(f,abs(y2(1:512)))

title('原始语音信号频谱')

xlabel('Hz')

ylabel('fuzhi')

subplot(2,1,2)

plot(f,abs(y2(1:512)))

title('加噪后的语音信号频谱')

xlabel('Hz')

ylabel('fuzhi')

根据以上代码,你可以修改下面有错误的代码

程序3:双线性变换法设计Butterworth滤波器

fs=22050

x1=wavread('h:\课程设计2\shuzi.wav')

t=0:1/22050:(size(x1)-1)/22050

Au=0.03

d=[Au*cos(2*pi*5000*t)]'

x2=x1+d

wp=0.25*pi

ws=0.3*pi

Rp=1

Rs=15

Fs=22050

Ts=1/Fs

wp1=2/Ts*tan(wp/2)%将模拟指标转换成数字指标

ws1=2/Ts*tan(ws/2)

[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s') %选择滤波器的最小阶数

[Z,P,K]=buttap(N) %创建butterworth模拟滤波器

[Bap,Aap]=zp2tf(Z,P,K)

[b,a]=lp2lp(Bap,Aap,Wn)

[bz,az]=bilinear(b,a,Fs) %用双线性变换法纤高袜实现模拟滤波器到数字滤波器的转换

[H,W]=freqz(bz,az)%绘制频率响应曲线

figure(1)

plot(W*Fs/(2*pi),abs(H))

grid

xlabel('频率/Hz')

ylabel('频率响应幅度')

title('Butterworth')

f1=filter(bz,az,x2)

figure(2)

subplot(2,1,1)

plot(t,x2) %画出滤波前的时域图

title('滤波前的时域波形')

subplot(2,1,2)

plot(t,f1)%画出滤波后的时域图

title('滤波后的时域波形')

sound(f1,22050) %播放滤波后的信号

F0=fft(f1,1024)

f=fs*(0:511)/1024

figure(3)

y2=fft(x2,1024)

subplot(2,1,1)

plot(f,abs(y2(1:512)))%画出滤波前的频谱图

title('滤波前的频谱')

xlabel('Hz')

ylabel('fuzhi')

subplot(2,1,2)

F1=plot(f,abs(F0(1:512))) %画出滤波后的频谱图

title('滤波后的频谱')

xlabel('Hz')

ylabel('fuzhi')

程序4:窗函数法设计滤波器:

fs=22050

x1=wavread('h:\课程设计2\shuzi.wav')

t=0:1/22050:(size(x1)-1)/22050

Au=0.03

d=[Au*cos(2*pi*5000*t)]'

x2=x1+d

wp=0.25*pi

ws=0.3*pi

wdelta=ws-wp

N=ceil(6.6*pi/wdelta) %取整

wn=(0.2+0.3)*pi/2

b=fir1(N,wn/pi,hamming(N+1)) %选择窗函数,并归一化截止频率

figure(1)

freqz(b,1,512)

f2=filter(bz,az,x2)

figure(2)

subplot(2,1,1)

plot(t,x2)

title('滤波前的时域波形')

subplot(2,1,2)

plot(t,f2)

title('滤波后的时域波形')

sound(f2,22050) %播放滤波后的语音信号

F0=fft(f2,1024)

f=fs*(0:511)/1024

figure(3)

y2=fft(x2,1024)

subplot(2,1,1)

plot(f,abs(y2(1:512)))

title('滤波前的频谱')

xlabel('Hz')

ylabel('fuzhi')

subplot(2,1,2)

F2=plot(f,abs(F0(1:512)))

title('滤波后的频谱')

xlabel('Hz')

ylabel('fuzhi')


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

原文地址: http://outofmemory.cn/yw/12366949.html

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

发表评论

登录后才能评论

评论列表(0条)

保存