重庆大学数字信号处理大作业报告

合集下载

重庆大学数字信号处理大作业报告

重庆大学数字信号处理大作业报告

数字信号处理课外实验设计——音频采样和频谱混叠课程名称:数字信号处理院系:通信工程学院专业:通信01班年级: 2013级*名:***学号: ********指导教师:**实验时间: 2015.11.26重庆大学一、实验目的:1、熟悉MATLAB语言的基本用法;2、掌握MATLAB语言中音频数据与信息的读取与播放方法;3、掌握在MATLAB中设计滤波器的方法;4、掌握MATLAB语言中信号频谱的绘制方法。

5、对采样定理进行初步验证,体会频谱混叠现象,并大致确定音频信号的最低采样频率。

二、实验原理:现实当中遇到的绝大多数信号都是连续的,即所谓的连续信号。

如语音、图像、温度压力电流等都是模拟信号。

要利用数字信号处理技术实现对这些信号的处理,需要借助对这些信号的处理,需要借助A/D转换,先将模拟信号转变为数字信号后才能利用数字技术对其进行加工处理。

因此,采样是从连续到离散的桥梁。

如果选择的采样频率太低,及fs<2fm的采样频率太低,或者说是信号的最高频率fm 超过fs/2,则采样后的频谱按照采样率周期延拓时,各周期延拓分量产生频谱的交叠,这种现象叫频谱混叠。

三、实验内容:本实验通过MATLAB软件,完成以下四项任务1、用fs=44100HZ采集一段音乐。

2、改变采样频率,用fs=5512HZ采集一段音乐,体会混叠现象。

3、录制一段自己的声音,试验当fs=?时,发生混叠。

4、(选作)在噪声环境中录制一段自己的声音,试采用一种方法将噪声尽可能地消除。

