应用Matlab对含噪声语音信号进行频谱分析及滤波
基于MATLAB的有噪声的语音信号处理的课程设计要点

基于MATLAB的有噪声的语音信号处理的课程设计要点一、设计背景随着科技的不断发展,语音信号处理愈发成为热门话题。
在语音数据中,常常会被噪声干扰,从而使得信号质量下降,影响了数据分析和处理的效果。
本课程设计旨在通过MATLAB来设计一套有噪声的语音信号处理方法,以提高对语音信号信噪比的分析和处理能力,为后续的语音处理研究奠定基础。
二、课程设计要点1. 语音信号的获取和预处理在本课程中,需要使用MATLAB语音处理工具箱中的audioread()函数获取.wav格式的语音信号,然后进行预处理操作,包括:•极化和采样:将语音信号从时间域转换到频域,并进行重采样处理,以适应后续处理操作的需求。
•去噪:根据信噪比的情况,选择合适的去噪算法对语音信号进行滤波,以减低信号的噪声干扰。
2. 基本的信号处理方法•频谱分析和频率域滤波:可以通过MATLAB处理语音信号的频域,进行谱分析、谱修复以及滤波的操作。
•时域滤波:应用IIR和FIR滤波器来消除噪声,提高信号质量。
•自适应滤波:通过模型建立和自适应滤波器设计,从语音信号中分离出噪声信号。
3. 压缩和解压缩•信号压缩:对语音信号进行压缩处理,以实现数据的高效管理和传输。
•信号解压缩:对压缩后的语音信号进行解压缩处理,还原原始的语音信号,以进行后续处理。
4. 语音识别•特征提取:通过分段处理,并进行特征提取,将信号的语音特征转换为相应的数字特征向量,为后续的语音识别做准备。
•语音识别:基于数字特征向量,采用各种识别算法,进行语音识别。
三、设计思路1.读入语音信号和噪声,可以通过audioread()函数和一些MATLAB工具箱实现。
同时,对输出语音信号进行噪声除去处理。
2.对语音信号进行频谱分析,并基于不同的SNR条件下,应用FIR和IIR滤波器对语音信号进行滤波处理。
进而利用多种去噪算法对含噪语音信号进行去噪处理。
3.对经过滤波处理的语音信号进行特征提取,并采用隐马尔可夫模型(HMM)对数字特征向量进行处理,进行不同说话人的识别。
使用MATLAB进行信号处理与滤波

使用MATLAB进行信号处理与滤波信号处理与滤波是数字信号处理领域中的重要技术,而MATLAB是一种广泛应用于信号处理的工具。
本文将介绍如何使用MATLAB进行信号处理与滤波,包括信号采样、信号重构、频谱分析以及常用的滤波器设计和应用。
首先,我们先了解一下信号处理的基本概念。
信号处理是对信号进行采样、重构、滤波、增强、压缩等操作的过程。
信号可以是连续的或离散的,常常通过采样将连续信号转换为离散信号进行处理。
在MATLAB中,可以使用`plot`函数来绘制信号的波形图。
假设有一个正弦信号,我们可以通过以下代码绘制其波形图:```matlabfs = 1000; % 采样率为1000Hzt = 0:1/fs:1; % 时间向量,从0到1sf = 10; % 正弦信号的频率为10Hzx = sin(2*pi*f*t); % 构造正弦信号plot(t, x); % 绘制波形图xlabel('Time (s)'); % x轴标签ylabel('Amplitude'); % y轴标签title('Sinusoidal Signal'); % 图片标题```这段代码中,首先定义了采样率`fs`、时间向量`t`和信号频率`f`,然后使用`sin`函数构造了正弦信号`x`,最后通过`plot`函数绘制出信号的波形图。
在进行信号处理时,经常需要进行频谱分析来研究信号的频率特性。
MATLAB 提供了多种函数来计算信号的频谱,其中最常用的是`fft`函数。
以下代码演示了如何计算信号的频谱,并绘制频谱图:```matlabFs = 1000; % 采样率为1000HzT = 1/Fs; % 采样间隔L = 1000; % 信号长度为1000t = (0:L-1)*T; % 时间向量x = sin(2*pi*50*t) + 0.5*sin(2*pi*120*t); % 构造含有两个频率成分的信号Y = fft(x); % 对信号进行傅里叶变换P2 = abs(Y/L); % 计算双边频谱P1 = P2(1:L/2+1); % 取单边频谱P1(2:end-1) = 2*P1(2:end-1); % 幅度归一化f = Fs*(0:(L/2))/L; % 频率向量plot(f,P1); % 绘制频谱图title('Single-Sided Amplitude Spectrum of x(t)'); % 图片标题xlabel('Frequency (Hz)'); % x轴标签ylabel('Amplitude'); % y轴标签```这段代码中,首先定义了采样率`Fs`、采样间隔`T`、信号长度`L`和时间向量`t`,然后使用两个正弦信号相加的方式构造了含有两个频率成分的信号`x`,接着使用`fft`函数对信号进行傅里叶变换得到频谱`Y`,最后根据频谱进行幅度归一化并绘制频谱图。
基于MATLAB的频谱分析与信号去噪

