MATLAB地语音信号频谱分析报告

合集下载

基于MATLAB语音信号频谱分析

基于MATLAB语音信号频谱分析

基于MATLAB语音信号频谱分析-语谱图(2012-03-01 15:48:00)转载▼分类:信号处理标签:语音信号语谱图频谱分析matlab杂谈目前已经有成熟的MATLAB程序(参考文献1)进行语音信号的频谱分析,但是该程序中对信号分帧的部分采用的算法有一些复杂,为了更方便大家理解,降低编程的难度,我利用标准的语音工具箱voicebox中的enframe分帧命令替换了原来的程序。

我的程序如下:首先,编写一个频谱分析的函数,其中Winsiz: 定义帧长, 一般应取2 的幂次, 其目的是适合FFT 的要求。

通过对Winsiz的选值可实现宽带频谱或窄带频谱的选择。

Shift: 定义帧移值。

一般此值小于或等于Winsiz。

Shift 值越小, 时域分辨率越高。

Base: 基准电平值。

注意, 此值的设定需根据实际经验, 可以通过在多次运行此程序中给出不同的Base 值, 观察所获得的频谱图的视觉和分辨率效果, 选择一个合适的Base 值, 如果没有特别要求, 可取默认值Base=0。

Mode: 定义显示模式。

1 伪彩色映射, 0 为灰度映射function sogram1(Winsiz,Shift,Base,Mode,Gray);[x,Fs]=wavread('npu.wav');n=fix((length(x)-Winsiz)/Shift)+1;A=zeros(1+Winsiz/2,n);s=enframe(x,Winsiz,Shift);fori=1:nz=fft(s(i,:));z=z(1:(Winsiz/2)+1);z=z.*conj(z);z=10*log10(z);A(:,i)=z;endL0=(A>Base);L1=(A<Base);B=A.*L0 +Base*L1;L=(B- Base)./(max(max(B))- Base);y=[0:Winsiz/2]*Fs/Winsiz;x=[0:n-1]*Shift;if Mode==1colormap('jet' );elsemymode =gray;mymode =mymode (Gray: - 1:1,:);colormap(mymode);endimagesc(x,y,L);axisxy;然后,编写主程序,输入相应的参数,得到语谱图:close all;sogram1(2048,128,0,1,64);文献中得程序得到的语谱图如图一所示:图-1修改后得到语谱图如图2图-2可以明显看出,改进后的程序更加清晰,且能够分析出更加细微的高频成分。

matlab 信号 频谱分析实验报告

matlab 信号 频谱分析实验报告

matlab 信号频谱分析实验报告实验背景:信号频谱分析是一种通过将信号在频域上进行分解和分析的方法,用于研究信号的频率成分和频率特性。

Matlab是一种常用的科学计算软件,拥有强大的信号处理和频谱分析功能。

本实验旨在通过使用Matlab对信号进行频谱分析,探索信号的频率特性。

实验目的:1. 了解信号频谱分析的基本概念和方法;2. 掌握Matlab中信号频谱分析的基本操作;3. 分析不同类型信号的频谱特性。

实验步骤:1. 生成信号:首先,我们需要生成一个待分析的信号。

可以选择不同类型的信号,如正弦信号、方波信号或噪声信号。

在Matlab中,可以使用相关函数生成这些信号。

2. 绘制时域图:使用Matlab绘制生成的信号的时域图。

时域图展示了信号在时间上的变化情况,可以帮助我们对信号有一个直观的了解。

3. 进行频谱分析:使用Matlab中的傅里叶变换函数对信号进行频谱分析。

傅里叶变换可以将信号从时域转换到频域,得到信号的频谱图。

频谱图展示了信号在不同频率上的能量分布情况。

4. 绘制频谱图:使用Matlab绘制信号的频谱图。

频谱图可以帮助我们观察信号的频率成分和频率特性。

可以选择使用不同的频谱分析方法,如快速傅里叶变换(FFT)或功率谱密度估计(PSD)。

5. 分析频谱特性:观察频谱图,分析信号的频率成分和频率特性。

可以计算信号的主要频率分量,如峰值频率或频率范围。

还可以计算信号的能量分布情况,了解信号在不同频率上的能量分布情况。

实验结果与讨论:通过对不同类型信号进行频谱分析实验,我们可以得到以下结果和讨论:1. 正弦信号的频谱特性:正弦信号在频谱上只有一个频率成分,即信号的频率。

通过频谱分析,我们可以准确地确定正弦信号的频率。

