资源描述:
《DSP实验报告材料 高通滤波器.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、高通滤波器设计报告学号:172030085:徐军一、实验目的:1、了解FIR滤波器的原理及使用方法;2、了解使用Matlab语言设计FIR滤波器的方法;3、了解用DSP来实现FIR滤波器的设计及编程方法;4、熟悉在CCS环境下对FIR滤波器的调试方法。二、实验要求:设计一个FIR高通滤波器,输入信号是频率为25Hz,50Hz的合成等幅信号,要求滤去25Hz信号成分,保留50Hz的信号成分。三、实验设计:本实验要求滤去25Hz的信号成分,保留50Hz的信号,根据耐特斯特准侧,采样频率需要大于最高频率的
2、2倍,即设计的采样频率至少为100Hz的高通滤波器。先在MATLAB中验证设计思路,将得到的滤波器参数调用到DSP程序中,这样可以简化编译汇编连接的过程。然后通过图形仿真查看滤波前后的波形和频谱图。四、实验步骤:1、滤波器的MATLAB语言设计2、在MATLAB中确定滤波器的各种参数3、滤波器的程序设计4、在CCS环境下调试程序5、比较滤波前后的效果、观测滤波前后的波形五、实验程序及结果:(1)MATLAB程序:main.mf1=50;%信号频率Hzf2=25;%信号频率Hzfs=1000;%采样频
3、率HzN=200;%采样点数t=(0:N-1)/fs;%采样时间ssignal1=sin(2*pi*f1*t);signal2=sin(2*pi*f2*t);y=signal1+signal2;%%原始信号时域波形图figure(1);plot(y);%%axis([0100-2.52.5]);holdon;plot(signal1,'r');legend('被污染的信号','理想信号');%%原始信号频谱图fy=fftshift(fft(y));f=linspace(-fs/2,fs/2,N);f
4、igure(2);plot(f,abs(fy));title('原始信号频谱');xlabel('f/Hz');ylabel('幅度');axis([01000150]);%%滤波后的时域波形图figure(3);Hd=high;output=filter(Hd,y);plot(output);title('滤波后的波形');%%滤波后的频域波形图fy=fftshift(fft(output));f=linspace(-fs/2,fs/2,N);figure(4);plot(f,abs(fy));t
5、itle('滤波后信号频谱');xlabel('f/Hz');ylabel('幅度');axis([01000150]);high.mfunctionHd=high%HIGHReturnsadiscrete-timefilterobject.%MATLABCode%GeneratedbyMATLAB(R)8.3andtheSignalProcessingToolbox6.21.%Generatedon:12-Jul-201809:57:59%EquirippleHighpassfilterdesig
6、nedusingtheFIRPMfunction.%AllfrequencyvaluesareinHz.Fs=1000;%SamplingFrequencyFstop=25;%StopbandFrequencyFpass=50;%PassbandFrequencyDstop=0.0001;%StopbandAttenuationDpass=0.057501127785;%PassbandRippledens=20;%DensityFactor[N,Fo,Ao,W]=firpmord([Fstop,F
7、pass]/(Fs/2),[01],[Dstop,Dpass]);b=firpm(N,Fo,Ao,W,{dens});Hd=dfilt.dffir(b);实验结果:Matlab环境下的滤波前后的时域波形:滤波前的时域信号(左),滤波后的时域信号(右)Matlab环境下的滤波前后的频谱图形:滤波前的频域信号(左),滤波后的频域信号(右)(2)DSP在CCS下的程序:源程序:#include#include#include#include8、>#include#include"fdacoefs.h"#definepi3.14159#defineN30#definelength256longyn;intinput[length];intoutput[length];voidmain(){intm,n;int*x;for(n=0;n<=length-1;n++){input[n]=0;output[n]=0;}for(n=0;n<=length-1;n++)input[n]=50*sin(