MATLAB实现数字信号处理

合集下载

使用Matlab进行数字信号处理的方法与案例

使用Matlab进行数字信号处理的方法与案例

使用Matlab进行数字信号处理的方法与案例1. 引言数字信号处理是一项广泛应用于通信、音频、图像以及其他相关领域的技术。

Matlab作为一种功能强大的数学计算软件,提供了丰富的工具和函数,使得数字信号处理变得更加简单和高效。

本文将会介绍使用Matlab进行数字信号处理的方法和一些实际应用案例。

2. Matlab数字信号处理工具箱Matlab提供了专门的工具箱来支持数字信号处理。

其中最常用的是信号处理工具箱(Signal Processing Toolbox)和图像处理工具箱(Image Processing Toolbox)。

这些工具箱提供了一系列的函数和算法,用于处理和分析数字信号。

3. 数字信号处理基础知识在开始使用Matlab进行数字信号处理之前,有一些基础知识是必须掌握的。

数字信号处理涉及到信号的采样、离散化、滤波、频谱分析等概念。

了解这些基础知识将有助于我们更好地理解和处理信号。

4. 信号生成与操作在Matlab中,可以使用函数生成各种类型的信号。

例如,使用sawtooth函数可以生成锯齿波信号,使用square函数可以生成方波信号。

此外,Matlab还提供了丰富的信号操作函数,例如加法、乘法、卷积等,方便对信号进行进一步处理。

5. 时域和频域分析时域分析用于分析信号在时间上的变化情况,而频域分析则用于分析信号在频率上的分布。

在Matlab中,可以使用fft函数进行快速傅里叶变换,将信号从时域转换到频域。

通过对频域信号进行分析,可以获得信号的频谱分布,进而得到信号的频率特性。

6. 滤波器设计与应用滤波是数字信号处理中常用的技术,用于去除噪声、增强信号等。

Matlab提供了一系列的滤波器设计函数,例如fir1、butter等,可以根据需要设计各种类型的数字滤波器。

使用这些函数可以实现低通滤波、高通滤波、带通滤波等操作。

7. 音频处理案例音频处理是数字信号处理的一个重要应用领域。

在Matlab中,可以使用audioread函数读取音频文件,使用audiowrite函数写入音频文件。

数字信号处理基础及 matlab 实现

数字信号处理基础及 matlab 实现

数字信号处理基础及 matlab 实现数字信号处理是一门研究如何对数字信号进行处理和分析的学科。

它涉及到信号的获取、数字化、处理和重建等过程。

在数字信号处理中,Matlab是一种常用的工具,它提供了丰富的函数库和工具箱,使得信号处理的实现更加便捷和高效。

数字信号处理的基础概念包括采样、量化、编码和解码等。

采样是指将连续时间信号转换为离散时间信号的过程,即在一定的时间间隔内对信号进行抽样。

采样定理规定了采样频率的最小值,以避免信号失真和混叠现象。

量化是将连续幅度信号转换为离散幅度信号的过程,即将连续信号的幅度近似为有限个离散幅度值。

编码和解码则是将离散幅度信号转换为二进制码字和将二进制码字转换为离散幅度信号的过程。

Matlab提供了丰富的函数和工具箱来实现数字信号处理的基础操作。

例如,通过使用`sample`函数可以对信号进行采样,通过使用`quantize`函数可以对信号进行量化,通过使用`encode`和`decode`函数可以进行编码和解码操作。

此外,Matlab还提供了许多滤波器设计和频谱分析的函数,如`fir1`、`fft`和`spectrogram`等,可以方便地进行数字滤波和频谱分析。

除了基础操作,数字信号处理还涉及到一些高级的算法和技术,如滤波、频谱分析、时频分析和信号重建等。

滤波是对信号进行频率选择性处理的过程,常用的滤波器包括低通滤波器、高通滤波器、带通滤波器和带阻滤波器。

Matlab提供了许多滤波器设计方法,如IIR滤波器设计和FIR滤波器设计等,可以根据需求选择适当的滤波器类型和设计参数。

频谱分析是对信号频谱特性进行分析的过程,常用的频谱分析方法包括快速傅里叶变换(FFT)、功率谱密度估计和频率变换等。

Matlab提供了一系列的频谱分析函数,如`fft`、`pwelch`和`spectrogram`等,可以进行频谱特性的计算和可视化。