河北经贸大学毕业论文基于MATLAB的频谱分析与信号去噪摘要课题是基于MA TLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。
通过理论推导得出相应结论,再利用MA TLAB 作为编程工具进行计算机实现。
滤波器设计在数字信号处理中占有极其重要的地位,FIR数字滤波器和IIR滤波器是滤波器设计的重要组成部分。
利用MA TLAB信号处理工具箱可以快速有效地设计各种数字滤波器。
在设计实现的过程中,使用窗函数法来设计FIR 数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR数字滤波器,并利用MA TLAB 作为辅助工具完成设计中的计算与图形的绘制。
通过对对所设计滤波器的仿真和频率特性分析,可知利用MA TLAB信号处理工具箱可以有效快捷地设计FIR和IIR数字滤波器,过程简单方便,结果的各项性能指标均达到指定要求。
在实际的计算机控制系统中,采样信号不可避免的受到各种噪声和干扰的污染,使得由辨识采样信号得到的系统模型存在偏差而妨碍了系统控制精度的提高。
Donoho 和Johnstone 提出的小波收缩去噪算法对去除叠加性高斯白噪声非常有效。
对此我也作出简要介绍。
关键词频域分析,滤波器,小波去噪,MA TLABAbstractSubject is based on MA TLAB speech signal processing, the design and implementation of integrated use of digital signal processing theory knowledge of speech signal with noise adding time domain and frequency domain analysis and filtering. Filter design in digital signal processing in occupies an extremely important status, FIR digital filters and filter IIR filter is the important component. MA TLAB signal processing toolbox can effectively design of digital filter. Through theoretical derivation corresponding conclusion as a programming tool, using MA TLAB for computer implementation. In the design and implementation of process, USES window function method to design FIR digital filters, with bart leavenworth, chebyshev and bilinear anshi IIR digital filter, and design MA TLAB as the auxiliary tool complete design of computing and graphics drawing. Through the design of the filter selvesor simulation and frequency characteristics were analyzed, using MA TLAB signal processing toolbox that can effectively quickly design FIR and IIR digital filters, process is simple and convenient, results of various performance indicators are as specified requirements.In the actual computer control system,sampling signal the inevitable noise and interference by various pollution, makes the identification of the sampled signal received by the system model there is a deviation of the system hampered the improvement of control accuracy. Donoho and Johnstone's wavelet shrinkage denoising algorithm to remove the additive white Gaussian noise is very effective. To this I also do is also introduced briefly.Keywords frequency domain analysis,filter,Wavelet denoising,MA TLAB目录1 绪论 (1)1.1课题背景 (1)1.2研究意义 (1)1.3本文研究内容 (2)2 频谱分析技术及MA TLAB简介 (3)2.1时域抽样定理 (3)2.2离散傅立叶变换(DFT) (4)2.3快速傅立叶变换(FFT) (4)2.4频谱分析原理 (4)2.4.1 频率和周期的估计 (5)2.4.2 频谱图 (5)2.5MA TLAB简介 (5)2.5.1 MA TLAB软件的发展 (5)2.5.2 MA TLAB组成 (6)3 频谱分析与算例 (8)3.1声音信号频谱分析 (8)3.2图像信号频谱分析 (9)3.3离散信号/序列 (11)4 有噪声的语音信号分析与去噪 (14)4.1有噪语音信号提取 (14)4.1.1 语音信号的采集 (14)4.1.2 语音信号的时频分析 (14)4.1.3 语音信号加噪与频谱分析 (15)4.2设计FIR和IIR数字滤波器 (16)4.3用滤波器对加噪语音信号进行滤波和分析 (21)4.3.1 滤波器滤波 (21)4.3.2 比较滤波前后语音信号的波形及频谱 (22)5 简介小波信号去噪 (26)5.1小波函数 (26)5.2小波去噪问题 (26)5.3小波去噪发展历程 (27)5.4小波去噪原理 (28)5.5小波去噪步骤 (29)6 结论 (30)致谢 (32)附录 (32)参考文献 (36)基于MATLAB的频谱分析与信号去噪1 绪论1.1 课题背景随着信息时代和数字世界的到来,数字信号处理己成为当今一门极其重要的学科和技术领域,数字信号处理在通信、语音、图像、自动控制、医疗和家用电器等众多领域得到了广泛的应用。
MATLAB对语音信号加随机噪声及去噪程序

