信号分析与处理实验五

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

实验五:FIR数字滤波器设计与软件实现

一、实验目的(略)

二、实验内容及步骤(略)

三、相关程序

1、信号产生函数xtg清单

Function xt=xtg(N) %信号x(t)产生函数,并显示信号的幅频特性曲线

%xt=xtg产生一个长度为N,有加性高频噪声的单频调幅信号xt,采样频率Fs=1khz

%载波频率fc=Fs/10=100Hz,调制正弦波频率f0=Fc/10=10Hz

N=2000;Fs=1000;T=1/Fs;Tp=N*T;

T=0:T:(N-1)*T;

fc=Fs/10;f0=fc/10; %载波频率fc=Fs/10,单频调制信号频率为f0=fc/10

mt=cos(2*pi*f0*t); %产生单频正弦波调制信号mt,频率为f0

ct=cos(2*pi*fc*t); %产生载波正弦波信号ct,频率为fc

xt=mt.*ct; %相乘产生单频调制信号xt

nt=2*rand(1,N)-1; %产生随机噪声nt

%=========设计高通滤波器hn,用于滤除噪声nt中的低频成分,生成高频噪声===== fp=150;fs=200;rp=0.1;rs=70; %滤波器指标

fb=[fp,fs];m=[0,1]; %计算remenzord函数所需参数f,m,dev

dev=[10^(-rs/20),(10^(rp/20)-1)/ (10^(rp/20)+1)];

[n,fo,mo,w]=remenzord(fb,m,dev,Fs); %确定remenz函数所需参数

hn=remenz(n,fo,mo,w); %调用remenz函数进行设计,用于滤除噪声nt中的低频成分yt=filter(hn,1,10*nt); %滤除随机噪声中低频成分,生成高频噪声yt

%=================================================================== xt=xt+yt; %噪声加信号

fst=fft(xt,N);k=0:N-1;f=k/Tp;

subplot(3,1,1);plot(t,xt);grid;

xlabel([0,Tp/5,min(xt),max(xt)]);

title(‘(a)信号加噪声波形’)

subplot(3,1,2);plot(f,abs(fst)/max(abs(fst)));grid;title(‘(b)信号加噪声的频谱’)

axis([0,Fs/2,0,1.2]);xlabel(‘f/Hz’);ylabel(‘幅度’)

2、实验程序清单

%实验五程序exp5.m

%FIR数字滤波器设计与软件实现

clear all;close all;

%=====调用xtg产生信号xt,xt长度N=1000,并显示xt及其频谱===========

N=1000;xt=xtg(N);

fp=120;fs=150;rp=0.2;rs=60; %输入给定指标

Fs=1000; T=1/Fs;Tp=N*T; k=0:N-1;f=k/Tp; t=0:T:(N-1)*T;

%(1)用窗函数法设计滤波器

wc=(fp+fs)/Fs; %理想低通滤波器截止频率(关于pi归一化)

B=2*pi*(fs-fp)/Fs; %过渡带宽度指标

Nb=ceil(11*pi/B); %blackman窗的长度N

hn=fir(Nb-1,wc,blackman(Nb));

Hw=abs(fft(hn,1024)); %求设计的滤波器频率特性

ywt=fftfilt(hn,xt,N); %调用函数fftfilt对xt滤波

subplot(3,1,1);plot(f,Hw/max(Hw)); grid;title(‘(a)低通滤波器幅频特性’) axis([0,Fs/2,-120,20]);xlabel(‘f/Hz’);ylabel(‘幅度’)

subplot(3,1,2);plot(t,ywt); grid;title(‘(b)滤除噪声后的信号波形’)

axis([0,0.5,-1,1]);xlabel(‘t/s’);ylabel(‘yw(t)’)

%=======(2)用等波纹逼近法设计滤波器======================== fb=[fp,fs];m=[1,0]; %确定remenzord函数所需参数f,m,dev

dev=[(10^(rp/20)-1)/(10^(rp/20)+1),10^(-rs/20)];

[Ne,fo,mo,W]=remenzord(fb,m,dev,fs); %确定remenz函数所需参数

hn=remenz(Ne,fo,mo,W); %调用remenz函数进行设计

Hw=abs(fft(hn,1024)); %求设计的滤波器频率特性

yet=fftfilt(hn,xt,N); %调用函数fftfilt对xt滤波

figure(2)

subplot(3,1,1);plot(f,Hw/max(Hw)); grid;title(‘(a)低通滤波器幅频特性’) axis([0,Fs/2,-80,10]);xlabel(‘f/Hz’);ylabel(‘幅度’)

subplot(3,1,2);plot(t,yet); grid;title(‘(b)滤除噪声后的信号波形’)

axis([0,0.5,-1,1]);xlabel(‘t/s’);ylabel(‘ye(t)’)

相关文档
最新文档