⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 samp6_5.m

📁 MATLAB7.x数字信号处理 光盘内容
💻 M
字号:
%Samp6_5
Wp=2000*2*pi;Ws=3000*2*pi; %滤波器截止频率
Rp=3;Rs=15;    %通带波纹和阻带衰减
Fs=10000;    %采样频率
Nn=128;    %调用freqz所用的频率点数
[N,Wn]=buttord(Wp,Ws,Rp,Rs,'s');   %模拟滤波器的最小阶数
[z,p,k]=buttap(N);      %设计模拟低通原型Butterworth滤波器
[Bap,Aap]=zp2tf(z,p,k);   %将零点极点增益形式转换为传递函数形式
[b,a]=lp2lp(Bap,Aap,Wn);  %进行频率转换
[bz,az]=impinvar(b,a,Fs);  %运用脉冲响应不变法得到数字滤波器的传递函数
figure(1)
[H,f]=freqz(bz,az,Nn,Fs);   %求解数字滤波器的幅频特性和相频特性
subplot(2,1,1),plot(f,20*log10(abs(H)))
xlabel('频率/Hz');ylabel('振幅/dB');grid on;
subplot(2,1,2),plot(f,180/pi*unwrap(angle(H)))
xlabel('频率/Hz');ylabel('相位/^o');grid on;
figure(2)
f1=1000;f2=4000;   %输入信号的频率
N=100;    %数据长度
dt=1/Fs;n=0:N-1;t=n*dt;   %采样间隔和时间序列
x=sin(2*pi*f1*t)+0.5*cos(2*pi*f2*t); %滤波器输入信号
subplot(2,1,1),plot(t,x),title('输入信号') %绘制输入信号
y=filtfilt(bz,az,x);  %用函数filtfilt对输入信号进行滤波
y1=filter(bz,az,x);   %用filter函数对输入信号滤波
subplot(2,1,2),plot(t,y,t,y1,':'),title('输出信号'),xlabel('时间/s')
legend( ' filtfilt ', 'filter')  %加图例

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -