实验5 MATLAB在数字信号处理中的应用

2018-12-04 22:19

实验5:MATLAB在数字信号处理中的应用(4学时)

掌握MATLAB对离散时间信号与系统的时域和频域描述及分析

【实验目的】

1、 掌握离散时间信号与系统的时域和频域

分析方法

【实验内容】

1、 练习书上实例,验证结果

2、录制一段各人自己的语音信号,存成.wav文件,录制时间不要太长,5-10秒即可。利用MATLAB提供的wavread函数进行读取,而后对录制的信号x(t)进行采样;画出采样后语音信号的时域波形和频谱图。(提示,仿例题7.10,选择不同的采样频率fs,观察频谱)

3、仿照教材7.1节对该语音信号进行各种时域处理(如截取,合成,添加随机噪声,周期延拓,移位),观察波形图,若可能可将其用MATLAB存成wav文件,听一下。(提示:函数randn可构造随机噪声序列;

人的语音信号的范围20Hz-20KHz,选择合适的采样频率,在数字通信中,根据采样定理, 最小采样频率为语音信号最高频率的2倍。电话通令的频带是300-3400Hz,所以最低采样频率为6800Hz。根据CCITT的长途通信协议的标准,目前各国一般采用的声音采样频率为8kHz;所以,为了将来系统与其他通信设备交流的方便,最终采样频率一般确定为8000Hz)。

4、用FFT函数对上述语音信号,进行频域分析,观察该语音信号的频谱范围.(仿例题7.19).

5、构造一个理想数字滤波器,要求保留1000HZ-2000HZ以内的语音信号,观察信号波形图。 【实验报告】 Q701

x1=[0,1,2,3,4,3,2,1,0];ns1=-2; x2=[2,2,0,0,0,-2,-2]; ns2=2; nf1=ns1+length(x1)-1; nf2=ns2+length(x2)-1;

ny= min(ns1,ns2):max(nf1,nf2); a1 = zeros(1,length(ny)); xa2 = xa1;

xa1(find((ny>=ns1)&(ny<=nf1)==1))=x1;

xa2(find((ny>=ns2)&(ny<=nf2)==1))=x2;

ya = xa1 + xa2 yp = xa1.* xa2 subplot(4,1,1), stem(ny,xa1,'.') subplot(4,1,2), stem(ny,xa2,'.') line([ny(1),ny(end)],[0,0]) subplot(4,1,3), stem(ny,ya,'.') line([ny(1),ny(end)],[0,0]) subplot(4,1,4), stem(ny,yp,'.') line([ny(1),ny(end)],[0,0])

clear;close all

n0=input('输入序列起点:n0='); N=input('输入序列长度:N='); n1=input('输入位移:n1='); n=n0:n1+N+5; u=[(n-n1)>=0];

x1=[(n-n1)>=0]-[(n-n1-N)>=0]

x2=[(n>=n1)&(n<(N+n1))]; x3=exp(j*n*pi/8).*x2;

subplot(2,2,1);stem(n,x1,'.');

xlabel('n');ylabel('x1(n)');

axis([n0,max(n),0,1]);

subplot(2,2,3);stem(n,x2,'.');

xlabel('n');ylabel('x2(n)');

axis([n0,max(n),0,1]);

subplot(2,2,2);stem(n,real(x3),'.');

xlabel('n');ylabel('x3(n)的实部');

line([n0,max(n)],[0,0]);

axis([n0,max(n),-1,1]);

subplot(2,2,4);stem(n,imag(x3),'.');

xlabel('n');ylabel('x3(n)的虚部');

line([n0,max(n)],[0,0]);

axis([n0,max(n),-1,1]);

输入序列起点:n0=-6

输入序列长度:N=15

输入位移:n1=3

x1 = Columns 1 through 13 0 0 0 0 0 0 0 0 0 1 1 1 1

Columns 14 through 26

1 1 1 1 1 1 1 1 1 1 1 0 0

Columns 27 through 30

0 0 0 0

Q03

clear;close all N=24;M=8;

m=input('输入移位值:m='); if (m<1|m>=N-M+1)

fprintf('输入数据不在规定范围内!');

break end

n=0:N-1;