时频分析是对信号的时域和频域特性进行联合分析的过程,常用的时频分析方法包括短时傅里叶变换(STFT)、连续小波变换和Wigner-Ville分布等。

数字信号处理及其MATLAB实现

数字信号处理及其MATLAB实现

音频处理
音频压缩
通过降低音频数据的冗余信息,实现音频文件 的压缩,便于存储和传输。
音频增强
去除噪声、提高音质,使音频更加清晰、悦耳 。
语音识别
将语音信号转换为文字,实现人机交互。
图像处理
图像压缩
降低图像数据的冗余信息,实现图像的压缩,便于存储和 传输。
图像增强
改善图像的视觉效果,如锐化、去噪等。
未来发展中,深度学习将在数字 信号处理中发挥越来越重要的作 用,尤其是在人工智能和物联网 等领域的信号处理任务中。
THANKS FOR WATCHING
感谢您的观看
图像识别
对图像进行特征提取和分类,实现目标检测、人脸识别等 功能。
通信系统
调制解调
将数字信号转换为适合 传输的调制信号,以及 将接收到的调制信号还 原为原始数字信号。
信道编码
提高数字信号的抗干扰 能力,降低误码率。
多路复用
提高通信系统的传输效 率,实现多个信号在同 一信道上的传输。
05
数字信号处理的未来发 展
改进的自适应滤波算法将在各种复杂环境中表现出更好的性能,为信号处理领域的发展提供有力支持。
深度学习在信号处理中的应用
深度学习是机器学习领域的一种 新兴技术,通过构建深度神经网 络模型进行学习。在信号处理中 ,深度学习可以用于语音识别、 图像处理、自然语言处理等领域 。
与传统的信号处理方法相比,深 度学习能够自动提取信号中的复 杂特征,并基于这些特征进行分 类或识别。深度学习具有更高的 准确性和鲁棒性,能够处理更加 复杂的信号。
信号以一定的时间间隔 重复。
信号不重复,没有固定 的周期。
信号的频域表示
01
02

Matlab数字信号处理实验报告

Matlab数字信号处理实验报告

Matlab数字信号处理实验报告本次实验使用MATLAB进行数字信号处理操作,目的是熟悉MATLAB中数字信号处理的相关工具箱,并进一步理解数字信号处理的基本概念和算法。

一、实验内容1.信号的生成与显示2.时域分析和频域分析3.滤波器设计4.数字滤波器性能分析二、实验步骤在MATLAB中,使用sawtooth函数生成一个锯齿波信号,并使用plot函数进行时域波形的显示。

代码如下:f = 1000;fs = 40000;t = 0:1/fs:0.01;y = sawtooth(2*pi*f*t);plot(t,y);xlabel('Time (s)');ylabel('Amplitude');title('Sawtooth Wave');时域分析包括波形的观察和参数分析,如幅值、均值、方差等。

频域分析则是对信号进行傅里叶变换,得到其频谱图,包括频率分布和强度分布。

%时域分析amp = max(y)-min(y);mean_y = mean(y);var_y = var(y);设计一个低通滤波器,将高于1kHz的频率成分滤掉。

对滤波后的信号进行时域分析和频域分析,比较滤波前后信号的特征参数和频谱特征,并绘制原始信号、滤波后信号及其频谱图。

subplot(2,2,1);plot(t,y);xlabel('Time (s)');ylabel('Amplitude');title('Sawtooth Wave');subplot(2,2,2);plot(t,y_filt);xlabel('Time (s)');ylabel('Amplitude');title('Sawtooth Wave After Filter');subplot(2,2,3:4);plot(f2,fft_y_filt,'r',f,fft_y,'g');xlabel('Frequency (Hz)');ylabel('Amplitude');title('Sawtooth Wave Spectrum Comparison');legend('After Filter','Before Filter');三、实验结果与分析通过生成并显示一段锯齿波信号,并对其进行时域和频域分析,可以得到该信号的关键信息,如幅值、均值、方差和频率分布特性。

使用Matlab进行数字信号处理的技巧与注意事项

使用Matlab进行数字信号处理的技巧与注意事项

使用Matlab进行数字信号处理的技巧与注意事项1. 引言数字信号处理(Digital Signal Processing,简称DSP)是指通过对离散时间信号进行算法处理以达到某种目的的一种技术。