subplot(2,2,3);plot(y_z);
title('滤波前信号的波形')
subplot(2,2,4);plot(x);
title('滤波后信号的波形')
%sound(x,fs,bits)%回放滤波后的音频
设计滤波器:
器常用的方法有:脉冲响应不变法和双线性变换法。
xlabel('时间轴')
ylabel('幅值A')
subplot(2,1,2);
plot(f,abs(y_zp(1:n/2)));%加噪语音信号的频谱图
title('加噪语音信号频谱图');
xlabel('频率Hz');
ylabel('频率幅值');
对加噪的语音信号进行去噪程序如下:
fp=1500;fc=1700;As=100;Ap=1;
%sound(y_z,fs)
%对加噪后的语音信号进行分析
n=length(y);%选取变换的点数
y_zp=fft(y_z,n);%对n点进行傅里叶变换到频域
f=fs*(0:n/2-1)/n;%对应点的频率
figure(2)
subplot(2,1,1);
plot(y_z);%加噪语音信号的时域波形图
title('加噪语音信号时域波形');
figure(3);
freqz(b,1);
(此前为低通滤波器设计阶段)——接下来为去除噪声信号的程序——
x=fftfilt(b,y_z);
X=fft(x,n);
figure(4);
如何使用Matlab进行信号处理和滤波

如何使用Matlab进行信号处理和滤波信号处理和滤波在工程领域中扮演着重要的角色,它们可以帮助我们从一系列的数据中提取有用的信息,并消除噪声。
Matlab作为一种强大的工具,提供了丰富的函数和工具箱,可以方便地进行信号处理和滤波。
本文将介绍如何使用Matlab进行信号处理和滤波的基本方法,并使用实例进行演示。
一、Matlab的信号处理工具箱Matlab的信号处理工具箱是一个强大的工具集,它包含了许多用于处理各种类型信号的函数和算法。
通过引入信号处理工具箱,我们可以方便地处理音频、图像和视频信号,并进行频域分析、滤波和解调等操作。
在Matlab中,可以使用命令"toolbox"来查看已安装的工具箱,对于信号处理,我们需要确保已经安装了"Signal Processing Toolbox"。
如果没有安装,可以通过访问Matlab官方网站下载并安装。
二、信号处理的基本操作1. 读取和显示信号在进行信号处理之前,首先需要将信号加载进Matlab中。
可以使用函数"audioread"来读取音频信号,例如读取一个.wav格式的音频文件:```[x,Fs] = audioread('audio.wav');```其中,x是音频信号的数据,Fs是信号的采样率。
读取完成后,可以使用函数"soundsc"来播放信号,并使用函数"plot"来绘制信号的波形图:```soundsc(x,Fs);plot(x);```2. 频谱分析频谱分析可以帮助我们了解信号的频率特性。
在Matlab中,可以使用函数"fft"进行快速傅里叶变换(FFT),将信号从时域转换到频域。
例如,对于上文中读取的音频信号x,可以使用以下代码计算其频谱:```X = fft(x);```频谱的结果是一个复数向量,表示信号在不同频率上的幅值和相位。
语音信号处理实验报告