四、实验步骤:仿真程序DSP_homework1.m:clc;clear;close all;%% 44100Hz和5512Hz采集音频文件[FileName,PathName] = uigetfile('*.wav','选择待处理音频文件');%获取处理音频文件位置path1=fullfile(PathName,FileName);[x,Fs1]=audioread(path1);%默认采样频率Fs为44100Hzx1=x(:,1);%1声道数据x2=x(:,2);%2声道数据%y1=x1(1:800000);%y1=x1(1:8:end);Fs2=5512;y1=resample(x1,5512,44100); %信号降采样处理,采样从44100Hz降到5512Hzy2=resample(x2,5512,44100);y=[y1 y2];t1=0:1/Fs1:(length(x1)-1)/Fs1;%取时域横轴tt2=0:1/Fs2:(length(y1)-1)/Fs2;N =5096; %fft点数,以频谱分辨率为10Hz,信号最高频率40kHz求出记录最小点数f=10^3;%取频率轴单位为KHzX1=fft(x1,N);X1=10*log(abs(fftshift(X1)));%用对数表示44100Hz音频信号的频谱Y1=fft(y1,N);Y1=10*log(abs(fftshift(Y1)));%用对数表示5512Hz音频信号的频谱PathName1=uigetdir(strcat(matlabroot,'\work' ),'加噪后音频文件另存为');FileName1='music_5512.wav'path2=fullfile(PathName1,FileName1);audiowrite(path2,y,Fs2);%生成5512Hz采样的wav格式音频文件,试听音乐效果%% 绘图figure(1);%44100Hz采集音频信号时域图、频谱图subplot(2,1,1);plot(t1,x1,'r');axis([0 95 -1 1]);%设置坐标轴范围set(gca,'XTick',0:5:95),grid on;%设置x坐标轴刻度,绘制方格线set(gca,'YTick',-0.8:0.2:0.8),grid on;%设置y坐标轴刻度,绘制方格线title('44100Hz采样音乐信号波形');xlabel('时间轴,单位s');subplot(2,1,2);plot((-N/2+1:N/2)*Fs1/N/f,X1,'b');axis([-25 25 -70 50]);set(gca,'XTick',-25:5:25),grid on;set(gca,'YTick',-70:20:50),grid on;title('44100Hz采样音乐信号频谱图');xlabel('频率轴,单位kHz');ylabel('单位:dB');figure(2)%5512Hz采集音频信号时域图、频谱图subplot(2,1,1);plot(t2,y1,'r');axis([0 95 -1 1]);%设置坐标轴范围set(gca,'XTick',0:5:95),grid on;%设置x坐标轴刻度,绘制方格线set(gca,'YTick',-0.8:0.2:0.8),grid on;%设置y坐标轴刻度,绘制方格线title('5512Hz采样音乐信号波形');xlabel('时间轴,单位s');subplot(2,1,2);plot((-N/2+1:N/2)*Fs2/N/f,Y1,'b');axis([-3 3 -70 50]);set(gca,'XTick',-3:1:3),grid on;set(gca,'YTick',-70:20:50),grid on;title('5512Hz采样音乐信号频谱图');xlabel('频率轴,单位kHz');ylabel('单位:dB');仿真程序DSP_homework2.m:clc;clear;close all;%% 录音测试多少采样频率时发生混叠Fs1=2205;%录音采样频率nBits=16;%音频位数nChannels=1;%声道数recording_time=1.5;%录音时间长度recObj = audiorecorder(Fs1,nBits,nChannels)disp('Start speaking.')recordblocking(recObj, recording_time);disp('End of Recording.');play(recObj);% 回放录音数据myRecording = getaudiodata(recObj);% 获取录音数据t1=0:1/Fs1:(length(myRecording)-1)/Fs1;%取时域横轴tN1=5096; %fft点数f=10^3;%取频率轴单位为KHzfft_myRecording=fft(myRecording,N1);fft_myRecording=20*log(abs(fftshift(fft_myRecording)));PathName1=uigetdir(strcat(matlabroot,'\work' ),'录音音频文件另存为'); FileName1='record_2205.wav'path=fullfile(PathName1,FileName1);audiowrite(path,myRecording,Fs1);%生成原始信号叠加噪声后的wav格式音频文件,试听叠加噪声效果%% 绘制录音数据波形figure(1)subplot(211)plot(t1,myRecording,'r');axis([0 1.5 -1 1]);%设置坐标轴范围set(gca,'XTick',0:0.1:1.5),grid on;%设置x坐标轴刻度,绘制方格线set(gca,'YTick',-0.8:0.2:0.8),grid on;%设置y坐标轴刻度,绘制方格线title('2205Hz录制人声信号波形');xlabel('时间轴,单位s');subplot(212)plot((-N1/2+1:N1/2)*Fs1/N1/f,fft_myRecording,'b');axis([-1.5 1.5 -120 80]);set(gca,'XTick',-1.5:0.5:1.5),grid on;set(gca,'YTick',-120:20:80),grid on;title('2202Hz录制人声信号频谱图');xlabel('频率轴,单位kHz');ylabel('单位:dB');仿真程序DSP_homework3.m:clc;clear;close all;%% 录入噪音[FileName,PathName] = uigetfile('*.wav','选择待处理录音文件');%获取处理音频文件位置path=fullfile(PathName,FileName);[audio,Fs]=audioread(path);%默认采样频率Fs为44100Hzt=0:1/Fs:(length(audio)-1)/Fs;%取时域横轴tN =5096; %fft点数f=10^3;%取频率轴单位为KHzfft_audio=fft(audio,N);fft_audio=20*log(abs(fftshift(fft_audio)));%% 绘制噪音数据波形figure(1)subplot(211)plot(t,audio,'r');axis([0 2 -1.1 1.1]);%设置坐标轴范围set(gca,'XTick',0:0.2:2),grid on;%设置x坐标轴刻度,绘制方格线set(gca,'YTick',-1.1:0.2:1.1),grid on;%设置y坐标轴刻度,绘制方格线title('噪声背景下声音信号波形');xlabel('时间轴,单位s');subplot(212)plot((-N/2+1:N/2)*Fs/N/f,fft_audio,'b');axis([-25 25 -220 -60]);set(gca,'XTick',-25:5:25),grid on;set(gca,'YTick',-220:20:-60),grid on;title('噪声背景下声音信号频谱图');xlabel('频率轴,单位kHz');ylabel('单位:dB');%% 进行加噪处理Ym=max(max(max(audio)),max(abs(min(audio))));%找出极值audio=audio/Ym;%% 设计低通滤波器wn=0.1;%滤波器归一化截止频率为0.15n=513;%滤波器阶数为512w=hamming(n)hh=fir1(n-1,wn,'low',w);figure(2);freqz(hh);%绘制滤波器的频率响应图%% 对加噪音频信号进行滤波处理filter_audio=filter(hh,1,audio);%使含有噪声的信号通过一个已设计的低通滤波器hhPathName2=uigetdir(strcat(matlabroot,'\work' ),'去噪后音频文件另存为'); FileName2='record_recover.wav'path2=fullfile(PathName2,FileName2);audiowrite(path2,filter_audio,Fs);%生成原始信号叠加噪声后又经滤波后的wav格式音频文件,试听滤波后效果fft_filter_audio=fft(filter_audio,N);fft_filter_audio=20*log(abs(fftshift(fft_filter_audio)));%用对数表示噪声信号的频谱%%figure(3)subplot(211)plot(t,filter_audio,'r');axis([0 2 -1.1 1.1]);%设置坐标轴范围set(gca,'XTick',0:0.2:2),grid on;%设置x坐标轴刻度,绘制方格线set(gca,'YTick',-1.1:0.2:1.1),grid on;%设置y坐标轴刻度,绘制方格线title('滤噪后声音信号波形');xlabel('时间轴,单位s');subplot(212)plot((-N/2+1:N/2)*Fs/N/f,fft_filter_audio,'b');axis([-5 5 -220 -60]);set(gca,'XTick',-5:1:5),grid on;set(gca,'YTick',-220:20:-60),grid on;title('滤噪后声音信号频谱图');xlabel('频率轴,单位kHz');ylabel('单位:dB');五、结果与分析:1.实验结果:Figure 1Figure2Figure3Figure4 Figure5Figure6 Figure7高斯白噪声背景下Figure8Figure9Figure10背景噪声下Figure11Figure12 Figure132.实验分析声音信号的采集与分析处理在工程应用中是经常需要解决的题,如何实时采集声音信号并对其分析处理,找出声音信号的特征在科学研究中是一项非常有意义的工作。