在现代科技和工程领域中,DSP被广泛应用于通信、图像处理、音频处理、医学诊断、雷达和控制系统等众多领域。

而Matlab作为一种强大的数学计算工具,具备优秀的信号处理和算法库,成为众多工程师和研究人员进行数字信号处理的首选之一。

本文将介绍一些使用Matlab 进行数字信号处理时的技巧与注意事项。

2. 信号处理基础知识在使用Matlab进行数字信号处理之前,有一些基础知识是必备的。

首先是对信号的了解,信号可以分为连续时间信号和离散时间信号。

连续时间信号指的是信号在所有时间上都有定义,而离散时间信号则只在某些时间点上有定义。

数字信号处理主要针对离散时间信号进行。

此外,还需要了解采样定理、变换、滤波器以及噪声等基本概念。

3. 信号与信号处理在进行数字信号处理时,首先需要得到待处理的信号。

Matlab提供了多种方法来生成信号,比如使用波形发生器函数、加载文件以及使用模型等。

根据具体情况选择合适的方法生成待处理信号。

4. 信号的可视化与分析在开始处理信号之前,可以使用Matlab中的图形工具对信号进行可视化和分析。

例如,使用plot函数可以绘制信号的时域波形图,使用spectrogram函数可以绘制信号的频谱图,利用histogram函数可以绘制信号的直方图等。

这些图像可以帮助我们更好地理解信号的特征和性质。

5. 信号的滤波处理滤波是数字信号处理中常用的操作之一,用于去除信号中的噪声、增强信号的频率特征等。

Matlab提供了丰富的滤波器设计函数,包括有限冲激响应(FIR)滤波器和无限冲击响应(IIR)滤波器等。

通过选择合适的滤波器类型、阶数和截止频率等参数,可以实现对信号的滤波处理。

6. 时频分析时频分析用于分析信号在时间和频率上的变化情况,帮助我们更全面地认识信号的特性。

matlab数字信号处理85个实用案例精讲

matlab数字信号处理85个实用案例精讲

matlab数字信号处理85个实用案例精讲MATLAB数字信号处理85个实用案例精讲MATLAB是一种强大的数学软件,广泛应用于数字信号处理领域。

本文将介绍85个实用案例,涵盖了数字信号处理的各个方面,包括信号生成、滤波、频谱分析、时频分析、数字滤波器设计等。

1. 信号生成案例:生成正弦信号在MATLAB中,可以使用sin函数生成正弦信号。

例如,生成频率为100Hz,幅度为1的正弦信号,代码如下:t = 0:0.001:1;f = 100;x = sin(2*pi*f*t);2. 滤波案例:低通滤波低通滤波器可以滤除高频信号,保留低频信号。

在MATLAB中,可以使用fir1函数设计低通滤波器。

例如,设计截止频率为100Hz的低通滤波器,代码如下:fs = 1000;fc = 100;N = 100;b = fir1(N, fc/(fs/2), 'low');3. 频谱分析案例:计算功率谱密度功率谱密度是信号在频域上的能量分布。

在MATLAB中,可以使用pwelch函数计算功率谱密度。

例如,计算频率为100Hz的正弦信号的功率谱密度,代码如下:t = 0:0.001:1;f = 100;x = sin(2*pi*f*t);[Pxx, f] = pwelch(x, [], [], [], 1000);4. 时频分析案例:计算短时傅里叶变换短时傅里叶变换可以分析信号在时间和频率上的变化。

在MATLAB中,可以使用spectrogram函数计算短时傅里叶变换。

例如,计算频率为100Hz的正弦信号的短时傅里叶变换,代码如下:t = 0:0.001:1;f = 100;x = sin(2*pi*f*t);spectrogram(x, [], [], [], 1000, 'yaxis');5. 数字滤波器设计案例:设计巴特沃斯滤波器巴特沃斯滤波器是一种常用的数字滤波器,可以实现平滑滤波和带通滤波。

利用Matlab进行数字信号处理与分析

利用Matlab进行数字信号处理与分析

利用Matlab进行数字信号处理与分析数字信号处理是现代通信、控制系统、生物医学工程等领域中不可或缺的重要技术之一。

Matlab作为一种功能强大的科学计算软件,被广泛应用于数字信号处理与分析领域。

本文将介绍如何利用Matlab进行数字信号处理与分析,包括基本概念、常用工具和实际案例分析。