x1=(0.8).^n; x2=[(n>=0)&(n

xn=x1.*x2;

xm=zeros(1,N); for k=m+1:m+M xm(k)=xn(k-m); end xc=xn(mod(n,8)+1);

xcm=xn(mod(n-m,8)+1);

subplot(3,2,1); stem(n,xn,'.');

title('x(n)');axis([0,length(n),0,1]);

ylabel('x(n)');xlabel('n');

subplot(3,2,2);stem(n,xm,'.');

title('x(n-m)');axis([0,length(n),0,1]);

ylabel('x(n-m)');xlabel('n');

subplot(3,2,5); stem(n,xc,'.');

title('x(n)的周期延拓');axis([0,length(n),0,1]);

ylabel('x(mod(n,8))');xlabel('n');

subplot(3,2,6);stem(n,xcm,'.');

title('x(n)的循环移位');axis([0,length(n),0,1]);

ylabel('x(mod(n-m,8))');xlabel('n'); 输入移位值:m=2

试验一 语音信号处理

语音信号处理综合运用了数字信号处理的理论知识,对信号进行计算及频谱分析,设计滤波器,并对含噪信号进行滤波。 一,具体分为以下步骤:

(1)语音信号的采集:利用Windows

下的录音机,录制一段话音。然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,播放语音信号,并绘制原始语音信号;

(2)对原始信号加入噪声:对原始语

音信号加入 s=0.05*sin(2*pi*f*Ts*n)

的噪声,采样后可知Fs ,选择f = 2500,

播放加入噪声信号的语音信号,并绘制噪声信号和含噪语音信号;

(3)频谱分析:分别对原始语音信号,

噪声信号和含噪声的语音信号进行频谱分析,并绘出各频谱图;

(4)设计滤波器:计算滤波器的性能

指标,设计滤波器,绘制滤波器的特性曲线;

(5)滤波器滤波:用自己设计的滤波

器对采集的信号进行滤波,得出滤波后信号

的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化,并回放语音信号,感觉滤波前后的声音有变化。

(6) 对原始信号进行整数倍抽取,比较

抽取前后的频谱图

(7)对原始信号进行整数倍内插,比较原始信号频谱,内插零值时的频谱和滤波后的频[x,fs,bits]=wavread('aaa.wav'); N=length(x); f=2500;

x=x';

n=0:1/fs:(N-1)/fs; s=0.05*sin(2*pi*f*n); y=x+s;

f1=0:fs/N:fs*(N-1)/N; x1=fft(x,N); s1=fft(s,N); Y=fft(y,N); figure(1);

subplot(311);plot(n,x);title('原始信号波形图');

xlabel('t/s');ylabel('幅值');

subplot(312);plot(n,s);title('噪声信号波形图');ylim([-0.08,0.08]); xlabel('t/s');ylabel('幅值');

subplot(313);plot(n,y);title('信号+噪声信号波形图');

xlabel('t/s');ylabel('幅值'); figure(2);

subplot(221);plot(f1,abs(x1));title('原始信号频谱图');

xlabel('频率/Hz'); ylabel('频率响应幅度');xlim([0,fs/12]);

subplot(222);plot(f1,abs(s1));title('噪声信号频谱图');

xlabel('频率/Hz'); ylabel('频率响应幅度');xlim([0,fs/12]);

subplot(223);plot(f1,abs(Y));title('信号+噪声频谱图');

xlabel('频率/Hz'); ylabel('频率响应幅度

');xlim([0,fs/12]); 谱图。

滤波器设计

wp=1500*2*pi;ws=2200*2*pi;Rp=2;Rs=15; [N1,Wn]=buttord(wp,ws,Rp,Rs,'s'); %创建butterworth模拟滤波器 [Z,P,K]=buttap(N1);

%把滤波器的零极点模型转化为传递函数模型

[Bap,Aap]=zp2tf(Z,P,K); [b,a]=lp2lp(Bap,Aap,Wn); [bz,az]=bilinear(b,a,fs); [H,W]=freqz(bz,az); figure(3); subplot(211),

plot(W*fs/(2*pi),abs(H)); grid

title('butterworth低通滤波器频响图');xlabel('频率/Hz'); ylabel('频率响应幅度'); y1=filter(bz,az,y);

subplot(212),plot(n,y1);title('滤波后信号波形

图');

xlabel('频率/Hz'); ylabel('频率响应幅度');

原始信号波形图0.2值幅0-0.200.10.20.30.40.5t/s噪声信号波形图0.05值幅0-0.0500.10.20.30.40.5t/s信号+噪声信号波形图0.2值幅0-0.200.10.20.30.40.5t/s

对原始信号进行整数倍抽取 M=2;

for i=1:fix(N/M) y2(i)=x(M*i);

end

y2=fft(y2,i); fs2=fs/M;

f2=0:fs2/i:fs2*(i-1)/i;

figure(4);subplot(322);plot(f2,abs(y2)); title('原始信号');xlim([0 fs/(12*M/2^1)]); M1=1;%%按M1倍内插 y3=zeros(1,N*M1); for i=1:N

y3(i*M1)=x(i); end

y3=fft(y3,N*M1);%%内插后进行傅里叶变换

fs3=fs*M1;

f3=0:fs3/(N*M1):fs3*(N*M1-1)/(N*M1); figure(5);subplot(221);plot(f3,abs(y3)); title('原始信号频谱图');xlim([0 150000]);

原始信号频谱图噪声信号频谱图30015000.6度0.7200度幅幅1000应应响100响率率500频频002000400000200040000.60.7频率/Hz频率/Hz信号+噪声频谱图1500度幅1000应响率500频0.600.7020004000频

率/Hzbutterworth低通滤波器频响图1.5度幅1应响率0.5频000.511.522.533.5频率/Hzx 104滤波后信号波形图0.2度0.1幅应响0率频-0.1-0.200.10.20.30.40.50.60.7频率/Hz按2倍抽取后的频谱按4倍抽取后的频谱2001001005000200040000020004000按8倍抽取后的频谱按16倍抽取后的频谱4020201000200040000020004000按32倍抽取后的频谱按64倍抽取后的频谱1045200200040000020004000

四,结果分析

对原始信号加入噪声后播放,声音中明显存在单频尖锐噪声。后对信号+噪声信号进行滤波后,播放的声音中仍留有少量的噪声信号,且整体信号不如加噪前明亮,原因是采用低通滤波器滤去高频噪声时,原信号的高频信号也被滤去了,所以声音没加噪前丰富,显得低沉。

对原始信号进行整数倍抽取,相当于降低采样频率,由图可知,当抽取倍数为16倍时出现了明显的频谱混叠现象。原因是由于抽样频率fs不满足fs>=2*fh,从而周期延拓时出现了频谱混叠现象。而对信号进行整数倍内插则没有使信号频谱变差。从而也验证了采样定理的正确性。

原始信号频谱图30020010003002001000按2倍内插零值后的频谱05101540510154x 10按4倍内插零值后的频谱3002001000x 10按8倍内插零值后的频谱3002001000051015x 104051015x 104


实验5 MATLAB在数字信号处理中的应用.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:matlab30个案例分析案例5代码

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: