1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 华工【数字信号处理】(DSP)实验二 数字信号处理应用实例

华工【数字信号处理】(DSP)实验二 数字信号处理应用实例

时间:2019-06-23 01:30:06

相关推荐

华工【数字信号处理】(DSP)实验二 数字信号处理应用实例

一.用FFT实现有限长序列的线性卷积:

给定两个序列x=[2,1,1,2],h=[1,-1,-1,1]

1、直接计算两个序列的线性卷积;

2、用FFT实现线性卷积,并和1的结果对比分析。

clear all;close all;x = [2,1,1,2];h = [1,-1,-1,1];nx = length(x);nh = length(h);%第一问%直接计算线性卷积y = conv(x,h)%第二问%重叠相加法计算线性卷积x0 = zeros(1,nx+nh-1);x0(1:nx)=x(1:4);h0 = zeros(1,nx+nh-1);h0(1:nh)=h(1:4);y0 = fftfilt(x0,h0)%两种计算方法的差异delta_y = y0-y

实验结果:

结果分析:

图1-1中y为直接线性卷积的结果,y0为补领后采用重叠相加发(fftflit)的结果,二者相等.

二、两个音频信号“Female.wav”and “male.wav”二选一,进行如下实验:

1、读出所给音频信号x(t),确定该音频信号的采样率;画出该音频信号的时域波形和频谱图;

2、对音频信号人为加噪声,回放音频信号,感觉和原来有什么不同?

3、对加噪声后的信号,用滑动平均滤波器进行滤波(用重叠相加法fftfilt实现),得到滤波后的音频信号f(t);

4、对比原信号x(t)和滤波后音频信号f(t)的波形及频谱。播放这两个音频信号,感觉前后声音的变化

close all;clear all;[x,fs] = wavread('a_Female.wav');nx = length(x);sound(x);%采样频率fs = 16000;X = fft(x);Y = abs(fftshift(X));%图一,音频时域和频域figuresubplot(211)plot(x)title('音频时域')subplot(212)plot(Y)title('音频频域')%图二figure%噪声方差sigma = 0.05;r = normrnd(x,sigma);nr = length(r);sound(r);R = fft(r);YR = abs(fftshift(R));subplot(211)plot(r)title('音频时域(加噪声)')subplot(212)plot(YR)title('音频频域(加噪声)')%图三nw = 10;%窗长w = ones(1,nw);r0 =zeros(1,nr+nw-1);w0 = zeros(1,nr+nw-1);r0(1:nr) = r(1:nr);w0(1:nw) = w(1:nw);f = fftfilt(r0,w0);sound(f);F=fft(f);YF=abs(fftshift(F));figuresubplot(211)plot(f)title('音频时域(滤波)')subplot(212)plot(YF)title('音频频域(滤波)')

结果分析:

首先通过设定噪声的方差调整噪声的影响,此代码中设定为sigma=0.05.实验过程中尝试过将sigma=1,0.1,0.01.sigma=1时基本全是噪声且很响;sigma=0.1时,原声被噪声影响也较大;sigma=0.01时基本没影响;最终选择为0.05.

实验过程中一次听三段音频(原音频,加噪声音频和滤波后音频),结果是基本能听清滤波后的信号.

通过对比图2-1,2-2,2-3,也可以看出重叠相加法在能滤掉高频的噪声.

三、 一LTI系统的系统函数如下:

1、分解成2阶系统的级联;

2、分解成1阶系统的级联;

3、画零极点分布图;(要求分别用zplane(b,a)和zplane(z,p)画)

4、系统的频率响应的幅度响应和相位响应

close all;clear all;num = [0.1,0.12,0.02];den = [1,-0.2,2.42,-1.312,0.64];[z,p,k]=tf2zp(num,den)sos=zp2sos(z,p,k)[sos, G]=tf2sos(num,den)%图三figuresubplot(211)zplane(num,den)title('zplane(num,den)')%由于此算法是先化成正次幂,会含有z=0的两个零点subplot(212)zplane(z,p)title('zplane(z,p)')%由于此算法是直接算负次幂,会漏掉Z=0的两个零点%图四N=1000;[H,f]=freqz(num,den,N);figuresubplot(211)plot(abs(H))title('幅度相应')subplot(212)plot(angle(H))title('相位相应')

结果分析

sos=zp2sos(z,p,k)

算法1是先将分子分母化成正次幂,会含有z=0的两个零点

[sos, G]=tf2sos(b,a)

算法2是直接算负次幂,会漏掉Z=0的两个零点

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。