1. 数字信号处理基础在开始介绍如何利用Matlab进行数字信号处理与分析之前,我们首先需要了解一些基础概念。

数字信号是一种离散的信号,可以通过采样和量化得到。

常见的数字信号包括音频信号、图像信号等。

数字信号处理就是对这些数字信号进行处理和分析的过程,包括滤波、频谱分析、时域分析等内容。

2. Matlab在数字信号处理中的应用Matlab提供了丰富的工具箱和函数,可以方便地进行数字信号处理与分析。

其中,Signal Processing Toolbox是Matlab中专门用于信号处理的工具箱,提供了各种滤波器设计、频谱分析、时域分析等功能。

除此之外,Matlab还提供了FFT函数用于快速傅里叶变换,可以高效地计算信号的频谱信息。

3. 数字信号处理实例分析接下来,我们通过一个实际案例来演示如何利用Matlab进行数字信号处理与分析。

假设我们有一个包含噪声的音频文件,我们希望去除噪声并提取出其中的有效信息。

首先,我们可以使用Matlab读取音频文件,并对其进行可视化:示例代码star:编程语言:matlab[y, Fs] = audioread('noisy_audio.wav');t = (0:length(y)-1)/Fs;plot(t, y);xlabel('Time (s)');ylabel('Amplitude');title('Noisy Audio Signal');示例代码end接下来,我们可以利用滤波器对音频信号进行去噪处理:示例代码star:编程语言:matlabDesign a lowpass filterorder = 8;fc = 4000;[b, a] = butter(order, fc/(Fs/2), 'low');Apply the filter to the noisy audio signaly_filtered = filtfilt(b, a, y);Plot the filtered audio signalplot(t, y_filtered);xlabel('Time (s)');ylabel('Amplitude');title('Filtered Audio Signal');示例代码end通过以上代码,我们成功对音频信号进行了去噪处理,并得到了滤波后的音频信号。

数字信号处理第三版用MATLAB上机实验

数字信号处理第三版用MATLAB上机实验

实验二:时域采样与频域采样一、时域采样1.用MATLAB编程如下:%1时域采样序列分析fs=1000A=444.128; a=222.144; w=222.144; ts=64*10^(-3); fs=1000;T=1/fs;n=0:ts/T-1; xn=A*exp((-a)*n/fs).*sin(w*n/fs); Xk=fft(xn);subplot(3,2,1);stem(n,xn);xlabel('n,fs=1000Hz');ylabel('xn');title('xn');subplot(3,2,2);plot(n,abs(Xk));xlabel('k,fs=1000Hz'); title('|X(k)|');%1时域采样序列分析fs=200A=444.128; a=222.144; w=222.144; ts=64*10^(-3); fs=200;T=1/fs;n=0:ts/T-1; xn=A*exp((-a)*n/fs).*sin(w*n/fs);Xk=fft(xn);subplot(3,2,3);stem(n,xn);xlabel('n,fs=200Hz'); ylabel('xn');title('xn');subplot(3,2,4);plot(n,abs(Xk));xlabel('k,fs=200Hz'); title('|X(k)|');%1时域采样序列分析fs=500A=444.128; a=222.144; w=222.144; ts=64*10^(-3); fs=500;T=1/fs;n=0:ts/T-1; xn=A*exp((-a)*n/fs).*sin(w*n/fs); Xk=fft(xn);subplot(3,2,5);stem(n,xn);xlabel('n,fs=500Hz');ylabel('xn');title('xn');subplot(3,2,6);plot(n,abs(Xk));xlabel('k,fs=500Hz'); title('|X(k)|');2.经调试结果如下图:20406080-200200n,fs=1000Hzxnxn2040608005001000k,fs=1000Hz|X (k)|51015-2000200n,fs=200Hzx nxn510150100200k,fs=200Hz |X(k)|10203040-2000200n,fs=500Hzx nxn102030400500k,fs=500Hz|X (k)|实验结果说明:对时域信号采样频率必须大于等于模拟信号频率的两倍以上,才 能使采样信号的频谱不产生混叠.fs=200Hz 时,采样信号的频谱产生了混叠,fs=500Hz 和fs=1000Hz 时,大于模拟信号频率的两倍以上,采样信号的频谱不产生混叠。

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

《数字信号处理》课程设计实例:声音信号的处理一.摘要:这次课程设计的主要目的是综合运用本课程的理论知识进行频谱分析以及滤波器设计,通过理论推导得出相应结论,并利用MATLAB或者DSP开发系统作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。