通信与信息工程学院信息处理综合实验报告班级:电子信息工程1502班指导教师:设计时间:2018/10/22-2018/11/23评语:通信与信息工程学院二〇一八年实验题目:语音信号分析与处理一、实验内容1. 设计内容利用MATLAB对采集的原始语音信号及加入人为干扰后的信号进行频谱分析,使用窗函数法设计滤波器滤除噪声、并恢复信号。
2.设计任务与要求1. 基本部分(1)录制语音信号并对其进行采样;画出采样后语音信号的时域波形和频谱图。
(2)对所录制的语音信号加入干扰噪声,并对加入噪声的信号进行频谱分析;画出加噪后信号的时域波形和频谱图。
(3)分别利用矩形窗、三角形窗、Hanning窗、Hamming窗及Blackman 窗几种函数设计数字滤波器滤除噪声,并画出各种函数所设计的滤波器的频率响应。
(4)画出使用几种滤波器滤波后信号时域波形和频谱,对滤波前后的信号、几种滤波器滤波后的信号进行对比,分析信号处理前后及使用不同滤波器的变化;回放语音信号。
2. 提高部分(5)录制一段音乐信号并对其进行采样;画出采样后语音信号的时域波形和频谱图。
(6)利用MATLAB产生一个不同于以上频段的信号;画出信号频谱图。
(7)将上述两段信号叠加,并加入干扰噪声,尝试多次逐渐加大噪声功率,对加入噪声的信号进行频谱分析;画出加噪后信号的时域波形和频谱图。
(8)选用一种合适的窗函数设计数字滤波器,画出滤波后音乐信号时域波形和频谱,对滤波前后的信号进行对比,回放音乐信号。
二、实验原理1.设计原理分析本设计主要是对语音信号的时频进行分析,并对语音信号加噪后设计滤波器对其进行滤波处理,对语音信号加噪声前后的频谱进行比较分析,对合成语音信号滤波前后进行频谱的分析比较。
首先用PC机WINDOWS下的录音机录制一段语音信号,并保存入MATLAB软件的根目录下,再运行MATLAB仿真软件把录制好的语音信号用audioread函数加载入MATLAB仿真软件的工作环境中,输入命令对语音信号进行时域,频谱变换。
应用MATLAB对信号进行频谱分析及滤波

应用MATLAB对信号进行频谱分析及滤波频谱分析和滤波是信号处理中常用的技术,可以帮助我们了解信号的频率特性并对信号进行去噪或增强。
MATLAB是一个强大的数学计算和工程仿真软件,提供了各种工具和函数用于频谱分析和滤波。
频谱分析是通过将信号在频域上进行分解来研究信号的频率特性。
MATLAB提供了几种进行频谱分析的函数,包括FFT(快速傅里叶变换)、periodogram和spectrogram等。
下面将以FFT为例,介绍如何使用MATLAB进行频谱分析。
首先,我们需要先生成一个信号用于频谱分析。
可以使用MATLAB提供的随机信号生成函数来生成一个特定频率和幅度的信号。
例如,可以使用以下代码生成一个包含两个频率成分的信号:```MATLABFs=1000;%采样率t=0:1/Fs:1;%时间向量,从0秒到1秒,采样率为Fsf1=10;%第一个频率成分f2=50;%第二个频率成分A1=1;%第一个频率成分的幅度A2=0.5;%第二个频率成分的幅度x = A1*sin(2*pi*f1*t) + A2*sin(2*pi*f2*t);```上述代码生成了一个采样率为1000Hz的信号,包含10Hz和50Hz两个频率的成分。
接下来,我们可以使用MATLAB的FFT函数对信号进行频谱分析,并将频谱绘制出来。
FFT函数将信号从时域转换到频域,并返回频谱幅度和频率信息。
以下是使用FFT函数对上述生成的信号进行频谱分析的代码:```MATLABN = length(x); % 信号长度X = abs(fft(x))/N; % 计算FFTf=(0:N-1)*(Fs/N);%计算频率坐标plot(f,X)xlabel('频率(Hz)')ylabel('幅度')title('信号频谱')```上述代码中,我们首先计算FFT并将结果除以信号长度,以得到正确的幅度值。
然后,我们计算频率坐标,并将频谱幅度与频率绘制出来。
数字信号处理期末实验-语音信号分析与处理

