当前位置:文档之家› 多种类型噪声滤波

多种类型噪声滤波

DSP系统课程设计音频信号多种类型噪声滤波分析与处理任课老师:钱满义学院:电信学院班级:姓名:学号: 142同组成员班级:同组成员姓名:同组成员学号: 1422017年4月20日目录:设计背景 (3)设计要求 (5)设计思路及原理 (6)设计思路 (6)设计原理 (8)Matlab实验 (10)噪声类型分析过程 (10)噪声滤除方法 (13)Matlab仿真过程 (14)Matlab结果分析总结 (28)DSP设计程序运行及结果 (28)运行结果 (28)运行结果分析 (32)滤波算法程序段 (33)设计过程中遇到的问题及解决方法 (36)DSP设计感想 (37)参考文献 (39)设计背景随着信息时代和数字世界的到来,数字信号处理已成为如今一门极其重要的学科和技术领域。

数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。

数字信号处理(DSP)包括两重含义:数字信号处理技术(Digital Signal Processing)和数字信号处理器(Digital Signal Processor)。

数字信号处理(DSP)是利用计算机或专用处理设备,以数值计算的方法、对信号进行采集、滤波、增强、压缩、估值和识别等加工处理,借以达到提取信息和便于应用的目的,其应用范围涉及几乎所有的工程技术领域。

在信号处理中,滤波就显得非常重要。

在数字信号处理过程中,经常需对信号进行过滤、检测、预测等处理,这些任务的完成都要用到滤波器。

数字滤波器是数字信号处理的基本方法。

根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应( IIR)滤波器和有限冲激响应(FIR)滤波器。

FIR 滤波器是有限长单位冲激响应滤波器,在结构上是非递归型的。

它可以在幅度特性随意设计的同时,保证精确严格的线性相位。

所以FIR 数字滤波器广泛地应用于数字信号处理领域。

音频信号(audio)是带有语音、音乐和音效的有规律的声波的频率、幅度变化信息载体。

音频信号在信号采集、传输、处理等过程中常受到多种类型噪声的干扰,主要包含环境噪声、电子线路噪声、电源噪声等等。

为了恢复原来的音频信号,常需要设计音频信号滤波算法用于抑制或者滤除音频信号中的噪声。

图1音频信号噪声产生的示意图由于音频信号可能受到不同类型的干扰从而形成不同类型的噪声,可通过分析不同类型噪声的特点,设计适用的滤波算法实现噪声的抑制或滤除。

设计要求1、利用Matlab分析实验提供的4份含噪音频信号的特征分析并设计实现适用于不同类型噪声的滤波方法。

培养利用Matlab进行信号处理的仿真能力;2、对A/D和D/A转换器及DSP信号处理器进行编程,培养使用DSP硬件平台实现信号采集与传输能力,同时利用DSP C语言实现对采集到的信号检测识别,即具有实时信号处理的能力。

设计思路及原理设计思路1、利用Matlab进行仿真分析(1)分别读取含有不同种类噪声的音频文件提取音频对应的数据以及采样率,显示含噪信号的时域波形;(2)从时、频域分别分析含噪信号中噪声类型特征;(3)设计适用于不同种类噪声类型的滤波算法,利用Matlab设计含噪信号滤波处理,尝试进行滤波性能的定量分析。

2、利用C语言设计DSP程序,在信号处理平台上实现噪声滤波处理首先利用利用Matlab分析音频信号所含噪声特征,设计合适的滤波方法;在DSP对音频信号通过A/D采集,编写音频信号采集、滤波程序,实现音频信号的噪声滤波处理。

实验步骤:(1)音频信号的噪声分析对实验提供的四份音频信号利用Matlab进行噪声信号的特征分析,对每种不同的噪声提出适用的滤波处理算法;(2)音频信号的滤波算法实现与验证利用Matlab编程实现滤波算法,通过滤波后的音频数据与原始不含噪声的音频数据进行对比分析,计算检验滤波算法的性能参数。

(3)音频信号DSP平台采集通过音频线连接计算机声卡至DSP板卡的音频输入口,初始化DSP的A/D采集模块的硬件配置(采样率等),利用查询模式或者DMA模式进行音频信号的采集,将采集到的音频信号存储到申请的缓冲区中。

(4)时域信号的分析将采集获得的音频信号利用Graph波形查看功能显示时域波形,并从波形上分析音频信号的时域特征,并与Matlab数据进行比较等。

(5)滤波算法的DSP平台实现在DSP平台上实现音频信号的滤波算法,利用DSP实现音频信号中多种噪声类型的滤波处理。

(6)DSP滤波实现的性能验证通过D/A播放滤波后的音频信号进行滤波性能的验证。

