DSP实验报告--高通滤波器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

高通滤波器设计报告

学号: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([ 0 100 -2.5 2.5]);

hold on;

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([ 0 100 0 150]);

%%滤波后的时域波形图

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([ 0 100 0 150]);

high.m

function Hd = high

%HIGH Returns a discrete-time filter object.

% MATLAB Code

% Generated by MATLAB(R) 8.3 and the Signal Processing Toolbox 6.21.

% Generated on: 12-Jul-2018 09:57:59

% Equiripple Highpass filter designed using the FIRPM function.

% All frequency values are in Hz.

Fs = 1000; % Sampling Frequency

Fstop = 25; % Stopband Frequency

Fpass = 50; % Passband Frequency

Dstop = 0.0001; % Stopband Attenuation

Dpass = 0.0575********; % Passband Ripple

dens = 20; % Density Factor [N, Fo, Ao, W] = firpmord([Fstop, Fpass]/(Fs/2), [0 1], [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"

#define pi 3.14159

#define N30

#define length256

long yn;

int input[length];

int output[length];

void main()

{

int m,n;

int*x;

相关文档
最新文档