资源简介
matlab四种fir数字滤波器,非常详细,适合初学者学习。
代码片段和文件信息
fs=1500; %采样频率
wp1=6*2*pi/fs; ws1=8*2*pi/fs;
wp2=210*2*pi/fs; ws2=220*2*pi/fs;
tr_width=ws1-wp1; %过度带宽
M=ceil(6.6*pi/tr_width)+1; %滤波器阶数
wc1=(ws1+wp1)/2; wc2=(ws2+wp2)/2; %通带截止频率
hd=ideal_lp(wc2M)-ideal_lp(wc1M); %带通滤波器的设计可以看成是两个低通滤波器想减
w_ham=(hamming(M))‘;
h=hd .* w_ham;
[Hw]=freqz(h1);
db=20*log10(abs(H));
n=0:M-1;
figure(1);
subplot(221);stem(nhd);title(‘理想脉冲响应‘);
axis([0 1700 -0.1 0.1]);xlabel(‘n‘);ylabel(‘hd(n)‘);
subplot(222);stem(nw_ham);title(‘海明窗‘);
axis([0 1700 0 1]);xlabel(‘n‘);ylabel(‘w_ham(n)‘);
subplot(223);stem(nh);title(‘实际脉冲响应‘);
axis([0 1700 -0.1 0.1]);xlabel(‘n‘);ylabel(‘h(n)‘);
figure(2);
plot(w*fs/(2*pi)db);title(‘幅度响应(单位: dB)‘);grid %w*fs/(2*pi)再次将横轴单位变为HZ,而非弧度,与第二行对应来看
axis([-10 600 -200 0]); xlabel(‘频率(单位:Hz)‘); ylabel(‘分贝‘)
set(gca‘XTickMode‘‘manual‘‘XTick‘[03500600])
set(gca‘YTickMode‘‘manual‘‘YTick‘[-100])
T=2000;%采样点数
n=0:T-1;
t=n/fs;
y=100*sin(2*pi*1*t)+50*cos(2*pi*2*t)+70*sin(2*pi*100*t)+80*sin(2*pi*150*t);
figure(3);
plot(y);
x=fft(yT); %对输入信号进行快速傅里叶变换,求其频谱图
mag=abs(x); %求取Fourier变换的振幅
F=n*fs/T;
figure(4);
plot(Fmag); %绘出随频率变化的振幅
xlabel(‘频率/Hz‘);
ylabel(‘振幅‘);title(‘N=1024‘);grid on;
Y=fftfilt(hy);%调用fir滤波器
figure(5);
plot(Y);
X=fft(YT);
mag=abs(X); %求取Fourier变换的振幅
F=n*fs/T;
figure(6);
plot(Fmag); %绘出随频率变化的振幅
xlabel(‘频率/Hz‘);
ylabel(‘振幅‘);title(‘N=1024‘);grid on;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1602 2013-05-30 08:47 matlab四种fir数字滤波器\daitong.m
文件 1607 2013-05-28 17:38 matlab四种fir数字滤波器\daizu.m
文件 3510 2013-05-28 15:58 matlab四种fir数字滤波器\ditong.m
文件 1881 2013-05-28 16:47 matlab四种fir数字滤波器\gaotong.m
文件 388 2013-05-22 11:41 matlab四种fir数字滤波器\ideal_lp.m
文件 0 2019-06-14 20:38 matlab四种fir数字滤波器\四种滤波器.docx
目录 0 2019-06-14 20:38 matlab四种fir数字滤波器\
- 上一篇:三角调频连续波雷达 matlab仿真
- 下一篇:多机器人系统的群集编队控制.rar
评论
共有 条评论