2. 方波信号的频谱特性:方波信号在频谱上存在多个频率成分,主要包括基波频率和谐波频率。

通过频谱分析,我们可以观察到方波信号频谱上的多个峰值。

3. 噪声信号的频谱特性:噪声信号在频谱上呈现较为均匀的能量分布,没有明显的峰值。

基于MATLAB的语音信号分析与处理的实验报告

基于MATLAB的语音信号分析与处理的实验报告

基于MA TLAB的语音信号分析与处理的实验报告数字信号课程设计,屌丝们有福了一.实验目的数字信号课程设计,屌丝们有福了综合计运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应的结论,培养发现问题、分析问题和解决问题的能力。

并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。

此外,还系统的学习和实现对语音信号处理的整体过程,从语音信号的采集到分析、处理、频谱分析、显示和储存。

二.实验的基本要求数字信号课程设计,屌丝们有福了1.进一步学习和巩固MATLAB的使用,掌握MATLAB的程序设计方法。

2.掌握在windows环境下语音信号采集的方法。

3.掌握数字信号处理的基本概念、基本理论、原理和基本方法。

4.掌握MATLAB设计FIR和IIR数字滤波器的方法。

5.学会用MATLAB对信号进行分析和处理。

三.实验内容录制一段自己的语音信号,(语音信号声音可以理解成由振幅和相位随时间缓慢变化的正弦波构成。

人的听觉对声音的感觉特征主要包含在振幅信息中,相位信息一般不起作用。

在研究声音的性质时,往往把时域信息(波形图)变换得到它的频域信息(频谱),通过研究频谱和与频谱相关联的特征获得声音的特性。

)并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法或者双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号发生的变化;回放语音信号。

数字信号课程设计,屌丝们有福了四.实验的实现(1).语音信号的采集采用windows下的录音机或者手机、其他的软件,录制一段自己的话音,时间控制在一分钟左右;然后在MATLAB软件平台下,利用函数wavread对自己的话音进行采样,记住采样的频率和采样的点数。

matlab对语音信号的频谱分析及滤波资料

matlab对语音信号的频谱分析及滤波资料

一.综合实验题目应用MatLab对语音信号进行频谱分析及滤波二.主要内容录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法和双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;课程设计应完成的工作:1、语音信号的采集;2、语音信号的频谱分析;3、数字滤波器的设计;4、对语音信号进行滤波处理;5、对滤波前后的语音信号频谱进行对比分析;三.具体要求1、学生能够根据设计内容积极主动查找相关资料;2、滤波器的性能指标可以根据实际情况作调整;3、对设计结果进行独立思考和分析;4、设计完成后,要提交相关的文档;1)课程设计报告书(纸质和电子版各一份,具体格式参照学校课程设计管理规定),报告内容要涵盖设计题目、设计任务、详细的设计过程、原理说明、频谱图的分析、调试总结、心得体会、参考文献(在报告中参考文献要做标注,不少于5篇)。

2)可运行的源程序代码(电子版)四.进度安排在基本要求的基础上,学生可根据个人对该课程设计的理解,添加一些新的内容。

五.成绩评定(1)平时成绩:无故旷课一次,平时成绩减半;无故旷课两次平时成绩为0分,无故旷课三次总成绩为0分。

迟到15分钟按旷课处理(2)设计成绩:按照实际的设计过程及最终的实现结果给出相应的成绩。

(3)设计报告成绩:按照提交报告的质量给出相应的成绩。

课程设计成绩=平时成绩(30%)+设计成绩(30%)+设计报告成绩(40%)目录第一节实验任务 (3)第二节实验原理 (3)2.1 采样频率、位数及采样定理 (3)2.2 时域信号的FFT分析 (4)2.3 IIR数字滤波器设计原理 (4)2.4 FIR数字滤波器设计原理 (4)第三节实验过程 (5)3.1原始语音信号采样后的时域、频域分析 (5)3.2采样后信号的FFT变换分析 (7)3.3双线性变换法设计IIR数字滤波器 (8)3.4窗函数法设计FIR数字滤波器 (11)第四节心得体会 (14)第五节参考文献 (15)应用MatLab对语音信号进行频谱分析及滤波第一节实验任务录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法和双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号。

matlab 信号 频谱分析实验报告

matlab 信号 频谱分析实验报告

matlab 信号频谱分析实验报告《Matlab 信号频谱分析实验报告》实验目的:通过Matlab软件对信号进行频谱分析,了解信号的频谱特性,并掌握频谱分析的基本方法。