通过对声音的采样,将声音采样后的频谱与滤波。

MATLAB全称是Matrix Laboratory,是一种功能强大、效率高、交互性好的数值和可视化计算机高级语言,它将数值分析、矩阵运算、信号处理和图形显示有机地融合为一体,形成了一个极其方便、用户界面友好的操作环境。

经过多年的发展,已经发展成为一种功能全面的软件,几乎可以解决科学计算中所有问题。

MATLAB软件还提供了非常广泛和灵活的用于处理数据集的数组运算功能。

在本次课程设计中,主要通过MATLAB来编程对语音信号处理与滤波,设计滤波器来处理数字信号并对其进行分析。

二.课程设计目的:综合运用本课程的理论知识进行频谱分析以及滤波器设计,通过理论推导得出相应结论,并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。

三.设计容:容:录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法和双线性变换法设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;换一个与你性别相异的人录制同样一段语音容,分析两段容相同的语音信号频谱之间有什么特点;再录制一段同样长时间的背景噪声叠加到你的语音信号中,分析叠加前后信号频谱的变化,设计一个合适的滤波器,能够把该噪声滤除。

四.设计原理:4.1.语音信号的采集熟悉并掌握MATLAB中有关声音(wave)录制、播放、存储和读取的函数,在MATLAB环境中,有关声音的函数有:a:y=wavrecord(N,fs,Dtype);利用系统音频输入设备录音,以fs为采样频率,默认值为11025,即以11025HZ进行采样。

Dtype为采样数据的存储格式,用字符串指定,可以是:‘double’、‘single’、’int16’、‘int8’其中只有int8是采用8位精度进行采样,其它三种都是16位采样结果转换为指定的MATLAB数据;b:wavplay(y,fs);利用系统音频输出设备播放,以fs为播放频率,播放语音信号y;c:wavwrite((y,fs,wavfile);创建音频文件;d:y=wavread(file);读取音频文件;关于声音的函数还有sound();soundsc();等。

4.2滤波器:4.21.IIR滤波器原理冲激响应不变法是使数字滤波器在时域上模拟滤波器,但是它们的缺点是产生频率响应的混叠失真,这是由于从s平面到z平面是多值的映射关系所造成的。

双线性变换法是使数字滤波器的频率响应与模拟滤波器的频率响应相似的一种变换方法。

为了克服多值映射这一缺点,我们首先把整个s平面压缩变换到某一中介的s1平面的一条横带里,再通过变换关系将此横带变换到整个z平面上去,这样就使得s平面与z平面是一一对应的关系,消除了多值变换性,也就消除了频谱混叠现象。

双线性法设计IIR 数字滤波器的步骤: 1)将数字滤波器的频率指标{ kΩ}由Wk =(2/T )*tan(kw ),转换为模拟滤波器的频率指标{kΩ}.2)由模拟滤波器的指标设计H(s).3)由H(s)转换为H(z)1121()()1z H z H s s T z ---==+4.22.FIR 滤波器原理FIR 滤波器与IIR 滤波器特点不同,IIR 滤波器的相位是非线性的,若需线性相位则要采用全通网络进行相位校正。

而有限长单位冲激响应(FIR )数字滤波器就可以做成具有严格的线性相位,同时又可以具有任意的幅度特性。

由于FIR 系统的冲激响应就是其系统函数各次项的系数,所以设计FIR 滤波器的方法之一可以从时域出发,截取有限长的一段冲激响应作为H (z )的系数,冲激响应长度N 就是系统函数H (z )的阶数。

只要N 足够长,截取的方法合理,总能满足频域的要求。

这种时域设计、频域检验的方法一般要反复几个回合,不像IIR DF 设计靠解析公式一次计算成功。

给出的理想滤波器频率响应是,它是w 的周期函数,周期,因此可展开成傅氏级数由傅立叶反变换导出,即1()()2jw jwnd d h n He e dw π=⎰,再将()d h n 与窗函数()w n 相乘就可以得到()h n ,。

、的计算可采用傅氏变换的现成公式和程序,窗函数也是现成的。

但整个设计过程不能一次完成,因为窗口类型和大小的选择没有解析公式可一次算,整个设计可用计算机编程来做。

窗函数的傅式变换W(ej ω)的主瓣决定了H(ej ω)过渡带宽。

