matlab的一个低通滤波器问题 10
网上看了程序clc;clear;N=4096;%随机数长度fs=20000;%采样率20khzT=(N-1)/fs;%采样时间t=0:1/fs:T;x=randn(1,N...
网上看了程序
clc;
clear;
N=4096;%随机数长度
fs=20000;%采样率20khz
T=(N-1)/fs;%采样时间
t=0:1/fs:T;
x=randn(1,N);%产生一个白噪声
figure(1);
%截止频率1.1khz
wp=2*pi*1000/fs;ws=2*pi*1500/fs;Rp=1;As=30;
[n,wc]=buttord(wp,ws,Rp,As,'s');%计算滤波器的阶数和3dB截止频率
fc=wc/2*pi; %截止频率
[B,A]=butter(n,wc,'s');%计算滤波器系统函数分子分母多项式
fk=0:8000;wk=2*pi*fk/fs;
Hk=freqs(B,A,wk);
plot(fk/1000,20*log10(abs(Hk)));
grid on,xlabel('频率(kHz)'),ylabel('幅度(dB)')
title('巴特沃斯模拟滤波器')
axis([0,4,-35,5])
y=filter(B,A,x);
figure(3)
y3=fft(y,N);
y3=abs(y3)/N;
y3_x=fs/2*linspace(0,1,N/2);
plot(y3_x,2*y3(1:N/2));
title('频谱图');grid on;
xlabel('频率/Hz');
但是出来结果不对啊 展开
clc;
clear;
N=4096;%随机数长度
fs=20000;%采样率20khz
T=(N-1)/fs;%采样时间
t=0:1/fs:T;
x=randn(1,N);%产生一个白噪声
figure(1);
%截止频率1.1khz
wp=2*pi*1000/fs;ws=2*pi*1500/fs;Rp=1;As=30;
[n,wc]=buttord(wp,ws,Rp,As,'s');%计算滤波器的阶数和3dB截止频率
fc=wc/2*pi; %截止频率
[B,A]=butter(n,wc,'s');%计算滤波器系统函数分子分母多项式
fk=0:8000;wk=2*pi*fk/fs;
Hk=freqs(B,A,wk);
plot(fk/1000,20*log10(abs(Hk)));
grid on,xlabel('频率(kHz)'),ylabel('幅度(dB)')
title('巴特沃斯模拟滤波器')
axis([0,4,-35,5])
y=filter(B,A,x);
figure(3)
y3=fft(y,N);
y3=abs(y3)/N;
y3_x=fs/2*linspace(0,1,N/2);
plot(y3_x,2*y3(1:N/2));
title('频谱图');grid on;
xlabel('频率/Hz');
但是出来结果不对啊 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询