数字信号处理实验报告

数字信号处理实验报告

数字信号处理实验报告引言数字信号处理(Digital Signal Processing,DSP)是一门研究数字信号的获取、分析、处理和控制的学科。

在现代科技发展中,数字信号处理在通信、图像处理、音频处理等领域起着重要的作用。

本次实验旨在通过实际操作,深入了解数字信号处理的基本原理和实践技巧。

实验一:离散时间信号的生成与显示在实验开始之前,我们首先需要了解信号的生成与显示方法。

通过数字信号处理器(Digital Signal Processor,DSP)可以轻松生成和显示各种类型的离散时间信号。

实验设置如下:1. 设置采样频率为8kHz。

2. 生成一个正弦信号:频率为1kHz,振幅为1。

3. 生成一个方波信号:频率为1kHz,振幅为1。

4. 将生成的信号通过DAC(Digital-to-Analog Converter)输出到示波器上进行显示。

实验结果如下图所示:(插入示波器显示的正弦信号和方波信号的图片)实验分析:通过示波器的显示结果可以看出,正弦信号在时域上呈现周期性的波形,而方波信号则具有稳定的上下跳变。

这体现了正弦信号和方波信号在时域上的不同特征。

实验二:信号的采样和重构在数字信号处理中,信号的采样是将连续时间信号转化为离散时间信号的过程,信号的重构则是将离散时间信号还原为连续时间信号的过程。

在实际应用中,信号的采样和重构对信号处理的准确性至关重要。

实验设置如下:1. 生成一个正弦信号:频率为1kHz,振幅为1。

2. 设置采样频率为8kHz。

3. 对正弦信号进行采样,得到离散时间信号。

4. 对离散时间信号进行重构,得到连续时间信号。

5. 将重构的信号通过DAC输出到示波器上进行显示。

实验结果如下图所示:(插入示波器显示的连续时间信号和重构信号的图片)实验分析:通过示波器的显示结果可以看出,重构的信号与原信号非常接近,并且能够还原出原信号的形状和特征。

这说明信号的采样和重构方法对于信号处理的准确性有着重要影响。

重邮课程实验报告

重邮课程实验报告

一、实验名称数字信号处理实验二、实验目的1. 理解数字信号处理的基本概念和原理。

2. 掌握数字滤波器的设计方法及其应用。

3. 熟悉数字信号处理软件的使用,提高实验技能。

三、实验原理数字信号处理(Digital Signal Processing,DSP)是研究数字信号的产生、处理、分析和应用的科学。

本实验主要涉及以下几个方面:1. 数字滤波器的基本概念:数字滤波器是一种对数字信号进行频率选择的装置,可以用于信号的滤波、增强、抑制等。

2. 滤波器的设计方法:主要包括有限脉冲响应(FIR)滤波器和无限脉冲响应(IIR)滤波器的设计方法。

3. 数字信号处理软件的使用:利用MATLAB等软件进行数字信号处理实验,提高实验效率。

四、实验器材1. 实验计算机2. MATLAB软件3. 实验指导书五、实验步骤1. 实验一:FIR滤波器设计(1)打开MATLAB软件,创建一个新的脚本文件。

(2)根据实验指导书的要求,输入FIR滤波器的参数,如滤波器的阶数、截止频率等。

(3)运行脚本文件,观察滤波器的频率响应曲线。

(4)根据实验结果,分析滤波器的性能。

2. 实验二:IIR滤波器设计(1)打开MATLAB软件,创建一个新的脚本文件。

(2)根据实验指导书的要求,输入IIR滤波器的参数,如滤波器的阶数、截止频率等。

(3)运行脚本文件,观察滤波器的频率响应曲线。

(4)根据实验结果,分析滤波器的性能。

3. 实验三:数字信号处理软件的使用(1)打开MATLAB软件,创建一个新的脚本文件。

(2)根据实验指导书的要求,输入信号处理的参数,如采样频率、滤波器类型等。

(3)运行脚本文件,观察信号处理的结果。

(4)根据实验结果,分析数字信号处理软件的应用。

六、实验结果与分析1. 实验一:FIR滤波器设计实验结果表明,所设计的FIR滤波器具有较好的频率选择性,滤波效果符合预期。

2. 实验二:IIR滤波器设计实验结果表明,所设计的IIR滤波器具有较好的频率选择性,滤波效果符合预期。

重庆大学通信学院数字信号处理实验第四次实验报告