W(ej ω)的旁瓣大小和多少决定了H(ej ω)在通带和阻带围波动幅度,常用的几种窗函数有:矩形窗 w(n)=RN(n);Hanning 窗;Hamming窗;Blackmen窗;Kaiser窗。

式中Io(x)为零阶贝塞尔函数。

五.设计步骤:5.1录制女音:利用MATLAB中的函数录制声音。

function nvyin()fs=11025; %采样频率str=[''];disp(str);disp(' 开始录音');str=[''];disp(str);y=wavrecord(3*fs,fs,'double'); %录制声音3秒str=[''];disp(str);disp(' 录音结束');str=[''];disp(str);str=[''];disp(str);disp(' 播放录音');str=[''];disp(str);wavplay(y,fs); %播放录音str=[''];disp(str);disp(' 播放录音结束');str=[''];disp(str);wavwrite(y,fs,'原女音'); %声音的存储5.2采样语音信号并画出时域波形和频谱图读取语音信号,画出其时域波形和频谱图,与截取后的语音信号的时域波形和频谱图比较,观察其变化。

程序如下:[x,fs,bits]=wavread('女音.wav'); %读取声音N=length(x); %计数读取信号的点数t=(1:N)/fs; %信号的时域采样点f0=fs/N; %采样间隔n=1:N/2; %取信号的一半figure(1);subplot(2,2,1); %把画图区域划分为2行2列,指定第一个图plot(t, x); %画出声音采样后的时域波形title('原女音信号的时域波形'); %给图形加注标签说明xlabel('时间/t');ylabel('振幅/A');grid ; %添加网格y=fft(x); %对信号做N点FFT变换k=(n-1)*f0; %频域采样点subplot(2,2,3); %把画图区域划分为2行2列,指定第三个图plot(k,abs(y(n))); %绘制原始语音信号的幅频响应图title('FFT变换后声音的频谱特性'); %给图形加注标签说明xlabel('频率/Hz');ylabel('幅值/A');grid; %添加网格subplot(2,2,4); %把画图区域划分为2行2列,指定第四个图if y~=0 %判断指数是否为0plot(k,20*log10(abs(y(n)))); %画信号频谱的分贝图endxlabel('Hz');ylabel('振幅/分贝');title('FFT变换后声音的频谱特性');grid ; %添加网格%实际发出声音落后录制动作半拍的现象的解决siz=wavread('女音.wav','size');x1=wavread('女音.wav',[3500 32076]); %截取语音信号N=length(x1); %计数读取信号的点数t=(1:N)/fs; %信号的时域采样点f0=fs/N; %采样间隔n=1:N/2; %取信号的一半figure(2);subplot(2,2,1); %把画图区域划分为2行2列,指定第一个图plot(t,x1); %画出声音采样后的时域波形title('截取后女音信号的时域波形'); %给图形加注标签说明xlabel('时间/t');ylabel('振幅/A');grid ; %添加网格y1=fft(x1); %对信号做N点FFT变换subplot(2,2,3); %把画图区域划分为2行2列,指定第三个图k=(n-1)*f0; %频域采样点plot(k,abs(y(n))); %绘制原始语音信号的幅频响应图title('FFT变换后声音的频谱特性'); %给图形加注标签说明xlabel('频率/Hz');ylabel('幅值/A');grid ; %添加网格subplot(2,2,4); %把画图区域划分为1行2列,指定第二个图 if y1~=0 %判断指数是否为0 plot(k,20*log10(abs(y1(n)))); %画信号频谱的分贝图 end xlabel('Hz'); ylabel('振幅/分贝');title('FFT 变换后声音的频谱特性');grid ; %添加网格0123-1-0.500.51原女音信号的时域波形时间/t振幅/A200040006000100200300FFT 变换后声音的频谱特性频率/Hz幅值/A0200040006000-5050Hz振幅/分贝FFT 变换后声音的频谱特性0123-1-0.500.51截取后女音信号的时域波形时间/t振幅/A200040006000100200300FFT 变换后声音的频谱特性频率/Hz幅值/A0200040006000-5050Hz振幅/分贝FFT 变换后声音的频谱特性结果分析:由原女音信号的时域波形可知录取开始时实际发出声音大概落后3500个采样点,我们把前3500点去除即可解决实际发出声音落后录制动作半拍的现象。

相关文档
最新文档