实验原理:信号的频谱分析是指将信号在频域上进行分析,得到信号的频谱特性。

频谱分析可以帮助我们了解信号的频率成分,频率分布情况,以及信号的频谱密度等信息。

在Matlab中,可以使用fft函数对信号进行频谱分析,得到信号的频谱图像。

实验步骤:1. 生成信号:首先在Matlab中生成一个信号,可以是正弦信号、方波信号或者任意复杂的信号。

2. 采样信号:对生成的信号进行采样,得到离散的信号序列。

3. 频谱分析:使用fft函数对采样的信号进行频谱分析,得到信号的频谱特性。

4. 绘制频谱图像:将频谱分析得到的结果绘制成频谱图像,观察信号的频谱分布情况。

实验结果分析:通过频谱分析,我们可以得到信号的频谱图像,从图像中可以清晰地看出信号的频率成分,频率分布情况,以及信号的频谱密度等信息。

通过对信号频谱图像的观察和分析,可以更好地了解信号的频谱特性,为后续的信号处理和分析提供参考。

实验结论:通过本次实验,我们成功使用Matlab对信号进行了频谱分析,得到了信号的频谱特性,并且掌握了频谱分析的基本方法。

频谱分析是信号处理和分析的重要工具,对于理解信号的频率特性和频率分布情况具有重要意义。

希望通过本次实验,能够对信号的频谱分析有更深入的了解,并且能够在实际工程中应用到相关领域。

通过本次实验,我们对Matlab信号频谱分析有了更深入的了解,对信号处理和分析有了更深入的认识,也为我们今后的学习和工作提供了更多的帮助。

希望通过不断地实践和学习,能够更加深入地掌握信号频谱分析的相关知识,为实际工程应用提供更多的帮助。

利用MATLAB软件对音频信号进行频谱分析与处理

利用MATLAB软件对音频信号进行频谱分析与处理

利用MATLAB软件对音频信号进行频谱分析与处理一、简介频谱分析是通过对信号的频率成分进行分析,它允许我们了解信号的特性,计算信号的能量分布,同时还可以用来定位造成干扰的频率组件,以及检测和分析信号的变化。

MATLAB是一种编程语言和科学计算软件,它可以非常便捷地实现对音频信号的频谱分析和处理。

二、实现方法1.导入音频信号在使用MATLAB进行频谱分析时,首先需要先将音频信号导入MATLAB环境中。

可以使用audioplayer和audioread函数来完成这一步骤,示例代码如下:[audioData, fs] = audioread(‘AudioFile.wav’);player = audioplayer(audioData, fs);play(player);其中audioData表示从wav文件中读取的音频数据,fs表示采样率,player表示存储audioData和fs的audioplayer实例,play函数可以播放音频文件。

2.信号预处理针对所记录的音频信号,需要进行一些基本的信号处理操作,包括去噪、均衡、时域平均等。

去噪可以用MATLAB内置的函数完成,例如:audioData_NoiseRemoved = denoise(audioData,‘meanspectrum’);均衡是指将频谱的一些区域调整到更好的水平,可以用equalizer函数实现:audioData_Equalized = equalizer(audioData, ‘bandwidth’, 0.2);时域平均则可以使用conv函数实现:audioData_Meaned = conv(audioData, [1/N 1/N ... 1/N]);3.频谱分析频谱分析的主要工作是计算信号的谱密度,也就是每一个频率分量的能量。

应用Matlab对语音信号进行频谱分析及滤波

应用Matlab对语音信号进行频谱分析及滤波

数字信号处理课程设计报告书应用Matlab对语音信号进行频谱分析及滤波题目:应用Matlab 对语音信号进行频谱分析及滤波一、课程设计内容录制一段个人自己的语音信号,画出此语音信号的时域波形和频谱图;给定滤波器的性能指标,设计IIR 和FIR 滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;最后,设计一个信号处理系统界面。

二、课程设计目的1、进一步巩固数字信号处理的基本概念、理论、分析方法和实现方法;2、增强应用Mat lab 语言编写数字信号处理的应用程序及分析、解决实际问题的能力。

三、设计内容及步骤1、语音信号的采集利用matlab 的内置函数,设计一个录音器,录制一段自己的话音,时间在1s 内。

然后在Matlab 软件平台下,利用函数w avread 提取录制的语音信号,记住采样频率和采样点数。