重庆大学通信学院数字信号处理实验第四次实验报告

0.511.522.5100150200250300Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s )0.51 1.522.5-30-20-10010Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )0.51 1.522.5-100-50050100Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s )0.51 1.522.5-80-60-40-200Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )0.51 1.522.5-1000-500500Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s)0.51 1.522.5-30-20-10010Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )图1 第一题的频率响应 图2 第二题的频率响应图3 第三题的频率响应图4 第四题的频率响应第五题:零、极点分布图-1-0.500.51-1-0.8-0.6-0.4-0.200.20.40.60.814Real PartI m a g i n a r y P a r t结果单位抽样响应:y =1.0000 0.2000 -0.4000 -0.2000 1.0000 0 012345678910-0.4-0.20.20.40.60.81单位抽样响应用filter 函数: b=[1 0.2 -0.4 -0.2 1];a=1; %注意此处分母的表示 x=zeros(1,10);x(1)=1;%单位抽样脉冲 y=filter(b,a,x) stem(y);title('单位抽样响应')用impz 函数:b=[1 0.2 -0.4 -0.2 1]; a=1;y=impz(b,a);单位阶跃响应:-11234567891000.20.40.60.811.21.41.6单位阶跃响应y =1.0000 1.2000 0.8000 0.6000 1.6000 1.6000 1.6000 1.6000 1.6000 1.6000程序:b=[1 0.2 -0.4 -0.2 1]; a=1;x=ones(1,20);x(1)=1;%单位阶跃信号 y=filter(b,a,x)第六题:零、极点分布图-1-0.50.511.5-1-0.8-0.6-0.4-0.200.20.40.60.81Real PartI m a g i n a r y P a r tB=[0.3 -0.5 0];A=[1 -0.7 0.8];zplane(B,A) %零、极点分布图-101-1-0.500.51Real PartI m a g i n a r y P a r t系统函数极零点分布图-1-0.500.51-1-0.500.51Real PartI m a g i n a r y P a r t最小相移网络零点分布图-11-1-0.500.51Real PartI m a g i n a r y P a r t全通网络零点分布图-11-1-0.500.51Real PartI m a g i n a r y P a r t修正网络零点分布图B=[0.3 -0.5]; A=[1 -0.7 0.8]; subplot(2,2,1);zplane(B,A)title('系统函数极零点分布图') %最小相移网络: B=[1 -0.6];A=[1 -0.7 0.8]; subplot(2,2,2) zplane(B,A);title('最小相移网络零点分布图') %全通网络: B=[-0.6 1];A=[1 -0.6]; subplot(2,2,3); zplane(B,A);title('全通网络零点分布图') %修正网络: B=[-0.6 1]; A=[1 -0.7 0.8]; subplot(2,2,4); zplane(B,A);title('修正网络零点分布图')对比区别:0500100015002000123系统函数极频率响应0500100015002000-4-2024系统函数极频率相位响应500100015002000246修正网络频率响应0500100015002000-4-224修正网络频率相位响应B=[0.3 -0.5]; A=[1 -0.7 0.8]; w=0:0.01:6*pi; h=freqz(B,A,w) subplot(2,2,1); plot(abs(h));title('系统函数极频率响应') subplot(2,2,2); plot(angle(h));title('系统函数极频率相位响应')B=[-0.6 1]; A=[1 -0.7 0.8]; w=0:0.01:6*pi;[h,w]=freqz(B,A,w) subplot(2,2,3); plot(abs(h));title('修正网络频率响应') subplot(2,2,4); plot(angle(h));title('修正网络频率相位响应')第七题:说明grpdelay 的使用方法,计算1和5中的群延时0.51 1.522.53012345678910Normalized Frequency (⨯π rad/sample)G r o u p d e l a y (s a m p l e s )b=[0.2 0 -0.3]; a=[1 -0.4 0.8]; w=0:0.01:3*pi; grpdelay(b,a,w);第五题的群延时00.51 1.522.53-15-10-55101520Normalized Frequency (⨯π rad/sample)G r o u p d e l a y (s a m p l e s )b=[1 0.2 -0.4 -0.2 1]; a=[1];w=0:0.01:3*pi; grpdelay(b,a,w);群延时函数的使用方法: help grpdelayGRPDELAY Group delay of a digital filter.[Gd,W] = GRPDELAY(B,A,N) returns length N vectors Gd and W containing the group delay and the frequencies (in radians) at which it is evaluated. Group delay is -d{angle(w)}/dw. The frequencyresponse is evaluated at N points equally spaced around the upper half of the unit circle. For an FIR filter where N is a power of two, the computation is done faster using FFTs. If you don't specify N, it defaults to 512.GRPDELAY(B,A,N,'whole') uses N points around the whole unit circle.[Gd,F] = GRPDELAY(B,A,N,Fs) and [Gd,F] = GRPDELAY(B,A,N,'whole',Fs) given sampling frequency Fs in Hz return a vector F in Hz.Gd = GRPDELAY(B,A,W) and Gd = GRPDELAY(B,A,F,Fs) return the group delay evaluated at the points in W (in radians/sample) or F (in Hz).GRPDELAY(B,A,...) with no output arguments plots the group delay in the current figure window.提高1:级联后的频率响应0.51 1.522.5-800-600-400-200Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s )0.51 1.522.5-200-150-100-500X: 0.2992Y: -2.991Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )b=0.175*[1 3 3 1]; a=[1];w=0:0.01:3*pi;freqz(b,a,w);最高的点x=0, y=0X=0.2992,y=-2.991Y*pi=0.9400计算的wc= 2*acos(2^(-1/6))=0.9430。