设计原理(t x)(t y信号采集与传输:DSP数据流的输入和输出信号处理:Matlab算法仿真→Simulator下C算法仿真→DSP硬件处理利用DSP实现信号实时FIR滤波需要分4个步骤:第1步:利用MATLAB进行FIR滤波仿真第2步:利用Simulator在CCS下进行FIR滤波仿真第3步:编写利用DMA进行信号采集与传输程序,利用DSP进行快速信号采集与传输;第4步:实时DMA采集外部信号,实现DSP信号实时FIR滤波信号采集和滤波的流程图在DMA采集和传输程序的主程序中的存储器处理子程序processBuffer()中嵌入滤波算法,则可以实现利用DSP实现信号实时滤波。

DSPLIB库与fir()函数的调用方法调用DSPLIB库时,在工程中要添加库文件(存储器为大模式),在C 源程序中要包含头文件,即#include <>。

Fir()函数调用格式:ushort oflag = fir(DATA *x, DATA *h, DATA *r, DATA *dbuffer, ushort nx,ushort nh)入口参数说明:x[nx] 表示含有nx个实数的实输入信号向量;h[nh] 表示含有nh个实数的系数向量,按自然顺序排列,即滤波器的单位脉冲响应。

r[nx] 表示含有nx个实数的输出向量;允许原位运算,即r=x。

注:DATA为Q15格式数据Matlab实验工具箱:滤波器设计工具箱sptool设计FIR滤波器Matlab实验噪声类型分析过程:audio_typea信号噪声类型:由于信号频谱是全频段的,考虑是高斯噪声。

用audio_typea信号减去audio_inital信号后得到噪声a信号,画出噪声a信号波形,对时域进行概率统计,发现幅值呈正态分布,查阅资料得出噪声a为高斯噪声。

实验程序(节选):figure(22)n1=y1-y;n11=hist(n1,100);plot(n11);噪声a概率统计audio_typeb信号噪声类型:用上诉方法做出噪声b的波形后,发现噪声b的幅值结果只集中在一点,所以b是脉冲干扰。

噪声b时域波形audio_typec信号噪声类型:做出audio_typec信号的波形,发现有个100hz单频噪声,用上诉方法做出噪声c的波形后,发现噪声信号是多个幅值不同但频率相同的正弦信号叠加。

噪声c时域波形audio_typed信号噪声类型:做出audio_typed信号波形后,发现噪声d为频率4000Hz附近的高频噪声。

噪声滤除方法:a噪声,采用滑动平均去噪;b噪声,采用中值滤波;c噪声,采用高通滤波;d噪声,采用带阻滤波。

Matlab仿真过程audio_inital读取程序[y,Fs] = audioread('');sound(y,48000);N=length(y);f=Fs*(0:(N/2-1))/N;Y=fft(y,N);fp=abs(Y);figure(1)subplot(2,1,1),plot(y)subplot(2,1,2),plot(f,fp(1:N/2)),axis([0 1000 0 200]) audio_inital信号时域、频域波形audio_typea信号中噪声类型为高斯噪声,采用20点滑动平均去噪实验程序[y,Fs] = audioread('');[y1,Fs] = audioread('');N=length(y1);f=Fs*(0:(N/2-1))/N;Y1=fft(y1);fp1=abs(Y1);figure(2);subplot(2,1,1),plot(y1);subplot(2,1,2),plot(f,fp1(1:N/2)),axis([0 10000 0 200]); %20点滑动平均去噪x=y1(:,1);z1=smooth(x,20);sound(z1,48000);Z1=fft(z1);fpz2=(Z1);figure(21);subplot(2,1,1),plot(z1);subplot(2,1,2),plot(f,fpz2(1:N/2)),axis([0 10000 0 200]);figure(22)n1=y1-y;n11=hist(n1,100);plot(n11);audio_typea信号滤波前时域、频域波形audio_typea信号滤波后时域频域波形audio_typeb中噪声类型为脉冲噪声,采用13点的中值滤波实验程序[y2,Fs] = audioread('');N=length(y2);f=Fs*(0:(N/2-1))/N;Y2=fft(y2);fp2=abs(Y2);figure(3)subplot(2,1,1),plot(y2)subplot(2,1,2),plot(f,fp2(1:N/2)),axis([0 10000 0 300]) %13点的中值滤波x=y2(:,1);z2=medfilt1(x,13);Z2=fft(z2);fpz2=abs(Z2);figure(41)subplot(2,1,1),plot(z2);subplot(2,1,2),plot(f,fpz2(1:N/2)),axis([0 10000 0 300] figure(32)n2=y2-y;n22=hist(n2,1000);plot(n22);audio_typeb信号滤波前时域、频域波形audio_typeb信号滤波后时域、频域波形audio_typec中噪声类型为低频正弦噪声,采用高通滤波实验程序[y3,Fs] = audioread('');N=length(y3);f=Fs*(0:(N/2-1))/N;Y3=fft(y3);fp3=abs(Y3);figure(4)subplot(2,1,1),plot(y3)subplot(2,1,2),plot(f,fp3(1:N/2)),axis([0 1000 0 500])%高通滤波,Num3为fdatool设计的截频为100HZ的高通滤波器z3=filter(Num3,1,y3);Z3=fft(z3);fpz3=abs(Z3);sound(z3,48000);figure(41)subplot(2,1,1),plot(z3);subplot(2,1,2),plot(f,fpz3(1:N/2)),axis([0 1000 0 500]) figure(42)n3=y3-y;plot(n3)滤波器参数滤波器幅频特性audio_typec信号滤波前时域、频域波形audio_typec信号滤波后时域、频域波形audio_typed中的噪声为某高频段的噪声,采用带阻滤波。

相关主题