DSP实验报告材料高通滤波器.docx
- 文档编号:11240687
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:12
- 大小:196.17KB
DSP实验报告材料高通滤波器.docx
《DSP实验报告材料高通滤波器.docx》由会员分享,可在线阅读,更多相关《DSP实验报告材料高通滤波器.docx(12页珍藏版)》请在冰豆网上搜索。
DSP实验报告材料高通滤波器
高通滤波器设计报告
学号:
172030085
:
徐军
一、实验目的:
1、了解FIR滤波器的原理及使用方法;
2、了解使用Matlab语言设计FIR滤波器的方法;
3、了解用DSP来实现FIR滤波器的设计及编程方法;
4、熟悉在CCS环境下对FIR滤波器的调试方法。
二、实验要求:
设计一个FIR高通滤波器,输入信号是频率为25Hz,50Hz的合成等幅信号,要求滤去25Hz信号成分,保留50Hz的信号成分。
三、实验设计:
本实验要求滤去25Hz的信号成分,保留50Hz的信号,根据耐特斯特准侧,采样频率需要大于最高频率的2倍,即设计的采样频率至少为100Hz的高通滤波器。
先在MATLAB中验证设计思路,将得到的滤波器参数调用到DSP程序中,这样可以简化编译汇编连接的过程。
然后通过图形仿真查看滤波前后的波形和频谱图。
四、实验步骤:
1、滤波器的MATLAB语言设计
2、在MATLAB中确定滤波器的各种参数
3、滤波器的程序设计
4、在CCS环境下调试程序
5、比较滤波前后的效果、观测滤波前后的波形
五、实验程序及结果:
(1)MATLAB程序:
main.m
f1=50;%信号频率Hz
f2=25;%信号频率Hz
fs=1000;%采样频率Hz
N=200;%采样点数
t=(0:
N-1)/fs;%采样时间s
signal1=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);
figure
(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));
title('滤波后信号频谱');
xlabel('f/Hz');
ylabel('幅度');
axis([01000150]);
high.m
functionHd=high
%HIGHReturnsadiscrete-timefilterobject.
%MATLABCode
%GeneratedbyMATLAB(R)8.3andtheSignalProcessingToolbox6.21.
%Generatedon:
12-Jul-201809:
57:
59
%EquirippleHighpassfilterdesignedusingtheFIRPMfunction.
%AllfrequencyvaluesareinHz.
Fs=1000;%SamplingFrequency
Fstop=25;%StopbandFrequency
Fpass=50;%PassbandFrequency
Dstop=0.0001;%StopbandAttenuation
Dpass=0.057501127785;%PassbandRipple
dens=20;%DensityFactor[N,Fo,Ao,W]=firpmord([Fstop,Fpass]/(Fs/2),[01],[Dstop,Dpass]);
b=firpm(N,Fo,Ao,W,{dens});
Hd=dfilt.dffir(b);
实验结果:
Matlab环境下的滤波前后的时域波形:
滤波前的时域信号(左),滤波后的时域信号(右)
Matlab环境下的滤波前后的频谱图形:
滤波前的频域信号(左),滤波后的频域信号(右)
(2)DSP在CCS下的程序:
源程序:
#include
#include
#include
#include
#include
#include"fdacoefs.h"
#definepi3.14159
#defineN30
#definelength256
longyn;
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(2*pi*n*25/200)+50*sin(2*pi*n*50/200);
for(n=0;n<=length-1;n++)
{
x=&input[n];
yn=0;
for(m=0;m<=N-1;m++)
yn+=B[m]*(*x++)+*x;
output[n]=yn>>15;
}
while
(1);
}
fdacoefes.h如下:
/*
*FilterCoefficients(CSource)generatedbytheFilterDesignandAnalysisTool
*GeneratedbyMATLAB(R)9.0andtheSignalProcessingToolbox7.2.
*Generatedon:
27-Jul-201611:
32:
00
*/
/*
*Discrete-TimeFIRFilter(real)
*-------------------------------
*FilterStructure:
Direct-FormFIR
*FilterLength:
43
*Stable:
Yes
*LinearPhase:
Yes(Type1)
*/
/*GeneraltypeconversionforMATLABgeneratedC-code*/
#include"tmwtypes.h"
/*
*Expectedpathtotmwtypes.h
*D:
\ProgramFiles\MATLAB\R2016a\extern\include\tmwtypes.h
*/
/*
*Warning-Filtercoefficientsweretruncatedtofitspecifieddatatype.
*Theresultingresponsemaynotmatchgeneratedtheoreticalresponse.
*UsetheFilterDesign&AnalysisTooltodesignaccurate
*int16filtercoefficients.
*/
constintBL=29;
constint16_TB[29]={
-106,390,-296,-338,,619,281,-782,-1127,
335,2277,1564,-3308,-9698,20109,-9698,-3308,1564,
2277,335,-1127,-782,281,619,,-338,-296,
390,-106
};
(3)滤波器的仿真测试
新建工程并编译成功后会在“工程所在目录/debeg”文件夹下产生sheji2.out文件,在CCS软件的Run→Load→LoadProgram里打开这个.out文件,单击OK。
查看滤波效果:
1)选择菜单栏上的Tools→Graph→DualTime选项,弹出对话框,按照下图所示设置时域波形参数。
2)选择菜单栏上的Tools→Graph→FFTMagnitude选项,弹出对话框,按照下图所示设置频域波形参数。
滤波前频域参数设置
滤波后频域波形参数设置
仿真结果:
滤波前的时域信号波形:
滤波前的频谱图:
滤波后的时域信号波形:
滤波后的频谱图:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP实验报告材料 高通滤波器 DSP 实验 报告 材料 滤波器
![提示](https://static.bdocx.com/images/bang_tan.gif)