数字信号处理 实习大报告 (2)

数字信号处理 实习大报告 (2)

6月21号
完成任务:对程序进行标注
文件名:Gibbs_Phenomena_CFST 添加注释.m
6月22号
完成任务:在一幅图上画出多幅小图,画一组二维图
文件名:zuoye2.m
运行结果:
6月23号
完成任务:画三维图形
文件名:zuoye2_1.m
运行结果:
6月25号
完成任务:画复数的事实部和虚部
文件名称:zuoye2_2.m
运行结果:
6月26号
完成任务:计算普通褶积
文件名称:zuoye3_1.m
运行结果:
6月27号
完成任务:计算循环褶积
文件名称:zuoye3_2.m
运行结果:
6月28日
完成任务:相关分析
文件名称:zuoye3_3.m
运行结果:
6月29号
完成任务:病态系统
文件名称:zuoye4.m 运行结果:
6月30号
完成任务:一维滤波文件名称:zuoye5.m 运行结果:
完成任务:二维滤波器文件名称:zuoye6.m 运行结果:、
完成任务:验证时间域的循环褶积对应的是频率域的乘积;线性褶积则不然文件名称:zuoye7.m
运行结果:
7月1号
完成任务:请用通俗、易懂的语言说明数字信号处理中的一种性质、一条定理或一个算例(顺便利用Matlab对其进行实现)。

褶积运算具有可交换性,相关运算不具有交换性。

文件名称:zuoye8.m
运行结果:。

课程大作业——数字信号处理实验报告

课程大作业——数字信号处理实验报告

实验一 信号、系统及系统响应一.实验目的1.熟悉理想采样的性质,了解信号采用前后的频谱变化,加深对采样定理的理解。

2.熟悉离散信号和系统的时域特性。

3.熟悉线性卷积的计算编程方法:利用卷积的方法,观察、分析系统响应的时域特性。

4.掌握序列傅氏变换的计算机实现方法,利用序列的傅氏变换对离散信号、系统及系统响应进行频域分析。

二.实验原理1.连续时间信号的采样采样是从连续时间信号到离散时间信号的过渡桥梁,对采样过程的研究不仅可以了解采样前后信号时域和频域特性发生的变化以及信号内容不丢失的条件,而且有助于加深对拉氏变换、傅氏变换、z 变换和序列傅氏变换之间关系的理解。