说明:由于录音程序录制后用w avwrite 和w avrec ord 时一直出现错误,无法运行,在这里用[filen ame,filepath]=uig etfile('.w av','Open w av file'); [y,fs,nbits]=w avread([filepath,filen ame]);格式打开本地一个已录制好的w av 文件进行分析。

2 、语音信号的频谱分析首先画出语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特性,从而加深对频谱特性的理解。

3、设计数字滤波器和画出其频率响应用窗函数法和双线性变换法设计下面要求的3种滤波器。

(1)低通滤波器性能指标通带截止频率c f =1000Hz ,阻带截止频率st f =1200 Hz ,通带最大衰减1δ=1dB ,阻带最小衰减2δ=100d B 。

(2)高通滤波器性能指标通带截止频率c f =5000Hz ,阻带截止频率st f =3000 通带衰减1δ≤1dB ,阻带衰减2δ≥100d B 。

matlab 信号 频谱分析实验报告

matlab 信号 频谱分析实验报告

MATLAB 信号频谱分析实验报告实验目的本实验旨在使用MATLAB软件进行信号频谱分析,包括对信号的时域分析和频域分析,以及频谱图的绘制和解读。

实验步骤1. 准备工作在开始实验之前,首先需要安装MATLAB软件,并启动软件。

2. 信号生成在MATLAB的命令窗口中,通过使用信号发生器生成一个信号。

可以选择使用正弦波、方波、三角波等不同类型的信号进行频谱分析。

3. 信号时域分析使用MATLAB的时域分析函数,如plot函数,绘制生成的信号的时域波形图。

plot(t, x);title('信号的时域波形图');xlabel('时间');ylabel('幅值');其中,t表示时间轴上的时间点,x表示生成的信号。

4. 信号频域分析使用MATLAB的频域分析函数,如fft函数,将时域信号转换为频域信号。

X = fft(x);可以通过计算得到信号的频率分量f和幅度谱A。

L = length(x);f = Fs*(0:(L/2))/L;A = abs(X/L);A = A(1:L/2+1);其中,Fs表示信号的采样率。

5. 绘制频谱图使用MATLAB的绘图函数,如plot函数,将频域信号的频谱绘制成图表。

plot(f, A);title('信号的频谱图');xlabel('频率');ylabel('幅值');6. 频谱图解读通过观察频谱图,可以分析信号在不同频率上的能量分布情况。

高幅度的频率分量表示信号在该频率上具有较大的能量,低幅度的频率分量表示信号在该频率上具有较小的能量。

7. 实验总结通过本次实验,我们学习了如何使用MATLAB进行信号的时域分析和频域分析。

时域分析可以帮助我们观察信号在时域上的变化情况,频域分析可以帮助我们了解信号在不同频率上的能量分布情况。

通过绘制频谱图,我们可以直观地观察信号的频谱特征,并进行进一步的信号分析和处理。

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

