a=[1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0];
f=[2000 4000 6000 8000 10000 12000 14000 16000];
I=8;n1=400;Fs=50000;fs=Fs*2*I;
for k=1:I
for r=1:n1
m(k,r)=a(k)+0.8*cos(2*pi*f(k)/Fs*(r-1)); %形成各路基带信号
end
end
%用窗函数法设计FIR滤波器
%通带截止频率为0.0500*pi,阻带起始频率为0.0750*pi;通带最大衰减0.25dB,阻带最小衰减为50dB
wp=0.0500*pi;ws=0.0750*pi;
wdelta=ws-wp; %过渡带宽
N=ceil(2*pi*3.3/wdelta);
N=N+72; %为满足指标,对N作修正
wc=(wp+ws)/2; %截止频率在通带和阻带边界频率的中点
n=0:N-1;
alpha=(N-1)/2; %滤波器的相位延迟
s=n-alpha;
hd=sin(wc*s)./(pi*s); %理想滤波器脉冲响应
win=hamming(N); %采用海明窗
hh=hd.*win'; %实际脉冲响应
[H,w]=freqz(hh);
lj=abs(H);
db=20*log10((lj+eps)/max(lj));
figure(3)
plot(w/pi,db);
title('实际幅频特性曲线(dB)');
grid on;
%检验指标是否满足要求
deltaw=pi/511;
rp=-(min(db(1:1:round(wp/deltaw)+1))) %检验实际的通带波动
ar=-(max(db(round(ws/deltaw):1:512))) %检验阻带最小衰减
figure(1);
plot(20*log10(abs(fft(hh))));
grid on;
for r=1:(N/I)
for k=1:I
h(k,r)=hh((r-1)*I+k);
end
end
for r=1:n1
for k=1:I
mk(k)=m(k,r);
end
mfft=fft(mk);
for k=1:I
x0(k,r)=mfft(k)*exp(j*pi/(2*I)*(k-1));
end
end
for r=1:n1
for k=1:I
x00(k,(2*r-1))=x0(k,r); %2倍内插
x00(k,2*r)=0;
end
end
for k=1:I
for r=1:n1
x00k(r)=x00(k,r);
end
for r=1:(N/I)
hk(r)=h(k,r);
end
y0=conv(x00k,hk);
for r=1:n1
y0(r)=y0(r)*exp(j*pi/2*(r-1));
end
for r=1:n1
y(k,r)=y0(r); % 注意
end
end
for k=1:I
for n=1:n1*I
if mod((n-1),I)==0
y00(k,n)=y(k,(n-1)/I+1); %I倍内插
else y00(k,n)=0.0;
end
end
end
for n=I:(n1*I)
yout(n-I+1)=y00(1,n)+y00(2,n-1)+y00(3,n-2)+y00(4,n-3)+y00(5,n-4)+y00(6,n-5)+y00(7,n-6)+y00(8,n-7);
end
point=1024;
yy(1:point)=yout(101:(100+point)); %注意
for n=1:point
yy(n)=(yy(n)+0.001*randn)*(0.42-0.5*cos(2*pi*(n-1)/point)+0.08*cos(4*pi*(n-1)/point));%加噪声,加布拉克曼窗抑制由于信号的截断产生能量泄漏,而用FFT算法计算频谱又产生栅栏效应的影响
l(n)=fs/point*(n-1);
end
%输出实信号频谱
yy1=real(yy);
pp1=abs(fft(yy1));
ppm1=max(pp1);
figure(5);
plot(l(1:512),20*log10(pp1(1:512)/ppm1));
grid on;
%输出复信号频谱
pp=abs(fft(yy));
ppm=max(pp);
figure(6)
plot(l,20*log10(pp/ppm));
grid on;
![avatar](https://profile-avatar.csdnimg.cn/dc78d2406d17417ca42db3bd43b9c72a_weixin_42652674.jpg!1)
御道御小黑
- 粉丝: 66
- 资源: 1万+
最新资源
- S7-1200-Modnus RTU通信主站结构块程序 TIA博图SCL源码语言编程.程序可用于西门子S7-1200PLC.S7
- 8051Proteus仿真c源码用P0显示左移运算结果
- 图像检索-基于分层Transformer+自监督学习改进跨模态图像检索算法-附项目源码-优质项目实战.zip
- 技术资料分享qtopia-core-preview-opensource-src-4.2.0-tp1.tar资料分享.zip
- 8051Proteus仿真c源码用P0口显示字符串常量
- 技术资料分享技术资料分享qt-mac-free-3.2.1.tar资料分享.zip
- [SWPUCTF 2021 新生赛]web 解题思路,实操解析,解题软件,解题方法
- 技术资料分享技术资料分享proe使用技巧直线的绘法资料分享.zip
- LabVIEW与信捷PLC串口通讯Modbus协议 官方协议,报文读取,安全稳定 程序代开发,代写程序 通讯配置,辅助测试
- 技术资料分享技术资料分享proe使用技巧圆与同心圆的作法资料分享.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
评论1