对一个连续时间信号进行理想采样的过程可以表示为该信号和个周期冲激脉冲的乘积,即)()()(ˆt M t x t xa a = (1-1) 其中)(ˆt xa 是连续信号)(t x a 的理想采样,)(t M 是周期冲激脉冲 ∑+∞-∞=-=n nT t t M )()(δ (1-2)它也可以用傅立叶级数表示为:∑+∞-∞=Ω=n tjm s e T t M 1)( (1-3)其中T 为采样周期,T s /2π=Ω是采样角频率。

设)(s X a 是连续时间信号)(t x a 的双边拉氏变换,即有:⎰+∞∞--=dt e t xs X st aa )()( (1-4)此时理想采样信号)(ˆt xa 的拉氏变换为 ∑⎰+∞-∞=+∞∞--Ω-===m s a sta a jm s X T dt e t x s X )(1)(ˆ)(ˆ (1-5)作为拉氏变换的一种特例,信号理想采样的傅立叶变换[]∑+∞-∞=Ω-Ω=Ωm s a a m j X T j X )(1)(ˆ (1-6)由式(1-5)和式(1-6)可知,信号理想采样后的频谱是原信号频谱的周期延拓,其延拓周期等于采样频率。

根据Shannon 采样定理,如果原信号是带限信号,且采样频率高于原信号最高频率分量的2倍,则采样以后不会发生频率混淆现象。

数字信号处理实验报告

数字信号处理实验报告

一、实验目的1. 理解数字信号处理的基本概念和原理。

2. 掌握离散时间信号的基本运算和变换方法。

3. 熟悉数字滤波器的设计和实现。

4. 培养实验操作能力和数据分析能力。

二、实验原理数字信号处理(Digital Signal Processing,DSP)是利用计算机对信号进行采样、量化、处理和分析的一种技术。

本实验主要涉及以下内容:1. 离散时间信号:离散时间信号是指时间上离散的信号,通常用序列表示。

2. 离散时间系统的时域分析:分析离散时间系统的时域特性,如稳定性、因果性、线性等。

3. 离散时间信号的变换:包括离散时间傅里叶变换(DTFT)、离散傅里叶变换(DFT)和快速傅里叶变换(FFT)等。

4. 数字滤波器:设计、实现和分析数字滤波器,如低通、高通、带通、带阻滤波器等。

三、实验内容1. 离散时间信号的时域运算(1)实验目的:掌握离散时间信号的时域运算方法。

(2)实验步骤:a. 使用MATLAB生成两个离散时间信号;b. 进行时域运算,如加、减、乘、除等;c. 绘制运算结果的时域波形图。

2. 离散时间信号的变换(1)实验目的:掌握离散时间信号的变换方法。

(2)实验步骤:a. 使用MATLAB生成一个离散时间信号;b. 进行DTFT、DFT和FFT变换;c. 绘制变换结果的频域波形图。

3. 数字滤波器的设计和实现(1)实验目的:掌握数字滤波器的设计和实现方法。

(2)实验步骤:a. 设计一个低通滤波器,如巴特沃斯滤波器、切比雪夫滤波器等;b. 使用MATLAB实现滤波器;c. 使用MATLAB对滤波器进行时域和频域分析。

4. 数字滤波器的应用(1)实验目的:掌握数字滤波器的应用。

(2)实验步骤:a. 采集一段语音信号;b. 使用数字滤波器对语音信号进行降噪处理;c. 比较降噪前后的语音信号,分析滤波器的效果。

四、实验结果与分析1. 离散时间信号的时域运算实验结果显示,通过MATLAB可以方便地进行离散时间信号的时域运算,并绘制出运算结果的时域波形图。

数字信号处理 实习大报告 (9)

数字信号处理 实习大报告 (9)

数字信号分析处理实习报告勘查07.3 白通20070143086月21日实习任务:熟悉MATLAB的操作界面和基本操作,完成第一题实习成果:更加熟悉CFST运算已经吉普斯现象的原理;同时基本了解MATLAB中判断语句if ,循环语句 for的基本用法以及MATLAB画图语句plot以及相应text,title,xlabel等相关语句的使用。

程序名见第一题Gibbs_Phenomena_CFST.m6月22日实习任务:继续熟悉MATLAB基本操作,在此基础上熟悉MATLAB画图,包括X、Y坐标轴上的label,每幅图上的title,绘画多条曲线时的legend,对图形进行适当的标注等。

实习成果:(1)在一副图上画出多幅小图;(2)画出一组二维图形;(3)画出一组三维图形;(4)画出复数的实部与虚部。

程序见第二题drawing1~drawing4(1)在一副图上画出多幅小图(程序名drawing1)(2)画出一组二维图形(程序名drawing2)(3)画出一组三维图形(程序名drawing3)(4)画出复数的实部与虚部(程序名drawing4)6月23日实习任务:计算普通褶积与循环褶积,分别使用时间域与频率域两种方法进行正、反演计算,指出循环褶积计算时所存在的边界效应现象;编写一个做相关分析的源程序。

实习成果:(1)在时间域,频率域上分别计算线性褶积,循环褶积,并指出边界效应现象(程序见第3题zheji.m)造两个数组 a=[1 2 3 4 5],b=[4 5 3 2];循环摺积结果为[47 36 35 39 53]产生边界效应后结果为[47 36 35 39 33](2)相关分析(程序见第3题xiangguanhanshu.m)根据a=[1 2 3 4 5]作出HANKEL矩阵A=1 2 3 4 5 0 0 02 3 4 5 0 0 0 13 4 5 0 0 0 1 24 5 0 0 0 1 2 35 0 0 0 1 2 3 40 0 0 1 2 3 4 50 0 1 2 3 4 5 00 1 2 3 4 5 0 0B = [4 5 3 2 0 0 0 0];进而求得相关系数r= [31 45 47 41 20 2 7 17]6月24日实习任务:设计一个病态(矩阵)系统,分析其病态程度;通过添加白噪因子解决相应问题实习成果:程序见第4题bingtaijuzhen.m先随意作数组a=[1 4 5 6 7 4]' ,对其求傅立叶运算后对其谱共轭项取0;在进行反傅立叶运算,得数组aa ;aa =[4.3333 4.6667 4.3333 4.6667 4.3333 4.6667] ',通过aa作循环矩阵A,可得m=inv(A)各项全为inf,故A是所需的病态矩阵。

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

数字信号处理课外实验设计——音频采样和频谱混叠课程名称:数字信号处理院系:通信工程学院专业:通信01班年级: 2013级*名:***学号: ********指导教师:**实验时间: 2015.11.26重庆大学一、实验目的:1、熟悉MATLAB语言的基本用法;2、掌握MATLAB语言中音频数据与信息的读取与播放方法;3、掌握在MATLAB中设计滤波器的方法;4、掌握MATLAB语言中信号频谱的绘制方法。

5、对采样定理进行初步验证,体会频谱混叠现象,并大致确定音频信号的最低采样频率。

二、实验原理:现实当中遇到的绝大多数信号都是连续的,即所谓的连续信号。

如语音、图像、温度压力电流等都是模拟信号。

要利用数字信号处理技术实现对这些信号的处理,需要借助对这些信号的处理,需要借助A/D转换,先将模拟信号转变为数字信号后才能利用数字技术对其进行加工处理。

因此,采样是从连续到离散的桥梁。

如果选择的采样频率太低,及fs<2fm的采样频率太低,或者说是信号的最高频率fm 超过fs/2,则采样后的频谱按照采样率周期延拓时,各周期延拓分量产生频谱的交叠,这种现象叫频谱混叠。

三、实验内容:本实验通过MATLAB软件,完成以下四项任务1、用fs=44100HZ采集一段音乐。

2、改变采样频率,用fs=5512HZ采集一段音乐,体会混叠现象。

3、录制一段自己的声音,试验当fs=?时,发生混叠。

4、(选作)在噪声环境中录制一段自己的声音,试采用一种方法将噪声尽可能地消除。

四、实验步骤:仿真程序DSP_homework1.m:clc;clear;close all;%% 44100Hz和5512Hz采集音频文件[FileName,PathName] = uigetfile('*.wav','选择待处理音频文件');%获取处理音频文件位置path1=fullfile(PathName,FileName);[x,Fs1]=audioread(path1);%默认采样频率Fs为44100Hzx1=x(:,1);%1声道数据x2=x(:,2);%2声道数据%y1=x1(1:800000);%y1=x1(1:8:end);Fs2=5512;y1=resample(x1,5512,44100); %信号降采样处理,采样从44100Hz降到5512Hzy2=resample(x2,5512,44100);y=[y1 y2];t1=0:1/Fs1:(length(x1)-1)/Fs1;%取时域横轴tt2=0:1/Fs2:(length(y1)-1)/Fs2;N =5096; %fft点数,以频谱分辨率为10Hz,信号最高频率40kHz求出记录最小点数f=10^3;%取频率轴单位为KHzX1=fft(x1,N);X1=10*log(abs(fftshift(X1)));%用对数表示44100Hz音频信号的频谱Y1=fft(y1,N);Y1=10*log(abs(fftshift(Y1)));%用对数表示5512Hz音频信号的频谱PathName1=uigetdir(strcat(matlabroot,'\work' ),'加噪后音频文件另存为');FileName1='music_5512.wav'path2=fullfile(PathName1,FileName1);audiowrite(path2,y,Fs2);%生成5512Hz采样的wav格式音频文件,试听音乐效果%% 绘图figure(1);%44100Hz采集音频信号时域图、频谱图subplot(2,1,1);plot(t1,x1,'r');axis([0 95 -1 1]);%设置坐标轴范围set(gca,'XTick',0:5:95),grid on;%设置x坐标轴刻度,绘制方格线set(gca,'YTick',-0.8:0.2:0.8),grid on;%设置y坐标轴刻度,绘制方格线title('44100Hz采样音乐信号波形');xlabel('时间轴,单位s');subplot(2,1,2);plot((-N/2+1:N/2)*Fs1/N/f,X1,'b');axis([-25 25 -70 50]);set(gca,'XTick',-25:5:25),grid on;set(gca,'YTick',-70:20:50),grid on;title('44100Hz采样音乐信号频谱图');xlabel('频率轴,单位kHz');ylabel('单位:dB');figure(2)%5512Hz采集音频信号时域图、频谱图subplot(2,1,1);plot(t2,y1,'r');axis([0 95 -1 1]);%设置坐标轴范围set(gca,'XTick',0:5:95),grid on;%设置x坐标轴刻度,绘制方格线set(gca,'YTick',-0.8:0.2:0.8),grid on;%设置y坐标轴刻度,绘制方格线title('5512Hz采样音乐信号波形');xlabel('时间轴,单位s');subplot(2,1,2);plot((-N/2+1:N/2)*Fs2/N/f,Y1,'b');axis([-3 3 -70 50]);set(gca,'XTick',-3:1:3),grid on;set(gca,'YTick',-70:20:50),grid on;title('5512Hz采样音乐信号频谱图');xlabel('频率轴,单位kHz');ylabel('单位:dB');仿真程序DSP_homework2.m:clc;clear;close all;%% 录音测试多少采样频率时发生混叠Fs1=2205;%录音采样频率nBits=16;%音频位数nChannels=1;%声道数recording_time=1.5;%录音时间长度recObj = audiorecorder(Fs1,nBits,nChannels)disp('Start speaking.')recordblocking(recObj, recording_time);disp('End of Recording.');play(recObj);% 回放录音数据myRecording = getaudiodata(recObj);% 获取录音数据t1=0:1/Fs1:(length(myRecording)-1)/Fs1;%取时域横轴tN1=5096; %fft点数f=10^3;%取频率轴单位为KHzfft_myRecording=fft(myRecording,N1);fft_myRecording=20*log(abs(fftshift(fft_myRecording)));PathName1=uigetdir(strcat(matlabroot,'\work' ),'录音音频文件另存为'); FileName1='record_2205.wav'path=fullfile(PathName1,FileName1);audiowrite(path,myRecording,Fs1);%生成原始信号叠加噪声后的wav格式音频文件,试听叠加噪声效果%% 绘制录音数据波形figure(1)subplot(211)plot(t1,myRecording,'r');axis([0 1.5 -1 1]);%设置坐标轴范围set(gca,'XTick',0:0.1:1.5),grid on;%设置x坐标轴刻度,绘制方格线set(gca,'YTick',-0.8:0.2:0.8),grid on;%设置y坐标轴刻度,绘制方格线title('2205Hz录制人声信号波形');xlabel('时间轴,单位s');subplot(212)plot((-N1/2+1:N1/2)*Fs1/N1/f,fft_myRecording,'b');axis([-1.5 1.5 -120 80]);set(gca,'XTick',-1.5:0.5:1.5),grid on;set(gca,'YTick',-120:20:80),grid on;title('2202Hz录制人声信号频谱图');xlabel('频率轴,单位kHz');ylabel('单位:dB');仿真程序DSP_homework3.m:clc;clear;close all;%% 录入噪音[FileName,PathName] = uigetfile('*.wav','选择待处理录音文件');%获取处理音频文件位置path=fullfile(PathName,FileName);[audio,Fs]=audioread(path);%默认采样频率Fs为44100Hzt=0:1/Fs:(length(audio)-1)/Fs;%取时域横轴tN =5096; %fft点数f=10^3;%取频率轴单位为KHzfft_audio=fft(audio,N);fft_audio=20*log(abs(fftshift(fft_audio)));%% 绘制噪音数据波形figure(1)subplot(211)plot(t,audio,'r');axis([0 2 -1.1 1.1]);%设置坐标轴范围set(gca,'XTick',0:0.2:2),grid on;%设置x坐标轴刻度,绘制方格线set(gca,'YTick',-1.1:0.2:1.1),grid on;%设置y坐标轴刻度,绘制方格线title('噪声背景下声音信号波形');xlabel('时间轴,单位s');subplot(212)plot((-N/2+1:N/2)*Fs/N/f,fft_audio,'b');axis([-25 25 -220 -60]);set(gca,'XTick',-25:5:25),grid on;set(gca,'YTick',-220:20:-60),grid on;title('噪声背景下声音信号频谱图');xlabel('频率轴,单位kHz');ylabel('单位:dB');%% 进行加噪处理Ym=max(max(max(audio)),max(abs(min(audio))));%找出极值audio=audio/Ym;%% 设计低通滤波器wn=0.1;%滤波器归一化截止频率为0.15n=513;%滤波器阶数为512w=hamming(n)hh=fir1(n-1,wn,'low',w);figure(2);freqz(hh);%绘制滤波器的频率响应图%% 对加噪音频信号进行滤波处理filter_audio=filter(hh,1,audio);%使含有噪声的信号通过一个已设计的低通滤波器hhPathName2=uigetdir(strcat(matlabroot,'\work' ),'去噪后音频文件另存为'); FileName2='record_recover.wav'path2=fullfile(PathName2,FileName2);audiowrite(path2,filter_audio,Fs);%生成原始信号叠加噪声后又经滤波后的wav格式音频文件,试听滤波后效果fft_filter_audio=fft(filter_audio,N);fft_filter_audio=20*log(abs(fftshift(fft_filter_audio)));%用对数表示噪声信号的频谱%%figure(3)subplot(211)plot(t,filter_audio,'r');axis([0 2 -1.1 1.1]);%设置坐标轴范围set(gca,'XTick',0:0.2:2),grid on;%设置x坐标轴刻度,绘制方格线set(gca,'YTick',-1.1:0.2:1.1),grid on;%设置y坐标轴刻度,绘制方格线title('滤噪后声音信号波形');xlabel('时间轴,单位s');subplot(212)plot((-N/2+1:N/2)*Fs/N/f,fft_filter_audio,'b');axis([-5 5 -220 -60]);set(gca,'XTick',-5:1:5),grid on;set(gca,'YTick',-220:20:-60),grid on;title('滤噪后声音信号频谱图');xlabel('频率轴,单位kHz');ylabel('单位:dB');五、结果与分析:1.实验结果:Figure 1Figure2Figure3Figure4 Figure5Figure6 Figure7高斯白噪声背景下Figure8Figure9Figure10背景噪声下Figure11Figure12 Figure132.实验分析声音信号的采集与分析处理在工程应用中是经常需要解决的题,如何实时采集声音信号并对其分析处理,找出声音信号的特征在科学研究中是一项非常有意义的工作。

相关文档
最新文档