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

📄 samp7_4.m

📁 MATLAB7.x数字信号处理 光盘内容
💻 M
字号:
%Samp7_4
wp=0.5*pi;ws=0.66*pi;                    %滤波器边界频率
wdelta=ws-wp;  %过渡带宽
N=ceil(8*pi/wdelta) %根据过渡带宽等于表 7-2中Hanning窗函数主瓣宽求得滤波器所用窗函数的最小长度
Nw=N;
wc=(wp+ws)/2;                          %截止频率在通带和阻带边界频率的中点
n=0:N-1;
alpha=(N-1)/2;                         %求滤波器的相位延迟
m=n-alpha+eps;   %eps为MATLAB系统的精度
hd=sin(wc*m)./(pi*m);                %由(7-20)式求理想滤波器脉冲响应
win=hanning(Nw);                     %采用汉宁窗
h=hd.*win';                          %在时间域乘积对应于频率域的卷积
b=h; 
figure(1)
[H,f]=freqz(b,1,512,50); %采用 50 Hz 的采样频率绘出该滤波器的幅频和相频响应
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;
%impz(b,1);                    %可采用此函数给出滤波器的脉冲响应
%zplane(b,1);                  %可采用此语句给出滤波器的零极点图
%grpdelay(b,1);                %可采用此函数给出滤波器的群延迟
f1=3;f2=20;                   %检测输入信号含有两种频率成分
dt=0.02; t=0:dt:3;    %采样间隔和检测信号的时间序列
x=sin(2*pi*f1* t)+cos(2* pi*f2* t);               %检测信号
%y=filter(b,1,x);                    %可采用此函数给出滤波器的输出
y=fftfilt(b,x);                      %给出滤波器的输出
figure(2)
subplot(2,1,1), plot(t,x),title('输入信号')    %绘输入信号
subplot(2,1,2),plot(t,y)      % 绘输出信号
hold on; plot([1 1]*(N-1)/2*dt,ylim, 'r') %绘出延迟到的时刻
xlabel('时间/s'),title('输出信号')

⌨️ 快捷键说明

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