1.利用matlab软件对音频信号进行数字信号采样,分别对采样后的信号进行时/频域分析,并提供**图和分析说明;(35)
2.设计合理的数字滤波器,滤去音频信号中的蜂鸣音,给出详细设计流程,并提供频域**图和分析说明;(45)
3.将数字滤波后的数字信号转换成w**格式音频文件,统一命名为作为附件上交。(15)
1)通过**所给**文件,很明显能听出w**文件中包含蜂鸣噪音,所以我们应该先分析频谱。在matlab下可以用函数w**read/audioread读入语音信号进行采样,通过w**read得到声音数据变量x和采样频率fs、采样精度nbits,在读取声音信号之后,利用读出的采样频率作为参数,这段音频读出的采样精度为16,fs为44100hz,将此后采集时间、fft的参数设置为fs,也就是44100hz。通过plot函数绘制出了音频信号与时间的关系图pic1,使用fft函数进行fft处理。
处理后的信号频谱pic2,如下所示。
图1.音频信号与时间的关系图。
从图1横坐标我们看到t在9-10s之间截止,与我们在****器中显示的时间一致。
图2.图2为运用fft后得到的处理结果,可以从中读取到,在293.7hz、4671hz附近幅值突然增大,可以确定为噪声干扰。
所以我们应该针对频率附近进行滤波。如果针对性进行滤波处理,应该使用低通滤波器进行处理,去除这部分的噪音。之后需要选定滤波器并进行程序设计,在4671hz附近进行滤波,去除蜂鸣杂音。
2)需要对蜂鸣音进行除去,自然需要用到滤波器。所以第二步需要设计滤波器并给出详细流程。在第一问的频谱分析中,通过fft已经知道噪音所在,所以需要针对这个问题设计参数。
在这里选用巴特沃斯低通滤波器进行处理,需要设定好的参数有通带边界频率、阻带边界频率、通带最大衰减和通过阻带的最小分贝数(由buttord在matlab定义得)。要对于4671hz进行滤波,所以选定的两个边界频率应该分别大于和小于这一频率,将通带最大衰减和分贝数进行略微调整,之后用buttord函数进行计算,求得滤波器阶数和3db截止频率,用butter函数得到低通滤波器系统函数的系数。这部分计算程序由附录中的文件中给出。
在工作区可以读取我们需要的值带入butter中处理。
之后通过计算得到的3db截止频率和阶数构造的系统函数进行滤波。这部分程序我们在文件中给出。我们先用w**read进行采样,得到了信号、采样率和采样位数x、fs和nbits。
之后利用这些采样得到的分量进行滤波处理。由之前的testbutter我们可以得到阶数和3db截止频率。在处理过程中,我们对由testbutter所得代入的参数进行了微调。
之后在程序中我们绘制时间与采集音频信号的关系图如下:
从处理后的图像我们可以看出,定义处理后的音频信号为y,它的音频信号与时间的关系明显比最初提取的x信号波形规整的多,表现了滤波器起到了不错的效果。
clc;clear;
x,fs,nbits]=w**read(''
n=length(x);
t=(0:n-1)/44100;
figure(1)
plot(t,x);
xlabel('时间');
ylabel('幅度');
title('pic1');
f=44000*(0:n-1)/n;
figure(2)
plot(f,abs(fft(x))*2/n);
title('pic2');
sound(x,fs);
clear all;
clc;x,fs,nbits]=w**read(''读出信号,采样率和采样位数。
siglength=length(x);
y = fft(x,siglength);
f=fs*(1:siglength)/siglength;
stor=y(1);
y(1)=0;
absy=abs(y);
figure(1)
subplot(2,2,1);plot(f,absy);xlabel('频率(hz)')grid on
axis([0,f(end)/2,0,500]);
t=(0:siglength-1)/fs;
subplot(2,2,2);plot(t,x);xlabel('时间(s)')grid on
y1=x;y0=y;
设计巴特沃斯低通滤波器。
b,a]=butter(14,0.106,'low');
y=filter(b,a,x);%用设计的滤波器进行滤波。
y=fft(x,siglength);
y(1)=0;
absy=abs(y);
figure(1);
subplot(2,2,3);plot(f,absy);xlabel('频率(hz)')grid on
axis([0,f(end)/2,0,500]);确定坐标范围。
t=(0:siglength-1)/fs;
subplot(2,2,4);plot(t,y);xlabel('时间(s)')grid on
sound(y,fs,nbits);
w**write(y,fs,nbits,''
DSP大作业
重叠相加法和重叠保留法。对于很长序列和短序列进行卷积,可采用重叠相加法和重叠保留法进行快速实现。课本上只是通过公式图形来讲解,十分抽象。许多人对这两种方法产生混淆,不理解,不会应用,特别是重叠保留法。下面就先给出基本原理,再用实例讲解分析。设h n 的点数为m,信号x n 为很长的序列。重叠相加法是...
DSP技术大作业
dsp技术。大作业。姓名。班级。学号。2014年12月。第1部分概述。1.1 dsp简介。dsp digitalsignalprocessor 是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改 删除 强化,并在其他系统芯片...
DSP技术大作业
dsp技术。大作业。姓名。班级。学号。2014年12月。第1部分概述。1.1 dsp简介。dsp digitalsignalprocessor 是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改 删除 强化,并在其他系统芯片...