语音信号分析与处理摘要用MATLAB对语音信号进行分析与处理,采集语音信号后,在MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。
数字滤波器是数字信号处理的基础,用来对信号进行过滤、检测和参数估计等处理。
IIR数字滤波器最大的优点是给定一组指标时,它的阶数要比相同组的FIR滤波器的低的多。
信号处理中和频谱分析最为密切的理论基础是傅立叶变换(FT)。
离散傅立叶变换(DFT)和数字滤波是数字信号处理的最基本内容。
关键词:MATLAB;语音信号;加入噪声;滤波器;滤波1. 设计目的与要求(1)待处理的语音信号是一个在20Hz~20kHz频段的低频信号。
(2)要求MATLAB对语音信号进行分析和处理,采集语音信号后,在MATLAB平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器进行滤除噪声,恢复原信号。
2. 设计步骤(1)选择一个语音信号或者自己录制一段语音文件作为分析对象;(2)对语音信号进行采样,并对语音信号进行FFT频谱分析,画出信号的时域波形图和频谱图;(3)利用MATLAB自带的随机函数产生噪声加入到语音信号中,对语音信号进行回放,对其进行FFT频谱分析;(4)设计合适滤波器,对带有噪声的语音信号进行滤波,画出滤波前后的时域波形图和频谱图,比较加噪前后的语音信号,分析发生的变化;(5)对语音信号进行回放,感觉声音变化。
3. 设计原理及内容3.1 理论依据(1)采样频率:采样频率(也称采样速度或者采样率)定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。
采样频率只能用于周期性采样的采样器,对于非周期采样的采样器没有规则限制。
通俗的讲,采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。
采样频率越高,即采样的间隔时间越短,则在单位之间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
应用Matlab对含噪声的语音信号进行频谱分析及滤波
一、实验容
录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;在语音信号中增加正弦噪声信号(自己设置几个频率的正弦信号),对加入噪声信号后的语音信号进行频谱分析;给定滤波器的性能指标,采用窗函数法和双线性变换设计数字滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比试听,分析信号的变化。
二、实现步骤
1.语音信号的采集
利用Windows下的录音机,录制一段自己的话音,时间在1 s。
然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,(可用默认的采样频率或者自己设定采样频率)。
2.语音信号的频谱分析
要求首先画出语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特性。
在采集得到的语音信号中加入正弦噪声信号,然后对加入噪声信号后的语音号进行快速傅里叶变换,得到信号的频谱特性。
并利用sound试听前后语音信号的不同。
分别设计IIR和FIR滤波器,对加入噪声信号的语音信号进行去噪,画出并分析去噪后的语音信号的频谱,并进行前后试听对比。
3.数字滤波器设计
给出数字低通滤波器性能指标:如,通带截止频率fp=10000 Hz,阻带截止频率fs=12000 Hz(可根据自己所加入噪声信号的频率进行阻带截止频率设置),阻带最小衰减Rs=50 dB,通带最大衰减Rp =3 dB(也可自己设置),采样频率根据自己语音信号采样频率设定。
报告容
一、实验原理
含噪声语音信号通过低通滤波器,高频的噪声信号会被过滤掉,得到清晰的无噪声语音信号。
二、实验容
录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;在语音信号中增加正弦噪声信号(自己设置几个频率的正弦信号),对加入噪声信号后的语音信号进行频谱分析;给定滤波器的性能指标,采用窗函数法和双线性变换设计数字滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比试听,分析信号的变化。
给出数字低通滤波器性能指标:如,通带截止频率fp=10000 Hz,阻带截止频率fs=12000 Hz (可根据自己所加入噪声信号的频率进行阻带截止频率设置),阻带最小衰减Rs=50 dB,通带最大衰减Rp=3 dB(也可自己设置),采样频率根据自己语音信号采样频率设定。
三、实验程序
1、原始信号采集和分析
clc;clear;close all;
fs=10000; %语音信号采样频率为10000
x1=wavread('C:\Users\acer\Desktop\voice.wav'); %读取语音信号的数据,赋给x1
sound(x1,40000); %播放语音信号
y1=fft(x1,10240); %对信号做1024点FFT变换
f=fs*(0:1999)/1024;
figure(1);
plot(x1) %做原始语音信号的时域图形
title('原始语音信号');
xlabel('time n');
ylabel('fuzhi n');
figure(2);
plot(f,abs(y1(1:2000))); %做原始语音信号的频谱图形
title('原始语音信号频谱')
xlabel('Hz');
ylabel('fuzhi');
2、加入噪声
y=wavread('C:\Users\acer\Desktop\voice.wav');
y=y(:,1); %矩阵维度置换成1 subplot(2,2,1);
plot(y);
title('加噪前的时域曲线');
N=length(y)-1;
n=0:1/fs:N/fs;
x=1.5*sin(40*pi*n); %设置正弦噪声信号
x=x.'; %置换成矩阵
z=y+x; %添加噪声
subplot(2,2,2);
plot(z);
title('加噪后的时域曲线');
sound(z,40000)
3、IIR滤波器设计
clc;clear;close all;
fs=22050;x1=wavread('C:\Users\acer\Desktop\voice.wav');
x1=x1(:,1)
t=0:1/22050:(size(x1)-1)/22050; %设置并添加噪声信号
d=1.5*sin(40*pi*t);
d=d.';
x2=x1+d;
wp=0.25*pi;ws=0.3*pi;Rp=1;Rs=15; %通阻带截止和通阻带衰减Fs=22050;Ts=1/Fs;
wp1=2/Ts*tan(wp/2); %将模拟指标转换成数字指标
ws1=2/Ts*tan(ws/2);
[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s'); %选择滤波器的最小阶数
[Z,P,K]=buttap(N); %创建butterworth模拟滤波器[Bap,Aap]=zp2tf(Z,P,K);
[b,a]=lp2lp(Bap,Aap,Wn);
[bz,az]=bilinear(b,a,Fs); %用双线性变换法实现模拟滤波器到数字滤波器的转换[H,W]=freqz(bz,az); %绘制频率响应曲线
figure(1);
plot(W*Fs/(2*pi),abs(H));grid %滤波器
xlabel('频率/Hz');ylabel('频率响应幅度');title('Butterworth')
f1=filter(bz,az,x2);
figure(2);
subplot(2,1,1); plot(t,x2); %画出滤波前的时域图
title('滤波前的时域波形');
subplot(2,1,2);plot(t,f1); %画出滤波后的时域图
title('滤波后的时域波形');
sound(f1,40000); %播放滤波后的信号
F0=fft(f1,10240);f=fs*(0:255)/10240
figure(3)
y2=fft(x2,10240);
subplot(2,1,1);plot(f,abs(y2(1:256))); %画出滤波前的频谱图
title('滤波前的频谱');xlabel('Hz');ylabel('fuzhi');
subplot(2,1,2);F1=plot(f,abs(F0(1:256))); %画出滤波后的频谱图
title('滤波后的频谱');xlabel('Hz');ylabel('fuzhi');
4、FIR滤波器设计
clear all
fs=22050; %设置采样频率
x1=wavread('C:\Users\acer\Desktop\voice.wav');%读取声音
x1=x1(:,1)
f=fs*(0:1023)/1024; %F=([1:N]-1)*Fs/N; %换算成实际的频率值
t=0:1/22050:(length(x1)-1)/22050; %定义噪声信号
d=[1.5*sin(40*pi*t);]';
x2=x1+d; %加噪声
N=30;
b1=fir1(N,0.3,hamming(N+1)); %设计FIR滤波器
M=128;
f0=0:1/M:1-1/M;
h1=freqz(b1,10,M); %滤波器幅频响应
f1=filter(b1,10,x2); %滤波
y0=fft(x2,40000);
y00=fft(f1,40000);
sound(f1,40000); %播放滤波后的声音
figure(1)
plot(f0,abs(h1)); %滤波器幅频响应图title('滤波器幅频响应图')
figure(2);
subplot(2,1,1); plot(t,x2); %画出滤波前的时域图title('滤波前的时域波形');
subplot(2,1,2);plot(t,f1); %画出滤波后的时域图title('滤波后的时域波形');
F0=fft(f1,10240);f=fs*(0:255)/10240
figure(3)
subplot(211)
plot(f,abs(y0(1:256)));
title('滤波前频谱')
subplot(212)
plot(f,abs(y00(1:256))); %滤波后频谱
title('滤波后频谱')
. .
C:\Users\apple\Desktop\xinhao\最遥远的距离.wav
页脚。