DSP大作业

发布 2022-08-25 09:25:28 阅读 6205

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的数字信号,再对数字信号进行修改 删除 强化,并在其他系统芯片...