实用标准文档大全0123456-1-0.50.51幅值时间(s)信号波形00.20.40.60.81 1.2 1.4 1.6 1.82200040006000信号频谱数字角频率幅度0123-1-0.50.51幅度时间(s)2:1减抽样信号波形00.51 1.521000200030002:1减抽样信号频谱数字角频率w幅度00.51 1.5-1-0.50.51幅度时间(s)5:1减抽样信号波形00.51 1.5250010005:1减抽样信号频谱数字角频率w幅度实验一[y,fs,bit]=wavread('I do')%读取音乐片段,fs是采样率size(y)%求矩阵的行数和列数y1=y(:,1);%对信号进行分列处理n1=length(y1);%取y的长度t1=(0:n1-1)/fs;%设置波形图横坐标figuresubplot(2,1,1);plot(t1,y1); %画出时域波形图ylabel('幅值');xlabel('时间(s)');title('信号波形');subplot(2,1,2);Y1=fft(y1);w1=2/n1*(0:n1-1);%设置角频率plot(w1,abs(Y1));%画频谱图title('信号频谱');xlabel('数字角频率');ylabel('幅度');grid on;sound(y,fs);实验二[y,fs,bit]=wavread('I do')y1=y(:,1);n1=length(y1);D=2;%设置抽样间隔y2=y1(1:D:n1);%减抽样n2=length(y2);%减抽样后信号长度t2=(0:n2-1)/fs;%设置横坐标figuresubplot(2,2,1);plot(t2,y2); %绘制减抽样信号波形图ylabel('幅度');xlabel('时间(s)');title('2:1减抽样信号波形');Y2=fft(y2); %对y2进行n2点fft谱分析w2=2/n2*[0:n2-1];subplot(2,2,3);plot(w2,abs(Y2));%绘制减抽样信号频谱图title('2:1减抽样信号频谱');xlabel('数字角频率w');ylabel('幅度');grid on;sound(y2,fs/D);D=5;%设置抽样间隔y3=y1(1:D:n1);%减抽样n3=length(y3);%减抽样后信号长度t3=(0:n3-1)/fs;%设置横坐标subplot(2,2,2);plot(t3,y3); %绘制减抽样信号波形图ylabel('幅度');xlabel('时间(s)');title('5:1减抽样信号波形');Y3=fft(y3); %对y2进行n2点fft谱分析w3=2/n3*[0:n3-1];subplot(2,2,4);plot(w3,abs(Y3));%绘制减抽样信号频谱图title('5:1减抽样信号频谱');xlabel('数字角频率w');ylabel('幅度');grid on;sound(y3,fs/D)实验三[y,fs,bit]=wavread('I do')y1=y(:,1);n1=length(y1);n3=0:n1-1;b1=cos(0.75*pi*n3);%设置调制信号b2=cos(0.5*pi*n3);c1=b1'.*y1;%对原信号进行调制c2=b2'.*y1;lc1=length(c1);t=(0:lc1-1)/fs;figure %用载波对信号进行调制,并对其做fft变换subplot(2,2,1) %获取频谱,从图中可以观察到,调制后的plot(t,c1); %信号频谱发生搬移xlabel('时间(s)');ylabel('幅度');title('调制后信号');subplot(2,2,2) %获取频谱,从图中可以观察到,调制后的plot(t,c2); %信号频谱发生搬移xlabel('时间(s)');ylabel('幅度');title('调制后信号');510-1-0.500.51音频时间幅度120200040006000频谱频率/pi幅度510-1-0.500.51AM 调制音频信号时间幅度12100020003000AM 调制频谱频率/pi幅度24x 105-1-0.500.51时间幅度AM 解调音频信号012100020003000AM 解调频谱频率/pi幅度246-1-0.500.51时间(s)幅度调制后信号246-1-0.500.51时间(s)幅度调制后信号00.51 1.52100020003000数字角频率w幅度调制后信号的频谱(高频率调制)0.51 1.52100020003000数字角频率w幅度调制后信号的频谱(低频率调制)w1=2/lc1*[0:lc1-1];%设置角频率W C1=fft(c1); C2=fft(c2); subplot(2,2,3) plot(w1,abs(C1));xlabel('数字角频率w');ylabel('幅度'); title('调制后信号的频谱(高频率调制)');grid on ; subplot(2,2,4) plot(w1,abs(C2)); xlabel('数字角频率w');ylabel('幅度');title('调制后信号的频谱(低频率调制)');grid on ; sound(c1,fs);实验四clear all ;cla;close all[a,fs,bit]=wavread('I do'); y1=a(:,1);%去单列数据进行分析 f1=fft(y1); n=length(f1); tn=(0:n-1)/fs; w=2/n*[0:n-1]; %sound(y1,fs); figure(1)subplot(2,3,1);plot(tn,y1); grid on ;title('音频'); xlabel('时间'); ylabel('幅度');subplot(2,3,4);plot(w,abs(f1)); grid on ;title('频谱');xlabel('频率/pi'); ylabel('幅度'); t=[0:n-1];y2=cos(pi*1/2*t);%载波函数 y3=y1.*y2';%信号调制ty3=(0:length(y3)-1)/fs;subplot(2,3,2);plot(ty3,y3);%绘制调制后信号波形图 grid on ;title('AM 调制音频信号');0.511.522.533.500.10.20.30.40.50.60.70.80.91wH低通滤波器波形xlabel('时间'); ylabel('幅度'); f3=fft(y3); n2=length(f3); w2=2/n2*[0:n2-1];subplot(2,3,5);plot(w2,abs(f3));%绘制调制后信号频谱图 grid on ;title('AM 调制频谱'); xlabel('频率/pi'); ylabel('幅度'); %解调后信号n3=length(y3) t2=0:n3-1;y4=cos(pi*1/2*t2)y5=y3.*y4';%解调后的信号函数 subplot(2,3,3);plot(t2,y5); grid on ;xlabel('时间'); ylabel('幅度');title('AM 解调音频信号'); f5=fft(y5);w3=2/n3*[0:n3-1];subplot(2,3,6);plot(w3,abs(f5));%绘制解调后信号频谱图 grid on ;title('AM 解调频谱'); xlabel('频率/pi'); ylabel('幅度');%设计巴特沃斯滤波器进行滤波去噪[N1,wc1]=buttord(0.05,0.17,1,15);%确定低通滤波器的阶数和截止频率; [b,a]=butter(N1,wc1);%确定低通滤波器分子分母系数[H,W]=freqz(b,a); figure(2)plot(W,abs(H));%低通滤波器波形 xlabel('w'); ylabel('H');title('低通滤波器波形'); m=filter(b,a,y5); wavplay(m,fs);lm=length(m);%滤波后信号长度 tm=(0:lm-1)/fs;%设置横坐标 wm=2/lm*[0:lm-1]; M=fft(m); figure(3)subplot(2,1,1);plot(tm,m);2468x 10-4-0.100.10.20.3矩形窗时域00.51 1.520.511.5矩形窗频域2468x 10-4-0.100.10.20.3布莱克曼窗时域00.51 1.520.511.5布莱克曼窗频域0123456-0.50.5滤波后波形t幅度00.20.40.60.811.2 1.4 1.6 1.82100020003000滤波后波形频谱图w/pi幅度grid on ;title('滤波后波形'); xlabel('t');ylabel('幅度');subplot(2,1,2);plot(wm,abs(M)); title('滤波后波形频谱图'); xlabel('w/pi');ylabel('幅度'); %矩形窗和布莱克曼窗N=33;wc=0.3*pi;%基于经验的指标,其中N 为理想低通滤波器阶数,wc 为截止频率 hd=ideal(N,wc);%调用理想低通滤波器函数 w1=boxcar(N);%产生各种窗函数 w2=blackman(N);h1=hd.*w1';%加窗设计各种FIR 滤波器 h2=hd.*w2'; th1=(0:32)/fs; th2=(0:32)/fs; M=21184;fh1=fft(h1,M);%矩形窗频谱函数 w=2/M*[0:M-1];fh2=fft(h2,M);%布莱克曼窗频谱函数 figure(4)subplot(2,2,1);plot(th1,h1) title('矩形窗时域');subplot(2,2,2);plot(w,abs(fh1)); title('矩形窗频域');subplot(2,2,3);plot(th2,h2); title('布莱克曼窗时域');subplot(2,2,4);plot(w,abs(fh2)); title('布莱克曼窗频域') %解调后信号n3=length(y3) t2=0:n3-1;y4=cos(pi*1/2*t2)y5=y3.*y4';%调制后的信号函数 figure%滤波处理y6=conv(h1,y5);%用矩形窗对调制后信号进行滤波 f6=fft(y6); n4=length(f6);ty6=(0:n4-1)/fs;w3=2/n4*[0:n4-1];%sound(y6,fs); figure(5)0100200-0.100.10.20.3时间(s )幅值三余弦信号音谱0120200040006000W噪声频谱12200040006000W加噪信号频谱0510-2-1012时间(s )幅值加噪信号音谱0510-1-0.500.51t(s)信号幅值去噪后信号波形012200040006000w/pi幅度kIIR 滤波器滤波后信号频谱246-0.500.51矩形窗滤波后音频00.51 1.52100020003000矩形窗滤波后频谱246-0.50.5布莱克曼窗滤波后音频00.51 1.52100020003000布莱克曼窗滤波后频谱subplot(2,2,1);plot(ty6,y6); title('矩形窗滤波后音频')subplot(2,2,2);plot(w3,abs(f6));title('矩形窗滤波后频谱')y7=conv(h2,y5);%用布莱克曼窗进行滤波f7=fft(y7);n5=length(f7); ty7=(0:n5-1)/fs; w4=2/n5*[0:n5-1]; %sound(y7,fs);subplot(2,2,3);plot(ty7,y7); title('布莱克曼窗滤波后音频')subplot(2,2,4);plot(w4,abs(f7)); title('布莱克曼窗滤波后频谱')实验五clc;clear;close;[y,fs,bit]=wavread('I do'); y0=y(:,1); l=length(y0);%加三余弦混合噪声 t0=(0:l-1)/fs;d0=[0.05*cos(2*pi*3000*t0)]'; t1=(0:l-1)/fs;d1=[0.05*cos(2*pi*5000*t1)]'; t2=(0:l-1)/fs;d2=[0.05*cos(2*pi*8000*t2)]'; noise=d2+d1+d0; y1=y0+noise; %sound(y1,fs);a=length(noise);%绘制三余弦噪声音频图 wa=2/a*[0:a-1];Noise=fft(noise); figure(1) subplot(2,3,4);plot(noise(1:150));xlabel('时间(s )') ylabel('幅值')title('三余弦信号音谱')subplot(2,3,1);%绘制三余弦噪声频谱图 plot(wa,abs(Noise)); grid on ; xlabel('W') title('噪声频谱')w0=2/l*[0:l-1];%绘制加噪信号音频Y1=fft(y1);subplot(2,3,5)plot(w0,abs(Y1));grid on;xlabel('W')title('加噪信号频谱')ly1=length(y1);ty1=(0:ly1-1)/fs;subplot(2,3,2);plot(ty1,y1);xlabel('时间(s)')ylabel('幅值')title('加噪信号音谱') m=rand(l,1)-0.5; %产生幅度为0.5的随机信号lm=length(m);y2=m+y0;%将噪声信号与原声音信号叠加wm=2/lm*[0:lm-1];M=fft(m);figure(2)subplot(2,2,3);plot(m(1:150))xlabel('时间(s)')ylabel('幅值')title('白噪信号音谱')subplot(2,2,1);plot(wm,abs(M));grid on;xlabel('W')title('噪声频谱')l=length(y2);ty2=(0:l-1)/fs;w=2/l*[0:l-1];Y2=fft(y2);subplot(2,2,4)plot(w,abs(Y2));grid on;xlabel('W')title('加噪信号频谱')subplot(2,2,2);plot(ty2,y2);xlabel('时间(s)')ylabel('加噪信号幅值')title('加噪信号音谱');123456-1-0.500.51音乐信号的波形ty 100.20.40.60.81 1.2 1.4 1.6 1.82200040006000音乐信号的频谱wf 1%设计滤波器进行滤波去噪[N1,wc1]=buttord(0.04,0.17,1,30);%确定低通滤波器的阶数和截止频率; [b,a]=butter(N1,wc1); %确定低通滤波器分子分母系数 m=filter(b,a,y1);%用滤波器滤除三余弦噪声 sound(m,fs);lm=length(m);%滤波后信号长度 tm=(0:lm-1)/fs;%设置横坐标 figure(1);subplot(2,3,3);plot(tm,m);%绘制滤波后的波形 xlabel('t(s)')ylabel('信号幅值')title('去噪后信号波形');k=fft(m); %滤波后的波形做离散傅里叶变换 w=2*[0:length(k)-1]/length(k); subplot(2,3,6) plot(w,abs(k)); xlabel('w/pi')ylabel('幅度k')title('IIR 滤波器滤波后信号频谱');实验六.一clear all ;clc[y,fs,bit]=wavread('I do'); size(y)%查看读取信号的声道类型 y1=y(: ,1);%对信号进行分列处理 n=length(y1);%求信号y1的的长度 t1=(0:n-1)/fs;f1=fft(y1);%对y1进行fft 谱分析w=2/n*[0:n-1];%w 为连续频谱的数字角频率横坐标 %sound(y,fs);%播放音乐信号figure(1)subplot(2,1,1);plot(t1,y1); title('音乐信号的波形'); xlabel('t'); ylabel('y1');subplot(2,1,2);plot(w,abs(f1)); title('音乐信号的频谱'); xlabel('w'); ylabel('f1');%用IIR 滤波器滤波(低)[n2,wc2]=buttord(0.15,0.20,1,15);%确定低通滤波器的阶数和截止频率; [B2,A2]=butter(n2,wc2); %确定低通滤波器分子分母系数 [H,W]=freqz(B2,A2);2400.511.5wH低通滤波器波形0510-2-101n信号幅值低通滤波后波形012200040006000数字角频率w 幅度低通滤波后频谱02400.511.5w1H 1高通滤波器波形0510-2-112n 信号幅值m高通滤波后波形012200400600数字角频率w幅度kIIR 高通滤波后频谱figure(2)subplot(2,3,1);plot(W,abs(H));%低通滤波器波形 xlabel('w') ylabel('H')title('低通滤波器波形'); m2=filter(B2,A2,y1);%滤波 lm2=length(m2); tm2=(0:lm2-1)/fs; subplot(2,3,2) plot(tm2,m2); xlabel('n')ylabel('信号幅值')title('低通滤波后波形');k2=fft(m2);%滤波后的波形做离散傅里叶变换l2=length(k2); w2=2*[0:l2-1]/l2;subplot(2,3,3);plot(w2,abs(k2));xlabel('数字角频率w') ylabel('幅度') title('低通滤波后频谱'); %解调滤波后的频谱 %用IIR 滤波器滤波(高)[N,WC]=buttord(0.15,0.20,1,15);%确定高通滤波器的阶数和截止频率; [B,A]=butter(N,WC,'high'); %确定高通滤波器分子分母系数 [H1,W1]=freqz(B,A); subplot(2,3,4);plot(W1,abs(H1));%高通滤波器波形 xlabel('w1') ylabel('H1')title('高通滤波器波形'); m=filter(B,A,y1); %滤波 lm=length(m); tm=(0:lm-1)/fs; subplot(2,3,5); plot(tm,m); xlabel('n')ylabel('信号幅值m')title('高通滤波后波形'); k=fft(m);l2=length(k); w2=2*[0:l2-1]/l2; subplot(2,3,6); plot(w2,abs(k));123456-0.4-0.200.20.4音乐信号2的波形ty 200.20.40.60.81 1.2 1.4 1.6 1.82100020003000音乐信号2的频谱wf 2123456-1-0.500.51音乐信号1的波形ty 100.20.40.60.81 1.2 1.4 1.6 1.82200040006000%音乐信号1的频谱wf 1xlabel('数字角频率w') ylabel('幅度k')title('IIR 高通滤波后频谱');实验六.二clear all ;clc[a,fs1,bit1]=wavread('I do'); [b,fs2,bit2]=wavread('风声'); size(b)%查看读取信号的声道类型 y2=b(:,1);%对信号进行分列处理 n2=length(y2);%求信号y2的的长度 t2=(0:n2-1)/fs2; f2=fft(y2);w2=2/n2*[0:n2-1]; %wavplay(y2,fs2);size(a)%查看读取信号的声道类型 y1=a(: ,1);%对信号进行分列处理 n1=length(y1); t1=(0:n1-1)/fs1; f1=fft(y1);w1=2/n1*[0:n1-1];%w 为连续频谱的数字角频率横坐标 %wavplay(y1,fs1);Fy1=abs(f1);%音乐1的幅度 Ay1=angle(f1);%音乐1的相位 Fy2=abs(f2);%音乐2的幅度 Ay2=angle(f2);%音乐2相位F1=Fy1.*exp(j*Ay2);%音乐1的幅度与音乐2的相位交叉组合 X1=ifft(F1); n3=length(X1);tx1=(0:(n3-1))/fs1;w3=2/n3*[0:n3-1];%wavplay(real(X1),fs1); F2=Fy2.*exp(j*Ay1);%幅度相位交叉组合 X2=ifft(F2); n4=length(X2);tx2=(0:(n4-1))/fs2; w4=2/n4*[0:n4-1]%wavplay(real(X2),fs2); figure(1)subplot(2,1,1);plot(t1,y1);%绘制信号1波形title('音乐信号1的波形'); xlabel('t');ylabel('y1'); subplot(2,1,2);0123456-0.500.5音乐2的幅度与音乐1的相位交叉组合后的波形tX 200.20.40.60.811.2 1.4 1.6 1.820100020003000音乐2的幅度与音乐1的相位交叉组合后的频谱w F20123456-2-1012音乐1的幅度与音乐2的相位交叉组合后的波形t X 100.20.40.60.81 1.2 1.4 1.6 1.820200040006000音乐1的幅度与音乐2的相位交叉组合后的频谱w F 1plot(w1,abs(f1));%绘制音乐信号1的频谱 title('%音乐信号1的频谱'); xlabel('w');ylabel('f1');figure(2) subplot(2,1,1);plot(t2,y2); title('音乐信号2的波形');xlabel('t');ylabel('y2');subplot(2,1,2);plot(w2,abs(f2));title('音乐信号2的频谱');xlabel('w');ylabel('f2');figure(3)subplot(2,1,1);plot(tx1,X1); title('音乐1的幅度与音乐2的相位交叉组合后的波形'); xlabel('t');ylabel('X1');subplot(2,1,2);plot(w3,abs(F1));title('音乐1的幅度与音乐2的相位交叉组合后的频谱'); xlabel('w');ylabel('F1');figure(4)subplot(2,1,1);plot(tx2,X2);title('音乐2的幅度与音乐1的相位交叉组合后的波形'); xlabel('t');ylabel('X2');subplot(2,1,2);plot(w4,abs(F2));title('音乐2的幅度与音乐1的相位交叉组合后的频谱'); xlabel('w');ylabel('F2');。

相关文档
最新文档